本文介绍开源 AI 助手框架 nanobot 的安装、配置与使用体验。文章涵盖 uv 正式版与源码安装、初始化与配置模型和聊天平台、终端与网关两种运行方式,并梳理文件操作、Shell、搜索、定时任务、记忆系统与自定义技能等核心能力。同时说明通过 MCP 集成 Open-WebSearch 的配置技巧,并总结其轻量、高效、易扩展,适合开发辅助、自动化任务和私有智能体搭建。
AI摘要

什么是 nanobot

nanobot 是一个开源的 AI 助手框架,支持多工具调用和记忆系统。它可以通过 Telegram、Discord 等聊天工具与用户交互,并能够执行文件操作、Shell 命令、网络搜索、定时任务等多种功能。

安装方式

正式版安装(推荐)

现在 release 版本已支持 MCP 功能,推荐直接使用 uv 安装:

uv tool install nanobot-ai

安装完成后,将 /root/.local/bin 添加到 PATH:

export PATH="/root/.local/bin:$PATH"

源码安装

如果需要最新功能或开发贡献,可以选择源码安装:

git clone https://github.com/HKUDS/nanobot.git
cd nanobot
uv venv
source .venv/bin/activate
uv pip install -e .

配置与运行

初始化:

在终端执行以下命令完成基础设置:

nanobot onboard

修改配置文件:

编辑默认生成的 ~/.nanobot/config.json 文件。在此处配置大模型提供商(如 OpenAI、Anthropic、OpenRouter 等)的 API Key 和默认模型。如果需要接入聊天工具,也在此填入对应平台(如 Telegram、Discord)的 Bot Token。

启动交互:

  • 终端模式:使用 nanobot agent 开启连续对话,或使用 nanobot agent -m "你的指令" 快速执行单次任务。
  • 网关模式:使用 nanobot gateway 启动网关服务后,即可通过配置的聊天工具实现跨设备的全天候交互。

核心功能

工具调用

nanobot 内置多种工具:

工具 功能
read_file / write_file / edit_file 文件操作
exec 执行 Shell 命令
web_search / web_fetch 网络搜索和网页抓取(需要配置API Key)
message 发送消息到聊天渠道
spawn 生成子代理处理后台任务
cron 管理定时任务

技能系统 (Skills)

nanobot 支持自定义技能扩展能力。默认包含以下技能:

  • memory — 双层记忆系统(MEMORY.md + HISTORY.md)
  • weather — 天气查询
  • tmux — 远程操控 tmux
  • github — 使用 gh CLI 与 GitHub 交互
  • cron — 定时任务调度

此外,还可以添加自定义技能,可以参考:如何创建自定义技能 | Anthropic Help Center

MCP 工具集成

通过 MCP 协议,可以集成外部服务。因为 nanobot 默认只支持 brave 搜索,并且需要 API Key,所以我配置了 Open-WebSearch。

Open-WebSearch 配置

官方的MCP示例是这样的:

{
  "mcpServers": {
    "web-search": {
      "command": "npx",
      "args": [
        "open-websearch@latest"
      ],
      "env": {
        "MODE": "stdio",
        "DEFAULT_SEARCH_ENGINE": "duckduckgo",
        "ALLOWED_SEARCH_ENGINES": "duckduckgo,bing,exa"
      }
    }
  }
}

但是 nanobot 的 MCP 配置不支持直接设置环境变量 env,就需要使用 env 命令运行:

{
  "mcpServers": {
    "web-search": {
      "command": "env",
      "args": [
        "MODE=stdio",
        "DEFAULT_SEARCH_ENGINE=duckduckgo",
        "npx",
        "-y",
        "open-websearch@latest"
      ]
    }
  }
}

关键点:

  • 使用 env 命令设置环境变量
  • 每个环境变量作为独立的 args 元素
  • MODE=stdio 用于 MCP 模式(不使用 HTTP)

使用场景

  • 本地开发与代码辅助:通过文件操作和 Shell 工具,在本地终端帮你分析 Kotlin 安卓项目的报错日志,或快速编写、测试 Python 与 HTML 等语言的代码脚本。
  • 全天候个人助理:通过 Telegram 或 Discord 接入,配合双层记忆系统,随时随地帮你记录灵感、管理待办事项或抓取所需资料。
  • 定时自动化工作流:利用 cron 技能配置周期任务,如每天定时运行自动化脚本收集数据,并将结果自动推送到你的聊天应用中。
  • Agent 研究与二次定制:得益于其极其精简的核心代码量(约 4000 行),它非常适合开发者快速阅读源码,并在此基础上轻松定制私有技能或二次开发。

模型配置

我现在用的阿里云最近发布的 Qwen3.5-Flash 模型,性能还不错,价格也比较便宜。

总结

nanobot 是一款极致轻量且功能完备的 AI 助手框架。它以极低的代码量和资源占用,实现了工具调用、记忆持久化以及多平台接入等关键 Agent 能力。无论你是需要一个能辅助日常开发的得力工具,还是希望低门槛构建自定义 AI 智能体,它都是一个极其高效的选择。