跳转到内容
Telemetry
人工智能和法学硕士 SQL查询示例

检测重复的 AI 智能体工具循环

查找智能体运行重复调用一小组工具但未取得成功结果的情况。

中级agent_tool_calls已审核 2026-07-27测试用 阿帕奇 DataFusion 45.2.0

审阅者 Telemetry产品团队 . SQL 兼容性、事件契约、合成输出和操作注意事项. 审查标准和所有权

问题已回答

哪些智能体运行似乎陷入了重复的工具循环?

失败的智能体并不总是引发异常。重复调用相同的工具可能会消耗时间和令牌,而运行在技术上仍保持活动状态。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp工具调用完成时间。
run_idUtf8一次智能体运行的稳定标识符。
agent_nameUtf8智能体工作流名称。
tool_nameUtf8称为工具名称。
statusUtf8工具调用结果。
estimated_cost_usdFloat64成本归因于该步骤(如果可用)。
DataFusion SQL

复制查询

sql
SELECT
  run_id,
  agent_name,
  COUNT(*) AS tool_calls,
  COUNT(DISTINCT tool_name) AS distinct_tools,
  SUM(CASE WHEN status = 'failed' THEN 1 ELSE 0 END) AS failed_calls,
  SUM(estimated_cost_usd) AS tool_loop_cost_usd,
  MIN(timestamp_utc) AS first_call_at,
  MAX(timestamp_utc) AS last_call_at
FROM agent_tool_calls
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
GROUP BY run_id, agent_name
HAVING COUNT(*) >= 8
  AND COUNT(DISTINCT tool_name) <= 2
ORDER BY tool_calls DESC, tool_loop_cost_usd DESC
LIMIT 100;

此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。

查询结果

智能体运行重复调用工具

计费调节器仅通过两个工具进行了 17 次调用,但其中近一半失败了。

run_idagent_nametool_callsdistinct_toolsfailed_callstool_loop_cost_usdfirst_call_atlast_call_at
run_9021billing_reconciler17280.8412:02:1112:06:48
run_9154support_agent11100.3112:44:1012:45:32

综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。

Repeated tool calls by agent run:来自 Detect Repeating AI Agent Tool Loops 示例结果的合成 tool_calls 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

JSON 包包含类型化事件契约, illustrative 输入行、确切的 SQL、预期输出、审阅注释和引擎版本。 CSV 包含显示的结果。

SQL 是如何工作的

  1. 1循环候选者结合了高调用次数和极低的工具多样性。
  2. 2失败的调用将显式重试循环与从不提升状态的重复成功调用区分开来。
  3. 3成本和经过的时间戳显示了循环的财务和延迟影响。

需要决定的边缘情况

  • 一些批处理智能体可以多次合法地调用一种工具;按智能体工作流程和预期项目数进行细分。
  • 循环阈值应包括生产中的最大运行时间或状态转换。
  • 不要记录原始工具参数或返回的客户内容来诊断循环。

推荐仪表板

  • 酒吧:tool_calls by run_id
  • 统计:可疑循环和归因成本
  • 表:所选运行的工具序列、状态和分类错误

警报指导

当重复调用超过工作流特定的安全阈值而没有状态转换时,发出警报或终止运行。

读取警报设置

让查询示例发挥作用

相关埋点和指南

定义源数据

此分析的事件模式

继续分析

在真实事件中运行它

创建表,调整字段并保存结果

免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。

获取 API 密钥