cagentにおけるセッション録画を用いた決定性AIテスト

投稿日 Jan 6, 2026

AIエージェントは従来のソフトウェアにはない課題、すなわち非決定性をもたらします。同じプロンプトでも実行ごとに異なる出力が出ることがあり、信頼できるテストが困難になります。APIコストや遅延が加わると、開発者の生産性は低下します。

cagentのセッション録画はこの問題に直接対応しています。AIのやり取りを一度録画し、無期限に再生すれば、同じ結果、APIコストゼロ、実行時間はミリ秒単位で済みます。

セッション録音の仕組み

cagentはHTTPモッキングの実証済み手法である VCRパターンを実装しています。録音中、cagentはAIプロバイダーへのリクエストをプロキシ送信し、リクエスト/レスポンスサイクル全体をキャプチャしてYAMLの「カセット」ファイルに保存します。リプレイ中、受信リクエストは録音と照合されキャッシュから提供されます—ネットワーク通話は必要ありません。

はじめ

セッションの記録には1つのフラグが必要です:

cagent run my-agent.yaml --record "What is Docker?"
# creates: cagent-recording-1736089234.yaml

cagent run my-agent.yaml --record my-test "Explain containers"
# creates: my-test.yaml

リプレイではカセット経路に --fake フラグを使用します:

cagent exec my-agent.yaml --fake my-test.yaml "Explain containers"

リプレイはAPI呼び出しなしでミリ秒単位で完了します。

注目すべき実装の詳細として、ツールコールIDはマッチング前に正規化されます。OpenAIは各リクエストでランダムなIDを生成し、そうでなければリプレイを壊す可能性があります。Cagentはこれを自動で処理します。

例:CI/CD統合テスト

コードレビューエージェントを考えてみましょう:

# code-reviewer.yaml
agents:
  root:
  model: anthropic/claude-sonnet-4-0
  description: Code review assistant
  instruction: |
	  You are an expert code reviewer. Analyze code for best practices,
	  security issues, performance concerns, and readability.
  toolsets:
  - type: filesystem

ツール呼び出しを自動承認するために --yolo とのやり取りを記録してください:

cagent exec code-reviewer.yaml --record code-review --yolo \\
  "Review pkg/auth/handler.go for security issues"

CIでは、APIキーやネットワークアクセスなしでリプレイします:

cagent exec code-reviewer.yaml --fake code-review.yaml \\
  "Review pkg/auth/handler.go for security issues"

カセットはテストコードと併用してバージョン管理が可能です。エージェント命令が大きく変わった場合は、カセットを削除して新しい挙動を捉えるために再録音します。

その他のユースケース

コスト効率の良いプロンプトの反復。高価なモデルで単一のインタラクションを記録し、その録音に対してエージェント設定を反復調整します。最初の実行にはAPIコストが発生します。その後の反復は無料です。

cagent exec ./agent.yaml --record expensive-test "Complex task"
for i in {1..100}; do
  cagent exec ./agent-v$i.yaml --fake expensive-test.yaml "Complex task"
done

問題の再現。ユーザーは --record bug-report とのセッションを録画し、カセットファイルを共有できます。サポートチームはデバッグのために、その正確なやり取りをローカルで再生します。

マルチエージェントシステム。録音は、ルートエージェントの決定、サブエージェントツール呼び出し、エージェント間通信など、完全な委任グラフを捉えます。

セキュリティおよびプロバイダーサポート

カセットは保存前に敏感なヘッダー(AuthorizationX-Api-Key)を自動的に剥がし、バージョン管理に安全にコミットできるようにします。この形式は人間が読みやすいYAMLです。

version: 2
interactions:
  - id: 0
    request:
      method: POST
      url: <https://api.openai.com/v1/chat/completions>
      body: "{...}"
    response:
      status: 200 OK
      body: "data: {...}"

セッション録画は、OpenAI、Anthropic、Google、Mistral、xAI、Nebiusなど、すべての対応プロバイダーで動作します。

今すぐ始める

セッション録音は現在Cagentで利用可能です。試す方法:

cagent run ./your-agent.yaml --record my-session "Your prompt here"

質問、フィードバック、機能リクエストは、 cagentリポジトリ を訪問するかGitHub ディスカッションに参加してください。

関連記事