K3 tool call error repeat and repeat
K3貌似工具调用有点问题?谁遇到过?请教下 会话不是"自己崩溃"或"超时死掉",而是陷入了一个无限重试循环,最终模型主动 end_turn 结束,Jenkins Pipeline
正常走完 exit 0。
时间线(最后 10 秒):
- 12:55:37 模型决策要 Read bugfix-batch.md 继续批处理
- 12:55:37 → 12:55:50 共 6 次连续调用 Read,每次 harness 都拒掉,回 "Wasted call — file unchanged since
your last Read"(去重拦截)
- 每次被拒,模型又在 thinking 里"重新决策 → 再 Read",构成死循环
- 最后一次循环里,模型 reply 文本 "读取批处理编排文件。" 后 stop_reason=end_turn —— 没再发
tool_use,harness 视为对话完成,正常结束
根本原因(两层)
- 直接原因 — kimi-k3 决策循环 bug:模型把 harness
的"文件未变更就去重返回之前结果"的拦截响应,误判成"上次 Read 没拿到,需要再调一次",于是反复重发同一个
tool_use。在 14 个 turn 里光这一个文件就调了 6 次。
- 诱因 — 中断+空消息循环:日志显示此前发生过 [Tool use interrupted] 后跟一个空 user
message。这种空消息在 harness 里被当成"用户催促继续",于是模型每次被重唤都又回到"/agent-pipe:fix
流程要求读批处理文件"那一帧,反复触发同一个被拒的 Read。
验证证据
- #160.txt:3172 终止 record: "stop_reason":"end_turn", "subtype":"success",
"terminal_reason":"completed", "is_error":false,exit 0 —— 不是超时、不是 API 错误、不是 5xx
- #160.txt:3104/3133/3152/3155/3157/3167/3170 — 全部 7 个 Wasted call 拦截响应
- #160.txt:3172 duration_api_ms:27104, num_turns:14 — 14 个 turn 大部分耗在这个循环
规避建议
- 临时规避:中断(Esc)后不要用空回车重唤,改用具体的指令,比如"继续执行 /agent-pipe:fix --list
./buglist.yaml 第 2 步"
- 模型侧:kimi-k3 对 "Wasted call" 拦截的反应需要修正 —— 看到这个响应应该引用之前的
tool_result,而不是重发相同调用
- harness 侧:可观察到的失败模式,连续 3 次相同被拒 tool_use 应该硬中止而不是让模型继续循环
简单说:不是被 kill,是模型自己把自己绕死在重复 Read 上,最后选择结束对话
#160.txt
K3 tool call error repeat and repeat
K3貌似工具调用有点问题?谁遇到过?请教下 会话不是"自己崩溃"或"超时死掉",而是陷入了一个无限重试循环,最终模型主动 end_turn 结束,Jenkins Pipeline
正常走完 exit 0。
时间线(最后 10 秒):
your last Read"(去重拦截)
tool_use,harness 视为对话完成,正常结束
根本原因(两层)
的"文件未变更就去重返回之前结果"的拦截响应,误判成"上次 Read 没拿到,需要再调一次",于是反复重发同一个
tool_use。在 14 个 turn 里光这一个文件就调了 6 次。
message。这种空消息在 harness 里被当成"用户催促继续",于是模型每次被重唤都又回到"/agent-pipe:fix
流程要求读批处理文件"那一帧,反复触发同一个被拒的 Read。
验证证据
"terminal_reason":"completed", "is_error":false,exit 0 —— 不是超时、不是 API 错误、不是 5xx
规避建议
./buglist.yaml 第 2 步"
tool_result,而不是重发相同调用
简单说:不是被 kill,是模型自己把自己绕死在重复 Read 上,最后选择结束对话
#160.txt