本文へ移動
Telemetry
AIとLLM SQL レシピ

繰り返しを検出する AI エージェント ツール Loops

成功した結果に達することなく、小規模なツール セットを繰り返し呼び出すエージェントの実行を見つけます。

中級者agent_tool_callsレビュー済み 2026-07-27テスト済み アパッチ DataFusion 45.2.0

レビュー者 Telemetry 製品チーム . SQL の互換性、イベント コントラクト、合成出力、および操作上の注意事項. 基準と所有権を確認する

質問に回答しました

どのエージェントの実行が繰り返しのツール ループに陥っているように見えますか?

エージェントが失敗しても、常に例外が発生するとは限りません。同じツールを繰り返し呼び出すと、実行が技術的にアクティブなままである間、時間とトークンが消費される可能性があります。

イベント契約

クエリが期待するフィールド

フィールド種類なぜ存在するのか
timestamp_utcTimestampツール呼び出しの完了時間。
run_idUtf81 つのエージェント実行に対する安定した識別子。
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。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。

クエリ結果

エージェントの実行による繰り返しのツール呼び出し

Billing Reconciler は、わずか 2 つのツール間で 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コストと経過タイムスタンプは、ループの財務上の影響と遅延の影響を示します。

決定すべきエッジケース

  • 一部のバッチ エージェントは、合法的に 1 つのツールを何度も呼び出します。エージェントのワークフローと予想されるアイテム数ごとにセグメント化します。
  • ループのしきい値には、本番環境での最大実行時間または状態遷移を含める必要があります。
  • ループを診断するために、生のツール引数や返された顧客コンテンツをログに記録しないでください。

推奨されるダッシュボード

  • バー: tool_calls by run_id
  • 統計: ループの疑いとそれに起因するコスト
  • 表: 選択した実行のツールシーケンス、ステータス、および分類されたエラー

アラートガイダンス

繰り返しの呼び出しが状態遷移を伴わずにワークフロー固有の安全しきい値を超えた場合、アラートを発行するか実行を終了します。

アラート設定を読む

レシピを活用する

関連する機器とガイド

ソースデータを定義する

この分析のイベント スキーマ

分析を続ける

実際のイベントで実行する

テーブルを作成し、フィールドを調整して、結果を保存します

無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。

API キーを取得する