nanobot

在 config.json 中配置自定义 Provider 与模型预设,将 nanobot 接入 CoffeeRouter。

接入前准备

  • 安装 Python 3.11 或更高版本。
  • 在 CoffeeRouter 控制台创建可用令牌,并记录令牌允许使用的模型 ID。
  • CoffeeRouter OpenAI 兼容基础地址为 https://www.coffeerouter.ai/v1

配置步骤

1. 安装并初始化 nanobot

macOS 或 Linux 使用官方安装脚本:

curl -fsSL https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.sh | sh

Windows PowerShell 使用:

irm https://raw.githubusercontent.com/HKUDS/nanobot/main/scripts/install.ps1 | iex

也可以使用 uvpip 安装:

uv tool install nanobot-ai
python -m pip install nanobot-ai

完成后运行引导向导:

nanobot onboard --wizard

2. 设置 CoffeeRouter 令牌

推荐通过环境变量提供令牌。macOS、Linux 或 WSL 使用:

export COFFEEROUTER_API_KEY="sk-your-api-key"

Windows PowerShell 使用:

$env:COFFEEROUTER_API_KEY = "sk-your-api-key"

如果 nanobot 作为后台服务运行,还需要在服务进程的环境中持久设置该变量,不能只在当前终端中设置。

3. 添加 CoffeeRouter 服务商和模型预设

打开 ~/.nanobot/config.json;Windows 中等价路径为 %USERPROFILE%\.nanobot\config.json。将以下字段合并到向导生成的配置中,不要删除已有的渠道或工具设置:

{
    "providers": {
        "coffeerouter": {
            "apiKey": "${COFFEEROUTER_API_KEY}",
            "apiBase": "https://www.coffeerouter.ai/v1"
        }
    },
    "modelPresets": {
        "coffeerouter-main": {
            "label": "CoffeeRouter",
            "provider": "coffeerouter",
            "model": "your-model-id"
        }
    },
    "agents": {
        "defaults": {
            "modelPreset": "coffeerouter-main"
        }
    }
}

your-model-id 替换为 CoffeeRouter 令牌可用模型列表中的完整模型 ID。${COFFEEROUTER_API_KEY} 会在 nanobot 启动时从环境变量读取,密钥不会因读取配置而被写回文件。

验证接入

先检查配置状态:

nanobot status

再发送一条测试消息:

nanobot agent -m "Reply with: CoffeeRouter connected"

需要继续交互时运行:

nanobot agent

常见问题

为什么终端找不到 nanobot 命令?

重新打开终端,并执行安装器最后输出的 PATH 设置命令。使用 uv 时,也可先运行 uv tool run --from nanobot-ai nanobot --version 验证安装,不要假设所有系统都使用相同的 .local/bin 路径。

为什么返回 401 或 API Key 无效?

确认当前进程能读取 COFFEEROUTER_API_KEY,并检查令牌是否完整、已启用、未过期且有可用额度。后台服务需要单独配置环境变量。

为什么提示找不到模型?

modelPresets 中的 model 必须与 CoffeeRouter 令牌管理页显示的模型 ID 完全一致,并且当前令牌必须拥有该模型权限。

是否可以直接在配置文件中填写密钥?

apiKey 支持直接填写,但更推荐使用 ${COFFEEROUTER_API_KEY} ,避免密钥进入备份、版本库或配置截图。

安全提示

不要分享 config.json、令牌、终端截图或包含请求头的日志。建议为 nanobot 创建独立令牌,并限制可用模型、额度和 IP;不再使用时及时撤销令牌。

官方资料