本記事は最新の戦況に合わせてイベント年表と原油価格データを継続更新している。最終更新日は上部の「最終更新」を参照。

TL;DR: 米・イラン戦争がどこへ向かうか判断したくて、手元のAI Agentに相互検証させ、検証可能な双方の財務データを取得した。判断:これは二つの時計が刻む消耗戦であり、イランの財政破綻時計のほうが速く進んでいるが、米国も選挙・原油価格・迎撃ミサイルの在庫に追われている。方法(三層分業+検証プロンプト生成ツール)とすべての情報源は文中に掲載している。

▶ 要約を聴く
AI合成音声・著者本人の声をクローン

今朝ずっとGrokで国際ニュースを追いかけていた。一ラウンド答えるたびに、横に情報源の一覧が増えていく。30 sources、42 sources、55 sources……。ところが二十数ラウンドの対話をレポートにまとめるよう頼んだところ、情報源の欄に残ったのは一行だけだった。

出典:公開されたニュース報道、公式声明、歴史的事例参照

リンクはゼロ、記事名はゼロ、日付はゼロ。直前まで見えていた数百の情報源が、最終レポートには一つも入っていなかった。

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

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

三層分業:誰が何を担うか

結論から言う。マルチAgent検証とは、同じ問いを複数のモデルに投げて答えの交差点を取ることではない。本当に有効なのは、性質の異なる三つの仕事を分けることだ。

層仕事求められる能力今回の実測結果
検索事実を引き出す。広く、新しく、複数の情報源からリアルタイム検索、繰り返しの追い質問データはおおむね正確
整理対話を構造化されたものへ収束させる長文の構成能力三つのモデル全てがこの層で誤った
検証各主張が原典まで遡れるか確かめる強い推論力+リンクを実際に開く三つの硬い誤りを発見

重要なのは、整理と検証を異なる役割が担わなければならないことだ。検証Agentに前の層の推論プロセスを先に読ませると、同じ筋書きに沿って進んでしまいがちになる。三層は必ずしも三つの異なるブランドのモデルが担う必要はない。同じAIの中で互いに独立した三つの会話を開いてもよい。最初でデータを探し、二番目で整理し、三番目は成果物だけを見て一項目ずつ検証する。何モデル使ったかではなく、三つの役割を混在させないことが重要だ。

第一層:検索、予想より信頼できた

今回の実測の目的は、Grokが信頼できないことを証明することではない。例えばGrokは、シンガポール船籍のコンテナ船Ever Lovelyが6月25日にオマーン沖でドローン攻撃を受けて操舵室が損傷したが人的被害はなかったと述べた。この情報はgCaptainの詳報で確認できる。

「イランの経済損失は1,440億ドルで開戦前GDPの約四割」という一見驚くべき数字も、モデルの捏造ではなくFDDの推計に由来する。数十ラウンドの追い質問を経ても、船名・死傷者数・価格データはおおむね具体的な情報源まで遡れた。少なくとも今回のテストでは、検索層の品質は当初の予想より高かった。

この層の操作のポイント: GrokやPerplexityのようなリアルタイム検索機能を持つモデルを選び、追い質問を続けること。一度訊いて終わりにすると、たいていは表層的な出来事の要約しか得られない。異なる立場・数字の妥当性・別の解釈の有無を追い質問することで、データが展開し始める。

第二層:整理、AIが最も誤りやすい工程

問題が現れたのは、Grokに二十数ラウンドの対話をレポートにまとめるよう頼んだ後だった。以後この工程を「圧縮」と呼ぶ。レポートの年表はここから始まっていた。

6月17日:米・イランが一時停戦の覚書(MOU)に署名

実際には、戦争は2月28日に始まり、3月4日に海峡が閉鎖された。4月に短期停戦があり、その後封鎖が再び激化し、6月17日にようやく覚書が署名された。Grokのレポートは6月17日から始まっており、それ以前の約四ヶ月が背景として圧縮されていた。これによって後続の数字も文脈を失った。1,440億ドルは2月28日の開戦後に積み上がった推計値だが、それ以前の数ヶ月の戦闘と封鎖が記述されていないため、読者にはこの損失がどのように形成されたか理解しにくい。覚書の核心条項も抜けていた。海峡を60日間無償通航させた後、期限切れに管理権を再交渉するというものであり、本当の争点はあの曖昧な文言の中に潜んでいる。

抜け落ち以上に注目すべきは、整理の過程でもともとあった留保表現がいかに消えるかだ。対話の中でGrokに「誰が停戦を先に破ったか」を訊くと、こう答えた。

端的に言えば、先に動いたのはイランだ。これは米国と西側報道の多数派見解だ。

この一文は立場を示し、その立場の及ぶ範囲も示していた。イラン側の主張を追い質問すると、革命防衛隊の見解もきちんと返ってきた。その後レポートにまとめるよう依頼した。第五節はこうなっていた。

結論:イランが先に動いた。停戦合意を破った張本人だ。

「これは米国と西側報道の多数派見解だ」は消え、「張本人」という言葉が入り込んでいた。これは実際に争いのある事実だ。7月8日、イラン外務省は逆に米国が合意を破ったと非難している。AIの幻覚とは、モデルが事実を一から捏造することだと理解されがちだ。しかし今回遭遇したのはそれとは異なる。条件が消えたのだ。立場と範囲と留保を帯びていた一文が、圧縮されて確定的な結論の一文になった。 元の事実は本物だが、整理の過程でもともとあった留保表現が取り除かれた。この種の誤りは捏造より気づきにくい。捏造は情報源が見当たらないため警戒心を呼びやすい。留保表現が消えた場合、出来事自体は検証できるため、読者はそのまま見逃してしまいがちだ。

4コマ漫画:第二層:整理、AIが最も誤りやすい工程、端的に言えば、先に動いたのはイランだ。これは米国と西側報道の多数派見解だ。この一文は立場を示し、その立場の及ぶ範囲も示していた。その後レポートにまとめるよう依頼した。「これは米国と西側報道の多数派見解だ」は消え、「張本人」という言葉が入り込んでいた。これは実際に争いのある事実だ。7月8日、イラン外務省は逆に米国が合意を破ったと非難している。立場と範囲と留保を帯びていた一文が、圧縮されて確定的な結論の一文になった。

次にGrokのレポートをPerplexityに渡して再整理させた。Perplexityは重要な骨格を多く補った。完全な年表・60日間の無償通航条項・Brugelによる通行料の実質的な負担者分析・UNCLOSをめぐる法的争点・そしてIEAによる代替パイプラインの能力推計だ。さらに重要なのは、これらに追跡可能なリンクが付いていたことだ。PerplexityはGrokの通行料の年間収入推計が約五倍低く見積もられていることも発見した。

最後に前の二つの資料をClaudeに渡して記事の草稿にまとめさせた。Claudeも誤り、しかも三回誤った。草稿はPerplexityに二箇所の誤りがあると指摘していたが、一項目ずつ検証したところ、二つの指摘はどちらも成立しなかった。最初の指摘は数字の誤りではなく日付の消失だった。Perplexityは「ブレントが45%超上昇し約35から40ドル増加した」と書き、Claudeはそれを以前の高値を現在の価格として誤記していると判断した。情報源に戻ると、これはBrugelの4月8日の原文の数字だった。本当の問題はPerplexityがデータの日付を残していなかったことだ。草稿はさらにPerplexityの「8月21日期限」について根拠が見当たらないと述べた。しかしその日付は検証できる。OFACが6月22日にGeneral License Xを発行し、イランの石油販売を60日間、8月21日まで認可している。Perplexityは起算点の異なる二つの本物の「60日間」を接続してしまっただけだった。

三つ目の問題はより直接的だった。草稿の図表の中で7月7日の原油価格を「約73ドル」と記載していたが、情報源の原文には7月8日・76.48ドルと書かれていた。73という数字はどこにも存在せず、日付も一日ずれていた。

層誤り性質
Grok「西側報道の多数派見解」→「結論」立場と留保表現を削除
PerplexityBrugelの4月のデータを7月の現状として扱った。OFACの8/21をMOUの時計に接続したタイムスタンプを落とした
Claude検証可能な日付を「根拠が見当たらない」と断言。情報源のない価格データを補った検証せずに断言

三つのモデル、三種の落とし方、しかしいずれも同じ失敗点を指している。整理だ。モデルが複数ラウンドの対話と複数の情報源を一つのなめらかなレポートへ圧縮するとき、データの日付・情報源の立場・適用範囲・留保表現が最も消えやすい。原文ではほんの短い挿入句に過ぎないことが多いが、信頼性を理解する上で非常に重要だ。しかし簡潔さと流暢さを追求する過程で、真っ先に削られる。

この層の操作のポイント: データを次のAgentに渡すたびに、三つのものを必ず一緒に残すこと。情報源・タイムスタンプ・留保表現だ。どれか一つでも欠けると、次の層が確認しようとしても原文に正確に戻れなくなる。

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

第三層:検証。四つの指示

初稿を最初に読んだとき、問題を一つも見抜けなかった。構造は整い、語調は確信に満ちており、あまりにも読みやすかったので、そのまま公開しそうになった。しかしこの記事には自分の名前が付いており、誤りに責任を負うのも自分だ。

最終的に問題を見つけたのは、四番目のAgentだった。前の対話も推論プロセスも読んでいない。成果物だけを受け取り、独立した検証者として機能した。前のモデルとの最大の違いはシンプルだ。実際に一つひとつリンクを開いたことだ。指示は四つだけで、実際に効果を発揮したのは三番目だった。

一、検証層は独立していなければならない。 検証Agentには成果物だけを渡し、前の推論プロセスを先に読ませない。そうしないと同じ筋に沿って推論を続け、原稿を追認するだけになる。ツールにサブAgentの機能があれば別のAgentを立ち上げる。チャットインターフェースしかなければ新しいウィンドウを開き、成果物だけを貼り付け、前の推論プロセスは添付しない。

二、問題を報告するだけで、直接修正しない。 確認しながら書き直すと、原稿のどこがどう誤っていたかわからなくなる。まず完全な問題一覧を作り、何を修正するかは人間が判断する。

三、情報源を実際に開いて、記憶だけで語るな。 今回、日付と価格の誤りを発見できたのは、検証AgentがBrugelのPDFとOFACの公告を実際に開いて原文と一文ずつ照合したからだ。既存の知識や検索サマリーだけに頼らせていたら、これらの問題はおそらくそのまま通過していた。

四、「問題を見つけることが、通過させることより重要だ」と明示する。 そうしなければ、モデルは記事の完成を手伝うことが任務だと解釈しがちで、問題を最大限に洗い出そうとしない。

交差検証プロンプト生成ツール

シナリオを選んでプロンプトをコピーし、使い慣れたAIに貼り付ける。空欄に確認したい内容を入れれば実行できる。

生成されたプロンプト

  

このプロンプトの骨格は本記事の実測から来ている。三つの硬い誤りを発見した。実際に効果があったのは「リンクを開いて原文を読む」という指示であり、これをオフにすると効果は大きく落ちる。

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

  • confirmed:信頼できる情報源で支持されている。保持してよい。
  • corrected:明確な情報源が原文の誤りを証明している。修正すべきだ。
  • unverifiable:現時点では確認できない。削除するか、情報源を補うか、より保守的な表現に改める。
  • overreach:事実自体は成立しているが、推論が証拠の支持範囲を超えている。表現を絞る。

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

検証後に初めて戦況の情報が明確になる

検索・整理・検証の三層を終えて初めて、この衝突の年表と価格の変化が輪郭を持ち始めた。下の図の価格線はEIAの公式日次データであり、検証を終えて情報源まで遡れるイベントのノードだけが残っている。ノードをクリックすると詳細と出典が確認できる。

市場への衝撃が最も激しかったのは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の推計によれば封鎖期間中の一日あたりの損失は約4.35億ドル、開戦以来の累計損失は約1,440億ドルで開戦前GDPの約四割にあたる。著者は明示的に、これは下限であって上限ではないと述べている。公式統計のインフレ率は前年同期比88.6%、食肉は約178%。リアルは一年で約53%下落した。Iran Internationalが転載したCIAの評価(ワシントン・ポスト報道)によれば、イランは「少なくとも3から4ヶ月は持ちこたえられる」。体制内の経済学者たちは、封鎖が二、三ヶ月を超えると打撃が急速に拡大すると見ている。

停戦の26日間でイランは8,000万バレルを超える原油を売り急ぎ、60億ドル以上を稼いだ。一時的に時計を少し巻き戻した。しかし7月17日以降、この合法的な売油の窓口も閉じた。

「タンカー隻数を見ることは原油価格を見ることより正直だ」という図で何を読むか。 原油価格は市場の感情であり、タンカーの隻数は海峡の事実だ。原油価格はOPEC・在庫・FRBなど海峡とは無関係の要因によって動く。隻数はそうではない。二つの線が乖離するとき、たいていは市場が自分自身を脅かしている。

データの取得元:IMF PortWatch(IMF×オックスフォード大学)、衛星AIS統計。ArcGISの公開エンドポイント Daily_Chokepoints_Data/FeatureServer/0/query を使い、portid=‘chokepoint6’ がホルムズだ。無料・APIキー不要(2026-07-16実測)。上流でwhere条件を使いフィルタリングし、全件は取得しない。outFieldsはdate・n_tanker・n_cargo・n_totalのみ取得し、タンカーと貨物船を分けて集計口径を混同しない。

開始日は2026-02-20、開戦一週間前に設定する。基準帯がなければどれだけ落ちたかわからず、ただの数字の羅列になる。

更新頻度:毎日取得するが、データは4から7日遅れる。つまりこれは「日次粒度・非リアルタイム」のものだ。この違いをUIに明記しなければならない。data_throughはデータの実際の締め切り日であり、取得日ではない。「リアルタイム」と書けば嘘になる。「毎日更新」も誤解を招く。正直な表現は「データは○月○日時点」だけだ。

エラー処理は取得ロジック自体より重要だ。上流は様々な形で壊れる。

  • MIN_ROWS = 100:2/20以降現時点まで140件以上・増えるのみ。これを大きく下回る返却は上流の切断とみなし、即座に失敗扱いとする。不完全なデータは書き込まない
  • exceededTransferLimit:ArcGISの単一クエリには上限があり、超えるとエラーを返す。ページネーション処理が必要で、末尾が静かに落ちることを許容しない
  • toISODateはepoch msと文字列の両方を受け付ける:ArcGISのdateフィールドはサービス設定によって返す型が異なる
  • 行ごとにNumber.isIntegerかつ非負を検証:汚いデータは取り込まない
  • tmpに書いてからrenameSync:アトミックな書き込みで、半端なファイルが残らない
  • 失敗は必ず非ゼロのexit、既存JSONを上書きしない

注意:古いデータを日付付きで表示することを優先し、壊れたデータを表示しない。データが変化していなければファイルを一切更新せず、cronはgit diffで変化を判断してコミットするかどうか決める。

もう一つ、遅延より深刻な制限がある。AISは船舶が自ら発信するシグナルであり、オフにすれば消える。イランがMombasaとAl Bahiyahを攻撃した根拠として主張したのが「識別システムの停止」だ。つまり衝突が激化するほど船舶がAISを切る可能性が高まり、この図は実際の通過量を過小評価する。

この図が測っているのは「何隻の船が通過したか」ではなく、「何隻の船が通過しながら公開でそれを発信したか」だ。これがこの図の認識論的な限界だ。

「海峡はすでに正常化した」と誰かが言うとき、IMFの線で対照できる。

米国側の帳簿。 公式口径では6月末時点で約300億ドルを支出し、CSISの推計は340から420億ドルで、うち弾薬費が261億ドルと最大の項目だ。絶対額は小さくないが、単位換算すると構図はより厳しい。迎撃ミサイル一発の価格はドローンの製造コストの数十倍だ。GDPの割合で大まかに比較すると、米国の直接軍事費はGDPの約0.15%だが、イランが被った経済損失全体は開戦前GDPの約四割に達する。比較の口径は完全には一致しないが、耐久力の大きな非対称性を見るには十分だ。核心は誰が少なく使ったかではなく、誰がより払える立場にあるかだ。

イランの軍事費は不透明で推算するしかない。 どのシンクタンクもイラン側の弾薬消耗のドル換算を発表していないため、この段落は本記事の推算であり検証値ではない。既知の事実として、イランは約1,500から2,300発の弾道ミサイル(INSS・NBC/IDF・JINSAで集計口径が異なる)と約4,400から5,400機の自爆ドローン(代理組織の発射分を含む、集計口径による)を発射したとされる。公開されている単価の範囲をもとに粗く推算すると、作戦消耗は約100から500億円相当(10億から50億ドル)、米国の直接軍事費の約十分の一だ。これが低コスト消耗戦の設計だ。低コストで相手に高価な迎撃ミサイルを消費させる。

しかしイランにはもう一つの、より大きな帳簿がある。破壊された軍事資産だ。FDDの推計では再調達コストが約460億ドルで、FDDの物的再調達総推計(910億ドル)の約半分を占め、イランの年間軍事費(SIPRI口径で年間約74億ドル)の4から6年分にあたる。弾薬消耗と損傷した軍事資産を合計すると、双方の軍事費の請求書は近い規模になるかもしれないが、性質はまったく異なる。米国が消耗したのは予算と生産能力で補えるキャッシュフローだ。イランが失ったのは短期間では再建できない資本の蓄積だ。

ただし米国にも三つの独自の時計がある。

一つ目は迎撃ミサイルの在庫だ。 七週間の作戦でPatriotの約半分、THAADの少なくとも半分を消費し、2026年中にTHAADの新規納入はなく、補充は2027年を待たなければならない。

二つ目は中間選挙だ。 国民の58%がこの戦争に反対しており、ガソリン価格は1ガロンあたり2.98ドルから4.48ドル(5月中旬)へ上昇し、戦争の請求書が直接有権者の元に届いている。

三つ目は原油価格の緩衝余力だ。 戦略石油備蓄は1983年以来の最低水準まで低下しており、原油価格を抑える政策手段は以前より少ない。

米国の行動もこの三つの時計に対応している。四ヶ月の間に三度停戦を模索し、7月13日に提案した通過料プランを一日で撤回した。

よって私の推論はこうだ。米国のコスト負担能力はイランを大きく上回っており、封鎖型の経済消耗戦は米国にとって現実的な選択肢だ。長引くほどイランに不利になる。しかし時間は一方的に米国の味方をしているわけではない。これはイランの財政破綻時計と、米国の選挙・原油価格・迎撃ミサイルの時計の競走だ。どの時計が先に鳴るかで、戦争の転換点が決まる。

この判断には一つの境界がある。7月中旬時点で検証可能な公開データに依拠しており、今日時点でもいくつかの重要な数字が確認できていない。イランに残る使用可能な外貨準備高・7月8日の戦闘再開後の米国の新規支出・イランの7月のインフレ率は、いずれも信頼できる数字がない。どれか一つが明らかになれば、判断の修正が必要になるかもしれない。これが前半の手法が存在する理由だ。判断を下すことは終わりではない。判断はデータに依拠している。データが変われば、判断も変えなければならない。

問うべき三つの問い

ツールと流れに加えて、検証の質を高めたのは、対話の中で繰り返し問い続けた三つの問いだ。有料サブスクリプションは一つも必要ない。「イラン側はどう言っているか?」と問うて初めて革命防衛隊の見解が補われた。「この死傷者数は妥当か?」と問うて初めて乗員編成と被弾箇所が検証された。「自作自演の可能性はないか?」と問うて初めて別の仮説が正面から検討された。

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

これらの問いはモデルが自発的に提起することが多いわけではない。追い質問しなければ、たいていは前のラウンドで形成された筋書きに沿って答え続ける。この三つの問いが、第一層「継続的な追い質問」の内容そのものだ。

以前「知識管理は自律に頼るな、パイプラインに頼れ」で書いた。人間が手動で維持し続けることに依存する流れは、最終的には崩れやすいと。あのときはノートの整理を論じていた。今回ファクトチェックに当てはめてみて、その結論が半分しか正しくなかったとわかった。パイプラインはデータを運び、情報源を残し、Agentに自動でリンクを一つひとつ開かせることもできる。しかしそれを起動するかどうか、最後は人間が決めなければならない。

今日、私は危うく起動しないままにするところだった。

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

ツールはすでに整っている。三層の流れを一朝でこなして得られるデータの量と分析の広さは、おそらく十年前の記者がデータベース・シンクタンク・複数の取材を重ねてようやく出せた初期調査に近い。情報へのアクセスのハードルは驚くほど低くなった。

しかし参入のハードルは依然として残っている。この数字はどこから来たのか? と一歩踏み込んで問う意志だ。

AIを何枚重ねても、この問いは自動的には答えられない。各層が前の層の結論を書き直すだけなら、誤りはより流暢に・より構造的に・より正式なレポートらしく整えられて出てくるだけだ。Grokのレポートの最終行にはこう書いてあった。「本レポートは参考情報の提供のみを目的としており、投資または意思決定の助言を構成するものではありません。」免責事項の書き方まで覚えた。ただ情報源を一緒に持ち歩く方法はまだ覚えていない。

上のプロンプト生成ツールは、今日自分のために設けた一つの防線だ。今後は重要な記事を書くたびに一度実行する。あなたもそのまま使っていい。

よくある質問

Q: マルチAgentによる検証はどう分業するのか?

三層に分ける。検索層は広さと即時性が求められる。ネット検索機能を持つモデルを使い、一度訊いて終わりにせず、同じ問いを繰り返し追いかける。整理層は対話を構造化されたものへと収束させる。この層が最も誤りやすく、次の層に渡す際には情報源・タイムスタンプ・留保表現を必ず一緒に残す。検証層は独立したAgentが担わなければならない。前の推論プロセスを読ませず、成果物だけを渡し、「報告するだけ・修正しない」という指示を与え、実際にリンクを開いて原文を確認させる。

Q: 三つのAIを同時に契約しなければならないのか?

その必要はない。三層は必ずしも三つの異なるブランドのモデルが担う必要はない。同じAIの中で互いに独立した三つの会話を開いてもよい。最初でデータを探し、二番目で整理し、三番目は成果物だけを見て一項目ずつ検証する。何モデル使ったかではなく、三つの役割を混在させないことが重要だ。

Q: Grokのレポートの数字はどれが正しかったのか?

船名・日付・死傷者数はおおむね正確だった。Ever Lovelyが6月25日にドローン攻撃を受けたこと、MombasaとAl Bahiyahが7月13日に巡航ミサイルで攻撃されたこと、死者1名・負傷者8名(インド人6名・ウクライナ人2名・重傷4名)はすべて検証できた。1,440億ドルも捏造ではなく、FDDの推計に基づくものだ。ただしFDDが出しているのは500億から3,000億ドルの範囲であり、1,440億ドルはその最頻値に過ぎない。レポートはそれを確定した数字として書いてしまっていた。

Q: 有料サブスクリプションなしでもできるか?

できる。コストは主に根気だ。単一モデルでもこの手法は使える。ただし自分で検証層を演じる必要がある。全く新しい会話ウィンドウを開き、成果物だけを貼り付け、推論プロセスは貼らず、四つの指示に従って実行する。実際に効果があるのは二つの行動だけだ。相手側の言い分を追い質問することと、情報源を自分で開いて確認することだ。

この図を自分で作りたい場合は、この指示をClaude Codeや他のAIコーディングツールに渡す

上のホルムズ海峡の通過隻数グラフを支える取得パイプラインのロジックは、任意のAIコーディングツール(Claude Code、Codexなど)にそのまま渡せる。気になる別の海峡や港に差し替えるだけでよい。

「毎日の通過量」データパイプラインを作りたい。データソースはIMF PortWatch
(IMF×オックスフォード大学、衛星AIS統計)の公開ArcGISエンドポイントで、
APIキー不要。

エンドポイント:
https://services9.arcgis.com/weJ1QsnbMYJlCHdG/arcgis/rest/services/Daily_Chokepoints_Data/FeatureServer/0/query

確認したいのは「{気になる海峡・瓶頸の名称}」。
まずこのレイヤーのportidのコード対照表を確認してほしい。
(推測せず、IMF PortWatchの公式ページ https://portwatch.imf.org/ を確認するか、
エンドポイントにwhere条件なしでクエリを発行してdistinctなportidを全て
列挙してから確認させてほしい。確認後に次のステップへ進む。)

取得ルール:
- where条件は上流でフィルタリングする(portid+開始日)。全件取得してから
  絞り込まない
- outFieldsは必要な項目だけ取得(date・船種分類・合計数)。不要なものは取らない
- 開始日は気になるイベントの一週間ほど前に設定し、「イベント前の基準帯」を
  確保する。基準帯がなければ異常を読み取れない
- データには既知の公開時差がある(PortWatchは約4から7日遅れ)。この事実を
  data_throughフィールドとして記録する(データの実際の締め切り日であり取得日
  ではない)。フロントエンドの文言は「データは○月○日時点」のみ許可。
  「リアルタイム」または単に「毎日更新」とは書かない

エラー処理のルール(取得ロジック本体より重要):
1. MIN_ROWSの下限を設ける(開始日から今日まで期待される最低行数を概算する)。
   返却行数がこれを大きく下回る場合は上流の切断とみなし、非ゼロのexitとする。
   不完全なデータはファイルに書き込まない
2. 返却データにexceededTransferLimitのようなフィールドがないか確認する。
   サービス側でクエリが切断されたことを意味する。ページネーション処理をするか
   エラーとする。末尾が静かに落ちることを許容しない
3. 日付フィールドは数値(epoch ms)と文字列の両方を処理する。ArcGISサービスは
   設定によって返す型が異なる
4. 各行の値がNumber.isIntegerかつ非負であることを検証する。そうでなければ
   エラーとし、汚いデータを取り込まない
5. ファイルの書き込みは「一時ファイルに書いてからrename」するアトミック方式で
   行う。直接上書きしない。処理中断で半端なファイルが残ることを防ぐ
6. いかなる失敗も非ゼロのexitとし、既存の正常なJSONを上書きしない。
   明確な日付が付いた古いデータを表示することを優先し、壊れたデータを
   表示しない
7. 今回の取得データが前回と完全に同一であれば、ファイルを一切更新しない。
   後続の自動化(例:cronによるgit diffの変化判定)がコミット要否を
   判断できるようにする。意味のないコミットが毎日生成されることを防ぐ

最後に、このデータそのものの「盲点」について整理してほしい。(ヒント:AISは
船舶が自ら発信するシグナルであり、オフにすれば記録から消える。衝突地域が
危険であるほど、この手法は実際の通過量を過小評価する可能性が高くなる。)
この点を明確に説明し、図を見る人が「これは絶対的な船舶位置情報だ」と
誤解しないようにする。

このプロンプトで「まずportidの対照表を確認してから進む」と明示しているのは理由がある。chokepoint6はホルムズで実測済みのコードだが、別の海峡(マラッカ・スエズ・パナマ)ではコードが異なる可能性があり、そのまま流用すると違う場所を参照してしまう。AIに先に原典で確認させるほうが確実だ。

ブレント原油 × 米・イラン衝突タイムライン

2026年2月27日から2026年10月20日まで。ブレント現物価格、データは 2026年10月20日 時点(EIA、約 1 週間の公表ラグ)。任意のノードをクリックすると、出来事の詳細と出典が見られる。

価格線は EIA のブレント現物日次系列で、データの締め日は上記のとおり。菱形のアンカーは手作業で整理した出来事で、いずれも元の出典を付している。アンカーに表示される価格は現物系列から取ったもので、出来事の本文が引用する先物価格や日中価格とはずれが生じる。どちらも正しく、単に別の系列というだけだ。

ホルムズ海峡の 1 日あたり通過船数

2026年2月20日から2026年10月25日まで。データは 2026年10月25日 時点(IMF PortWatch の衛星 AIS 統計、約 4 から 7 日の公表ラグ)。タイムラインをドラッグするか、再生を押す。

イランアラブ首長国連邦オマーン(ムサンダム)ペルシア湾オマーン湾ホルムズ海峡

海岸線と航路は手描きの模式図であり、正確な海図ではない。船の点の数は当日の通過船数(IMF PortWatch)に比例するもので、リアルタイムの船位ではない。金色はタンカー、墨色はその他の商船。菱形マークは船舶被弾事件のおおよその位置を示し、タイムラインが当日に達すると点灯する。開戦前(2 月 20 日から 27 日)は 1 日平均 97 隻が通過していた(本文中の JMIC による約 138 隻/日とは集計方法が異なる)。