PaPoo
cover

Improved the Read tool to return a truncated first page with が見えても、読み方によってはまだ落ちる

まず切り分けたいのは、Read が「全部読む」ときに途中まで返してくるケースなのか、offsetlimit を指定したケースなのかです。今回の issue 群は同じ症状クラスタですが、挙動が少し違います。

#77489 では、offset / limit を明示した Read が、選んだ範囲のトークン数が上限を超えると古い hard error に落ちると報告されています。エラーメッセージは次のとおりです。

File content (84502 tokens) exceeds maximum allowed tokens (25000). Use offset and limit
parameters to read specific portions of the file, or search for specific content instead of
reading the whole file.

ここで引っかかるのは、文面だけ見ると「offset と limit を使え」と言われているのに、まさにその offset / limit 指定で失敗している点です。issue の報告では、2.1.145 で導入された「whole-file read を PARTIAL view で返す」改善は、あくまで offset / limit を付けない全体読み込みに効いていて、明示的な範囲読みには効いていない、とされています。

もう一つの issue、#73281 は少し別の症状です。Read が PARTIAL view を返しても、その後の Edit / Write で「まだ読んでいない」と扱われて止まる、という内容です。報告では次のエラーが出ます。

File has not been read yet. Read it first before writing to it.

つまり、ファイルは読んだつもりでも、auto-truncate された読み取りは read-before-edit の条件を満たさない、という扱いになっているようです。ここも issue ベースでしか言えませんが、少なくとも「読めたのに編集できない」という見え方になります。

筆者の環境で取得できたのは、実行環境の情報だけでした。再現手順や Claude Code の実測ログは手元にないため、そこは断定できません。

[env_summary]
OS          : Linux 3.10.0-1160.76.1.el7.x86_64 (x86_64)
Python      : 3.8.13
検証日時    : 2026-09-01T08:51:17+09:00

この時点で言えるのは、少なくとも issue 報告上は次の2パターンに分かれることです。ひとつは、Read の全体読み込みが PARTIAL view になっても、その後の編集で guard に落ちるケース。もうひとつは、offset / limit 指定の読み取りが、同じ 25k token 上限を超えると hard error のまま返るケースです。どちらも「大きいファイルを読んで扱う」操作で詰まりますが、詰まる地点が違います。

現時点では、これらがユーザー側の設定で回避できるとは issue からは読めません。確認できるのは、少なくとも報告された範囲では未解決であることだけです。Read の返り方が PARTIAL view でも、offset / limit の有無でも、期待した連続操作にならない場合は、この症状クラスタに近いと思われます。


検証環境

OS          : Linux 3.10.0-1160.76.1.el7.x86_64 (x86_64)
Python      : 3.8.13
検証日時    : 2026-09-01T08:51:17+09:00

参照した Issue(anthropics/claude-code): #77489, #73281

同じ著者の記事