messages.274: `tool_addition` blocks can only be in `system` messages (request_i...
错误信息
messages.274: `tool_addition` blocks can only be in `system` messages (request_id: a589d044-f83b-48bd-94ed-46d18703d5e6)
AI 解决方案
🌐 错误翻译
原文:messages.274: `tool_addition` blocks can only be in `system` messages (request_id: a589d044-f83b-48bd-94ed-46d18703d5e6)
译文:messages.274:`tool_addition` 块只能位于 `system`(系统)消息中(请求ID:a589d044-f83b-48bd-94ed-46d18703d5e6)
🎯 原因分析
该错误的核心原因是:工具追加块(
tool_addition)的放置位置不符合接口规则。在当前请求的消息列表里,第 274 条消息中包含了 tool_addition 块,但这条消息并非 system 类型的系统消息,接口对 tool_addition 块的存放位置有严格限制,仅允许它出现在 system 消息中,因此触发了校验报错。💡 解决方案
// 修复前(错误写法,tool_addition 放在了非 system 消息中)
const messages = [
{ role: "user", content: "用户提问内容", tool_addition: "工具补充信息" }, // ❌ 错误位置
{ role: "assistant", content: "助手回复内容" },
];
// 修复后(正确写法,tool_addition 移到 system 消息中)
const messages = [
{
role: "system",
content: "系统提示词内容",
tool_addition: "工具补充信息" // ✅ 仅允许在 system 消息中添加
},
{ role: "user", content: "用户提问内容" },
{ role: "assistant", content: "助手回复内容" },
];
🛡️ 预防措施
messages 数组时,提前校验 tool_addition 等特殊块所属消息的 role 类型,确保仅在 role === "system" 的消息中添加。