messages.19: `tool_addition` blocks can only be in `system` messages (request_id...
错误信息
messages.19: `tool_addition` blocks can only be in `system` messages (request_id: 49930f6e-f695-465f-9d8e-ddcee26bbc5d)
INVALID_REQUEST
本轮费用
AI 解决方案
原文:`tool_addition` blocks can only be in `system` messages
译文:`tool_addition` 块只能存在于 `system` 消息中
🎯 原因分析
该错误的根本原因是
tool_addition 类型的消息块被放置在了非系统消息中,违反了 API 的规则约束。错误发生在 messages 数组的第 19 个元素,请求中存在不合法的消息块分配,导致请求被判定无效。💡 解决方案
将包含
tool_addition 块的消息调整为系统消息,或移除该块并合理分配到对应的系统消息中,示例如下:// 修复后的请求消息结构
const messages = [
{
role: "system",
// 将原本错误位置的 tool_addition 块移至此处
content: [
{
type: "tool_addition",
// 具体的工具相关配置内容
}
]
},
// 其余非系统消息,不再包含 tool_addition 块
{
role: "user",
content: "你的用户消息内容"
}
];
🛡️ 预防措施
tool_addition 块仅出现在 role 为 system 的消息中,可使用条件判断或消息结构校验工具。