ステップごとのレイテンシとコスト
各ノードのトークン使用量と経過時間を測定し、遅くて高コストなステップを見つけます。
「ステップごとのレイテンシとコスト」はCoddyKit上の無料AI Agentsレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAI Agents学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AI Agentsコースには全4レッスンが含まれています。
ステップごとのメトリクスが必要な理由
合計レイテンシと合計コストからは、システムが遅い、または高コストだということは分かりますが、どのステップが遅いのか、高コストなのかは分かりません。問題を解決するには、ステップごとの計測が必要です。
レイテンシを記録する
すべてのスパンに追加します:
start = time.time()
# ... do work ...
span.duration_ms = (time.time() - start) * 1000レイテンシの分類
エージェントでよくある遅いステップ:
- LLM呼び出し — 500ms〜10秒
- Web検索 — 200ms〜2秒
- Embedding — 50ms〜200ms
- DBクエリ — 5ms〜500ms
コストを記録する
LLMのステップでは、トークン数に価格を掛けます:
PRICES = {
'gpt-4o-mini': {'in': 0.150 / 1e6, 'out': 0.600 / 1e6},
'gpt-4o': {'in': 2.50 / 1e6, 'out': 10.00 / 1e6},
'claude-sonnet-4-5': {'in': 3.00 / 1e6, 'out': 15.00 / 1e6}
}
def compute_cost(model, tokens_in, tokens_out):
p = PRICES[model]
return tokens_in * p['in'] + tokens_out * p['out']
cost = compute_cost('gpt-4o-mini', 1000, 500)
print(f"Cost for 1000 in / 500 out tokens on gpt-4o-mini: ${cost:.6f}")
トレース単位に集計する
スパンをトレースレベルまで合計します:
def trace_metrics(spans):
return {
'duration_ms': sum(s.duration_ms for s in spans),
'cost_usd': sum(s.cost_usd or 0 for s in spans),
'tokens': sum((s.tokens_in or 0) + (s.tokens_out or 0) for s in spans),
'step_count': len(spans)
}
from types import SimpleNamespace
spans = [
SimpleNamespace(duration_ms=120, cost_usd=0.002, tokens_in=100, tokens_out=50),
SimpleNamespace(duration_ms=340, cost_usd=0.005, tokens_in=200, tokens_out=80),
]
print(trace_metrics(spans))
p50 / p95 / p99
平均値だけを見ないでください。エージェントのレイテンシは裾の重い分布になるため、パーセンタイルを報告します:
import numpy as np
durations = [t.duration_ms for t in last_1000_traces]
print('p50:', np.percentile(durations, 50))
print('p95:', np.percentile(durations, 95))
print('p99:', np.percentile(durations, 99))ユーザーごとのコスト
user_idごとに1日のコストを合計します:
SELECT user_id, SUM(cost_usd) AS daily_cost
FROM traces
WHERE created_at::date = current_date
GROUP BY user_id
ORDER BY daily_cost DESC
LIMIT 100ステップ名ごとのコスト
コストの大部分を占めているステップはどれでしょうか?名前ごとにグループ化します:
SELECT name, SUM(cost_usd) AS total
FROM spans
WHERE trace_id IN (SELECT id FROM traces WHERE created_at::date = current_date)
GROUP BY name
ORDER BY total DESCレイテンシのウォーターフォール
1つのトレースについて、スパンをガントチャート形式のウォーターフォールとしてプロットします。最も長いバーがボトルネックです。
ほとんどのトレーシングUIでは、これが自動的に描画されます。
外れ値をアラートする
- p95レイテンシが前週比で2倍になったらアラートする
- 1日のコストが通常の2倍を超えたらアラートする
- 特定のユーザー1人のコストが1日あたり$Xを超えたらアラートする
2つのモデルを比較する
ステップごとのメトリクスを使うと、モデルをA/B比較できます:
# Run 100 traces with gpt-4o-mini and 100 with haiku
# Compare p95 latency and average cost
# Pick the winner for the use case
print("Run 100 traces with gpt-4o-mini and 100 with haiku")
print("Compare p95 latency and average cost")
print("Pick the winner for the use case")
トークン分布を追跡する
入力トークンと出力トークンのヒストグラムから問題が分かります。たとえば、常にmax_tokensに到達している場合、出力が切り詰められている、つまりバグがある可能性があります。
パーセンタイルを使う理由
平均値ではなくp95レイテンシを報告するのはなぜでしょうか?
まとめ
ステップごとのレイテンシとコストをトレース単位、ユーザー単位に集計し、平均値ではなくパーセンタイルを使い、外れ値をアラートします。これがダッシュボードの基盤です。
よくある質問
「ステップごとのレイテンシとコスト」レッスンは無料ですか?
はい。「ステップごとのレイテンシとコスト」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AI Agentsコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AI Agentsコースには全4レッスンが含まれています。
「ステップごとのレイテンシとコスト」で何を学びますか?
各ノードのトークン使用量と経過時間を測定し、遅くて高コストなステップを見つけます。 ブラウザで直接実行するハンズオンコードでAI Agentsを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AI Agentsを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAI Agentsは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「ステップごとのレイテンシとコスト」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAI Agentsレッスンでコードを書いて実行できますか?
はい。すべてのAI Agentsレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。