注意事项
中文exp-2505未验证
注意事项
finish_reason=tool_calls 时,message.content 偶尔不为空:通常是模型在解释需要调用哪些工具、为什么调用。当工具调用耗时较长,或一轮对话需要串行多次调用工具时,这段描述性语句能减少用户等待的焦虑,也方便用户理解工具调用的流程并及时干预和矫正(例如终止错误的工具调用,或在下一轮对话中通过提示词矫正模型的工具选择);
tools 参数中的内容也会被计算在总 Tokens 中,请确保 tools、messages 中的 Tokens 总数合计不超过模型的上下文窗口大小。
###
保证每个 tool_call 都有对应的 tool 消息
工具调用场景下,消息不再是 system / user / assistant 的简单交替:
system: ...
user: ...
assistant: ...
user: ...
assistant: ...
而是会变成:
system: ...
user: ...
assistant: ...
tool: ...
tool: ...
assistant: ...
当 Kimi 大模型生成了 tool_calls 时,请确保每一个 tool_call 都有对应的 role=tool 的 message,并且这条 message 设置了正确的 tool_call_id:role=tool 的 messages 数量与 tool_calls 的数量不一致会导致错误;role=tool 的 messages 中的 tool_call_id 与 tool_calls 中的 tool_call.id 无法对应也会导致错误。
###
排查 tool_call_id not found 错误
如果你遇到 tool_call_id not found 错误,可能是由于你未将 Kimi API 返回的 role=assistant 消息添加到 messages 列表中,正确的消息序列应该看起来像这样:
system: ...
user: ...
assistant: ... # <-- 也许你并未将这一条 assistant message 添加到 messages 列表中
tool: ...
tool: ...
assistant: ...
你可以在每次收到 Kimi API 的返回值后,都执行 messages.append(message) 来将 Kimi API 返回的消息添加到消息列表中,以避免出现 tool_call_id not found 错误。
注意:添加到 messages 列表中位于 role=tool 的 message 之前的 assistant messages,必须完整包含 Kimi API 返回的 tool_calls 字段及字段值。我们推荐直接将 Kimi API 返回的 choice.message “原封不动”地添加到 messages 列表中,以避免可能产生的错误。
是否
动态加载工具
联网搜索
website
复制后粘贴到 AI 对话框发送,本次对话全程生效
出处:Kimi/Moonshot 官方提示词指南 · platform.moonshot.cn/docs/guide/use-kimi-api-to-complete-tool-calls · 可信度 S · 标签:中文 / 提示词工程 / 长上下文 / Kimi / 工具调用 怎么用(对话型)复制后粘贴到对话框发送,本次对话全程生效。想长期用:支持自定义指令的产品(设置→个性化)可设为默认。