1. 项目概述
在AI Agent框架领域,我们常常看到动辄几十万行代码的庞然大物,而nanobot却以仅4000行核心代码的极简设计实现了完整功能。这个开源项目完美诠释了"少即是多"的工程哲学,它包含了:
- ReAct推理循环
- 双层记忆系统
- 10+聊天渠道支持
- 20+LLM提供商接入
- MCP协议支持
- 子Agent协作机制
作为从业十余年的技术架构师,我被这种"用最精简的代码实现最完整功能"的设计理念深深吸引。本文将带你深入剖析nanobot的技术实现,看看它是如何在保持极简代码量的同时,实现如此丰富的功能集。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心架构解析
2.1 整体架构设计
nanobot的架构可以概括为以下核心组件:

代码组织结构清晰明了:
code复制nanobot/
├── agent/ # 核心Agent逻辑
├── bus/ # 消息总线
├── channels/ # 多渠道接入
├── session/ # 会话管理
├── cron/ # 定时任务
├── providers/ # LLM提供商抽象
└── config/ # 配置加载
这种模块化设计使得每个组件职责单一,边界清晰。特别值得注意的是MessageBus的设计——仅用两个asyncio.Queue就实现了渠道与Agent的解耦,这种"够用就好"的设计哲学贯穿整个项目。
2.2 关键模块解析
2.2.1 Channel层实现
以飞书渠道为例,其核心创新在于使用WebSocket长连接而非传统Webhook:
python复制class FeishuChannel(BaseChannel):
async def start(self):
self._ws_client = lark.ws.Client(
self.config.app_id,
self.config.app_secret,
