Claude CodeのWebFetchが返した“引用”は原文と違った。要約であって逐語ではない

運営者

2026年8月19日、記事に載せる引用の下調べを、部下役のAIに任せていました。
僕はClaude Code(作業を任せられるAIの道具)を、記事づくりの部下として使っています。
WebFetchは、その中でURLを開いてページを読ませる機能です。

部下役のAIが、農畜産業振興機構の「片栗粉の由来とその特性」というページをWebFetchで読みました。
原文のまま逐語で抜き出すよう、指示は付けてありました。
それでも返ってきた“引用”には、原文に無い「全粒粉」という語が入っていました。

WebFetchが返すのは原文ではなく要約です。逐語で抜き出すよう頼んでも、逐語にはなりません。
いまは引用と数値を、ブラウザかcurl(ページを生のまま取る道具)で原文を開いてから使っています。
文字列が一致するかを見るまでは、記事に載せません。

でん粉の解説記事に、全粒粉が出てくるはずがありません。
部下役のAIがそこに気づき、ブラウザで全文を開いて確かめました。結果は捏造でした。
同じ日、別の資料から集めた4つの引用もブラウザで確かめ直しています。
その途中で、最初の案より良い一文も見つかりました。

音声合成の調べものでも、対応していないタグが「対応」になった

似たことは、別の作業でも起きています。
2026年9月25日、英語圏向けYouTubeのナレーション用に、TTS(文字を音声にする技術)を調べていたときです。

調べものを任せていた部下役のAIが、Googleの音声「Chirp 3: HD」の公式ページを、最初はWebFetchで確認しました。
返ってきたのは「<prosody>に対応」という要約です。
<prosody>は、読み上げの速さや高さ、音量を変えるタグです。
ところがブラウザで原文を開くと、対応タグの一覧に<prosody>は入っていませんでした。

同じ日には、Gemini APIの音声合成の公式ページも調べました。
API(プログラムから機能を呼び出す窓口)の料金や呼び出し先の説明です。
こちらでは、表の数値や、呼び出し先の住所にあたるAPIエンドポイントを誤読する場面がありました。

生のページはClaudeに届いていない

記録に残した結論は、要約役のモデルは逐語を保証しない、ということでした。

Claude Codeの公式ドキュメントにも、仕組みが書かれていました。
WebFetchはページを取ってきて、Markdown(記号で見出しなどを表す書き方)に変換します。
多くの場合、そこへ指示を別のモデルで当て、Claudeはその結果だけを受け取ります。生のページは届きません。
公式ページはこれを「lossy by design」、つまり設計上どうしても情報が欠ける、と説明しています。
生のページが要るときはcurlを使うように、とも書かれていました。

要約役のモデルがもっともらしい日本語で埋めると、受け取る側は見分けられないのだと思います。ここは推測です。
なぜ「全粒粉」だったのかは、分かりませんでした。
要約役がHaikuというモデルだと書く解説記事もありますが、公式ページでは確かめられていません。

中間のAIを1つ挟むたびに、捏造の入口は増えます。
2026年8月18日には、検証を任せたサブエージェント(作業を分けて任せる子のAI)が、悪い文を直す途中で新しい虚偽の引用を作っていました。
実在しない農水省の記載でした。

原文を自分の目に届く形で開く

効いたのは、原文を自分の目に届く形で開くことでした。
指示に「逐語で」と書くだけでは効きません。それを頼んだ結果が、全粒粉の件です。

  1. 引用候補が集まったら、URLを1本ずつブラウザで開いて本文を出す
  2. 引用したい文字列でページ内を検索し、一致するかを見る
  3. 金額・規約・コード例は、curlの生テキストで確かめる
  4. PDFはpypdf(PDFから文字を取り出すPythonの道具)で抜き出して読む
  5. 表が画像なら、画像のURLを直接開いてスクリーンショットで読む

この順番を表にしたのが、AIの答えを信じる前のチェックシートです。

話題から浮いた具体的な語は、原文を開く合図にしています。でん粉の話に全粒粉が混ざる、といった浮き方です。
サブエージェントが出した差し替え案も、その文面を原典と照らし合わせます。
原典に無いことは書かず、「今回開いた資料には記載がありませんでした」で止めるようにしました。

文字が合っていても、帰属が9件ずれていた

文字列の一致だけでは見落とす誤りもありました。

2026年8月26日、ブログ記事の草稿を7つのAIに反証させる、つまり誤りを探させると、引用文の捏造は1件でした。
一方で、帰属(その文がどこに書かれ、誰の言葉か)の誤りは計9件見つかりました。
「注:」と書いたものが、実際は「*:」でした。
表の項目名を1文字だけ読み違え、別の量を指す言葉になっていたものもあります。
抄録(論文の冒頭の要約)にあると報告された2文は、抄録には無く本文にありました。
表13の数字だとした値は、実際は表12のものです。
論文に出てくる大学名を、著者の所属だと取り違えてもいました。

数値が合っていても、どこに書かれ、誰の言葉かがずれていれば、引用としては誤りです。
いまの照合は3つに分けています。
文字列は1文字ずつ同じかを、「注:」と「*:」の違いまで見ます。
場所は、抄録か本文か、何番の表かを見ます。
帰属は、著者の所属を脚注で確かめ、本文に出てくる大学名で代用しません。

AIに出させた指摘も、原典で検算します。8月26日の反証では、指摘のほうが誤りだったものも1件ありました。

参考

  • 運営記録:2026年8月18日・8月19日・8月26日(引用の照合ルールのメモ)
  • 運営記録:2026年9月25日(音声合成の調査メモ2本)
  • Claude Code公式ドキュメント「Tools reference」のWebFetch tool behavior:https://code.claude.com/docs/en/tools-reference

引用のほかに作業が止まった話は、AIのエラーと対処にまとめました。

記事URLをコピーしました