CLAUDE LABEN
SUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日です。残り2日となりましたLATEST — 最新は8月13日の v2.1.231 です。事前登録済み OAuth クライアントを使う MCP サーバーでのサインイン失敗が直っていますRESUME — 8月12日の v2.1.229 で、`claude remote-control --continue` により直近の Remote Control セッションを再開できるようになりましたSTREAM — 長い思考の待ち時間にストリーミングが idle timeout で切れる問題に対し、SSE の keepalive ping が追加されました。Vertex・Bedrock 構成で効きますSELFHOST — 8月7日の v2.1.224 で `claude self-hosted-runner` コマンドが加わり、セルフホスト環境を扱えるようになっていますMCP — MCP SDK の月間ダウンロードが4億回を超えました。今年に入って4倍で、コネクタディレクトリのサーバーは950本を上回りますSUNSET — 旧 Workbench と実験的プロンプトツール API の廃止は8月17日です。残り2日となりましたLATEST — 最新は8月13日の v2.1.231 です。事前登録済み OAuth クライアントを使う MCP サーバーでのサインイン失敗が直っていますRESUME — 8月12日の v2.1.229 で、`claude remote-control --continue` により直近の Remote Control セッションを再開できるようになりましたSTREAM — 長い思考の待ち時間にストリーミングが idle timeout で切れる問題に対し、SSE の keepalive ping が追加されました。Vertex・Bedrock 構成で効きますSELFHOST — 8月7日の v2.1.224 で `claude self-hosted-runner` コマンドが加わり、セルフホスト環境を扱えるようになっていますMCP — MCP SDK の月間ダウンロードが4億回を超えました。今年に入って4倍で、コネクタディレクトリのサーバーは950本を上回ります
記事一覧/Claude Code
Claude Code/2026-07-01上級

AIが出した数値と出典を、そのまま受け入れない — 検証専任サブエージェントで突き合わせるゲート設計

エージェントが生成した要約の数値と出典を、生成とは別の検証専任サブエージェントで確かめてから受け入れるゲート設計です。主張をクレーム台帳として取り出し、数値は関数で再計算、引用は原文との文字列照合で確認する構成を、動くTypeScriptのコードとともにまとめました。

Claude Code220サブエージェント13検証3自動運用17Claude Agent SDK13

プレミアム記事

Claude Science の発表で、調整役のエージェントが専門エージェントを呼び出し、さらに「引用と計算を検証する専任のエージェント」を挟む、という多段構成が紹介されていました。私が一番目を留めたのは新しいスキルの数ではなく、この「検証を独立した役割として分ける」という発想でした。

私自身、個人開発で一人で複数サイトの自動処理を回しています。ある朝、生成された集計サマリに「前週比 +18%」と書かれていて、けれど手元の生データを電卓で足し直すと実際は +8% でした。モデルはもっともらしい数値と、それらしい出典表記を、驚くほど自然に作ります。そして要約と原データが静かにズレても、要約だけを眺めているかぎり誰も気づきません。この一件以来、私は「生成物の数値と出典を、生成したのと同じ流れの中で信じてしまう」構造そのものを疑うようになりました。

ここからは、生成と検証を明確に分け、数値は決定論的に再計算し、出典は原文と文字列で突き合わせ、1つでも通らなければ全体を却下する——そういう受け入れ前のゲートを、動くコードで組んでいきます。

なぜ「生成の続き」で検証してはいけないのか

失敗が起きるのは、生成したモデルにそのまま「合っていますか」と尋ねてしまうときです。同じ文脈・同じ思考の流れの中で自己点検させると、モデルは自分が直前に出した数値を正しい前提として扱いがちで、ズレを見落とします。人間でいえば、自分の書いた原稿を書いた直後に自分だけで校正するようなものです。

検証を独立させる価値は、次の3点に集約されます。

第一に、文脈の分離です。検証は「生成物」と「一次データ・出典」だけを入力に取り、生成時の思考を引き継ぎません。第二に、判定の決定論化です。数値は言語モデルに再確認させるのではなく、生データから関数で計算し直します。第三に、fail-closedです。検証できなかった主張は「たぶん正しい」ではなく「不合格」として扱い、通せない主張が1つでもあれば成果物ごと止めます。

主張を粒度で取り出す(クレーム台帳)

まず、要約という自由文のままでは検証できません。要約から検証可能な最小単位——数値主張と出典主張——を構造化して取り出します。生成エージェントには、要約と同時にこの「クレーム台帳」を必ず併せて出させます。

// claims.ts — 検証可能な主張の型
export type NumericClaim = {
  id: string;
  kind: "number";
  statement: string; // 人が読む主張文(要約中の該当箇所)
  metric: string;    // 再計算に使う指標キー
  value: number;     // モデルが主張した値
  tolerance?: number; // 相対許容誤差(省略時は既定値)
};
 
export type CitationClaim = {
  id: string;
  kind: "citation";
  statement: string;
  quote: string;     // 出典に存在するはずの引用文字列
  sourceId: string;  // 突き合わせる原文の識別子
};
 
export type Claim = NumericClaim | CitationClaim;
 
export type Artifact = {
  summary: string;
  claims: Claim[];
};

ここで大切なのは、value を「モデルが主張した値」として保持する点です。検証側はこの値を信じず、あとで自分で計算した値と照合します。台帳は成果物の付属物ではなく、検証の入力そのものになります。

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

この記事の続きを読む

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

この記事で得られること
生成物の数値を「決定論的に再計算」して突き合わせる検証関数の実装(許容誤差つき)
出典の引用文字列を正規化して原文スニペットに存在するか照合する fail-closed な照合ロジック
検証専任サブエージェントと決定論チェックを役割分担させ、1つでも落ちれば全体を却下するゲートの組み方
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

Claude Code2026-07-17
夜間に回した並列サブエージェントの記録が、追えなくなった — --forward-subagent-text で増えたログを絞り直す
サブエージェントのテキストと思考を stream-json へ流せるようになった一方で、無人実行のログ量は跳ね上がります。実測値をもとに、事後解析に効く記録だけを残す3層の保存方針と相関IDの設計をまとめました。
Claude Code2026-08-07
権限モードを変えても止まらない書き込み — サブエージェント用 PreToolUse ゲートを150通りで測る
ワークフローのサブエージェントによるファイル編集は、セッションの権限モードに関わらず自動承認されます。残る境界である agent_id / agent_type ベースの PreToolUse フックを150通りのペイロードで測り、素通りしていた54件の内訳と、フェイルクローズへ寄せた実装を共有します。
Claude Code2026-07-18
headless の Claude Code を止めたのに、ビルドだけが生き残っていた — exit 143 を前提に停止処理を設計する
headless モードの Claude Code が Bash 実行中に SIGTERM を受けると、コマンドのプロセスツリーが孤児化していました。2.1.212 の修正で挙動は exit 143 に変わります。この契約を前提に、監督スクリプトと後片づけを設計し直す手順をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →