比 OpenClaw 轻 99%!我用 nanobot 搭了个 QQ AI 机器人,还顺手贡献了代码
❝
4000 行代码,打造你的私人 AI 助手❞
前言
最近 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,希望能帮助到更多开发者:
❝
PR 地址:https://github.com/HKUDS/nanobot/pull/507❞
效果展示
配置好 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/
❝
🔥 如果这篇文章对你有帮助,欢迎点赞、在看、转发三连!
有问题欢迎在评论区留言,我会一一解答~❞