nanobot 项目简介

上级索引:00-概览与索引 | 下一篇:02-安装与配置

🎯 项目定位

nanobot 是一个超轻量级、开源、可自托管的个人 AI Agent 框架,由香港大学数据科学学院(HKUDS)发布,作者 Xubin Ren 最初作为个人开源项目启动。

核心目标:让个人用户拥有一个私有的 AI 助手运行时,支持持久记忆、工具调用、多端接入,同时保持代码小巧可读、完全可自托管。

✨ 核心特性

特性说明
持久化工作流Dream 机制将对话历史蒸馏进长期记忆,跨会话保持连贯上下文
多端接入WebUI、CLI、Telegram、Discord、Slack、飞书、微信、Email、Mattermost 全覆盖
模型自由兼容所有 OpenAI-compatible API、本地 LLM(Ollama/vLLM)、多模型 Fallback
轻量内核代码库故意保持小巧可读,非黑箱平台,方便 fork 和定制
数据自主完全自托管,session/memory 都是本地 JSONL/Markdown 文件

🏗️ 与同类项目对比

项目定位区别
nanobot轻量个人 AI Agent 运行时,强调自托管和可读性
LangChain通用 LLM 应用框架,功能丰富但依赖庞大nanobot 更轻量,无需学习大量抽象层
AutoGen微软多 Agent 对话框架nanobot 更侧重个人助手场景,而非企业级多 Agent 编排
CrewAI角色扮演式多 Agent 协作nanobot 以单 Agent + MCP 工具为核心,多 Agent 是可选扩展
OpenHands代码执行沙箱 Agentnanobot 是通用助手定位,代码执行只是众多工具之一

📐 设计哲学

  • Small core:代码库故意保持小巧可读,不是黑箱平台,鼓励阅读和 fork
  • Own your stack:可检视、可定制、可自托管、可扩展,数据不上云
  • Chat-native reach:以聊天为主入口,多平台统一接入同一个 Agent
  • Model freedom:不绑定特定模型商,支持本地 + 云端混用

🔖 关键词汇

  • Gateway:nanobot 的服务模式入口,启动后监听 18790 端口,管理 Channel 生命周期和心跳任务
  • Channel:外部平台适配层(Telegram、Discord 等),将平台消息转换为统一的 InboundMessage 事件
  • Dream:周期性记忆整合任务,将近期会话历史蒸馏写入长期记忆文件(MEMORY.md)
  • MCP(Model Context Protocol):Anthropic 提出的工具调用标准协议,nanobot 原生支持,可接入第三方 MCP Server 扩展能力
  • Goal:长时运行任务,可跨多轮对话追踪进度,类似异步后台任务
  • AgentLoop:面向 Channel,管理 session、workspace、context 构建、outbound 发布
  • AgentRunner:面向 Model,管理 provider 调用、tool call 执行、streaming 处理

📝 个人笔记

  1. 不同框架项目的优势

🔗 延伸阅读