跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonWeChatAI

基于 nanobot 搭建轻量级 QQ AI 机器人及搜索功能优化

介绍轻量级 AI Agent 框架 nanobot,相比 OpenClaw 代码量减少约 99%。教程涵盖从零搭建 QQ AI 机器人的完整流程,包括 Python 环境配置、LLM 后端(如 Gemini)设置及 QQ 频道接入。针对默认搜索服务需 API Key 的问题,提出了基于策略模式的多搜索引擎扩展方案,支持 Tavily、Brave 及无需 Key 的 DuckDuckGo,并提供了核心代码实现细节。

筑梦师发布于 2026/4/5更新于 2026/7/2465 浏览

前言

最近 AI Agent 领域有个项目特别火——OpenClaw,它是一个功能强大的 AI 助手框架,能让你拥有一个 7×24 小时在线的智能助理。

但当我 clone 下来准备研究时,发现它有43 万行代码!对于想快速上手或做二次开发的个人开发者来说,这个体量实在太重了。

直到我发现了它的轻量版——nanobot。

nanobot:99% 的瘦身,核心功能全保留

nanobot 来自香港大学数据科学实验室(HKUDS),它的设计理念很简单:用最少的代码,实现 AI Agent 的核心能力。

来看一组对比数据:

项目代码行数核心功能
OpenClaw430,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 机器人
  1. 前往 QQ 开放平台注册开发者账号
  2. 创建一个机器人应用,获取 AppID 和 Secret
  3. 在配置文件中启用 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!

目录

  1. 前言
  2. nanobot:99% 的瘦身,核心功能全保留
  3. 实战:5 分钟搭建 QQ AI 助手
  4. 第一步:环境准备
  5. CentOS/RHEL
  6. Ubuntu/Debian
  7. 第二步:安装 nanobot
  8. 第三步:初始化配置
  9. 第四步:配置 LLM 后端
  10. 第五步:配置 QQ 机器人
  11. 第六步:启动!
  12. 常见问题:搜索功能的 API Key 困扰
  13. 开源贡献:多搜索引擎支持
  14. 架构设计
  15. 核心代码
  16. 使用方式
  17. 效果展示
  18. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Stack-Chan 机器人入门指南:基于 M5Stack 的 JavaScript 驱动
  • 3大核心功能打造智能语音转文字神器:Whisper-WebUI实战手册
  • Kimi K2.5 开源:智能体集群加速复杂任务,效率最高提升 4.5 倍
  • AI 大模型实战:基于 SkyText 的文本生成与聊天机器人开发
  • AMD 显卡部署 llama.cpp 兼容性解决方案与部署指南
  • STL 源码剖析:list 容器从迭代器到算法实现
  • uv 虚拟环境管理:创建、激活与 Python 版本指定
  • 科大讯飞、小米、百度等大厂算法工程师面试题汇总
  • 拖延症:理解成因并建立可执行的行动策略
  • 基于SSM和Vue的Web在线投稿系统设计与实现
  • Python 新手必备的 5 个编程练习网站指南
  • FPGA DDR3 实战:基于 MIG IP 核的仿真环境搭建与时序分析
  • 数据结构:线性表的链式表示与实现
  • Visual C++ Redistributable 运行环境配置与修复指南
  • RabbitMQ 事务机制与消息限流配置实战
  • CVPR 2024 论文阅读:Fusion-Mamba 跨模态目标检测
  • IDEA 下载 JDK 慢的真相:权限、DNS 与 CDN 解析
  • SpringAI Agent 开发实战:利用 Skills 增强 Java 应用智能能力
  • Discord 机器人创建与配置指南
  • Java 程序运行机制:编译、类加载、JIT 与执行流程

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online