背景与选型
最近折腾 AI Agent 框架时,我先碰到的是 OpenClaw。功能很完整,确实像个能 7×24 小时待命的智能助理,但仓库一展开,43 万行代码 这个体量就把我劝退了。想做点二次开发,或者只是想快速摸清楚它怎么跑,成本有点高。
后来我转去看 nanobot。它的路线很明确:不追求把所有能力都塞进去,只保留核心功能,把框架压到足够轻,方便个人开发者直接改。
nanobot 的取舍
nanobot 来自香港大学数据科学实验室(HKUDS)。它的目标不是做'全家桶',而是把 AI Agent 最常用的能力保留下来。
| 项目 | 代码行数 | 核心功能 |
|---|---|---|
| OpenClaw | 430,000+ | 全功能 |
| nanobot | ~4,000 | 核心功能 |
代码量差得很明显。对我来说,这种差异不只是'轻量'两个字,更意味着后续排查、改配置、加工具的时候,不会被大仓库淹没。
nanobot 保留的能力也足够实用:
- 多轮对话和上下文记忆
- 网页搜索与信息获取
- 代码编写与执行
- 定时任务调度
- 多平台接入(QQ、微信、Telegram、Discord 等)
如果只是个人助手、原型验证、或者想做一点定制化改造,这些已经够用了。
搭一个 QQ AI 机器人
我这次的目标很简单:先把 QQ 机器人跑起来,再看能不能顺手把搜索能力补齐。
环境准备
nanobot 需要 Python 3.11+。系统版本偏低的话,先把 Python 升上来:
# CentOS/RHEL
dnf install python3.11 python3.11-pip
# Ubuntu/Debian
apt install python3.11 python3.11-pip
安装部署
git clone https://github.com/HKUDS/nanobot.git
cd nanobot
pip3.11 install -e .
初始化配置
python3.11 -m nanobot onboard
执行后会在 ~/.nanobot/ 目录下生成配置文件。
配置 LLM 后端
我这里选的是 Gemini,主要是免费额度还算够用,做测试比较省心。编辑 ~/.nanobot/config.json:
{
"agents": {
"defaults": {
"model": "gemini/gemini-2.5-flash"

