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 とのセッションを録画し、カセットファイルを共有できます。サポートチームはデバッグのために、その正確なやり取りをローカルで再生します。
マルチエージェントシステム。録音は、ルートエージェントの決定、サブエージェントツール呼び出し、エージェント間通信など、完全な委任グラフを捉えます。
セキュリティおよびプロバイダーサポート
カセットは保存前に敏感なヘッダー(Authorization、 X-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 ディスカッションに参加してください。