Skip to content

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

@raydoomed

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions