[解决] opencode 使用 antigravity-claude-opus-4-6-thinking 模型报错 prompt is too long: 352692 tokens > 200000 maximum
问题描述
我在 opencode 里用 antigravity-claude-opus-4-6-thinking 做长会话排障时,突然连续报错,核心信息是:
{
"type": "error",
"error": { "type": "invalid_request_error", "message": "prompt is too long: 352692 tokens > 200000 maximum" },
"request_id": "REDACTED"
}当时最直观的体感是:同一个会话前面还能跑,后面一进入复杂推理就直接 400,尤其把 thinking 开到 max 更容易复现。偶尔执行 /compact 后会暂时恢复,但继续跑一段又会撞上同样的报错。
问题分析
我把报错信息和调试日志对齐后,确定这不是单点故障,而是两个因素叠加:
-
上下文真实长度超了模型上限 该模型的上下文上限是 200000,但请求里累计历史对话、系统提示和推理相关负载后,实际发送体到了 352692,服务端直接返回
INVALID_ARGUMENT。 -
本地模型配置与缓存未及时同步 我最初的配置里,模型定义和版本不是最新状态。社区里给出的可复现修复路径是:更新到
opencode-antigravity-auth@latest,并刷新模型缓存。这个动作对我后续稳定性影响很明显。
另外我也踩到一个细节:MAX thinking 在长会话里会更快放大 token 消耗,所以“看起来没到 200k”并不代表请求体真的没超。
解决方案
我最后按下面四步处理,问题稳定消失。
第一步:升级插件与 opencode
- 插件改为:
opencode-antigravity-auth@latest - 执行:
opencode upgrade
这一步的目的很直接:先把已知的模型配置和兼容逻辑更新到最新。
第二步:刷新模型缓存
执行:opencode models --refresh
很多人只升级不刷新,结果还是读旧缓存。我这边刷新后,模型列表和参数才和最新配置对齐。
第三步:校正模型配置(重点)
我把 provider.google.models 里这项确认成下面这个结构,关键是 limit.context = 200000 与 thinking 预算配置:
"antigravity-claude-opus-4-6-thinking": {
"name": "Claude Opus 4.6 Thinking (Antigravity)",
"limit": { "context": 200000, "output": 64000 },
"modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
"variants": {
"low": { "thinkingConfig": { "thinkingBudget": 8192 } },
"max": { "thinkingConfig": { "thinkingBudget": 32768 } }
}
}如果你是从旧配置迁过来的,这一步特别关键。
第四步:控制长会话体积 + 稳定网络出口
- 长会话中定期
/compact,避免历史上下文无限膨胀 - 复杂任务拆分成多轮,减少一次性超长请求
- 固定一个稳定出口,避免请求在高风险 IP 间跳来跳去
我自己的做法是用 SkyVPN 的独享住宅 IP 固定出口,原因是画像更干净、接近真实家庭宽带、可按需切换全球地区。对这类 AI 平台来说,能明显减少风控噪音,降低误封与异常降级(很多人说的“AI 降智”)概率。短视频和营销账号场景也同理,稳定出口通常更不容易被限流。
总结经验
这次踩坑我记住三件事:
prompt is too long本质是请求体超上限,不是随机报错。- 只看聊天窗口 token 估计不够,要把系统指令、历史对话、thinking 开销一起算进去。
- 修复顺序要固定:升级插件 → 刷新模型缓存 → 校正模型参数 → 控制会话体积。
如果你现在也卡在 352692 > 200000 这种报错,按这套顺序执行,通常比盲目重试快得多。