Claude Code 2.1.290(2026-10-05)の changelog に、こう書かれています。
Fixed WebFetch silently dropping page text past 100,000 characters; it now says how much
was unread and takes anoffsetto read on
WebFetch は、ページの10万字より後ろを黙って捨てていた。 公式ドキュメントは、2026-10-06 時点でもこれだけです。
Large pages are truncated to a fixed character limit before processing.
何文字で切るのかも、切ったと知らせるのかも書いていません。 36回測りました。
「このページに〇〇は書いてある?」と聞いた(各3回)
〇〇の位置 Claude Code 2.1.289 Claude Code 2.1.290
8.6万字目(対照) 3/3 Yes 3/3 Yes
12.5万字目 3/3 No(実際は書いてある) 3/3 Yes
30.1万字目 3/3 No(実際は書いてある) 3/3 Yes
直った版は全部読んで正しく答えるが、費用は約6倍
検証環境: Windows 10 / Claude Code 2.1.289 と 2.1.290 を隔離導入 /
claude -p/
--tools WebFetch/ 本体モデルは Opus 5.5 / 全ラン設定ディレクトリ使い捨て(コールド) / 測定は 2026-10-06
測り方
読ませるのは Claude Code 自身の CHANGELOG.md(GitHub の raw、コミット固定)です。
930,527字あり、上限の9倍以上。プレーンテキストなので、HTML から Markdown への変換は挟まりません。
聞いたのは位置が分かっている内容です。どれもファイル中に1回だけ出てきます。
-
「〇〇は書いてある?」:
disableWorkflows(8.6万字目・対照)/maxProseWidth(12.5万字目)/bashOutputMaxChars(30.1万字目) -
「見出しの最初の項目は?」:
## 2.1.286(5.9万字目・対照)/## 2.1.283(11.0万字目)/## 2.1.261(30.1万字目)
--tools WebFetch で Claude が使えるツールを WebFetch だけにし(ドメインは --allowedTools で許可)、WebFetch が Claude に返した文面を stream-json で記録しました。
「書いてある?」と聞くと、10万字より後ろは「書いていない」になった
Claude Code 2.1.289 は、10万字より後ろにある語を6回とも「No」と答えました。
WebFetch が Claude に返したのは、たとえばこれだけです。
The document does not mention "maxProseWidth".
切ったという通知はありません。 要約役のモデルが受け取った前半には、実際に書いていません。
Claude の最終回答も6回とも「No」で始まり、4回は「長いファイルは一部しか読めないことがある」という一般論を添えただけでした。
残り2回は「読めた範囲では」と断っています。
見出しを指定して聞くと、古い版でも「取れなかった」と言えた
| 見出しの位置 | Claude Code 2.1.289 | Claude Code 2.1.290 |
|---|---|---|
| 5.9万字目(対照) | 3/3 正解 | 3/3 正解 |
| 11.0万字目 | 0/3(3回とも「取れなかった」) | 3/3 正解 |
| 30.1万字目 | 0/3(3回とも「取れなかった」) | 3/3 正解 |
こちらは作り話をしませんでした。 新しい版から並ぶので、2.1.284 の途中で切れていれば 2.1.283 が無いのはおかしいと分かります。
途切れた箇所を引用した4回は、どれも Fixed a failed first `claude plugin で終わっていました。先頭からちょうど10万字です。
違いは質問の形でした。 「〇〇の下は?」では無いことに気づけましたが、「〇〇は書いてある?」は無いこと自体が答えになります。
直った版は「どこまで読んだか」を返す
Claude Code 2.1.290 では、要約役の答えの下にこの通知が付きます。
[WebFetch note: this page's text is 930527 characters long and the answer above covers only characters 0 to 100000; the final 830527 were not read — to read on, call WebFetch again with the same url and offset: 100000.]
要約役の答え自体は今も「見つからない」です。 違うのは通知が付くことで、Claude はそれを見て offset を変え、続きを読みに行きました。
10万字より後ろの語を聞いた6回は、見つけても止まらず、10〜11回で最後まで読みました。
その分、費用は約6倍になる
10万字より後ろの語、6回ずつの中央値です。
| 答え | 取得回数 | 費用 | API時間 | |
|---|---|---|---|---|
| Claude Code 2.1.289 | No(誤り) | 1〜2 | $0.051 | 7.7秒 |
| Claude Code 2.1.290 | Yes(正しい) | 10〜11 | $0.314 | 29.2秒 |
正しく答える代わりに、費用は約6倍、時間は約3.8倍。 直った版の費用の約7割は要約役のモデル(claude-haiku-4-5-20251001)の分です。
前半にあれば1回で止まり、8.6万字目の対照は $0.052 → $0.055 でほぼ同じでした。
ドキュメントは「聞き方」を疑えと書いている
The extraction prompt determines what reaches Claude, so a result that says a page doesn't mention
something may only mean the prompt didn't ask about it.
「書いていない」の原因を、聞き方に置いています。 今回は聞き方ではなく、そもそも読んでいませんでした。
言えないこと
- 測ったのは 2026-10-06 の1日、各3回、ページは1つ。 ベンチマークではありません
- HTML のページは測っていません(10万字が変換の前か後かも不明)
-
WebFetch しか使えないようにしています。 普段は Claude が
curlで全文を取ることもあります - 最後まで読むかは Claude の判断です。 聞き方次第で途中で止まるかもしれません
- 費用は
total_cost_usd。プランで請求は異なります
まとめ
- Claude Code 2.1.289 の WebFetch は先頭10万字しか読まず、切ったという通知も付かなかった
- 「〇〇は書いてある?」と聞くと、10万字より後ろの語は6回とも「No」になった
- 見出しを指定する聞き方なら「取れなかった」と言えた。 危ないのは「無い」が答えになる質問
- Claude Code 2.1.290 は続きを読んで正しく答えた。 ただし全部読むと費用は約6倍
長いページで「書いていない」と言われたら、まず Claude Code 2.1.290 以降に上げるのが先です。
上げたあとは、長いページへの「〇〇はある?」は費用がかさみます。
関連記事
- 新しく作ったファイルに、そのフォルダの CLAUDE.md は効いていなかった。直った今も指示は書いた後に届く — エラーが出ないまま抜けていた別の例
- Claude Code が AGENTS.md を読むようになった。ただし1回目のセッションでは読まれない — changelog とドキュメントの差を測った回
JQITのエンジニアの95%以上は未経験からの採用です。
よければコーポレートサイトにも遊びに来てください。
エンジニア採用も行っています。もしご興味あれば覗いてみてください。
▶ 採用サイト