文档 · 指南

让 nanobot 用任意模型

nanobot(HKUDS/nanobot,pip install nanobot-ai)是一个个人 AI 助手,在聊天应用、命令行和 WebUI 里回答你。它的模型来自 ~/.nanobot/config.json,providers 下任何不是它内置的键都是一个 OpenAI 兼容端点。magpie 在这里加一个 magpie 供应商并把默认模型设成 magpie 的模型,于是 nanobot 能用你在 magpie 里的任何模型:DeepSeek、GLM、Kimi、Qwen、OpenAI 或 Anthropic Key,或 ChatGPT、Copilot 订阅。

接入 nanobot

  1. 先运行一次 nanobotnanobot onboard 或第一次运行会建好 ~/.nanobot。
  2. 在 magpie 里添加供应商在 供应商 页添加 API Key,或登录一个订阅。
  3. 在 nanobot 那一行选模型在 Agent 页给 nanobot 选一个 magpie 模型。nanobot 装在 WSL 里时,magpie 也会接好那里的 nanobot。
终端
pip install nanobot-ai && nanobot onboard   # nanobot makes ~/.nanobot
magpie nanobot deepseek/deepseek-v4-pro

config.json 里写了什么

magpie 加 providers.magpie,指向网关的 /v1,带上网关的 Key 和 User-Agent nanobot(不然发的是 OpenAI SDK 的 User-Agent,分不出是谁),并把 agents.defaults 设为 provider magpie、model magpie/<模型 id>,以及 magpie 知道的这个模型的上下文窗口。nanobot 把 magpie/ 前缀去掉再发给端点。

终端
// ~/.nanobot/config.json
{
  "providers": {
    …,
    "magpie": {"apiBase": "http://127.0.0.1:3425/v1", "apiKey": "…",
               "extraHeaders": {"User-Agent": "nanobot"}}
  },
  "agents": {"defaults": {
    "provider": "magpie",
    "model": "magpie/deepseek/deepseek-v4-pro",
    "contextWindowTokens": …
  }}
}

nanobot 的 pydantic 模型同时认 camelCase 和 snake_case 键,magpie 用 nanobot 自己写的 camelCase,同时也会拿掉 snake_case 写法的同名键,不会留下两份互相冲突的设置。

modelPreset

agents.defaults.modelPreset 指向 modelPresets 里的一项时,它会覆盖 provider 和 model。所以 magpie 接管时会把它记下并拿掉,切回时放回去;你的 modelPresets 本身不动。

什么时候生效

nanobot 的 gateway(nanobot gateway,WebUI 用的就是它)监视这个文件,在下一次回复时用上新设置。nanobot agent 只在启动时读一次,所以已经打开的 nanobot agent 对话要重开。nanobot 运行时 magpie 也会提示这一点。

你自己的设置

你在 agents.defaults 原来的 provider、model、上下文窗口和 modelPreset 都会被记下,切回时放回去。你的其他供应商、预设和 Key 都不动。如果 config.json 是 magpie 新建的,magpie 退出后文件里什么都不剩时,也会把它删掉。在 nanobot 里删了 magpie 供应商的话,magpie 的检查会提示它已经不再走 magpie。

切回

在 magpie 里把那一行切回默认,magpie 拿掉 providers.magpie,并还原 agents.defaults。也可以直接选一个你自己的模型,magpie 先还原再把它设为 model。

终端
magpie nanobot default

常见问题

nanobot 能用 DeepSeek、GLM、Kimi 或 Qwen 吗?

能。magpie 在 ~/.nanobot/config.json 里加一个 OpenAI 兼容的 magpie 供应商,把默认模型设成你在 magpie 里选的模型。

为什么换了模型 nanobot 还在用旧的?

nanobot gateway 和 WebUI 在下一次回复时生效;nanobot agent 只在启动时读配置,重开对话即可。

我的 modelPreset 会丢吗?

不会。magpie 接管时先记下 agents.defaults.modelPreset 再拿掉(否则它会盖过 magpie 的模型),切回时放回去;modelPresets 不动。

WSL 里的 nanobot 也能用吗?

能。magpie 也会接好 WSL 发行版里的 nanobot。

更多 Agent 用同样的模型:让 OpenClaw 用任意模型、让 Hermes Agent 用任意模型、让 OpenChamber 用任意模型、让 AstrBot 用任意模型。遇到报错?见 常见错误排查,或到 Discord 提问。