【OpenCode】text content blocks must be non-empty
继【 OpenCode - CPA - OneAPI 】 :
现象:
ValidationException: messages: text content blocks must be non-empty
原因分析:
- OpenCode 在工具调用后,assistant 消息可能只有 tool_calls 没有文字内容
- CPA 转换时设置 content: “”(空字符串)
- AWS Bedrock 比标准 OpenAI API 更严格,不接受空的 content
解决:
修改 CPA 源码 internal/translator/openai/claude/openai_claude_request.go:
// 修复前msgJSON, _ = sjson.Set(msgJSON, "content", "")
// 修复后:用空格替代空字符串msgJSON, _ = sjson.Set(msgJSON, "content", " ")