现象
当前 api/sdk/src/main/java/com/ke/bella/openapi/protocol/message/MessageRequest.java 尚未适配 Claude Opus 4.7 的协议变化,导致新模型能力无法完整透传或表达。已识别的变更包括:
- 新增
task_budget(beta)配置,位于 output_config 下,配合 beta header task-budgets-2026-03-13 使用。
- Claude Opus 4.7 起 thinking content 默认省略,若需要推理输出,需要在
thinking 配置中显式设置 display: "summarized";否则响应中的 thinking block 可能存在但 thinking 字段为空。
影响评估
- 当前网关协议层无法完整表达 Opus 4.7 的新请求参数,影响新模型能力接入。
- 若上层依赖 reasoning 内容展示或后处理,可能因为 thinking 默认被省略而出现兼容性问题或行为偏差。
- 影响范围主要在 Claude / Anthropic message 协议适配链路,以及依赖
MessageRequest DTO 的请求构造逻辑。
根因分析
现有 MessageRequest 结构中:
OutputConfig 仅包含 effort 与 format,未支持 task_budget 字段。
ThinkingConfig 仅包含 type 与 budget_tokens,未支持新的 display 配置。
- 当前 DTO 设计滞后于 Claude Opus 4.7 最新 message 协议,导致新增字段无法反序列化/序列化透传。
修复方案
- 扩展
MessageRequest.OutputConfig,支持 task_budget 结构。
- 增加与协议一致的
TaskBudget DTO,至少支持:
- 扩展
MessageRequest.ThinkingConfig,支持 display 字段,并兼容:
- 检查相关请求构造、序列化和协议透传逻辑,确保新增字段不会破坏现有模型兼容性。
- 补充必要的单测或序列化验证,覆盖新字段映射与默认行为。
预防措施
- 建立 Claude 协议版本变更的字段巡检清单,减少 DTO 与官方协议脱节。
- 对 message 协议关键对象增加序列化兼容测试,及时发现新增字段遗漏。
证据
- 官方变更说明指出 Claude Opus 4.7 新增
task_budget(beta),位置为 output_config.task_budget。
- 官方变更说明指出 Claude Opus 4.7 默认省略 thinking content,需通过
thinking.display = "summarized" 显式开启摘要输出。
- 当前代码位置:
api/sdk/src/main/java/com/ke/bella/openapi/protocol/message/MessageRequest.java
相关链接
- 代码文件:
api/sdk/src/main/java/com/ke/bella/openapi/protocol/message/MessageRequest.java
- 上游仓库:
LianjiaTech/bella-openapi
现象
当前
api/sdk/src/main/java/com/ke/bella/openapi/protocol/message/MessageRequest.java尚未适配 Claude Opus 4.7 的协议变化,导致新模型能力无法完整透传或表达。已识别的变更包括:task_budget(beta)配置,位于output_config下,配合 beta headertask-budgets-2026-03-13使用。thinking配置中显式设置display: "summarized";否则响应中的 thinking block 可能存在但thinking字段为空。影响评估
MessageRequestDTO 的请求构造逻辑。根因分析
现有
MessageRequest结构中:OutputConfig仅包含effort与format,未支持task_budget字段。ThinkingConfig仅包含type与budget_tokens,未支持新的display配置。修复方案
MessageRequest.OutputConfig,支持task_budget结构。TaskBudgetDTO,至少支持:typetotalMessageRequest.ThinkingConfig,支持display字段,并兼容:omitted(默认)summarized预防措施
证据
task_budget(beta),位置为output_config.task_budget。thinking.display = "summarized"显式开启摘要输出。api/sdk/src/main/java/com/ke/bella/openapi/protocol/message/MessageRequest.java相关链接
api/sdk/src/main/java/com/ke/bella/openapi/protocol/message/MessageRequest.javaLianjiaTech/bella-openapi