nanobot:3400 行代码实现 OpenClaw 99% 的核心功能
nanobot 是 OpenClaw 的轻量替代方案,核心代码仅 3,428 行(OpenClaw 43万+行),支持持久记忆、网页搜索、定时任务、多 LLM 及 Telegram/WhatsApp/飞书集成。两分钟完成部署,代码清晰易读,遵循 Unix 哲学"Do one thing well"。来自香港大学 HKUDS 实验室,5 天获 1 万+ GitHub 星。

香港大学 HKUDS 实验室出品,一个真正"够用就好"的轻量级 AI Agent 框架
TL;DR
- nanobot 是 OpenClaw 的轻量替代方案,核心代码仅 3,428 行(OpenClaw 43万+行)
- 支持:持久记忆、网页搜索、定时任务、多 LLM 提供商、Telegram/WhatsApp/飞书集成
- 两分钟完成部署,代码清晰可读,适合二次开发
- GitHub: github.com/HKUDS/nanobot
背景:OpenClaw 的"甜蜜负担"
OpenClaw(原 Clawdbot/Moltbot)无疑是 2026 年初最火的开源项目,5 天内从 0 冲到 17 万星。但随着用户增长,社区开始出现一些声音:
"部署了两小时还没跑起来"
"想改个功能,代码太多不知道从哪下手"
"我只需要一个能帮我发消息的助手,不需要浏览器自动化"
OpenClaw 的代码量超过 43 万行。作为参考,Linux 内核 1.0 是 17.6 万行。
这就引出一个问题:对于只需要核心功能的用户,有没有更轻量的选择?
nanobot:99% 瘦身的答案
香港大学数据智能实验室(HKUDS)给出了他们的答案:nanobot。
核心数据对比
| 指标 | OpenClaw | nanobot | 差异 |
|---|---|---|---|
| 核心代码量 | 430,000+ 行 | 3,428 行 | -99.2% |
| 部署时间 | 30-120 分钟 | < 2 分钟 | -95%+ |
| 依赖复杂度 | 高 | 低 | — |
| 代码可读性 | 较难 | 一目了然 | — |
功能对比
| 功能 | OpenClaw | nanobot |
|---|---|---|
| 持久记忆 | ✅ | ✅ |
| 网页搜索 | ✅ | ✅ |
| 后台 Agent | ✅ | ✅ |
| 定时任务 (Cron) | ✅ | ✅ |
| 多 LLM 支持 | ✅ | ✅ |
| 本地模型 (vLLM) | ✅ | ✅ |
| Telegram | ✅ | ✅ |
| ✅ | ✅ | |
| 飞书 | ✅ | ✅ |
| 浏览器自动化 | ✅ | ❌ |
| 50+ 平台集成 | ✅ | ❌ |
| 复杂插件生态 | ✅ | ❌ |
结论:nanobot 砍掉了"锦上添花"的功能,保留了 80% 用户真正需要的核心能力。
快速开始
安装
# 方式一:pip 安装(推荐)
pip install nanobot-agent
# 方式二:源码安装(开发者)
git clone https://github.com/HKUDS/nanobot.git
cd nanobot
pip install -e .
配置
nanobot onboard
按提示填入 API Key(支持 OpenRouter、Anthropic、OpenAI、Groq、Gemini、DeepSeek)。
配置文件位置:~/.nanobot/config.json
{
"agents": {
"defaults": {
"model": "anthropic/claude-sonnet-4-20250514",
"maxTokens": 8192,
"temperature": 0.7
}
},
"providers": {
"openrouter": {
"apiKey": "your-api-key"
}
}
}
运行
# 命令行模式
nanobot agent -m "你好,介绍一下你自己"
# 交互模式
nanobot agent
# 启动 Telegram Bot
nanobot telegram
实测:从 pip install 到第一次对话,不到 2 分钟。
架构解析
nanobot 的代码结构非常清晰:
nanobot/
├── agent/ # 🧠 核心逻辑(约 800 行)
│ ├── loop.py # Agent 主循环
│ ├── context.py # Prompt 构建
│ ├── memory.py # 持久记忆(Markdown + JSONL)
│ ├── skills.py # 技能加载器
│ ├── subagent.py # 后台任务执行
│ └── tools/ # 内置工具
├── skills/ # 🎯 可扩展技能
│ ├── github/
│ ├── weather/
│ └── tmux/
├── channels/ # 📱 消息通道
│ ├── telegram/
│ ├── whatsapp/
│ └── feishu/
├── providers/ # 🤖 LLM 提供商适配
│ ├── openrouter.py
│ ├── anthropic.py
│ ├── openai.py
│ └── vllm.py
├── cron/ # ⏰ 定时任务
├── bus/ # 🚌 消息路由
└── gateway/ # 🌐 网关服务
设计哲学
nanobot 遵循 Unix 哲学:
“Do one thing and do it well.”
具体体现在:
- 不做平台,做工具:不试图成为"万能 AI 操作系统"
- 代码即文档:3000+ 行代码,一个下午就能读完
- 最小依赖:避免不必要的复杂性
- 易于扩展:技能系统模块化,添加新功能很简单
进阶配置
使用本地模型 (vLLM)
{
"agents": {
"defaults": {
"model": "Qwen/Qwen2.5-72B-Instruct"
}
},
"providers": {
"vllm": {
"apiBase": "http://localhost:8000/v1"
}
}
}
配置 Telegram Bot
- 从 @BotFather 获取 Bot Token
- 更新配置:
{
"channels": {
"telegram": {
"enabled": true,
"token": "your-bot-token",
"allowFrom": [] // 空数组表示允许所有用户
}
}
}
- 启动:
nanobot telegram
定时任务
# 添加每日提醒
nanobot cron add --name "morning" --message "早安!今天有什么计划?" --cron "0 9 * * *"
# 添加每小时检查
nanobot cron add --name "hourly-check" --message "检查系统状态" --every 3600
# 查看任务列表
nanobot cron list
# 删除任务
nanobot cron remove <job_id>
自定义技能
创建 ~/.nanobot/skills/my-skill/SKILL.md:
---
name: my-skill
description: 我的自定义技能
---
# 技能说明
这个技能用于...
## 使用方法
当用户提到 XXX 时,执行 YYY 操作...
适用场景
✅ 适合
- 快速搭建私人 AI 助手
- 需要阅读/修改源码的开发者
- 使用本地模型保护隐私
- 只需要核心聊天/记忆/定时功能
- 讨厌复杂部署流程
❌ 不适合
- 需要浏览器自动化(网页操控、截图等)
- 需要 50+ 平台集成
- 需要成熟的插件生态
- 需要企业级部署方案
性能与资源占用
| 指标 | nanobot | OpenClaw |
|---|---|---|
| 启动时间 | < 1s | 5-15s |
| 内存占用(空闲) | ~50MB | ~200MB+ |
| Docker 镜像大小 | ~100MB | ~500MB+ |
| 冷启动到响应 | 2-3s | 10-30s |
注:以上数据为非官方测试,仅供参考
团队背景
nanobot 来自 HKUDS(香港大学数据智能实验室),实验室主任是黄超(Chao Huang)助理教授。
这个实验室的风格很统一:把复杂的东西做简单,然后开源。
代表作品:
| 项目 | Stars | 说明 |
|---|---|---|
| LightRAG | 27.9K | 轻量级 RAG,EMNLP 2025 |
| DeepCode | 14.1K | 开放式 Agentic Coding |
| DeepTutor | 10K | AI 个性化学习助手 |
| AutoAgent | 5.6K | 自动化 Agent 框架 |
| nanobot | 10.9K | 轻量级 AI 助手 |
累计 GitHub Stars:77,000+,59 次登上 GitHub Trending。
常见问题
Q: nanobot 和 OpenClaw 有什么关系?
A: nanobot 是受 OpenClaw 启发的独立项目,目标是提供一个更轻量的替代方案。两者没有代码共享。
Q: 为什么不直接用 OpenClaw?
A: 如果你需要完整功能(浏览器自动化、多平台集成等),OpenClaw 是更好的选择。如果你只需要核心功能且重视代码可读性,nanobot 更适合。
Q: 支持哪些 LLM?
A: 通过 OpenRouter 支持几乎所有主流模型。直接支持 Anthropic、OpenAI、Groq、Gemini、DeepSeek。本地模型通过 vLLM 支持。
Q: 数据存储在哪里?
A: 默认存储在 ~/.nanobot/,包括配置、记忆、技能等。记忆使用 Markdown + JSONL 格式,人类可读。
Q: 如何贡献代码?
A: 欢迎 PR!项目代码量小,上手成本低。详见 CONTRIBUTING.md。
总结
nanobot 不是要取代 OpenClaw,而是给那些**“只想要核心功能”**的用户一个选择。
正如黄超在 Twitter 上说的:
“We hope everyone sees nanobot as a simpler, more lightweight alternative to OpenClaw.”
如果你:
- 厌倦了复杂的部署流程
- 想要一个能读懂、能改的 AI 助手
- 只需要聊天、记忆、定时提醒这些核心功能
那么 nanobot 值得一试。
毕竟,有时候少即是多。
相关链接
- GitHub: github.com/HKUDS/nanobot
- HKUDS 实验室: github.com/HKUDS
- 黄超教授主页: datascience.hku.hk/people/chao-huang
本文首发于「夜猫子弦月」公众号,欢迎关注获取更多 AI 工具推荐。
如有错误或建议,欢迎评论区指正。
更多推荐




所有评论(0)