OpenCode 会话被污染 bug:Responses 端点注入 system 消息后 400 卡死
thystips · ghdev · 2026-10-14
事件
OpenCode V2(v2.0.28/2.0.29)存在一个核心 bug:当会话中途发生指令或工具源变更时,核心模块(如 core/instructions、core/mcp-guidance 等)会按设计向历史中追加一条 system 通知消息。若该通知恰好紧跟在一条以 tool output 结尾的 assistant 消息之后,OpenAI 兼容的 Responses 端点会拒绝整个请求,返回 400 错误:
> "A tool output cannot be combined with new developer or system context."
后果
- 由于通知被持久化进历史,之后每一轮都会重放同样的非法序列,会话永久不可用;重试、恢复、/compact、切换模型均无效。
- 无需用户操作也能复现:服务器重启或 opencode 自动更新即可触发。
复现环境
- OpenRouter /api/v1/responses(deepseek 模型)与内部 Responses 网关(Kimi 模型)均复现
- Linux x8664,kitty 终端,禁用本地插件不影响——问题来自 core 而非插件
该 issue 目前有 6 条讨论,对使用 Responses API 的编码 agent 用户是重要踩坑提示。
「编程与Agent」频道最新
- Vercel 推出免注册部署:拖拽文件到首页即得线上 URL — steren · 2026-10-23
- 5 个 Claude Code 会话经 MCP 互发邮件,组队攻破多品牌网络摄像头 — doodlestein · 2026-10-23
- Vercel 上线 vercel deploy --temporary,可临时部署后自动清理 — cramforce · 2026-10-23
- 用同一个 Notion 工作区让多个 Agent 互相沟通分工,实测有效 — nbaschez · 2026-10-23
- Sierra 伦敦大会被指逊色旧金山场,Agent 落地数据成稀缺话题 — DimlyDimwitted · 2026-10-23
- 开源 C-Sweet 用本地 27B 小模型模拟整家公司运营 — Demonicated · 2026-10-23