nanobot 轻量级 AI Agent 框架搭建 QQ 机器人
前言
最近 AI Agent 领域有个项目特别火——OpenClaw,它是一个功能强大的 AI 助手框架,能让你拥有一个 7×24 小时在线的智能助理。
但当我 clone 下来准备研究时,发现它有 43 万行代码!对于想快速上手或做二次开发的个人开发者来说,这个体量实在太重了。
直到我发现了它的"轻量版"——nanobot。
nanobot:99% 的瘦身,核心功能全保留
nanobot 来自香港大学数据科学实验室(HKUDS),它的设计理念很简单:
用最少的代码,实现 AI Agent 的核心能力
来看一组对比数据:
| 项目 | 代码行数 | 核心功能 |
|---|---|---|
| OpenClaw | 430,000+ | 全功能 |
| nanobot | ~4,000 | 核心功能 |
瘦身比例:99%
但别被这个数字吓到,nanobot 保留了最实用的功能:
- 多轮对话与上下文记忆
- 网页搜索与信息获取
- 代码编写与执行
- 定时任务调度
- 多平台接入(QQ、微信、Telegram、Discord 等)
对于 90% 的个人使用场景,这些功能完全够用。
实战:5 分钟搭建 QQ AI 助手
下面带你从零开始,搭建一个属于自己的 QQ AI 机器人。
第一步:环境准备
nanobot 需要 Python 3.11+,如果你的系统版本较低,需要先升级:
# CentOS/RHEL
dnf install python3.11 python3.11-pip
# Ubuntu/Debian
apt install python3.11 python3.11-pip
第二步:安装 nanobot
git clone https://github.com/HKUDS/nanobot.git
cd nanobot
pip3.11 install -e .
第三步:初始化配置
python3.11 -m nanobot onboard
这会在 ~/.nanobot/ 目录下生成配置文件。
第四步:配置 LLM 后端
编辑 ~/.nanobot/config.json,推荐使用 Gemini(免费额度够用):
{
"agents": {
"defaults": {
"model": "gemini/gemini-2.5-flash"
}
},
"providers": {
"gemini": {
"apiKey": "你的 Gemini API Key"
}
}
}
💡 获取 Gemini API Key:https://aistudio.google.com/apikey
第五步:配置 QQ 机器人
- 前往 QQ 开放平台注册开发者账号
- 创建一个机器人应用,获取
AppID和Secret - 在配置文件中启用 QQ 频道:
{
"channels": {
"qq": {
"enabled": true,
"appId": "你的 AppID",
"secret": "你的 Secret"
}
}
}
第六步:启动
python3.11 -m nanobot gateway
看到 机器人「xxx」启动成功! 就表示一切就绪,去 QQ 上找你的机器人聊天吧!
注意事项:搜索功能的 API Key 困扰
当我兴冲冲地让机器人帮我搜索新闻时,它回复:
"无法获取网页搜索结果,因为缺少 BRAVE_API_KEY"
什么?搜索还要单独的 API Key?
研究了一下发现,nanobot 默认使用 Brave Search API 作为搜索后端,这需要注册并获取 API Key。虽然有免费额度,但注册流程有点繁琐。
我就想:能不能支持其他搜索引擎?比如完全免费的 DuckDuckGo?
扩展功能实现:多搜索引擎支持
说干就干!我 fork 了 nanobot 仓库,花了一个下午重构了搜索模块,实现了三种搜索引擎的支持:
架构设计
采用策略模式,让搜索后端可插拔:
SearchBackend (抽象基类)
├── TavilyBackend (AI 优化搜索,推荐)
├── BraveBackend (原版默认)
└── DuckDuckGoBackend (免费,无需 API Key)
核心代码
class SearchBackend(ABC):
@abstractmethod
async def search(self, query: str, max_results: int) -> list[dict]:
pass
class DuckDuckGoBackend(SearchBackend):
"""免费搜索,无需 API Key"""
async def search(self, query: str, max_results: int) -> list[dict]:
# 解析 DuckDuckGo HTML 页面获取结果
url = f"https://html.duckduckgo.com/html/?q={quote(query)}"
# ... 实现细节
使用方式
现在只需在配置文件中指定引擎即可:
{
"tools": {
"web": {
"search": {
"engine": "tavily", // 或 "brave" 或 "duckduckgo"
"apiKey": "你的 API Key"
}
}
}
}
三种引擎对比:
| 引擎 | 需要 API Key | 搜索质量 | 推荐场景 |
|---|---|---|---|
| Tavily | ✅ (免费 1000 次/月) | ⭐⭐⭐⭐⭐ | AI 应用首选 |
| Brave | ✅ | ⭐⭐⭐⭐ | 隐私优先 |
| DuckDuckGo | ❌ | ⭐⭐⭐ | 零成本体验 |
我已经将这个特性提交了 PR,希望能帮助到更多开发者:
运行效果
配置好 Tavily 后,搜索功能完美运行!来看看实际对话效果:

nanobot QQ 机器人对话截图
从截图可以看到:搜索结果的质量相当不错,信息及时且全面,这就是 Tavily 作为 AI 优化搜索引擎的优势。
总结
nanobot 是一个非常适合个人开发者的 AI Agent 框架:
优点:
- 代码量小,易于理解和修改
- 安装部署简单,5 分钟上手
- 支持多平台(QQ、微信、Telegram 等)
- 社区活跃,更新频繁
适合场景:
- 个人 AI 助手
- 学习 AI Agent 原理
- 快速原型验证
- 二次开发定制
不适合场景:
- 企业级生产环境
- 需要复杂工作流的场景
如果你也想拥有一个 24 小时在线的 AI 助手,不妨试试 nanobot!
参考资料
- nanobot 官方仓库:https://github.com/HKUDS/nanobot
- OpenClaw 官方仓库:https://github.com/openclaw/openclaw
- Gemini API:https://aistudio.google.com/apikey
- Tavily API:https://tavily.com/
- QQ 开放平台:https://q.qq.com/

