OpenCode Zen 额度限流规则

2026年8月14日星期五

本文基于 OpenCode 官方开源仓库 anomalyco/opencode@39fb919a(2026-08-12)源码,与本机 Pi 实际使用会话记录整理。

统计范围:本文所有数据仅针对 DeepSeek V4-flash-free 模型调用(通过 OpenCode Zen 免费网关),不包含其他模型或其他网关的用量。本文的测试均基于携带 API Key 的调用;该网关也支持 API 系统的匿名访问,但本次未做相关测试。


OpenCode Zen 是什么

OpenCode 是一个开源的 AI 编程平台。除了终端里的命令行工具(CLI)和桌面应用之外,它还运营一个官方模型网关,叫做 Zen

你的工具(Pi 等) → OpenCode Zen 网关 → 上游大模型(DeepSeek 等) → 结果返回

网关负责模型调度、用量统计和限流。deepseek-v4-flash-free 是 Zen 提供的免费模型,用于吸引用户试用。因为是免费开放,网关对每个使用者的用量做了限制,防止滥用和控制成本。

说明:以下测试均携带 API Key 进行。该网关也支持 API 系统的匿名访问,但本次未做相关测试,匿名访问的额度规则不在本文结论范围内。


额度是怎么算的(核心规则)

在本次携带 API Key 的测试中,Zen 网关按你的公网出口 IP 记录两个计数器:

计数器含义是否重置
终身计数该 IP 从第一次使用起,累计成功发起的请求次数永不重置
当日计数该 IP 当天(按 UTC 日期)成功发起的请求次数每天 UTC 午夜清零

所谓”一次请求”,就是一次完整的模型调用(发一条消息、拿到一次回复),与输出多长、是否命中缓存无关——发一次就算一次。

新用户与老用户

网关把使用者分为两类:

  • 新用户:终身计数未超过”7 天的额度量”(约 2100 次)的使用者,被视为新手期,享受每日双倍额度
  • 老用户:终身计数超过该门槛后,降为普通额度。

具体数字(结合实测验证):

状态每日额度说明
新用户约 600 次/日基础额度 300 × 2 倍新手福利
老用户约 300 次/日新手期结束后降为单倍

每日重置时间

“每日”按 UTC(格林尼治)时间计算,即北京时间每天早上 8 点整重置当日计数,与使用者的首次请求时间无关。例如:北京时间下午 4 点被限流,第二天早上 8 点恢复。


实测情况(2026-08-14,DeepSeek V4-flash-free)

触发限流经过

  • 08-14 上午 10:00 起,多个并行会话持续调用模型。
  • 当日累计成功 601 次请求后,第 602 次左右开始被网关拒绝(HTTP 429,提示 “Rate limit exceeded”)。
  • 限流响应给出的恢复时间为 15 小时 25 分钟,正好指向次日 UTC 午夜,即北京时间 08-15 早上 8 点恢复。
  • 被拒后网关会在短时间内继续拒绝所有请求,直到重置时刻。

触发限流前的用量

指标数值
成功请求601 次
输入(缓存未命中)约 239 万 tokens
输出约 50 万 tokens
缓存命中约 4,286 万 tokens
合计 tokens约 4,575 万(缓存命中率 93.7%)

终身累计进度

从 08-10 开始使用至今,该 IP 的终身累计约为 1,626 次,尚未达到新用户门槛(约 2,100 次),目前仍处于新手期(每日 600 次)。按当前使用速度,预计 1~2 天内将用完新手福利,之后每日额度降为 300 次。


常见问题

缓存命中率很高,能省额度吗?

不能。额度按”请求次数”计算,与 token 数量、缓存命中率无关。缓存只影响 token 计费(缓存命中的 tokens 不计入按量费用),不影响请求次数额度。

被限流后怎么办?

  • 等待重置:北京时间次日早上 8 点自动恢复。
  • 减少并发:多个并行会话会快速消耗当日额度,建议错峰运行。
  • 换 IP:终身计数与当日计数都按 IP 记录,更换全新出口 IP(代理、热点等)后计数器归零,可重新获得新手期双倍额度(600 次/日、终身 2100 次福利)。但注意终身计数永久累积、不会自己恢复,同一个 IP 用完 2100 次后就永远按老用户(300 次/日)计算。

每日额度还有剩余吗?

当前处于新手期,每日 600 次、UTC 日重置(北京时间 08:00)。可以通过本地会话记录自行核对当日已用次数。


API 调用格式

Zen 网关提供三种调用格式,对 DeepSeek 模型的兼容性如下:

调用格式端点兼容性
Chat Completions(推荐)POST /v1/chat/completions✅ 稳定
ResponsesPOST /v1/responses⚠️ 存在兼容性问题
MessagesPOST /v1/messages⚠️ 存在兼容性问题

推荐使用 Chat Completions 格式调用 DeepSeek 模型。Responses 与 Messages 两种格式在 DeepSeek 模型上存在兼容性问题,目前遇到的主要是参数转换问题——请求参数在网关转换为 DeepSeek 上游格式时可能出现异常,这是 OpenCode Zen 网关自身的问题,与客户端无关。

建议在使用 Pi 或其他工具时,将 DeepSeek 相关模型的调用方式固定为 Chat Completions 格式,以获得稳定的体验和准确的用量统计。

示例请求:

curl https://opencode.ai/zen/v1/chat/completions \
  -H "content-type: application/json" \
  -d '{
    "model": "deepseek-v4-flash-free",
    "messages": [{"role": "user", "content": "你好"}],
    "stream": false
  }'

若已配置 API Key,可在请求头中携带 Authorization: Bearer <key>


规则速查

问题答案
被 429 限流后何时恢复?北京时间次日早上 8 点(UTC 午夜)
新手期一天能用多少次?约 600 次
老用户一天能用多少次?约 300 次
终身新手福利总共多少次?约 2100 次,用完即转为老用户
缓存命中能省请求额度吗?不能,一次调用算一次
换 IP 有用吗?有用,可重新获得新手期额度
同一个 IP 能变回新用户吗?不能,终身计数永不重置
DeepSeek 调用该用哪个接口?只用 Chat Completions,避免 Responses / Messages