nanobot:把自架个人 AI Agent 变成可长驻的工作台
# nanobot:把自架个人 AI Agent 变成可长驻的工作台
如果你想把 AI Agent 放在自己的电脑或伺服器上,真正遇到的问题通常不是「能不能呼叫模型」,而是模型如何接上工具、记住上下文、持续执行任务,并且让人可以从浏览器、终端机或既有聊天软体操作。HKUDS/nanobot 正好把这些执行环节收敛成一个 Python 专案:它是可自架的个人 AI Agent framework,提供 WebUI、终端机与多种聊天通道,并把工具、长期记忆、MCP、模型路由、子代理与排程自动化放在同一个 runtime 里。
本文以 GitHub repository 的 README、`pyproject.toml` 与官方文件连结为主要资料来源,整理 nanobot 的定位、架构、快速上手方式,以及它适合哪些 AI Chain 开发情境。
## 先看懂 nanobot 解决什么问题
一般聊天机器人只需要处理「收到讯息 → 回复文字」;可长驻的 Agent 则要处理更长的生命周期:
- 从 WebUI、CLI 或 Telegram、Discord、Slack、WeChat、Email、Mattermost 等通道接收工作。
- 让模型在需要时呼叫档案、Shell、网路搜寻、网页撷取、MCP、排程、图片生成或子代理工具。
- 保存工作阶段历史与长期记忆,让任务不必每次从零开始。
- 将长时间目标与周期性自动化交给 gateway 持续执行。
- 透过 Python SDK 或 OpenAI-compatible API,让其他应用程式也能整合这个 Agent。
nanobot 的价值不在于再包一层聊天 UI,而在于把「模型决策」和「可持续执行的工具环境」接起来。这使它比较接近一个可自架的 Agent runtime,而不是单次问答脚本。
## 核心设计:小型 Agent loop,加上可插拔能力
官方 README 将 nanobot 的核心描述为一个小型 agent loop:讯息先从聊天通道进来,LLM 再判断是否需要使用工具;记忆与 skills 则在需要时作为上下文载入,而不是把所有资料都堆成一个庞大的 orchestration layer。
这个取舍很适合想读懂、修改或自行部署 Agent 的开发者。你可以把系统拆成几个容易理解的部分:
1. **入口与通道**:WebUI、终端机、聊天平台与 API 负责把使用者工作送进 runtime。
1. **模型与路由**:可设定不同 provider、模型与 fallback,也能使用 OpenAI-compatible endpoint 或本地模型服务。
1. **工具层**:档案、Shell、搜寻、MCP、cron、图片生成与 subagents 等能力由模型按需调用。
1. **状态与记忆**:session history 与长期记忆让 Agent 可以承接多步骤工作。
1. **Gateway 与部署**:前景或背景执行、Docker、Docker Compose、Linux service 与 macOS LaunchAgent 都有对应文件。
这种结构也提供清楚的扩充边界:想新增聊天通道,可以先处理讯息适配;想接企业内部工具,则可从 MCP、Python SDK 或 OpenAI-compatible API 切入。
## 快速上手:先用 WebUI 验证完整链路
官方建议第一次启动使用 WebUI。环境需求是 Python 3.11 或更新版本;发布套件已包含 WebUI,从目前原始码安装时则需要 `bun` 或 `npm` 建置前端。若使用 `uv`,可以先安装 CLI:
```bash
uv tool install nanobot-ai
```
接着启动浏览器工作台:
```bash
nanobot webui
```
首次启动会在需要时建立设定与 workspace,启动 gateway,并开启 `http://127.0.0.1:8765`。在 **Settings → Models** 选择 provider、凭证与模型后,建立一个 topic,送出 `Hello!` 验证连线。官方说明中,初次 WebUI 预设绑定 localhost,不会直接暴露到区域网路;这是先在本机验证设定时较安全的预设。
确认前景模式可用后,可以让完整 gateway 在背景执行:
```bash
nanobot webui --background
nanobot gateway status
nanobot gateway logs
```
如果只想在终端机互动,则可使用:
```bash
nanobot agent
nanobot agent -m "Hello!"
```
`agent -m` 适合做一次性的 provider 检查、Shell script 或本地自动化;`gateway` 则适合让聊天通道与排程持续运作。
## 从「会聊天」走向「能完成工作」
nanobot 的实作潜力,主要来自几个可以组合的能力。
### 1. 工具与 MCP
Agent 不只产生文字,也能根据任务需要读写档案、执行 Shell、搜寻网路、撷取网页,或透过 MCP 连接外部工具。这让它可以从「回答如何做」进一步走到「在授权范围内完成一段流程」。部署到工作环境时,仍应先针对 workspace、Shell 与网路工具设定最小权限,并分开测试高风险操作。
### 2. 记忆与长时间任务
README 将 session history、long-term memory 与 Dream 列为功能的一部分。对研究、内容整理、专案维护或周期性报表来说,这比单一对话视窗更接近实际工作流:任务可以保留上下文,排程也可以在 gateway 持续启动。
### 3. 多代理与模型切换
目前版本的 release 说明包含 inline subagents、每个 session 的 model switching,以及更完整的执行控制。这代表一个主 Agent 可以在同一个工作情境中,把特定子任务交给 helper,或依工作需求切换模型预设;不过模型切换和子代理不等于自动保证正确性,仍需要在 prompt、工具权限、输出验证与失败重试上建立工程规则。
### 4. 聊天通道与 API 整合
WebUI 适合除错与观察工具呼叫,CLI 适合开发者快速测试,聊天平台则适合把 Agent 放进日常协作。若要接到既有服务,也可以评估 Python SDK 或 OpenAI-compatible API,而不是直接耦合内部模组。
## 什么情况适合采用?
nanobot 特别适合以下几类情境:
- 想在自己的硬体或伺服器部署个人 AI 助理,而不是把资料全部交给代管平台。
- 需要把 LLM 接到档案、命令列、搜寻、MCP 或既有聊天通道。
- 想先用 WebUI 验证 Agent,再以 gateway、Docker 或系统服务长驻。
- 需要 session、长期记忆与排程,让 Agent 支援多步骤或周期性工作。
- 想研究一个相对容易阅读的 Python Agent runtime,并在其上自订 provider、tool 或 channel。
反过来说,如果需求只是一次性的模型问答、完全不需要工具和背景执行,nanobot 的 gateway、通道与权限设定可能会超出必要范围。
## 自架前的三个检查点
**第一,先界定执行边界。** Shell、档案与网路工具会让 Agent 具备实际影响力。应从专用 workspace、受限帐号与明确的工具白名单开始,而不是一开机就给它整台主机的权限。
**第二,把模型设定和秘密管理分开。** API key 不应写入文章、版本库或聊天讯息;部署时使用环境变数或专用秘密管理机制,并确认 log 不会回显敏感值。
**第三,为长时间任务设计可观测性。** WebUI 能查看 reasoning、tool calls、档案编辑、diff、命令输出与产物;正式环境仍建议保留 gateway status、logs、失败通知与人工核准点,让自动化可以被追踪和停止。
## 结语
nanobot 把自架 AI Agent 的几个关键部件放在同一个可执行环境:WebUI 与 CLI 负责操作,gateway 负责长驻,工具与 MCP 负责延伸能力,记忆与 session 负责延续上下文,SDK 与 API 负责整合其他服务。它最值得研究的地方,不是功能清单很长,而是试图用一个相对小型、可读的 Agent loop,承接从个人助理到自动化工作流的完整路径。
若要评估它是否适合你的团队,建议先用本机 WebUI 完成一个低风险任务,再逐步加入 MCP、聊天通道、排程与背景 gateway;每增加一项能力,就同步补上权限、记录与停止机制。这样才能把「会呼叫模型」稳定地转成「能在自己的环境完成工作」。
## 官方资料
- GitHub repository:
- 官方 README:
- 官方文件:
- Python package:
- Release v0.3.0: