イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | ツール呼び出しの完了時間。 |
| run_id | Utf8 | 1 つのエージェント実行に対する安定した識別子。 |
| agent_name | Utf8 | エージェントのワークフロー名。 |
| tool_name | Utf8 | 呼び出されるツール名。 |
| status | Utf8 | ツール呼び出しの結果。 |
| estimated_cost_usd | Float64 | 利用可能な場合、ステップに起因するコスト。 |
クエリをコピーする
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_id | agent_name | tool_calls | distinct_tools | failed_calls | tool_loop_cost_usd | first_call_at | last_call_at |
|---|---|---|---|---|---|---|---|
| run_9021 | billing_reconciler | 17 | 2 | 8 | 0.84 | 12:02:11 | 12:06:48 |
| run_9154 | support_agent | 11 | 1 | 0 | 0.31 | 12:44:10 | 12:45:32 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 illustrative 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1ループ候補は、高い呼び出し数と非常に低いツールの多様性を組み合わせています。
- 2失敗した呼び出しは、明示的な再試行ループと、状態を決して進めない繰り返し成功した呼び出しとを区別します。
- 3コストと経過タイムスタンプは、ループの財務上の影響と遅延の影響を示します。
決定すべきエッジケース
- 一部のバッチ エージェントは、合法的に 1 つのツールを何度も呼び出します。エージェントのワークフローと予想されるアイテム数ごとにセグメント化します。
- ループのしきい値には、本番環境での最大実行時間または状態遷移を含める必要があります。
- ループを診断するために、生のツール引数や返された顧客コンテンツをログに記録しないでください。
推奨されるダッシュボード
- バー: tool_calls by run_id
- 統計: ループの疑いとそれに起因するコスト
- 表: 選択した実行のツールシーケンス、ステータス、および分類されたエラー
レシピを活用する
関連する機器とガイド
ソースデータを定義する
この分析のイベント スキーマ
分析を続ける
実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。