测一家
首页/故障案例/强制工具调用却返回一段自然语言
CASE / 协议

强制工具调用却返回一段自然语言

请求里指定了 tool_choice,返回的 message.content 是一段'我将为你查询天气',没有 tool_calls 字段。

症状模式可复现步骤证据优先

这个症状不能证明什么

先排除误判

这不一定是模型不听话。更常见的是中转站把 tools 字段丢了,模型根本不知道有工具。

按这个顺序验证

4 STEPS
  1. 看响应里有没有 tools 相关的字段残留,或者 finish_reason 是不是 stop 而不是 tool_calls。
  2. 把 tools 的定义换成最简单的单参数函数,排除 schema 太复杂被截断的可能。
  3. 在参数里加一个不常见但必填的字段,看模型返回的参数里有没有它。
  4. 换一个已知支持工具的站点做对照。

什么证据才算数

EVIDENCE

完整请求体、完整响应体、finish_reason、以及对照站点的同请求结果。

结论怎么写

CONCLUSION

响应里完全没有 tool_calls 结构,说明工具能力没有透传;有结构但参数缺字段,说明 schema 被简化。

接下来做什么

ACTION

要求站点确认是否支持 function calling;不支持就换站,或在客户端做 JSON 动作解析的降级方案。

案例是症状模式,不是对任何具体站点的结论。写报告时请引用你记录到的请求 ID、时间戳和响应原文,不要引用本页。