终端 AI Agent 接国内模型清单:omp、OpenClaw、Claude Code、Codex CLI 同一把 Key
omp 18.12.6、OpenClaw 2026.10.7、Claude Code、Codex CLI 接不墨 Router 的 base URL、模型前缀和配置文件对照,附 omp 实测与三个常见坑。

omp、OpenClaw、Claude Code、Codex CLI 这四类终端 Agent 都能接国内模型,而且可以共用同一把 Router Key。 差别只在配置位置和两处细节:OpenAI 协议的 base URL 带 /v1,Anthropic 协议不带;模型 ID 前面要不要加供应商前缀,由客户端自己决定。
核验日期:2026-10-26。omp 18.12.6 和 OpenClaw 2026.10.7 是本次新增实测;Claude Code 和 Codex CLI 的完整配置已在旧文里写过,这里只做对照和链接,不重复同题内容。
一张表看四家的区别
| 客户端 | base URL | 模型写法 | 配置位置 | 实测状态 |
|---|---|---|---|---|
| omp(oh-my-pi) | https://router.bumo.cc/v1 |
bumo/deepseek/deepseek-flash |
$PI_CODING_AGENT_DIR/models.yml |
✅ 对话 / 工具 / 流式 |
| OpenClaw | https://router.bumo.cc/v1 |
bumo/deepseek/deepseek-flash |
$OPENCLAW_CONFIG_PATH 的 openclaw.json |
✅ 对话 / 工具 / 流式 |
| Claude Code | https://router.bumo.cc(不带 /v1) |
deepseek/deepseek-flash |
环境变量 | 旧文已给完整配置 |
| Codex CLI | https://router.bumo.cc/v1 |
deepseek/deepseek-flash |
~/.codex/*.config.toml |
旧文已给完整配置 |
四家都只走 Router 现有的 /v1/chat/completions 或 /v1/messages,没有出现「缺端点导致不能用」的情况。同一把 Key 在四家通用,但配置不会自动同步,每换一个客户端仍要填一次。
omp:models.yml 自定义 Provider
omp 是 oh-my-pi 的命令行名,官方发布原生二进制,不需要 Node 或 Python。本次实测版本 omp/18.12.6,commit 45c35e4。
先安装并确认版本(从 GitHub Releases 下载 omp-linux-x64,改名后直接运行):
chmod +x ./omp
./omp --version
# omp/18.12.6
配置写在 $PI_CODING_AGENT_DIR/models.yml,默认是 ~/.omp/agent/models.yml。为了不动本机已有配置,测试时用独立目录:
providers:
bumo:
baseUrl: https://router.bumo.cc/v1
apiKey: sk-... # 换成你的 Router Key,建议 chmod 600 models.yml
api: openai-completions
models:
- id: deepseek/deepseek-flash
name: DeepSeek Flash
contextWindow: 1000000
maxTokens: 8192
supportsTools: true
验证:
export PI_CODING_AGENT_DIR=~/.omp/agent
omp -p "Reply with exactly: READY" \
--model bumo/deepseek/deepseek-flash --no-session
输出 READY 就通了。工具调用再加一次文件读取:
echo TOOLTOKEN-Oc9xQ2 > /tmp/omp-probe.txt
omp -p "Use the read tool to read /tmp/omp-probe.txt and reply with its content" \
--model bumo/deepseek/deepseek-flash --no-session --auto-approve
本次实测返回 TOOLTOKEN-Oc9xQ2。非交互模式要加 --auto-approve,否则工具会停在审批提示,看起来像「没有工具能力」。流式同样走 /v1/chat/completions,请求体 stream:true,返回 SSE。
omp 的两个坑:模型 ID 必须带 bumo/ 前缀,只写 deepseek/deepseek-flash 会被解析成内置 deepseek 供应商,报 No API key found for deepseek;内置 OpenRouter 供应商不能靠 OPENROUTER_BASE_URL 改地址,设了也不会生效,正确做法就是上面的 models.yml 自定义 provider。
OpenClaw:一段 openclaw.json
OpenClaw 2026.10.7 用 models.providers 加供应商,配置结构和 omp 不同,但语义一样:baseUrl 到 /v1、api 选 openai-completions、模型写完整 ID。
{
"agents": {
"defaults": { "model": { "primary": "bumo/deepseek/deepseek-flash" } }
},
"models": {
"mode": "merge",
"providers": {
"bumo": {
"baseUrl": "https://router.bumo.cc/v1",
"apiKey": "${BUMO_ROUTER_KEY}",
"api": "openai-completions",
"models": [
{ "id": "deepseek/deepseek-flash", "name": "DeepSeek Flash" }
]
}
}
}
}
apiKey 用 ${BUMO_ROUTER_KEY} 从环境变量读,实测替换正常。注意 Node 要求 >=24.22.1 <25 || >=26.12.1,24.15 会报 EBADENGINE。完整的安装、验证和 8 个问答见 OpenClaw 国内怎么用。
Claude Code 和 Codex CLI:旧文已经写全
这两家的配置本身不新,不再重复:
- Claude Code:设
ANTHROPIC_AUTH_TOKEN和ANTHROPIC_BASE_URL。Base URL 填https://router.bumo.cc,不要带/v1,Claude Code 自己会拼/v1/messages。完整步骤见 Claude Code 用国产模型:环境变量与模型 ID 对照。 - Codex CLI:新版只走 Responses API,在
~/.codex/bumo.config.toml里写base_url = "https://router.bumo.cc/v1"、wire_api = "responses"。和 Claude Code 相反,这里要带/v1。同一个链接里有完整 profile。
一家带 /v1、一家不带,是这份清单里最容易填错的地方。记住:Anthropic 协议填根地址,OpenAI 协议带 /v1。
三个跨客户端常见坑
1. 模型 ID 抄错。 Router 的公开 ID 带厂商前缀,例如 deepseek/deepseek-flash、kimi/kimi-k2.6、glm/glm-5.3-flash。写成 deepseek-flash 或 DeepSeek-Flash 都会 404。核验日公开列表共 28 个模型,带 tools 的才适合跑 Agent。
2. base URL 多写或少写 /v1。 Claude Code 多写会变成 /v1/v1/messages;Codex CLI、omp、OpenClaw 少写则拼不出正确路径。表里那列直接抄。
3. 工具调用要允许自动执行。 omp 加 --auto-approve,其他客户端也有各自的确认或放行开关。非交互跑 Agent 时工具停在审批,不是模型不支持工具。
怎么选
- 想要原生二进制、启动快:omp,但配置要自己写
models.yml。 - 已经在用 OpenClaw:加一段 provider,Node 版本达标即可。
- 已有 Claude Code 工作流:改环境变量最省事,注意 base URL 不带
/v1。 - 用 Codex CLI:单独建 profile,
wire_api选responses。
四家共用一把 Key 的好处是账单只有一份,换客户端不用重新开户。实际费用按各自模型的输入 / 输出单价和用量计算,Agent 会反复调用模型,长任务先看 Router 的用量记录。
前往不墨 Router 获取 Key。先选一个客户端跑通 READY,再验证工具和流式,比一次配四家更容易定位问题。



