◉CLAUDE LABEN
●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました●2.1.301 — vim の % モーション、VS Code パネルでの LaTeX 数式表示、使用量上限待ちのリトライ監視の上限が入りました(10/15)●2.1.299 — 200K トークン超で約54分放置した会話はアイドル圧縮。MCP の許可ルールは名指ししたサーバーだけに一致します●SONNET 4.5 — Claude API での提供終了は 11/30、残り45日。移行先は Sonnet 5.5●WINDOWS — 日本語の環境でだけフックが黙って壊れる報告があり、文字コードの確認が呼びかけられています●FAST MODE — Opus 5.5 の Fast mode がリサーチプレビューを終え、ベータヘッダーが不要になりました(10/15)●NEW — Cowork に渡したフォルダの先頭に、十行の約束ファイルを置いてみました
記事一覧/API & SDK
⬡ API & SDK/2026-04-24上級

Claude Agent SDK でシャドウモードを実装する — 本番影響ゼロでエージェント精度を測る段階的ロールアウト設計

AIエージェントを本番に出す前に精度を測りたい。でもユーザーに触れさせるしかない。この矛盾を解くのがシャドウモードです。Claude Agent SDK で既存フローに影響を与えずエージェントを並走させ、差分を記録し、段階的に昇格するまでの実装を解説します。

claude-agent-sdk6production87observability15shadow-moderollout

✦ プレミアム記事

「AI エージェントを本番に出したいけれど、精度が心配で踏み切れない」— この相談を受けるのは、もう何度目か分かりません。ログを見せてもらうと、エンジニアはみなオフライン評価のスコアを出し尽くし、スタッフの手元で動かし、同僚に触ってもらい、それでも「本番トラフィックで壊れないか」の最後の一歩を越えられずにいます。

私自身、Claude Agent SDK を使って業務アシスタントを本番投入したとき、同じ壁にぶつかりました。評価データセットでは高い精度が出るのに、本番リクエストには評価では想定しなかったパターンが必ず混ざります。ユーザーに影響を与えずに「本番と同じ入力」を食わせて精度を測る手段が必要でした。その答えがシャドウモードです。いま思えば、私が怖かったのは精度の低さそのものではなく、「分からないまま出す」ことでした。

ここではClaude Agent SDK で構築したエージェントを、既存の処理に影響を与えないまま本番トラフィック上で並走させ、結果を記録・比較し、段階的に昇格させるまでの実装パターンを共有します。コード例はすべて、実際のプロダクトで運用できる粒度で書いています。

AI エージェントの本番投入で直面する「事前検証の壁」

オフライン評価は万能ではありません。評価データセットは過去のログや合成データから作られ、本番トラフィックの「裾野」を捉え切れないからです。特にエージェントのように複数ツールを呼び分ける構造では、入力の組み合わせ爆発が起き、評価データの10倍以上のパターンが本番で発生することも珍しくありません。

さらに評価指標そのものが曖昧になりがちです。「チャットの応答が正しい」とは何かを一意に決めるのは難しく、人手評価に頼れば時間とコストが跳ね上がります。私が関わった案件では、評価100件に対して2日の工数がかかり、リリース判断が常にボトルネック化していました。

ここで伝統的な A/B テストに逃げたくなりますが、エージェントの場合は初動のリスクが大きすぎます。たとえば「メール返信をエージェントが代行する」機能で1% のトラフィックに割り当てた結果、その1% のユーザーに見当違いの返信が届いたら、信頼回復は容易ではありません。リスクが顕在化してから切り戻す A/B テストは、この領域では遅すぎるのです。

必要なのは「本番と同じ入力を食わせるが、ユーザーには影響を与えない」第3の選択肢です。それがシャドウモード — 既存の処理を正とし、エージェントを並走させて結果のみ記録する構造です。

シャドウモードの設計思想

シャドウモードの核にある考え方は単純で、「判定はするが適用はしない」というものです。既存のワークフロー(ルールベースでもヒト処理でも)が本番の結果を決め、エージェントはそれと同じ入力を受け取って独自に判断し、判断結果だけをログに残します。

この構造には3つの利点があります。第一に、ユーザー体験に影響がゼロであること。エージェントが誤った判断をしても、本番の出力には反映されません。第二に、本番と同じ入力分布に触れられること。テストデータではなく、ユーザーから今この瞬間に届いているリクエストを使って精度を測れます。第三に、オフライン評価では得られない「実運用データに基づく改善ループ」を回せること。乖離したケースを次のプロンプト改善や fine-tune データに直接フィードバックできます。

一方で代償もあります。最大の代償はコストです。本番トラフィックの全量(または大きなサンプル)にエージェントを走らせるため、Claude API の利用料が倍増します。月1,000万リクエストの全量を並走させれば、請求額は「リクエスト数 × 1件あたりのトークン × 単価」でそのまま膨らみます。実際の見積もりは、落とし穴セクションのスクリプトで確かめられるようにしました。

もう一つの代償は観測可能性の負荷です。エージェントの判断を記録すると、1リクエストあたり数 KB のログが発生します。既存のログ基盤が耐えられるか、ストレージコストが許容範囲か、事前の試算が必要です。

設計思想としてもう一つ強調しておきたいのが、「シャドウは評価基盤ではなく、運用基盤である」という点です。オフライン評価はモデルや学習の性能を測る目的で行われますが、シャドウは「この会社の本番運用でどう振る舞うか」を測る仕組みです。評価データセットには現れない祝日の問い合わせ波、顧客の口調の変化、季節性を持つ問い合わせカテゴリなど、運用特有の要因がすべて入ってきます。この違いを意識すると、シャドウで集めたデータを評価データセットに逆流させる改善サイクルが回り始めます。

私はこの設計を「既存プロセスへの無侵襲(non-invasive)な観測」と呼んでいます。本番の挙動を一切変えないまま、エージェントがいた場合どうなったかを仮想的に記録する — この性質が、本番投入前の最終検証として機能します。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦『エージェントを本番に出したいが精度が怖くて出せない』状況から抜け出し、影響ゼロで測定を始められるようになる
✦シャドウ実行・差分記録・乖離検知までの実装スケルトンを手に入れ、明日から自分のシステムに組み込める
✦シャドウ → カナリア → フル展開の段階的昇格基準を数値で持てるようになり、チーム内の『出していいか』議論に終止符を打てる
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ API & SDK2026-05-07
Claude Agent SDK の Transactional Outbox 実装 — 「副作用の取りこぼし」を本番でゼロにする設計
Claude Agent SDK で発生する「DBには書かれたのにメール/決済/通知が飛ばなかった」事故を防ぐため、Transactional Outbox パターンを Postgres と Cloudflare Queues を例に本番品質で実装する手順をまとめます。
⬡ API & SDK2026-05-01
Claude API のテレメトリを ClickHouse に流して分析する — 本番環境のコスト・遅延・エラーを可視化する設計ガイド
Claude API のリクエスト単位でコスト・遅延・トークン使用量を ClickHouse に蓄積し、Materialized View でリアルタイムダッシュボードを構築する本番運用設計を解説します。
⬡ API & SDK2026-04-29
Claude API のセマンティックキャッシュを本番投入する — 類似プロンプト判定としきい値設計、汚染防止
類似プロンプトへの応答を再利用するセマンティックキャッシュをClaude APIの本番に組み込む設計を一気通貫で解説します。embeddingと類似度しきい値の決め方、マルチテナント分離、キャッシュ汚染を防ぐガード層、フォールバックと劣化モード、プロンプトキャッシュとの重ね方、効果を測る観測性の指標まで踏んだ地雷とともに紹介します。