# 米イラン戦争はどこへ向かうのか――AI Agentに相互検証させて、判断を下した

> 米イラン戦争はどう展開するのか。GrokとPerplexity、Claudeの三層分業で相互検証し、両陣営の財務データを入手した。イランが被った損失は開戦前のGDPの約四割、アメリカの直接軍費はGDPの約0.15%。これは消耗戦だが、時間は一方的にアメリカの味方をしているわけではない。三層分業の方法、検証用プロンプトジェネレーター、インストール可能なcross-check skillも記事内に掲載している。

- Author: Paul Kuo（郭曜郎）
- Date: 2026-07-16
- Pillar: 知性と秩序 / Intelligence & Order
- Tags: 米イラン戦争, マルチAgent協働, ファクトチェック, 消耗戦, Grok, Perplexity, ホルムズ海峡
- Canonical: https://paulkuo.tw/ja/articles/verify-news-with-ai-agents/
- Language: Japanese (日本語)
- Translation: AI-translated from the zh-Hant (Traditional Chinese) original
- Original (zh-Hant): https://paulkuo.tw/articles/verify-news-with-ai-agents.md
- Site index for LLMs: https://paulkuo.tw/llms.txt

---

*本稿は最新の戦況に合わせて、出来事の時系列と原油価格データを随時更新している。直近の更新日は上部の「最終更新」を参照。*

> **TL;DR** 米イラン戦争の行方を判断するため、手元のAI Agentに相互検証をさせ、両陣営の検証可能な財務データを入手した。判断：これは二つの時計が刻む消耗戦であり、イランの財政破綻時計の方が速く進んでいるが、アメリカも選挙・油価・迎撃ミサイル在庫に追われている。方法（三層分業＋検証プロンプトジェネレーター）とすべての出典は記事内にある。

<div class="listen-summary" style="margin:1.25rem 0;padding:0.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-section);">
  <div style="font-size:0.9rem;font-weight:600;color:var(--text-secondary);margin-bottom:0.5rem;letter-spacing:0.02em;">▶ 要約を聴く</div>
  <audio preload="none" controls style="width:100%;display:block;">
    <source src="https://audio.paulkuo.tw/verify-news-with-ai-agents-ja.mp3" type="audio/mpeg" />
    お使いのブラウザは音声再生に対応していません。<a href="https://audio.paulkuo.tw/verify-news-with-ai-agents-ja.mp3">音声をダウンロード</a>してください。
  </audio>
  <div style="font-size:0.75rem;color:var(--text-secondary);opacity:0.75;margin-top:0.4rem;">AI合成音声・著者本人の声のクローン</div>
</div>

今朝ずっとGrokで国際ニュースを追っていた。一ターン回答するたびに、横に出典が増えていく。30 sources、42 sources、55 sources……ところが二十数ターンの会話を一枚のレポートにまとめるよう頼んだとき、出典欄に残ったのはこの一行だけだった。

> **出典**：公開報道、公式声明、歴史的事例の参照

リンクはゼロ。記事名もゼロ。日付もゼロ。さっきまで見えていた数百の出典は、最終レポートに一つも入っていなかった。

この米イラン衝突を追っているのは、AIを試したいだけではない。本当に知りたいのは「この戦争はどこへ向かうのか」だ。そして判断を下すには、手元の情報が検証可能でなければならない。

この記事の前半では、三つのAgentがどう分業し、誤りがどの工程で最も起きやすいかを解体する。後半では、検証済みの財務データをもとに戦争の行方について判断を示す。この記事は「[AIと人間の秩序](/ja/topics/ai/)」シリーズの一部だ。

## 三層分業：誰が何を担うか

結論から言う。マルチAgentの検証とは、同じ問いを複数のモデルに投げてその答えの共通項を取ることではない。本当に有効なのは、性質の異なる三つの作業を分離することだ。

| 層 | 作業 | 求められる能力 | 今回の実測結果 |
|---|---|---|---|
| **検索** | 事実を広く・新しく・多ソースで引き出す | リアルタイム検索、複数ターンの追い続け | データの大半は正確 |
| **整理** | 会話を構造化されたものに収束させる | 長文の組織力 | **三つのモデルすべてがここで誤った** |
| **検証** | 各主張が一次ソースに追跡できるか確認する | 強い推論力＋リンクを実際に開く | 三つの明確な誤りを検出 |

重要なのは、整理と検証は別の役割が担わなければならないという点だ。検証Agentが前の層の推論過程を先に読んでしまうと、同じ語りに乗って進みやすくなる。三層を三つの異なるブランドのモデルに担わせる必要はない。同じAIで三つの独立した会話を開いてもいい。最初で情報を探し、次で整理し、三つ目では成果物だけを見て逐条検証する。重要なのは使ったモデルの数ではなく、三つの役割を混在させないことだ。

## 第一層：検索。予想より信頼できる

今回の実測の目的は、Grokが信頼できないと証明することではない。たとえばGrokは、シンガポール船籍のコンテナ船 Ever Lovely が6月25日にオマーン沖で無人機攻撃を受け、ブリッジが損傷したが人的被害はなかったと述べていた。この情報は[gCaptainの詳細レポート](https://gcaptain.com/drone-strike-on-ever-lovely-exposes-the-fiction-of-a-free-strait/)で確認できる。

「イランの経済損失は1,440億ドル、開戦前GDPの約四割に相当する」という一見衝撃的な数字も、モデルの捏造ではなく、[FDDの試算](https://www.fdd.org/analysis/2026/06/26/irans-economic-catastrophe/)に由来する。数十ターン追い続けた後も、船名・死傷者数・価格データの大半は具体的な出典に戻れた。少なくとも今回のテストにおいて、検索層の精度は当初の予想より高かった。

**この層での操作のポイント**：GrokやPerplexityのようにリアルタイム検索機能を持つモデルを選び、追い続けることだ。一度しか聞かなければ、たいていは表層の出来事の要約しか得られない。立場を変えて問い、数字の妥当性を問い、別の解釈があるか問う。そうして初めてデータが展開する。

## 第二層：整理。AIが最も誤りを犯す層

問題が現れたのは、二十数ターンの会話をレポートにまとめるよう頼んだ後だ。以下、このプロセスを「圧縮」と呼ぶ。レポートの時系列はここから始まっていた。

> **6月17日**：米・イラン間で暫定停戦覚書（MOU）に調印

実際には、戦争は[2月28日に始まり](https://www.fdd.org/analysis/2026/04/23/evaluating-the-economic-damage-to-iran-from-operation-epic-fury-an-initial-estimate/)、3月4日に海峡が閉鎖された。4月に短期停戦があり、その後封鎖が再びエスカレートして、6月17日にようやく覚書が締結された。ところがGrokのレポートは6月17日から始まっており、それ以前の約四ヶ月が背景情報として圧縮されていた。これが後続の数字から文脈を奪った。1,440億ドルは2月28日の開戦以降に積み上がった推計だが、前段の数ヶ月の戦闘と封鎖が説明されていなければ、読者はこの損失がどのように形成されたかを理解しにくい。覚書の核心条項も抜け落ちていた。[海峡は60日間無料通航を維持し、期限後に管理権を再交渉する](https://www.cnbc.com/2026/06/17/iran-mou-deal-strait-hormuz-oman-toll.html)という内容で、本当の争点はその曖昧な文言の中に潜んでいる。

落とすことより注目すべきは、元々あった留保の語気が整理の過程でどのように消えていくかだ。会話の中で「停戦を先に破ったのはどちらか」と聞いたとき、Grokはこう答えた。

> 端的に言えば、先に撃ったのはイランだ。**これはアメリカとほとんどの欧米報道のコンセンサスだ。**

この一文は立場を示し、その立場の適用範囲も示していた。「イラン側はどう言っているか」と追い続けたら、革命防衛隊の見解も提示した。そしてレポートにまとめるよう頼んだ。第五節はこうなっていた。

> **結論**：**イランが先に撃った**のが停戦協定破棄の元凶だ。

「アメリカとほとんどの欧米報道のコンセンサス」は消え、「元凶」という言葉が入った。これは実際には争いがある事実だ。7月8日にはイラン外務省が逆にアメリカ側が協定を破ったと非難している。**AIの幻覚は、モデルが情報を根拠なく捏造することだと理解されがちだが、今回出会ったのは捏造ではなかった。条件の消失だ。立場・範囲・留保を伴っていた一文が、圧縮されて確定的な結論になった。** 元のデータは本物だったが、整理のプロセスが元々の留保の語気を取り除いた。このタイプの誤りは捏造より察知しにくい。捏造はたいていソースが見つからないので警戒しやすいが、留保の語気が消えた後は出来事自体は確認できるため、読者はそのまま通してしまう可能性がある。

次に、Grokのレポートをまとめ直すようPerplexityに渡した。Perplexityは重要な骨格を多数補った。完全な時系列、60日間無料通航条項、[Bruegelによる通行料の実質的負担者の分析](https://www.bruegel.org/sites/default/files/2026-04/could-a-hormuz-toll-solve-the-oil-crisis-and-who-pays%3F-12083_4.pdf)、UNCLOSの法的争点、IEAによる代替パイプライン容量の試算だ。さらに重要なのは、それらに追跡可能なリンクが付いていた点だ。PerplexityはGrokの通行料年収入の試算が約五倍低く見積もられていることも指摘した。

最後に、前の二つの資料をClaudeに渡して記事の初稿を書かせた。Claudeも三ヶ所で誤った。初稿はPerplexityに二つの誤りがあると指摘したが、逐一検証するとどちらの指摘も成立しなかった。最初の指摘は数字の誤りではなく、日付の消失だった。Perplexityは「ブレント原油は45%以上上昇し、35〜40ドル増加した」と書いており、Claudeはそれが直近の高値を現在の価格として誤記していると判断した。出典に戻ると、それはBruegelが4月8日に発表した原文の数字だった。本当の問題は、Perplexityがデータの日付を保持していなかったことだ。初稿はまた、Perplexityの「8月21日期限」に根拠が見つからないとも指摘したが、その日付は確認できた。[OFACが6月22日にGeneral License Xを発行し](https://ofac.treasury.gov/recent-actions/20260622_33)、イラン石油販売を60日間、つまり8月21日まで認可した。Perplexityは起算点の異なる二つの「60日間」を接続しただけだった。

三つ目の問題はより直接的だ。初稿の図表中、7月7日の油価を「約73ドル」と記載していたが、出典の原文には7月8日・76.48ドルとある。73という数字は存在せず、日付も一日ずれていた。

| 層 | 誤り | 性質 |
|---|---|---|
| Grok | 「ほとんどの欧米報道のコンセンサス」→「結論」 | 立場と留保の語気を落とした |
| Perplexity | Bruegelの4月のデータを7月の現状として扱った。OFACの8/21をMOUの時計に接続した | タイムスタンプの消失 |
| Claude | 確認できる日付を「根拠なし」と断言した。ソースのない価格データを補った | 確認せずに結論を出した |

三つのモデル、三種の脱落、しかしすべてが同一の失効点を指している。整理だ。複数のターンと複数のソースを一つの流暢なレポートに圧縮するとき、データの日付・情報源の立場・適用範囲・留保の語気が最も消えやすい。原文ではしばしば短い挿入句にすぎないが、信頼性の理解には欠かせない。ところが簡潔さと流暢さを追う過程で、最初に犠牲にされる。

**この層での操作のポイント**：データを次のAgentに渡すたびに、三つのものが必ず一緒に保持されているかを確認する。出典・タイムスタンプ・留保の語気だ。どれか一つが欠けると、次の層が確認しようとしても原文に正確に戻りにくくなる。

今回はPerplexityに対する見方も変わった。マルチAgentの流れでは省略できると思っていたが、今回のテストでその価値が見えた。整理段階で誤りがあっても、出典を保持しているため原文に追跡できる。対照的に、Grokのレポートにあった「一日当たり4.3億ドルの損失」には追跡可能な出典が付いておらず、どこから来た数字なのか今も確認できていない。

## 第三層：検証。四つの指示

初稿を最初に読んだとき、私は問題を一つも見つけられなかった。構造が完整で、語気が確信に満ちており、読んでいてあまりにもスムーズだったため、そのまま公開しそうになった。だがこの記事には私の名前が付いており、誤りに最終的な責任を負うのも私だ。

問題を発見したのは四つ目のAgentだった。前の会話と推論を読まず、成果物だけを受け取り、独立した検証者として機能した。前の数モデルとの最大の違いはシンプルだ。リンクを一つ一つ実際に開いた。渡した指示はただの四つで、実際に機能したのは三つ目だった。

**一、検証層は独立していなければならない。** 検証Agentに渡すのは成果物だけで、前の推論過程を先に読ませてはならない。読んでしまうと同じ線を延長する推論に陥り、原稿を追認するだけになる。サブエージェント機能があれば別の独立したAgentを立てる。チャットインターフェースだけなら全く新しいウィンドウを開き、成果物だけを貼り付け、前の推論過程は添付しない。

**二、問題を報告するだけで、直接修正しない。** 確認しながら書き直せば、原稿がどこで・いくつ誤ったのかが分からなくなる。まず完全な問題リストを残し、何を直すかは人間が決める。

**三、記憶で再述せず、出典を実際に開いて読む。** 今回日付と価格の誤りを検出できたのは、検証AgentがBruegelのPDFとOFACの公告を実際に開き、原文と一文一文を照合したからだ。既存の知識や検索の要約だけに頼らせていたら、これらの問題はそのまま通過していた可能性が高い。

**四、「問題を見つけることの方が、通過させることより重要だ」と明確に伝える。** そうしなければ、モデルは記事の完成を助けることが自分のタスクだと理解し、できる限り問題を洗い出すとは解釈しない。

<div class="cc-tool" id="ccTool">
  <div class="cc-head">
    <h3 class="cc-title">クロス検証プロンプトジェネレーター</h3>
    <p class="cc-sub">シナリオを選び、プロンプトをコピーして、使い慣れたAIに貼り付ける。空白に検証したい内容を入力すれば実行できる。</p>
  </div>
  <div class="cc-controls">
    <div class="cc-field">
      <label class="cc-label">シナリオ</label>
      <div class="cc-tabs" id="ccScene" role="tablist">
        <button class="cc-tab is-on" data-scene="news" role="tab">時事・国際情勢</button>
        <button class="cc-tab" data-scene="research" role="tab">調査・論文まとめ</button>
        <button class="cc-tab" data-scene="internal" role="tab">社内レポート・対外文書</button>
        <button class="cc-tab" data-scene="general" role="tab">汎用</button>
      </div>
    </div>
    <div class="cc-field">
      <label class="cc-label" for="ccTopic">検証したいテーマ（一文、任意）</label>
      <input class="cc-input" id="ccTopic" type="text" placeholder="例：2026年米イランホルムズ海峡衝突の経済的消耗分析">
    </div>
    <div class="cc-field cc-field-inline">
      <label class="cc-check"><input type="checkbox" id="ccLinks" checked><span>各リンクを実際に開いて原文を読むよう求める</span></label>
      <label class="cc-check"><input type="checkbox" id="ccStrict" checked><span>「問題を見つける方が通過させるより重要」を加える</span></label>
    </div>
  </div>
  <div class="cc-out">
    <div class="cc-out-head">
      <span class="cc-out-label">生成されたプロンプト</span>
      <button class="cc-copy" id="ccCopy" type="button">コピー</button>
    </div>
    <pre class="cc-pre" id="ccPre"></pre>
  </div>
  <p class="cc-note">
    このプロンプトの骨格は本記事の実測から来ている。三つの明確な誤りを検出した。最も効果があったのは「リンクを開いて原文を読む」という指示で、これを外すと効果は大きく下がる。
  </p>
</div>

レポートを受け取ったらそのまま鵜呑みにせず、結果に応じて分類する。

- `confirmed`：信頼できる出典に支持されている。保持してよい。
- `corrected`：原文に誤りがあることを明確に示す出典がある。修正すべきだ。
- `unverifiable`：現時点では確認できない。削除するか、出典を補うか、より保守的な表現に変えるかを検討する。
- `overreach`：事実自体は成立しているが、推論が証拠の支持できる範囲を超えている。表現を絞るべきだ。

もう一道の防線も必要だ。**検証Agent自体も誤る可能性がある。** 「原稿に誤りあり」と報告された項目は、やはり人間が出典を開いて確認しなければならない。今回のレポートには、Agentが自ら「これは私の推算であり、検証ではない」と明記した項目があった。本当に警戒すべきは、推算が検証済みの事実のように書かれることだ。Claude CodeまたはCoworkを使っている場合、この一連の流れをインストール可能なskillとして用意してある。「検証して」と言うだけで実行される。通常のチャットインターフェースを使っている場合は、上のプロンプトをそのままコピーすれば近い効果が得られる。

## 検証後にようやく戦況の情報が整う

検索・整理・検証の三層を経て初めて、この衝突の時系列と価格の変動が徐々に明らかになってきた。下の図の価格線はEIAの公式日次データで、検証が完了し出典に追跡できるイベントノードだけを残している。ノードをクリックすると詳細と出典が確認できる。

<div id="hormuz-oil-timeline"></div>

市場へのインパクトが最も激しかったのは3月から4月だ。海峡の通航が大幅に制限され、ブレント原油は約72ドルから126ドルまで上昇した。6月15日に合意が発表されると、単日で一時5.7%下落した。7月15日の9月物の決済価格は84.95ドルで、「衝突は再び激化しているが、海峡は完全封鎖には戻っていない」という市場の評価を反映している。今後いくつかの時点が注目される。MOUの無料通航期間は8月16日に期限を迎える。OFACの適用除外は当初8月21日まで継続する予定だったが、7月7日に前倒しで撤回され、清算期間は7月17日までしかない。一方、海峡は7月11日に再び閉鎖され、米軍も封鎖を再開した。トランプは7月14日、前日に提示した20%通過料の案を撤回した。

この図は単一モデルが一度で生成したものではない。価格線はEIAの公式スポット系列に接続しており、イベントのアンカーポイントは検索・整理・検証を経て残ったバージョンだ。最も重要な価値は変わっていない。すべてのイベントが具体的な出典に戻れ、価格の層については今やその全体が出典になっている。

## では、この戦争はどこへ向かうのか？

現時点で検証可能な財務データに基づけば、これは経済的消耗戦であり、二つの時計の競走だ。イランの時計の方が速く進んでいるが、アメリカの時計もカウントダウンしている。

前の三層の流れは、どのAIが優れているかを比較するためではなく、判断を支えられる数字を手に入れるためのものだ。

**イラン側の会計。** 開戦前、イランは一日あたり約210万バレルの原油を輸出していたが、5月には一時ゼロに近づいた。[FDDの試算](https://www.fdd.org/analysis/2026/06/26/irans-economic-catastrophe/)では封鎖期間中の一日当たりの損失は約4億3,500万ドル、開戦以来の累計損失は約1,440億ドルとされており、開戦前GDPの約四割に相当する。しかも著者はこれが上限ではなく下限だと明言している。公式統計のインフレ率は前年同期比[88.6%、食肉類は約178%](https://www.euronews.com/business/2026/06/30/irans-inflation-spiral-deepens-as-rial-slides-and-tensions-rise)に達し、リヤルは一年で約53%下落した。ワシントン・ポストが報じた[CIAの評価](https://www.iranintl.com/en/202605077807)（Iran International 経由）は、イランが「少なくとも3〜4ヶ月は持ちこたえられる」というもので、体制内の経済学者は封鎖が二、三ヶ月を超えると損害が急速に拡大すると見ている。

停戦の26日間に、イランは8,000万バレル以上の原油を急いで売り、60億ドル超を手にした。時計を少し巻き戻した形だ。しかし[7月17日以降](https://ofac.treasury.gov/recent-actions/20260707)、その合法的な売油の窓口も閉じた。

<div id="hormuz-strait-map"></div>

**アメリカ側の会計。** 公式口径では6月末までに[約300億ドル](https://www.airandspaceforces.com/omb-director-iran-war-cost-30b-supplemental/)を支出し、[CSISは340億〜420億ドルと推計している](https://www.csis.org/analysis/war-may-be-ending-what-did-epic-fury-cost)。そのうち弾薬費261億ドルが最大の項目だ。絶対額は小さくないが、一発当たりの交換比率はさらに厳しい。迎撃ミサイル一発は無人機の製造コストの数十倍だ。GDP比で大まかに比較すると、アメリカの直接軍費は現在GDPの約0.15%にすぎないが、イランが被った経済的損失は開戦前GDPの約四割に相当する。両者は口径が完全に一致するわけではないが、負担能力の巨大な差は明らかだ。核心は誰が少ない支出で済むかではなく、誰が支払い続けられるかだ。

**イランの軍事費はブラックボックスで、推算するしかない。** イラン側の弾薬消耗のドル換算を発表したシンクタンクは存在しないため、ここは本記事の推算であり、検証ではない。イランは約[1,500〜2,300発の弾道ミサイル](https://www.inss.org.il/publication/lions-roar-data/)（INSS、NBC/IDF、JINSAで集計が異なる）および[約4,400〜5,400機の自爆無人機](https://www.washingtoninstitute.org/policy-analysis/irans-drone-strategy-part-1-wartime-performance-and-adaptations)（代理勢力の発射を含む。集計方法により異なる）を使用したことが分かっている。公開されている単価の幅で粗く試算すると、作戦上の消耗は約10億〜50億ドルで、アメリカの直接軍費の十分の一程度だ。これがまさに低コスト消耗戦の設計だ。低い費用で相手に高価な迎撃ミサイルを消耗させる。

しかしイランにはもう一つ、より大きな帳簿がある。破壊された軍事資産だ。[FDDの試算](https://www.fdd.org/analysis/2026/04/23/evaluating-the-economic-damage-to-iran-from-operation-epic-fury-an-initial-estimate/)ではその再調達コストは約460億ドルとされており、FDDの実物再調達総額（約910億ドル）のほぼ半分にあたり、イランの4〜6年分の年間軍事費に相当する（[SIPRI口径](https://www.sipri.org/media/press-release/2026/global-military-spending-rise-continues-european-and-asian-expenditures-surge)で年約74億ドル）。弾薬消耗と損傷した軍事資産を合計すると、両陣営の軍事的な会計は近い量級に収まる可能性があるが、性質は全く異なる。アメリカが消耗しているのは、予算と生産能力を通じて補填できるキャッシュフローだ。イランが失ったのは、短期的に再建困難な資本ストックだ。

ただし、アメリカ側にも三つの時計がある。

**第一は迎撃ミサイルの在庫だ。** 七週間の作戦でPatriotの約半数、THAADの少なくとも半数を消費した。[2026年中に新しいTHAADの納入はなく](https://www.csis.org/analysis/last-rounds-status-key-munitions-iran-war-ceasefire)、補充は2027年まで待たなければならない。

**第二は中間選挙だ。** [58%の国民がこの戦争に反対しており](https://www.brookings.edu/articles/the-political-consequences-of-the-iran-war/)、ガソリンはガロン当たり2.98ドルから4.48ドル（5月中旬時点）に上昇し、戦争の請求書が有権者の家庭に直接届いている。

**第三は油価の緩衝余地だ。** [戦略石油備蓄は1983年以来最低水準まで低下しており](https://www.aljazeera.com/economy/2026/7/9/why-the-us-strategic-petroleum-reserve-matters-amid-us-iran-tensions)、油価を抑えるために使える政策手段は以前より少ない。

アメリカの行動もこの三つの時計と整合している。四ヶ月で三度停戦を求め、7月13日に提示した通過料案は一日のうちに撤回した。

だから私の推論はこうだ。**コストを負担する相対的な能力はアメリカがイランをはるかに上回っており、封鎖型の経済消耗戦はアメリカにとって持続可能だ。長引けば長引くほどイランに不利になる。ただし時間は一方的にアメリカの味方ではない。これはイランの財政破綻時計と、アメリカの選挙・油価・迎撃ミサイル時計との競走だ。どの時計が先に鳴るかで、戦争はそこで転換点を迎えるかもしれない。**

この判断には一つの境界線がある。7月中旬時点の検証可能な公開データの上に立っており、いくつかの重要な数字は今日現在も確認できていない。イランに残る動員可能な外貨準備高、7月8日の戦闘再開以降のアメリカの追加支出、7月のイランのインフレ率、いずれも信頼できる数字がない。どれか一つが明らかになれば、判断は修正が必要になる。それが前半の方法論が存在する理由だ。判断を下すことは終わりではない。判断はデータの上に乗っている。データが変われば、それに従って調整しなければならない。

## 問い続けるべき三つの問い

ツールと流れに加えて、検証の質を高めたのは、会話の中で繰り返した三つの問いだ。有料購読は一つも必要ない。「イラン側はどう言っているか」と聞いて初めて革命防衛隊の見解が補われた。「この死傷者数は妥当か」と聞いて初めて乗組員の編成と被弾位置を確認した。「自作自演の可能性はないか」と聞いて初めて別の仮説を正面から検討し始めた。

最もシンプルな形に整理すれば、三つの問いだ。**相手側はどう言っているか？この数字は妥当か？表面に見えるものとは別の何かである可能性はないか？**

これらの問いをモデルが自発的に提示するとは限らない。追い続けなければ、たいていは前のターンで形成された語りに沿って答え続ける。この三つの問いが第一層「追い続ける」の中身だ。

以前〈[知識管理は自律心ではなくパイプラインに頼る](/ja/articles/knowledge-pipeline-not-discipline/)〉で書いた。人間が手動で維持し続けることに長期的に依存するプロセスは、最終的に崩壊しやすいと。あのときはメモの整理について話していた。今回ファクトチェックに当てはめてみて、その結論は半分しか正しくなかったと気づいた。パイプラインはデータを運び、出典を保持し、Agentを自動的に派遣してリンクを一つ一つ開かせることもできる。しかし起動するかどうかは、最終的に誰かが決断しなければならない。

今日、私はその決断をしそびれるところだった。

## 誰もが素早く国際情勢を整理できるようになったとき、次の問いは何か

ツールはすでに整っている。一つの朝に三層の流れを走らせて手に入れたデータの量と分析の幅は、十年前なら記者がデータベース・シンクタンク・複数の取材を重ねてようやく作れた初期調査に近い。情報へのアクセスの敷居はもう驚くほど低い。

しかし参入の敷居は依然として一つだ。**この数字はどこから来たのか**、と一度多く問う意志があるかどうか。

AIを重ねても、この問いは自動的には解決しない。各層が前の層の結論を書き直しているだけなら、誤りはより流暢に・より構造的に・そのまま送信できる正式なレポートのように整理されていく。Grokのレポートの最後の行にはこう書かれていた。「本レポートは参考情報として提供されるものであり、投資または意思決定の助言を構成するものではありません。」免責事項まで学んでいた。ただ、出典を一緒に持ち歩くことはまだ学んでいない。

上の検証ツールは、今日私が自分のために補った一道の防線だ。これ以降、重要な記事はすべて一度通す。あなたもそのまま使っていい。

## よくある質問

**Q: マルチAgentの検証はどう分業するのか？**

三層に分ける。検索層は幅広さと即時性が求められ、ウェブ検索機能を持つモデルを使い、一度で終わらせずに追い続ける。整理層は会話を構造化されたものに収束させる。ここが最も誤りが出やすく、渡すときに出典・タイムスタンプ・留保の語気を必ず一緒に保持しなければならない。検証層は独立したAgentが担わなければならない。前の推論過程を読ませず、成果物だけを渡し、指示は「報告するだけ、修正しない」とし、各リンクを実際に開いて原文に当たることを求める。

**Q: 三つのAIを同時に購読する必要があるか？**

ない。三層を必ずしも三つの異なるモデルに担わせる必要はない。同じAIで三つの独立した会話を開けばいい。最初で情報を探し、次で整理し、三つ目では成果物だけを見て逐条検証する。重要なのは使ったモデルの数ではなく、三つの役割を混在させないことだ。

**Q: Grokのレポートの数字はどこまで本当か？**

船名・日付・死傷者数の大半は正確だった。Ever Lovelyが6月25日に無人機攻撃を受けたこと、MombassaとAl Bahiyahが7月13日に巡航ミサイル攻撃を受けたこと、1名死亡8名負傷（インド国籍6名・ウクライナ国籍2名・重傷4名）は逐一確認できる。1,440億ドルも捏造ではなく、FDDの試算に由来する。ただしFDDが示したのは500億〜3,000億ドルの幅で、1,440億ドルは最も可能性の高い値にすぎないが、レポートは確定数字として記載していた。

**Q: 有料購読がなくてもできるか？**

できる。コストは主に忍耐だ。単一モデルでもこの手法は使える。ただし自分で検証層を演じる必要がある。全く新しい会話ウィンドウを開き、成果物だけを貼り付け（推論過程は貼らない）、四つの指示に沿って実行する。実際に効果があるのは二つのアクションだ――相手側の主張を追い、出典を自分で開いて確認すること。

<style>
  .article-body .cc-tool {
    background: var(--card, #FCFAF4);
    border: 1px solid var(--hairline, rgba(26, 34, 64, 0.12));
    border-radius: 8px;
    padding: 1.5rem 1.25rem 1.25rem;
    margin: 2.5rem 0;
    font-family: var(--sans, 'Noto Sans TC', ui-sans-serif, system-ui, sans-serif);
    color: var(--ink, #1A2240);
  }
  .article-body .cc-tool .cc-head { margin-bottom: 1.25rem; }
  .article-body .cc-tool .cc-title { font-size: 1.05rem; font-weight: 650; margin: 0 0 0.3rem; color: var(--ink, #1A2240); letter-spacing: 0.01em; }
  .article-body .cc-tool .cc-sub { font-size: 0.8rem; margin: 0; color: var(--mist, #6F6A5C); line-height: 1.6; }
  .article-body .cc-tool .cc-controls { display: flex; flex-direction: column; gap: 1rem; margin-bottom: 1.25rem; }
  .article-body .cc-tool .cc-label {
    display: block; font-size: 0.72rem; color: var(--mist, #6F6A5C);
    letter-spacing: 0.06em; margin-bottom: 0.45rem; font-weight: 600;
  }
  .article-body .cc-tool .cc-tabs { display: flex; flex-wrap: wrap; gap: 0.4rem; }
  .article-body .cc-tool .cc-tab {
    background: var(--paper, #F8F5EE);
    border: 1px solid var(--hairline, rgba(26, 34, 64, 0.12));
    color: var(--ink-mute, #5A6280); font-size: 0.8rem; font-family: inherit;
    padding: 0.4rem 0.75rem; border-radius: 6px;
    cursor: pointer; transition: all 0.14s ease;
  }
  .article-body .cc-tool .cc-tab:hover { border-color: var(--gold-hair, rgba(184, 149, 106, 0.4)); color: var(--ink, #1A2240); }
  .article-body .cc-tool .cc-tab.is-on { background: rgba(184, 149, 106, 0.14); border-color: var(--gold-display, #9A7A45); color: var(--gold-display, #9A7A45); font-weight: 600; }
  .article-body .cc-tool .cc-input {
    width: 100%; box-sizing: border-box;
    background: #FFFFFF;
    border: 1px solid var(--hairline, rgba(26, 34, 64, 0.12));
    border-radius: 6px; color: var(--ink, #1A2240);
    font-size: 0.85rem; font-family: inherit; padding: 0.5rem 0.7rem;
  }
  .article-body .cc-tool .cc-input:focus { outline: none; border-color: var(--gold-display, #9A7A45); }
  .article-body .cc-tool .cc-input::placeholder { color: var(--mist-soft, #B5B0A2); }
  .article-body .cc-tool .cc-field-inline { flex-direction: row; flex-wrap: wrap; gap: 1rem; }
  .article-body .cc-tool .cc-check { display: flex; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: var(--mist, #6F6A5C); cursor: pointer; }
  .article-body .cc-tool .cc-check input { accent-color: var(--gold-display, #9A7A45); cursor: pointer; }
  .article-body .cc-tool .cc-out { border: 1px solid var(--hairline, rgba(26, 34, 64, 0.12)); border-radius: 8px; overflow: hidden; background: var(--paper-warm, #F2EDDF); }
  .article-body .cc-tool .cc-out-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0.5rem 0.75rem; background: var(--paper-deep, #ECE6D4);
    border-bottom: 1px solid var(--hairline, rgba(26, 34, 64, 0.12));
  }
  .article-body .cc-tool .cc-out-label { font-size: 0.7rem; color: var(--mist, #6F6A5C); letter-spacing: 0.06em; font-weight: 600; }
  .article-body .cc-tool .cc-copy {
    background: transparent; border: 1px solid var(--gold-display, #9A7A45); color: var(--gold-display, #9A7A45);
    font-size: 0.72rem; font-family: inherit; font-weight: 600;
    padding: 0.28rem 0.7rem; border-radius: 5px; cursor: pointer; transition: all 0.14s ease;
  }
  .article-body .cc-tool .cc-copy:hover { background: rgba(184, 149, 106, 0.14); }
  .article-body .cc-tool .cc-copy.is-done { background: var(--gold-display, #9A7A45); color: #FFFFFF; }
  .article-body .cc-tool .cc-pre {
    margin: 0; padding: 0.9rem;
    font-family: var(--mono, 'JetBrains Mono', ui-monospace, monospace);
    font-size: 0.74rem; line-height: 1.65; color: var(--ink-soft, #2A3253);
    white-space: pre-wrap; word-break: break-word;
    max-height: 26rem; overflow-y: auto;
  }
  .article-body .cc-tool .cc-pre::-webkit-scrollbar { width: 8px; }
  .article-body .cc-tool .cc-pre::-webkit-scrollbar-thumb { background: var(--hairline, rgba(26, 34, 64, 0.12)); border-radius: 4px; }
  .article-body .cc-tool .cc-note {
    font-size: 0.72rem; color: var(--mist, #6F6A5C); line-height: 1.6;
    margin: 0.9rem 0 0; padding-top: 0.75rem;
    border-top: 1px solid var(--hairline-soft, rgba(26, 34, 64, 0.06));
  }
  @media (prefers-reduced-motion: reduce) { .article-body .cc-tool .cc-tab, .article-body .cc-tool .cc-copy { transition: none; } }
</style>


<script>
(function () {
  var tool = document.getElementById('ccTool');
  if (!tool) return;

  var EXTRA = {
    news:
      '## タスク C：時効性の追加チェック\n\n' +
      '- 「現在」「今」「最新」という主張は、実際にはいつのデータか？\n' +
      '- 記事の結論を覆すような直近の展開はないか？\n' +
      '- 争いのある出来事で、一方の主張しか示していないものはないか？相手側はどう言っているか？\n' +
      '- 異なる時点のデータを混同していないか？（例：三ヶ月前の高値を現状として扱う）',
    research:
      '## タスク C：研究引用の追加チェック\n\n' +
      '- 引用された論文は本当に存在するか？著者・年・学術誌は正確か？\n' +
      '- 論文の原文の結論は、ここに書かれた内容と一致しているか？誇張されていないか？\n' +
      '- サンプルサイズ・効果量・信頼区間は省略されていないか？\n' +
      '- プレプリントか査読済みか？記事内で言及されているか？',
    internal:
      '## タスク C：社内文書の追加チェック\n\n' +
      '- 自社システムで確認できるはずの数字を、外部の推計値で代替していないか？\n' +
      '- 「単一ソースの主張」を「業界のコンセンサス」として書いていないか？\n' +
      '- 誤りがあった場合に誰が影響を受けるか？その深刻度の順に報告してほしい。',
    general: ''
  };

  function build() {
    var scene = tool.querySelector('.cc-tab.is-on').dataset.scene;
    var topic = document.getElementById('ccTopic').value.trim() || '{{一文でテーマを記述}}';
    var links = document.getElementById('ccLinks').checked;
    var strict = document.getElementById('ccStrict').checked;
    var today = new Date().toISOString().slice(0, 10);

    var p = 'あなたは独立した検証者だ。タスク：以下の成果物に対してファクトチェックを行う。\n';
    p += '**報告するだけで、何も修正しないこと。**\n\n';
    p += '成果物：{{内容を貼り付けるか、ファイルパスを指定する}}\n\n';
    p += '今日は ' + today + ' だ。この内容のテーマは：' + topic + '\n\n';

    p += '## タスク A：逐条検証\n\n';
    p += 'ウェブ検索で文中の各事実主張を逐条検証する。特に注目すること：\n';
    p += '- 人名＋肩書き（最も誤りが多い）\n';
    p += '- 統計数値とパーセンテージ（元々幅があったものが確定値として書かれていないか）\n';
    p += '- 日付と時系列\n';
    p += '- 引用と帰属（誰が言ったのか、取り違えていないか）\n';
    p += '- 因果の主張\n\n';

    if (links) {
      p += '**同時に文中の各外部リンクについて、次の四点を逐条確認する：**\n';
      p += '1. このURLは実際に存在するか？\n';
      p += '2. **開いて、原文は本当にそう言っているか？**（記憶で再述せず、実際に読むこと）\n';
      p += '3. 原文にタイムスタンプはあるか？その数字は「いつ時点」のものか？成果物はそれを現在のものとして扱っていないか？\n';
      p += '4. 原文に留保の語気はあるか？例えば「ほとんど」「約」「推定によれば」「場合によっては」など。成果物はそれらを取り除いて断定的にしていないか？\n\n';
    }

    p += '出力フォーマット（問題のあるものだけ列挙し、confirmedはまとめて一行にする）：\n\n';
    p += '| 主張 | 検証結果 | 確信度 | 推奨事項 |\n\n';
    p += '検証結果の分類：confirmed / corrected / unverifiable / approximation / overreach\n\n';

    p += '## タスク B：独立した判断\n\n';
    p += '1. 証拠がその主張の重さを支えられていない断言はないか？（事実は合っているが推論が過剰）\n';
    p += '2. 出典があるように書かれているが実際には出典のない数字はないか？\n';
    p += '3. 何かを批判・告発している場合、その告発は成立するか？不公平な項目はないか？\n';
    p += '4. 「具体的に見えるが出典を追跡できない」細部はないか？\n\n';

    if (EXTRA[scene]) p += EXTRA[scene] + '\n\n';

    p += '## ルール\n\n';
    p += '- 「ここが誤り」と報告するたびに、自分が確認した出典を添付すること。\n';
    p += '- 自分の推算は「これは私の推算であり、検証ではない」と明示すること。\n';
    p += '- 確認できないことは誤りではない。unverifiableと分類し、偽りとは言わないこと。\n';
    if (strict) p += '- **問題を見つけることの方が、通過させることより重要だ。厳格に。**\n';

    document.getElementById('ccPre').textContent = p;
  }

  tool.querySelectorAll('.cc-tab').forEach(function (b) {
    b.addEventListener('click', function () {
      tool.querySelectorAll('.cc-tab').forEach(function (x) { x.classList.remove('is-on'); });
      b.classList.add('is-on');
      build();
    });
  });
  ['ccTopic', 'ccLinks', 'ccStrict'].forEach(function (id) {
    document.getElementById(id).addEventListener('input', build);
  });

  document.getElementById('ccCopy').addEventListener('click', function () {
    var btn = this;
    var txt = document.getElementById('ccPre').textContent;
    var done = function () {
      btn.textContent = 'コピー済み ✓';
      btn.classList.add('is-done');
      setTimeout(function () { btn.textContent = 'コピー'; btn.classList.remove('is-done'); }, 1800);
    };
    if (navigator.clipboard && navigator.clipboard.writeText) {
      navigator.clipboard.writeText(txt).then(done, function () { fallback(txt, done); });
    } else { fallback(txt, done); }
  });

  function fallback(txt, cb) {
    var ta = document.createElement('textarea');
    ta.value = txt;
    ta.style.cssText = 'position:fixed;opacity:0;';
    document.body.appendChild(ta);
    ta.select();
    try { document.execCommand('copy'); cb(); } catch (e) {}
    document.body.removeChild(ta);
  }

  build();
})();
</script>
