OpenClaw 功能强大但 43 万行代码让二次开发变得困难。香港大学推出的 nanobot 将核心能力压缩至 3663 行,保留了 agent loop 和多渠道接入等关键功能,为个人和小团队提供了一个轻量、易修改的自托管 AI 助手框架。
智能速览
HKUDS将OpenClaw代码量缩减99%至3663行
保留Agent loop、工具调用及持久化记忆等核心能力
支持Telegram、WhatsApp、飞书等多渠道接入
配置集中于单一JSON文件,支持Docker一键部署
提供白名单机制及工作区限制等安全策略
精华内容
面对复杂的二次开发需求,极简代码库往往比庞然大物更具吸引力。
极简代码重构
nanobot 将 OpenClaw 庞大的 43 万行代码压缩至 3663 行,代码量减少了 99%。尽管体积大幅缩减,但核心功能完整保留,包括 agent loop、工具调用、多渠道接入、定时任务以及持久化记忆。
该项目由香港大学数据科学实验室发布,上线两周便获得了 19000+ stars。相比 OpenClaw 的生产级稳定性,nanobot 更侧重于提供一个可供快速定制和学术研究的轻量底座。
全渠道接入
该框架支持接入 Telegram、Discord、WhatsApp、飞书、钉钉、Slack 等主流通讯平台。其中,飞书、钉钉和 Slack 通过 WebSocket 长连接实现,无需公网 IP 即可运行。
架构上基于 Python 3.12 和内置的 Node.js 20,镜像体积紧凑,能够轻松处理多渠道的消息路由和响应。
配置与部署
部署过程采用 Docker 容器化,关键在于挂载 `-v ~/.nanobot:/root/.nanobot`,确保配置、工作区和记忆数据在容器重启后不丢失。
所有设置集中在 `~/.nanobot/config.json` 单一文件中,大大降低了管理成本。启动网关后,即可通过 BotFather 获取的 Token 快速接入 Telegram 等服务。
模型兼容性
模型调用支持 OpenRouter、本地 vLLM 及任何兼容 OpenAI 接口的自定义端点。对于不在内置列表的 LLM 服务,可以通过 custom provider 兜底,只要对方兼容 OpenAI chat completions 接口即可正常运行。
这种设计为用户在不同环境下的模型部署提供了极大的灵活性。
安全防护机制
系统通过 `allowFrom` 设置白名单机制,留空则允许任何人对话,生产环境建议配置受信用户 ID。
此外,开启 `restrictToWorkspace` 后,Agent 的 shell 执行和文件读写将被限制在 workspace 目录内,有效防止路径穿越等安全风险,保障生产环境的数据安全。
nanobot 用极简的代码降低了构建自托管 AI 助手的门槛,特别适合需要快速迭代和深度定制的开发者。对于追求高可读性和灵活性的个人或小团队而言,这无疑是一个值得深入研究的开源项目。