核心作用:止 AI Agent 陷入无限工具调用循环(Agent可能反复调用同一个工具带着相同的参数,直到递归限制耗尽导致崩溃。)
两层检测策略
1、基于哈希的精确检测(参数+工具名称)
警告阈值 = 3 次:注入一条 “你正在重复相同的工具调用” 的 HumanMessage
硬性限制 = 5 次:直接剥离 tool_calls,强制 Agent 输出纯文本回答
2、基于频率的工具类型检测(同一个工具名+不同参数)
频率警告 = 30 次:对同一工具类型发出警告
频率硬限制 = 50 次:强制终止
_hash_tool_calls :对一轮模型响应中的所有工具调用集合生成一个确定性哈希
_track_and_check :中间件的核心检测逻辑——追踪历史 + 检查是否触发阈值。