Nanobot - 超轻量级个人AI智能体框架
HKUDS/nanobot
4000行Python实现的自托管AI Agent框架,内置WebUI、工具调用、长期记忆、多智能体协作与聊天应用集成,对标OpenClaw的极简替代方案
成熟度:维护活跃,最近提交0天前,开放issues 773个,处于快速迭代期
项目体检
部署 · docker compose一键启动,包含gateway(端口18790/8765)、API服务(端口8900)和CLI三个容器,资源限制1核1G,挂载~/.nanobot持久化配置
成本 · 需OpenAI兼容API Key或本地LLM,可选配置Langfuse追踪、MCP工具集成、搜索引擎API,默认开箱即用支持终端与WebUI交互
技术 · Python 3.11+,核心依赖anthropic/openai SDK、websockets、httpx、typer CLI框架,前端WebUI需bun/npm构建
许可 · MIT协议,允许商用、修改与分发,需保留原作者版权声明
活跃 · 最新版本v0.3.0发布于2天前,贡献者406人,最近提交0天前,活跃度极高
解决什么
Nanobot针对大型AI Agent框架(如OpenClaw)动辄40万行代码、配置复杂、难以理解和定制的痛点,提供一个仅4000行Python核心代码的极简替代方案。它将智能体运行时的不可约简要素——循环调度、模型抽象、工具分发、聊天网关——压缩到最小可用集,同时保留长期记忆(Dream)、MCP协议集成、多智能体委托、定时任务自动化等生产级功能。开发者可以在浏览器WebUI、终端或Telegram/Discord/微信/飞书等聊天应用中运行个人AI助手,完全自托管,无需依赖商业平台。
为何火
该项目在GitHub获得4.6万星标,HN讨论获257点赞128条评论,核心吸引力在于极致的代码精简与功能完整性的平衡。社区开发者普遍认同"99%的代码缩减来自剔除RAG管道、复杂规划器、多智能体编排UI和生产运维层",而保留的核心恰好是个人助手场景的必需品。相比需要团队维护的重型框架,Nanobot的可读性让个人开发者能在周末理解全部实现并按需魔改。其MIT协议、Docker一键部署、多聊天平台集成(尤其支持国内微信/飞书)、本地LLM兼容等特性,使其成为自建AI助手的实用起点。
核心功能
- 多模型路由与降级: 支持OpenAI、Anthropic、本地LLM等兼容API,可配置主备模型自动切换
- 工具生态: 内置文件操作、Shell执行、网页搜索/抓取、图像生成、子智能体调用、定时任务(cron)
- MCP协议集成: 原生支持Model Context Protocol,可扩展第三方工具服务
- 长期记忆(Dream): 会话历史与知识持久化,支持跨会话上下文检索
- 多智能体协作: 主智能体可委托子智能体处理专项任务,避免单一智能体权限过大(社区讨论的"致命三要素"防范)
- 聊天应用网关: 官方支持Telegram、Discord、Slack、微信、飞书、Mattermost、邮件,统一消息路由
- WebUI与API: 内置浏览器界面配置模型与工具,暴露OpenAI兼容API供第三方集成
- 定时自动化: 基于croniter实现周期性任务触发,可执行长时程目标
安装
一键安装(推荐桌面环境):
# macOS/Linux
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
脚本自动检测环境,优先使用虚拟环境/uv/pipx安装PyPI稳定版,桌面环境直接启动WebUI配置。
手动安装:
# PyPI稳定版
pip install nanobot-ai
# uv快速安装
uv tool install nanobot-ai
# 源码最新特性(需bun/npm构建WebUI)
git clone https://github.com/HKUDS/nanobot.git
cd nanobot && pip install -e .
Docker部署:
docker compose up -d # 启动gateway(18790/8765端口)与API服务(8900端口)
首次运行执行nanobot webui打开配置界面,在Settings → Models添加OpenAI Key或本地模型端点。国内用户可配置通义千问、智谱等兼容API,或用Ollama跑本地模型无需外网。
适合谁
- 个人开发者想自建AI助手但不想啃大型框架源码
- 隐私敏感用户需要完全自托管、数据不出本地的方案
- 多平台集成需求要在Telegram/微信/Slack等聊天工具统一调用AI
- 本地LLM爱好者希望用Ollama等工具跑开源模型,避免API费用
- 快速原型验证需要周末搭建可用Agent演示,而非生产级企业部署
不适合: 需要开箱即用的复杂RAG检索、多智能体可视化编排、企业级权限管理的团队,建议选LangChain/AutoGPT等成熟方案。
社区评价
HN讨论热度257点,核心争议集中在RAG与多智能体的必要性。支持者认为"让编码智能体通过管理文件夹实现记忆比RAG更直观",且子智能体模式避免主智能体权限过大的安全风险。反对者指出"一旦记忆超过数百行文本,RAG的检索性能优于直接塞满上下文",并引用Anthropic 2023年的针刺实验证明长上下文仍有召回问题。有开发者提到Simon Willison的"致命三要素"理论(智能体同时拥有代码执行+网络访问+数据读写权限),建议任务分解到多个受限智能体并用数据管道隔离。
正面观点: "4000行可读核心让我终于理解Agent运行时本质"、"Docker一键部署+微信集成太适合国内个人用户"、"MIT协议可以放心商用魔改"。负面担忧: "773个开放issue说明快速迭代带来稳定性问题"、"缺少可视化工作流编排,复杂任务需手写Python"、"文档虽有中文但配置项说明不如商业产品详细"。
选型对比
vs OpenClaw: Nanobot是其极简替代,代码量从40万行降至4000行(99%),剔除RAG管道、可视化编排器、生产运维层,保留核心Agent循环与工具调用。OpenClaw适合企业团队需要开箱即用的完整解决方案,Nanobot适合个人开发者要可读可改的最小内核。
vs LangChain/LlamaIndex: 后者是通用LLM应用开发框架,提供丰富的组件库但学习曲线陡峭。Nanobot专注个人助手场景,内置聊天网关、长期记忆、定时任务等开箱即用功能,代码量小适合快速上手。
vs AutoGPT: AutoGPT强调自主规划与长时程目标执行,Nanobot更轻量且支持多聊天平台集成,适合日常交互式助手而非完全自主的后台Agent。
已知坑
- RAG缺失: 官方移除了向量检索,记忆依赖Dream的文件管理。社区反馈超过数百行文本后检索性能下降,需自行集成Chroma/Pinecone等向量库。
- 773个开放issues: 快速迭代导致bug修复滞后,生产环境建议锁定PyPI稳定版(v0.3.0)而非main分支。
- WebUI构建依赖: 源码安装需bun或npm,国内网络可能遇到依赖下载慢,建议配置镜像或直接用PyPI预构建包。
- 多智能体无可视化: 子智能体调用需手写Python配置,缺少LangGraph式的图形化编排界面。
- 中文文档滞后: 虽提供中文版但更新慢于英文,复杂配置(如MCP集成、Langfuse追踪)需参考英文文档或源码注释。
- 聊天应用限流: Telegram等平台有API调用频率限制,高频交互可能触发封禁,需自行实现速率控制。
来源: GitHub (https://github.com/HKUDS/nanobot) + Hacker News讨论
安装方式:pip/uv/源码安装