一个 Key 喂饱所有 Agent:OpenCode Zen 免费模型中枢实战

一个 Key 喂饱所有 Agent:OpenCode Zen 免费模型中枢实战

一个 Key 喂饱所有 Agent:OpenCode Zen 免费模型中枢实战

如果你同时开着 Claude Code、Codex、opencode、Cline、Roo Code,甚至家里好几台机器都跑着不同的 Agent——每个工具都要单独配一个 API Key、单独挑模型、单独担心额度用完。

这篇文章讲一个实打实的玩法:一张 OpenCode Zen 的免费卡,管你所有 Agent 工具,管你 N 台主机。

先讲清楚 Zen 的两套端点

这是新手最容易踩的坑。Zen 有两套完全独立的模型池,模型 ID 都不一样:

端点 模型池 直连条件
opencode.ai/zen/v1 86 个,13 个带 -free 12 个 free 模型被 FreeTierError 挡住
opencode.ai/zen/go/v1 36 个,ID 完全不同 ✅ 加一个请求头就能直连

第二套端点(Go)才是好用的那套。 它里面有 minimax 全家桶、deepseek-v4.1、glm、kimi、qwen、mimo——而且不需要装 OpenCode 客户端。

Go 端点的关键:x-opencode-session

裸调会报:

400 Request is missing x-opencode-session and ca...

加上一个请求头就好(任意 UUID,每次请求换一个新的):

curl https://opencode.ai/zen/go/v1/chat/completions 
  -H "Authorization: Bearer ***" 
  -H "Content-Type: application/json" 
  -H "x-opencode-session: $(uuidgen)" 
  -d '{"model":"deepseek-v4.1-flash","messages":[{"role":"user","content":"你好"}]}'

这就是 pi agent 这类登录客户端做的事——它带的是自己的 session 标识,Zen 认这个就能放行。所谓”只能通过官方客户端用”,本质就是这一个头。

Go 端点 36 个模型实测

我拿同一个 key 逐个 smoke test 了全池:

结果 数量 模型
✅ 可用 29 deepseek 系列、glm 系列、qwen 系列、kimi 系列、mimo 系列、minimax-m3、longcat、space-bunny-free
⚠️ 需换协议 1 minimax-m2.7——只走 Anthropic Messages 协议
❌ 不可用 6 grok-4.6/4.7、gpt-5.6-luna、gpt-6-luna、muse-spark-1.2/1.3-contributor

后 6 个报同一句 Model does not support this protocol,换 /v1/messages 端点也不行,是真的调不动。

minimax-m2.7 换协议就通了:

curl https://opencode.ai/zen/go/v1/messages 
  -H "x-api-key: ***" 
  -H "anthropic-version: 2023-06-01" 
  -H "x-opencode-session: $(uuidgen)" 
  -d '{"model":"minimax-m2.7","max_tokens":64,"messages":[{"role":"user","content":"你好"}]}'

架构:一个中枢,多个 Agent

核心思路是让 OpenCode 当模型路由器,其他工具通过 OpenAI 兼容接口指过来。

  主机 A(开发机)        主机 B(ARM 小主机)      主机 C(NAS)
  ┌──────────────┐      ┌──────────────┐        ┌──────────────┐
  │ Claude Code  │      │  opencode    │        │  opencode    │
  │ Codex        │      │  Hermes      │        │  ...         │
  │  opencode    │      │              │        │              │
  └──────┬───────┘      └──────┬───────┘        └──────┬───────┘
         │                     │                        │
         └─────────────────────┼────────────────────────┘
                               │  全部用同一个 OPENCODE_GO_API_KEY
                               ▼
         ┌─────────────────────────────────────────┐
         │       OpenCode Zen  (opencode.ai)       │
         │   86 个模型 · 13 个 free · 1M 上下文    │
         │   OpenAI 兼容端点 /v1/chat/completions   │
         └─────────────────────────────────────────┘

所有工具用同一个 key,不需要在 N 台机器上分别充值或配置。

第一步:拿到 key 并填进环境变量

去 opencode.ai 注册,登录后在控制台拿 API key。

echo 'export OPENCODE_GO_API_KEY=sk-你的key' >> ~/.bashrc
source ~/.bashrc

别把 key 写进代码或提交到 git。 建议顺手收紧权限:

echo 'export OPENCODE_GO_API_KEY=sk-你的key' > ~/.zen_key
chmod 600 ~/.zen_key
echo 'export OPENCODE_GO_API_KEY=$(cat ~/.zen_key)' >> ~/.bashrc

第二步:把 Zen 配成 OpenCode 的自定义 provider

这是整套方案的核心。OpenCode 支持挂任意 OpenAI 兼容端点:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "zen": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "OpenCode Zen",
      "options": {
        "baseURL": "https://opencode.ai/zen/v1",
        "apiKey": "{env:OPENCODE_GO_API_KEY}"
      },
      "models": {
        "space-bunny-free": { "name": "Space Bunny Free" },
        "deepseek-v4-flash-free": { "name": "DeepSeek V4 Flash Free" },
        "mimo-v2.6-flash-free": { "name": "MiMo v2.6 Flash Free" },
        "muse-spark-1.3-contributor-free": { "name": "Muse Spark 1.3 Free" },
        "longcat-2.5-preview-free": { "name": "LongCat 2.5 Preview Free" },
        "nemotron-3-ultra-free": { "name": "Nemotron 3 Ultra Free" },
        "ling-3.1-flash-free": { "name": "Ling 3.1 Flash Free" },
        "fledge-alpha-free": { "name": "Fledge Alpha Free" }
      }
    }
  }
}

存到 ~/.config/opencode/opencode.json。这个文件路径就是 opencode run --model zen/<模型id> 能工作的原因。

⚠️ 版本要求:free 层需要 OpenCode 1.18.0 或更高。低了会报 Error: OpenCode 1.18.0 or newer is required to use the free tier。

npm install -g opencode-ai@latest
opencode --version

第三步:13 个免费模型参数速查

数据来自官方页面和 OpenRouter 官方目录。只有 5 个公布了参数,其余 8 个官方未披露。

模型 ID 厂商 参数 上下文 一句话点评
deepseek-v4.1-flash DeepSeek 552B / 8B·16B 激活 1M KV cache 仅 890 字节/token,最省内存
deepseek-v4-flash-free DeepSeek 284B / 13B 激活 1M 激活最小,速度最快
longcat-2.5-preview-free 美团 1.6T / ~48B 激活 1M 参数最大,但激活也最大,最慢
nemotron-3-ultra-free NVIDIA 550B / 55B 激活 1M 唯一有官方技术报告背书 1M
mimo-v2.6-flash-free 小米 309B / 15B 激活 1M MIT 许可,唯一支持视频音频输入
ling-3.1-flash-free 蚂蚁 560B 262K 上下文最短,别选
ling-3.0-flash-fin-free 蚂蚁 未公开 262K 金融垂类
mimo-v2.5-free 小米 309B 级 1M 上一代
muse-spark-1.3-contributor-free Meta 未公开 1M Meta 出品,参数未披露
muse-spark-1.2-contributor-free Meta 未公开 1M 上一代
nemotron-3.5-lightning-free NVIDIA 未公开 1M 超轻量版
space-bunny-free 匿名 未公开 1M 社区指向 MiniMax,唯一能免鉴权裸调
fledge-alpha-free 疑似 router 未公开 未公开 限时收集反馈
jev-1.13-free TypeSafe 未公开 1M ⚠️ 结构化决策模型,不是通用 LLM

第四步:13 个 free 模型真实可用性(78 次实测)

我把 Zen 目录里全部 13 个 -free 模型逐个跑了 6 道题(冒烟、找 bug、逻辑推理、贝叶斯推理、JSON 格式、中文写作),共 78 次调用。

结果和目录标注差很多:

模型 可用率 贝叶斯题 平均耗时 状态说明
space-bunny-free 6/6 ✅ 1/2 32.9s 全场最快
nemotron-3-ultra-free 6/6 ✅ 1/2 37.7s 550B/1M 上下文
fledge-alpha-free 6/6 ✅ 1/2 38.7s 限时收集反馈
mimo-v2.5-free 6/6 ✅ 1/2 49.9s 小米上一代
mimo-v2.6-flash-free 6/6 ✅ 1/2 53.8s 全模态
ling-3.1-flash-free 6/6 ✅ 1/2 60.6s 但上下文仅 262K
nemotron-3.5-lightning-free 5/6 ✅ 1/2 71.5s 中文写作超时
longcat-2.5-preview-free 5/6 超时 41.7s 1.6T 参数
deepseek-v4-flash-free 0/6 — — ⚠️ 目录挂着但后端无路由
muse-spark-1.3-contributor-free 0/6 — — ⚠️ 协议不支持
muse-spark-1.2-contributor-free 0/6 — — ⚠️ 同上
ling-3.0-flash-fin-free 0/6 — — ⚠️ 路由 404
jev-1.13-free 0/6 — — ⚠️ 服务端错误

13 个标着 free 的,实际能用的只有 8 个。 四个 0/6 的报错各不相同——Not Found: Cannot find any route matching、Model does not support this protocol、Unexpected server error,说明这些 ID 是目录残留,后端早就撤了或从来没上线。

⚠️ 这就是为什么不能照着目录抄模型名。用之前先跑一次冒烟测试。

第五步:其他 Agent 工具怎么接过来

Zen 暴露的是标准 OpenAI 兼容端点,所以任何支持自定义 OpenAI 端点的工具都能接。

Claude Code——通过 Anthropic 兼容层或环境变量:

export ANTHROPIC_BASE_URL="https://opencode.ai/zen/v1"
export ANTHROPIC_API_KEY="$OPENCODE_GO_API_KEY"

Codex——~/.codex/config.toml:

model = "space-bunny-free"
model_provider = "zen"

[model_providers.zen]
name = "OpenCode Zen"
base_url = "https://opencode.ai/zen/v1"
wire_api = "chat"
env_key = "OPENCODE_GO_API_KEY"

Cline / Roo Code——在设置里把 Provider 选成 OpenAI Compatible,填 base URL 和 key 即可。

多主机同步:把 key 放各自的 ~/.zen_key,配置文件走 Git 同步:

# 在每台机器上
mkdir -p ~/agent-config && cd ~/agent-config
git init && git remote add origin [email protected]:你的账号/agent-config.git

# 同步 opencode 配置
cp ~/.config/opencode/opencode.json ~/agent-config/opencode.json
cp ~/.codex/config.toml ~/agent-config/codex-config.toml

cd ~/agent-config && git add -A && git commit -m "sync" && git push

⚠️ 千万别把 key 提交进 Git。只同步配置文件,key 各自机器单独放。

第六步:怎么选:按任务类型分

我把 42 次同题实测(3 个模型 × 7 题 × 2 轮)的结论摆出来:

任务 选谁 理由
需要算对(数学、逻辑推理) deepseek-v4.1-flash(Go 端点) 两轮推理题全对,包括经典贝叶斯题
纯文本改写、翻译、格式转换 space-bunny-free 免鉴权,脚本友好,中文表达生动,全场最快
图像 / 视频理解 mimo-v2.6-flash(Go 端点) 唯一支持视频音频输入
长文档(几十万 token) deepseek-v4.1-flash 890 字节/token 的 KV cache 是唯一能真跑 1M 的
定时任务、无人值守 space-bunny-free 双端点都能裸调,不依赖客户端进程
想要大参数但不慢 nemotron-3-ultra-free 550B 但 6/6 全过,37.7s
⚠️ 别用 ling-3.0-flash-fin-free、jev-1.13-free、muse-spark-*-free 实测 0/6,完全不可用

⚠️ 一个实测踩到的坑:在 5 次小样本下,space-bunny-free 曾经在一道经典贝叶斯题上把 ½×1 + ½×0 算成了 1/3——推理过程全对,最后一行算错。但扩到 13 次样本后它每次都答对。所以单次失误不能当结论,得多次重跑。

稳定性实测

所有测试的失败都是同一句:

Error: unknown certificate verification error

这是本机到 Zen 的网络抖动,跟模型无关。 三个模型各挂 1 次,概率一样。少数模型在 200 秒左右会超时(nemotron-3.5-lightning-free 中文写作 200.3s 超时),这类是模型本身慢,不是链路问题。

这些坑你要知道

1. 目录里有幽灵模型:13 个标 -free 的只有 8 个真能用,5 个完全不通。用之前先冒烟测试。

2. 两套端点 ID 不通用:mimo-v2.6-flash-free 在 zen/v1 能用,但 Go 端点里叫 mimo-v2.6-flash(没有 -free)。同一个模型两个名字,别搞混。

3. LongCat 的”免费”是标题党:媒体报道说 OpenCode 免费两周,实际是给老用户发 500 万 token 额度 + 限时优惠价($0.30/$1.20 每百万),不是白用。

4. 上下文长度分版本:Nemotron 3 Ultra 在 OpenRouter 付费版只有 262K,free 版是 1M。

5. Go 端点里只有两个真免费:space-bunny-free 和 longcat-2.5-preview-free。其他 27 个(minimax、qwen、glm、kimi、deepseek)都走你的 Go 付费额度。

6. 响应 id 格式能看出路由层级:

id 前缀 含义
071087xx(32 位 hex) OpenRouter 转发层(space-bunny、minimax-m3 都在这层)
chatcmpl- 原生 OpenAI 格式直连(glm、qwen、kimi-code)
gen-<时间戳> 另一条转发路径(kimi-k2.6、mimo-v2.5、minimax-m2.5)

顺带一条实锤:space-bunny-free 和 minimax-m3 的响应 id 同为 071087xx 格式,且 minimax-m3 就在 Go 目录里——这给”space-bunny 是 MiniMax 的 stealth 版”这个推测又添了一条旁证。

一句话总结

Zen 这套 free 层适合的场景很清楚:多 Agent 环境下的日常杂活——改代码、写脚本、翻译、格式转换、跑定时任务。用一个 key 统一管理,N 台机器共用,额度用完也不心疼。

但别把它当主力干重活。真要写复杂代码、做严肃推理,还是得上付费模型。

上手顺序建议:先从 Go 端点(加 x-opencode-session 头)挑模型,而不是从 zen/v1 的 free 目录抄名字——前者 29/36 可用,后者 8/13 可用且速度更慢。


本文测试环境:ARM64 单机,OpenCode 1.18.34,Node 22。测试时间 2026 年 10 月初。free 层规则和模型目录会变,以实际使用为准。

by 数码罗记·godsun.pro

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注