Skip to content

Bug: 工具不存在时进入无限循环调用无法退出 #62971

Description

@raydoomed

Bug: 工具不存在时进入无限循环调用无法退出

描述

当 LLM 调用一个不存在的工具(工具名拼写错误/工具未安装)时,系统会进入无限循环:LLM 一直重复调用同一个不存在的工具,无法自行退出,必须用户手动执行 /reset/new 重启会话才能恢复。

复现步骤

  1. 让 LLM 调用一个不存在的工具名称,例如 some_non_existent_tool
  2. 系统返回错误:Tool 'some_non_existent_tool' not found
  3. LLM 收到错误后,仍然重复尝试调用同一个不存在的工具,陷入死循环
  4. 循环持续,直到用户手动干预重启

预期行为

  • 连续 N 次(建议 2 次)调用同一个不存在的工具后,系统应该自动停止循环
  • 抛出明确错误给用户,请求用户介入纠正工具名称/安装工具
  • 不应该让 LLM 无限重试浪费 token 和时间

环境信息

  • 操作系统: macOS 25.3.0 (arm64)
  • Node 版本: v25.8.2
  • OpenClaw 版本: 当前最新开发版

建议修复方向

  1. 在工具调用层增加计数器:对同一个会话中连续调用同一个不存在工具的次数进行统计
  2. 超过阈值(比如 2 次)后,停止调度,直接返回错误给用户,终止当前轮次
  3. 或者在错误提示信息中明确指示 LLM:工具不存在,停止调用,等待用户修正,打破循环

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions