nanobot:轻量级 AI Agent 框架搭建与搜索引擎优化
前言
AI Agent 领域近期出现了一个名为 OpenClaw 的项目,它是一个功能强大的 AI 助手框架。但 clone 下来后发现代码量高达 43 万行,对于想快速上手或做二次开发的个人开发者来说过于沉重。
相比之下,来自香港大学数据科学实验室(HKUDS)的 nanobot 是一个轻量版方案,设计理念是用最少的代码实现 AI Agent 的核心能力。
核心对比
| 项目 | 代码行数 | 核心功能 |
|---|---|---|
| OpenClaw | 430,000+ | 全功能 |
| nanobot | ~4,000 | 核心功能 |
瘦身比例约 99%,但保留了实用功能:
- 多轮对话与上下文记忆
- 网页搜索与信息获取
- 代码编写与执行
- 定时任务调度
- 多平台接入(QQ、微信、Telegram、Discord 等)
实战:5 分钟搭建 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」启动成功! 即表示就绪。
常见问题:搜索功能的 API Key 困扰
默认情况下,nanobot 使用 Brave Search API 作为搜索后端,这需要注册并获取 API Key,流程较为繁琐。
为了解决这一问题,可以通过重构搜索模块支持其他搜索引擎,如完全免费的 DuckDuckGo。
扩展功能实现
采用 策略模式,让搜索后端可插拔:
- 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",
"apiKey": "你的 API Key"
}
}
}
}
三种引擎对比:
| 引擎 | 需要 API Key | 搜索质量 | 推荐场景 |
|---|---|---|---|
| Tavily | ✅ (免费 1000 次/月) | ⭐⭐⭐⭐⭐ | AI 应用首选 |
| Brave | ✅ | ⭐⭐⭐⭐ | 隐私优先 |
| DuckDuckGo | ❌ | ⭐⭐⭐ | 零成本体验 |
该特性已提交 PR 至官方仓库:https://github.com/HKUDS/nanobot/pull/507
总结
nanobot 是一个非常适合个人开发者的 AI Agent 框架:
优点:
- 代码量小,易于理解和修改
- 安装部署简单,5 分钟上手
- 支持多平台(QQ、微信、Telegram 等)
- 社区活跃,更新频繁
适合场景:
- 个人 AI 助手
- 学习 AI Agent 原理
- 快速原型验证
- 二次开发定制
不适合场景:
- 企业级生产环境
- 需要复杂工作流的场景

