你有没有想过,让一个 AI 助手长期住在你的服务器上——帮你盯着文件变化、定时跑任务、记住你的偏好,而不是每次对话都从零开始?
Nanobot 就是干这个的。
45,809 颗 Star,MIT 协议,一行命令部署。它不是又一个 ChatGPT 网页版壳子——它是一个你真正能拥有的 AI Agent 运行时。
1. 它到底是什么
先做个思想实验。
你打开 ChatGPT,问一个问题,拿到答案,关掉。下次打开,它不认识你。
这是「对话」。
Nanobot 做的是另一件事:Agent。

你告诉它「每天早上 8 点检查我 GitHub 仓库的 PR,把需要我处理的汇总发到我微信上」。它记住了。第二天早上 8 点,消息准时到你手机。你在微信上回它「帮我把那个 PR 合并了」,它真的去调 GitHub API 帮你合了。
这就是 Agent 和聊天的区别——持久化 + 工具链 + 自动化。
Nanobot 的定位很清晰:自托管的个人 AI Agent 运行时。轻量、开源、你能完全拥有。
从架构上看,它和市面上其他产品的区别:
▸ vs Open-WebUI:Open-WebUI 本质是大模型聊天界面+简单的工具集成。Nanobot 有完整的 Agent 循环、记忆系统和自动化引擎。
▸ vs Dify:Dify 是企业级 AI 应用平台,功能全面但也重,部署一套要搭好几个服务。Nanobot 一条命令启动,适合个人和小团队。
▸ vs Coze / 字节扣子:闭源,你的数据在别人服务器上。Nanobot 全在你的机器上,不出门。
Nanobot 的设计哲学是「小核心 + 插件化能力」。核心 Agent 循环不到一千行代码,但通过工具链和 MCP 协议,它能无限扩展。
2. 底层运行逻辑:Agent 循环
很多人以为 AI Agent 就是「调 API 传消息」,Nanobot 告诉你不是这样。
每一次对话,背后走的是一个完整的 Agent Loop:
1. 消息进入 — 不管你是从浏览器 WebUI、终端 CLI、Telegram、微信还是飞书发的消息,统一进入消息总线。
2. 构建上下文 — Agent 从 workspace 读取 session 历史、从 memory 读长期记忆、加载技能(Skills)、注入渠道元数据。这一步决定了 AI「记得什么」。
3. 调大模型 — 配好的 Provider(OpenAI / Anthropic / Ollama / 本地模型)收到请求,开始推理。
4. 工具调用 — 如果模型认为需要调工具(比如「查一下当前目录的文件」),Agent Loop 执行工具,把结果喂回模型。这个过程可能循环多次。
5. 回复并保存 — 最终回复发回你的渠道,同时写入 session 保存。Dream 定时任务在后台把短时记忆整合成长时记忆。
这个循环,不管消息从哪个渠道进来,走的是同一套逻辑。所以你在 WebUI 里和它聊了一半,切到微信接着说,它是同一个 Agent。

3. 能干什么
Nanobot 的能力分四个层次,从浅到深:

▸ 第一层:聊天 WebUI 浏览器界面、终端 CLI、Telegram / Discord / Slack / 飞书 / 微信 / Email / Mattermost。几乎覆盖主流聊天平台。装好之后,你在任何一个平台上跟它说话,都是跟同一个 Agent 对话。
▸ 第二层:工具 不只是聊天。它能读写文件、执行 shell 命令、搜索网页、抓取网页、调 MCP Server、跑定时任务、生成图片、甚至启动子 Agent。这些工具通过 function calling 暴露给模型,模型觉得需要就自己调。
▸ 第三层:自动化 这是 Nanobot 最值钱的能力。你可以在聊天里直接说: 「每天早上 9 点,检查今天的 HackerNews 头条,挑一篇跟我项目相关的总结发给我。」 Agent 用 cron 工具创建一个定时任务。到点自动跑,跑完发结果到你指定的渠道。
还有长期目标(Heartbeat):在 workspace 里写一个 HEARTBEAT.md,写上你的长期任务目标。Nanobot 的后台会定期检查,有进展才通知你,没事不打扰。
▸ 第四层:记忆 大多数 AI 聊天工具没有真正的记忆。Nanobot 有,而且分三层:
• Session 层:当前对话的短期记忆,存在 sessions/*.jsonl
• Dream 层:定时运行的整合任务。隔一段时间,把历史对话压缩总结,写入 memory/history.jsonl
• 持久层:三个文件——SOUL.md(Agent 的人格和语气)、USER.md(关于你的稳定信息)、MEMORY.md(项目事实和决策记录)
而且记忆有版本管理(GitStore),你可以随时查看和回滚。

4. 安装:一行命令
Mac / Linux:
bash
curl -fsSL https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.sh | sh
Windows PowerShell:
irm https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.ps1 | iex
安装程序会自动处理虚拟环境,不会污染系统 Python。
前提条件就一条:Python 3.11 或更新版本。
5. 5 分钟跑起来
装完之后,终端里执行:
bash
nanobot onboard --wizard
按提示三步走: 1. 选你的模型提供商(OpenAI / Anthropic / Ollama / 本地模型 / OpenRouter……) 2. 输入 API Key 或 Base URL 3. 设置 WebUI 密码
然后:
bash
nanobot gateway
浏览器打开 http://127.0.0.1:8765,看到 WebUI 界面,输入你好——能正常回答,就成功了。
如果你不用浏览器,终端也能聊:
bash
nanobot agent -m "你好!"
或者:
bash
nanobot agent # 进入交互模式
6. 把 Nanobot 接入你的项目
这是它和其他 AI 工具最不一样的地方。Nanobot 不是独立存在的,它可以嵌入你的技术栈。

▸ 作为 Python SDK 嵌入
python
from nanobot import Nanobot
async with Nanobot.from_config() as bot:
result = await bot.run("分析这个目录下的所有日志文件")
print(result.content)
print(result.tools_used) # 用了哪些工具
在你的 Python 项目里装一个完整的 Agent 运行时。比你自己从头搭 function calling + 工具链 + 记忆系统省 90% 的工作量。
▸ 作为 OpenAI 兼容 API 暴露
bash
nanobot serve
这就启动了 http://localhost:8900/v1/chat/completions。任何对接过 OpenAI API 的系统都可以直接调 Nanobot。这意味着:
• Claude Code 可以用 Nanobot — Claude Code 支持自定义 API endpoint,配到 Nanobot 的地址,Claude Code 就能把任务委托给 Nanobot 的 Agent 能力
• Codex 可以用 Nanobot — Nanobot 原生支持 OpenAI Codex provider,nanobot provider login openai-codex 一步登录
• 你自己的系统可以用 Nanobot — 任何语言的 OpenAI SDK 无缝对接
▸ 通过 MCP 扩展能力
Nanobot 支持 MCP(Model Context Protocol)协议,已有 2000+ 现成的 MCP 服务器可以直接挂载:
json
{
"tools": {
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"]
}
}
}
}
GitHub、文件系统、数据库、浏览器自动化、Slack、飞书文档……MCP 社区有的,Nanobot 都能直接用。
7. 模型配置有多灵活
Nanobot 的 Provider 抽象层是我见过最完善的。
它内置支持:OpenAI、Anthropic、OpenRouter、Groq、AWS Bedrock、Azure OpenAI、Ollama、vLLM、LM Studio、OpenAI Codex、GitHub Copilot……
以及任何 OpenAI 兼容的 endpoint。
而且支持 fallback 链路——如果主模型挂了,自动降级到备选模型。这对生产环境至关重要。
json
{
"modelPresets": {
"primary": {
"provider": "openrouter",
"model": "anthropic/claude-opus-4.5"
},
"fallback": {
"provider": "openai",
"model": "gpt-5"
}
},
"agents": {
"defaults": {
"modelPreset": "primary",
"fallbackModels": ["fallback"]
}
}
}
8. 避坑指南
自己部署踩过的坑,帮你标出来:
▸ 端口冲突 — WebUI 默认 8765,Gateway 健康检查 18790,API Server 8900。如果本地已经有服务占了这些端口,在 config.json 里改掉对应配置。
▸ 模型配不对 — 最常见的错误:用 OpenRouter 的 API Key 配了 Anthropic 的模型名。记住:Provider 的 Key 和模型名必须属于同一家服务。
▸ 中文支持 — 良好。WebUI 有中文界面,文档有中文版。模型的中文能力取决于你选的模型本身。
▸ 资源占用 — 空载时几乎没有 CPU 占用,内存约 50-80MB。模型调用的资源取决于你用的模型。
▸ Dream 定时任务 — 默认每 2 小时跑一次。如果不想让 Agent 太频繁地「思考人生」,把 agents.defaults.dream.intervalH 改大一点。
9. 能用来做什么项目
Nanobot 不是一个玩具。我在社区看到这些实际用法:

• 个人知识库管家 — 连上微信,随手丢链接/文件进去,Agent 自动整理到你的笔记里 • 代码仓库监控 — 定时检查 PR、Issue,有变化推送到手机 • 自动化日报生成 — 每天早上汇总你关注的 RSS 源、GitHub Trending、HackerNews • 家庭服务器管家 — 监控磁盘空间、服务状态,异常时发告警 • MCP 网关 — 把 2000+ MCP 能力包装成一个 OpenAI 兼容 API,给其他工具调用
10. 结尾
45,809 颗 Star 不是刷出来的。在 AI Agent 这个赛道上,大部分项目要么太重(Dify),要么太轻(只是一个聊天壳子)。Nanobot 踩在了一个很舒服的位置:个人能拥有、开发者能扩展、生产环境能跑。
它不完美——文档偶尔落后于代码,有些功能还在迭代。但它的架构方向是对的:Agent 应该是你拥有的工具,而不是你租用的服务。
📮 关注「AI信号实验室」,追踪前沿信号,动手实验每一个新能力。 有想了解的主题?评论区告诉我,下期安排。
夜雨聆风