OpenClaw 近期凭借惊人的增长速度成为焦点,但其83万行的代码量也让许多人望而却步。香港大学团队开源的 nanobot 项目,仅用4000行代码便复刻了 OpenClaw 的核心功能。它为那些想深入理解AI网关工作原理的开发者,提供了一个轻量且易于上手的绝佳选择。
智能速览
OpenClaw 虽然功能强大,但代码量庞大,不易研究。
港大开源的 nanobot 是一个仅4000行代码的轻量级 OpenClaw 平替。
nanobot 原生实现了AI网关的事件循环,未依赖 langchain 等第三方框架。
项目支持飞书、QQ、钉钉等多种聊天软件,部署简单。
其记忆功能较为简陋,直接通过文件和 grep 实现,效果可能有限。
nanobot 适合作为学习 OpenClaw 核心原理的入门项目。
精华内容
面对 OpenClaw 庞大的代码库,想要理解其内部机制几乎是不可能的。而 nanobot 的出现,就像一本精简的参考手册,清晰地揭示了AI网关的核心逻辑。
核心架构实现
nanobot 的核心是一个事件循环,其工作流程清晰透明。它从聊天应用接收消息后,会拼接上下文构建一个完整的提示词并发送给大模型。如果模型返回 `tool_calls`,系统便会执行相应工具,并将结果回填给模型,循环此过程直到获得最终文本回复,最后通过聊天应用接口将消息返回给用户。整个逻辑完全使用 Python 原生实现,没有依赖 langchain 或 adk 等现成的 agent 框架,这使得代码结构非常直观,便于阅读和理解。
任务与记忆机制
在功能实现上,nanobot 采取了非常直接的策略。定时任务方面,所有任务被持久化到 `/.nanobot/cron/jobs.json` 文件中,系统通过一个独立的进程持续轮询该文件,到达预定时间即触发执行。而在记忆管理上,nanobot 采取了文件优先的思路,将所有长期记忆存储在 `memory.md` 文件中。当需要调取记忆时,它直接使用 `grep` 命令检索指定关键词。这种方案相比 OpenClaw 按天汇总压缩并结合向量数据库的复杂方案要简陋许多,其实际检索效果和效率可能存在局限。
定位与价值
将 nanobot 与 OpenClaw 对比,一个生动的比喻是:如果说 OpenClaw 是功能齐全的“豪华精装大平层”,那么 nanobot 就像是“毛坯房”,基础设施尚不完善。nanobot 的价值并不在于直接替代 OpenClaw 用于生产环境,而在于它提供了一个绝佳的学习样本。它用人类可读的4000行代码,清晰地勾勒出了一个AI网关的基本骨架,让开发者能够快速抓住核心要点,洞悉其背后的实现原理。
nanobot 以极简的方式,成功复刻了 OpenClaw 的核心逻辑,为开发者打开了一扇理解AI网关的窗口。它虽然在功能上有所欠缺,但作为学习和研究的样本,其价值不言而喻。或许,这正是未来开源项目发展的另一种趋势:在复杂与简约之间,找到最佳的学习路径。