乐于分享
好东西不私藏

5分钟搭私人AI助手:Nanobot 45K Star 完全指南

5分钟搭私人AI助手:Nanobot 45K Star 完全指南

你有没有想过,让一个 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信号实验室」,追踪前沿信号,动手实验每一个新能力。 有想了解的主题?评论区告诉我,下期安排。