一、这个系列要做什么

nanobotHKUDS(香港大学数据科学实验室)开源的个人 AI Agent 框架,口号是 ultra-lightweight, self-hosted personal AI agent framework。它用 Python 写成,把"工具、长期记忆、MCP 集成、模型路由、多 Agent 委派、定时自动化、OpenAI 兼容 API"都塞进一个可读的小核心里。

市面上讲 Agent 的教程大多停留在"调一个 chain / 用一个框架",很少带你真正读完一个框架的源码。而这个项目恰好满足"可读"这个前提:核心引擎只有两个文件(agent/loop.py 约 2264 行、agent/runner.py 约 1670 行),其余能力(工具、Provider、Channel、记忆、安全)都以清晰的分层挂在核心之外。

这个系列的目标,就是逐层把 nanobot 读透——从"一个请求怎么走到答案",到上下文工程、长期记忆、工具与安全边界、MCP、模型路由、多 Agent、以及一个框架如何接入 20+ 聊天平台并对外提供 API。全部基于你本地 D:\github_projects\nanobot 的真实代码,逐文件、逐函数讲解。

说明:本系列只解读 nanobot 这个项目本身,不与其它项目做任何对照,独立成篇。

二、后续篇章规划(9 篇 + 本路线图)

标题核心源码看点
00路线图(本篇)定位、架构总览、目录导览、篇目表
01开篇:定位 · 架构 · 跑起来 · 目录导览nanobot.py / docs/architecture.md项目是什么、核心数据流、三种运行入口
02核心引擎:AgentLoopAgentRunneragent/loop.py / agent/runner.py一次请求如何从通道走到答案;两个角色的分工
03上下文工程:ContextGovernance 与自动压缩agent/context.py / agent/context_governance.py上下文怎么拼、怎么在超限时自动压缩
04记忆与状态:Dream 长期记忆 + 会话压缩agent/memory.py / session/manager.py长期记忆如何合并沉淀;会话历史如何压缩
05工具系统与安全边界agent/tools/* / security/*工具发现框架、shell/web/filesystem 实现、SSRF 与沙箱
06MCP 集成agent/tools/mcp.py如何把外部 MCP Server 接进来成为工具
07Provider 与模型路由 / 降级providers/*多后端适配、模型预设、fallback 路由
08多 Agent 委派agent/subagent.py一个 Agent 如何把子任务派给子 Agent
09接入与产品化:Channel + SDK/OpenAI API + 自动化channels/* / sdk/ / api/ / cron/20+ 平台接入插件、Python SDK、OpenAI 兼容 API、定时任务

标注「核心」的是最值得精读的几篇:01 / 02 / 03 / 04 / 05 / 06。

三、阅读顺序建议

建议严格按 00 → 09 顺序读。因为 nanobot 是"小核心 + 插件式外围"的结构:

  • 先懂核心数据流(01)和两个引擎角色(02),后面的每一层(上下文、记忆、工具、Provider、Channel)都是挂在 AgentRunner / AgentLoop 上的"被调用方",理解了主干再看枝节会非常顺。
  • 03 / 04 属于"上下文与状态"主题,紧接引擎之后最自然。
  • 05 / 06 / 07 是三类"能力扩展"(工具、MCP、模型)。
  • 08 / 09 是"协作与产品化",放在最后。

四、本系列的写作约定

  • 每篇都给出精确的文件路径与行数,方便你本地对照源码。
  • 关键函数会逐段注释,而不是只贴结论。
  • 遇到"为什么这么设计",会单独点出取舍,而不是只描述"它做了什么"。
  • 配图放在 static/images/nanobot-NN-*.svg

下一篇 01 · 开篇 会从"这个项目到底是什么"讲起,并把它完整的运行时架构和目录结构摊开给你看。