0Pricing
AI Agents · レッスン

ステップごとのレイテンシとコスト

各ノードのトークン使用量と経過時間を測定し、遅くて高コストなステップを見つけます。

「ステップごとのレイテンシとコスト」は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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. エージェントにトレーシングが必要な理由
  2. ツール呼び出しと入出力のロギング
  3. ステップごとのレイテンシとコスト
  4. エージェント実行の可視化(Langfuse、LangSmith)
← AI Agentsに戻る