Model Tools & Guardrails

ToolGuardrails 工具调用熔断器与死循环保护

解密 agent/tool_guardrails.py 中非进行性死循环检测与合成干预提示
死循环状态拦截
📊 图 3-3-1:循环运行轨迹检测与工具死循环熔断状态转移图

🚨 1. 工具调用非进行性死循环判定

在复杂 Agent 执行中,模型常常在参数出错后,执拗地用相同参数重复调用同一个工具。agent/tool_guardrails.py 对此进行防御:

系统保存了一个滑动窗口内工具调用的哈希记录。当发现**同名工具、相同入参、产生相同的空报错输出且连续出现 3 次以上**时,判定系统进入死循环阻塞状态。

工具调用链限制
📊 图 3-3-2:工具拦截链执行、提示干预追加与回退控制流程图

🛡️ 2. 合成干预提示追加

一旦死循环熔断被拉闸,系统不会立刻崩溃程序,而是调用 append_toolguard_guidance() 在当前 tool 消息头部强行追加注入一段带 `System:` 前缀的安全干预命令,警告大模型:“此调用无进展且卡死,请立即改变处理策略或向用户报告卡死原因。”