Skip to content

工具调用后返回空响应,多步骤任务被静默放弃

问题

执行多步骤任务(例如:抓取网页 → 提取内容 → 保存到文件)时,Hermes 在某次工具调用返回后静默丢弃后续未完成的步骤,状态栏显示:

↻ Empty response after tool calls — using earlier content as final answer

剩余步骤不再执行,任务未完成但 agent 认为已结束。

高发场景

  • 使用非 Claude 模型(如 GLM-5、Qwen 系列)时更频繁
  • 任务步骤数量较多(3 步以上)
  • 工具调用结果较长时

注意:根本原因在 agent loop 的设计,不是模型问题——同样的任务在 Claude 模型下也可能触发。

解决方案

临时绕过

将多步骤任务拆成明确的串行指令,每次只让 agent 做一步,手动确认后再给下一步。这样可以避免 agent loop 在工具调用后丢失对"还有未完成步骤"的感知。

根本修复方向(来自 issue 分析)

当工具调用返回后,如果 LLM 响应为空,agent loop 应该:

  1. 检测上一次 prompt 中是否还有未执行的步骤
  2. 若有,继续推进,而不是以之前的内容作为最终答案结束
  3. 至少记录一条 WARNING 级别的日志,而不是静默放弃

Issue#9400