blog.dopana

Back

例えば、旅行の計画を立てるために個人アシスタントを雇ったとします。アシスタントは、あなたを一瞬で目的地にテレポートさせるような魔法は使えません。彼らはフライトを調べ、ホテルの空き状況を確認し、価格を比較し、旅程の草案を書き、地元の同僚におすすめのレストランを尋ねるなど、様々なステップを踏んでタスクをこなします。

もし彼らがタスクの途中で失敗し、「すみません、ホテルの空きがありませんでした」とだけ報告してきたら、あなたはその理由を知りたいと思うはずです。日付を間違えて検索したのか?調べるホテルを間違えたのか?それとも、同じフライトを何度も確認する無駄なループに時間を費やしすぎてしまったのか?

AIエージェント(AI Agent)の開発や運用も、これとまったく同じです。エージェントがタスクの実行に失敗したとしても、HTTPのステータスコードとしては「200 OK」を返すことがあります。しかし、実際にはその裏で、誤ったツール(Tool)を選択していたり、古いコンテキストをサブエージェントに渡していたり、コストのかかる無限ループに陥っている可能性があるのです。

これまで、エージェントの「頭の中(思考プロセス)」を覗き見ることは非常に困難でした。本日、Cloudflareはこれを解決するためのプラットフォーム Cloudflare Agents と、その最初の機能である Agent Tracing を発表しました。

AIエージェントの「ブラックボックス」問題#

従来のアプリケーション監視ツール(APM)は、通常のWebアプリにおいては非常に強力です。データベースのクエリが遅いことや、APIコールが失敗したことをすぐに教えてくれます。しかし、AIエージェントの動きは本質的に異なります。コードが直線的に実行されるのではなく、エージェント自身の判断でループを回りながら自律的に決定を下すからです。

graph TD
    User([ユーザーのリクエスト]) --> Agent[AI Agent Worker]
    subgraph "Cloudflare Agents Dashboard"
        Agent --> |"1. 思考 (Reasoning)"| Thought["Thought / Messages タブ"]
        Agent --> |"2. ツールの実行 (Action)"| Tool["Tool Execution / Traces タブ"]
        Tool --> |"状態の読み取り"| D1[(D1 データベース)]
        Tool --> |"データの取得"| Fetch[外部API]
        Agent --> |"3. サブエージェントへの委譲"| Subagent[Subagent Worker]
    end
    Agent --> Response([最終的なレスポンス])

エージェントが誤った判断を下した際、単にデータベースの応答時間を見るだけでは、「なぜそのクエリを実行しようとしたのか」という理由までは分かりません。デバッグには、エージェントの思考プロセス、ツールの引数、プロンプトの履歴、そして消費された実際のトークン数やコストを追跡する必要があります。

Cloudflare Agents の概要#

Cloudflareは、すでにAIエージェントを動かすための強力な土台を備えています。サーバーレス実行環境(Workers)、状態を保持するストレージ(Durable Objects、KV、D1)、そしてLLMを推論する環境(Workers AI)です。

新しく登場した Cloudflare Agents は、これらすべてのコンポーネントを統合されたオブザーバビリティ(可観測性)プラットフォームとして結びつけます。Cloudflareのダッシュボードに専用の Agents ビューが追加され、以下の2つの方法で動作を可視化できます。

1. Messages タブ(会話の再現)#

エージェントの各ターンの「フライトレコーダー」として機能し、以下をビジュアルで再現します。

  • システム指示(System Instructions)とユーザーのメッセージ。
  • LLMの生の思考プロセス(Thinking)。
  • 実行された具体的なツール名、渡された引数、および実行結果。
  • サブエージェントへの処理の引き継ぎ。

[!NOTE] プライバシーにも配慮されています。個人情報や機密データを扱う場合、Think、Flue、AI SDKなどのフレームワーク側で storeMessagesstoreTools のオプションをオフにすることで、会話やツールのペイロード保存を無効化できます。

2. Traces タブ(実行ウォーターフォール)#

リクエストのタイムラインを表示し、エージェントの上位ロジックとインフラのパフォーマンスを紐づけます。

  • LLMの思考にかかった時間。
  • どのツールがD1データベースの読み取りやKVの検索を引き起こしたか。
  • 親エージェントの下でサブエージェントの呼び出しがどのようにネストしているか。

Agent Tracing の有効化方法#

設定は非常に簡単です。

ステップ 1: wrangler.jsonc でのトレース有効化#

Workerの設定ファイルにオブザーバビリティの設定を追加します。

wrangler.jsonc
{
  "observability": {
    "enabled": true,
    "head_sampling_rate": 1
  }
}
json

ステップ 2: コードの実装#

使用しているスタックに応じて、以下の設定を行います。

A. Think / Flue フレームワークの場合#

これらのフレームワークは標準でエージェントのテレメトリに対応しています。有効化するだけで、会話、ターン、モデル、ツールのスパンが自動的に送信されます。

B. Vercel AI SDK の場合#

Vercel AI SDKを使用している場合は、Cloudflareが提供するアダプターでラップします。

index.ts
import { wrapAISDK } from '@cloudflare/ai-sdk-opentelemetry'; // [!code focus]
import { generateText } from 'ai';

// モデルプロバイダーの初期化をラップします
const ai = wrapAISDK(yourModelProvider); // [!code focus]
ts

C. 独自の実装(Custom Harness)の場合#

独自のカスタムエージェントを作成している場合は、OpenTelemetryのGenerative AIセマンティックコンベンションに従ってカスタムスパンを手動で追加できます。

[!TIP] Cloudflareは現在、Workers内部でOpenTelemetry APIを直接サポートする開発を進めています。これが完了すると、標準的なOTel GenAIセマンティックコンベンションを使用するすべてのフレームワークが、Cloudflare専用アダプターなしでそのまま動作するようになります。

料金とベータ期間のスケジュール#

  • ベータ期間中: Agent Tracingは完全に無料で利用できます。
  • 2026年10月1日以降: 料金は既存の Workers Observability の料金体系に統合されます。
    • Workers Free: 1日あたり200,000イベント(リテンション期間 3日間)。
    • Workers Paid: 月あたり2,000万イベント付属、超過分は100万イベントあたり$0.60(リテンション期間 7日間)。

今回のAgent Tracingは始まりに過ぎません。Cloudflareは、トレースデータを開発プロセスにフィードバックし、AIエージェントが自律的に自身を改善していく仕組みづくりを目指しています。

参考文献#