Insights·2026-08-24

100万トークンの窓が開いたのに、なぜ全部入れてはいけないのか

Anthropic の認定試験が挙げた最後のエージェント・アンチパターンは、コンテキストを無制限に育てることです。コンテキストはトークンでトークンはお金ですが、もっと重要な理由は別にあります。コンテキストが多いほどモデルが混乱して答えが不正確になる。処方は二つ。出力の多い作業を別のコンテキストに切り離して要約だけを受け取ること、そして会話が大きくなったら圧縮すること(発表コードの基準線は15万トークン)。これに CI で対話モードで呼ばないことと、Batch API で費用を半分にする話が加わります。

100만 토큰 창이 열려도 넣을 것은 제한한다 — 명령과 단계를 담은 요약 도식

コンテキストとは何か

まず用語から。プロンプトはいま自分が打った一行です。コンテキストはその一行がモデルに届くときに一緒に運ばれる全部です。

ここにはシステムプロンプト、CLAUDE.md のような指示ファイル、スキル、これまでのやり取り全体、そしてツールが返した結果が全部入ります。自分が打ったプロンプトは、その束の最後の一行にすぎません。

だから会話が長くなるほどコンテキストは育ちます。一度入ったものは会話が終わるまでついて回ります。ログを500行貼り付けたなら、その500行が次の質問にも、その次の質問にも一緒に運ばれます。

最近のモデルが100万トークンの窓を掲げるようになって、これを気にしなくてよいという印象が生まれました。このアンチパターンが狙うのは、まさにその印象です。

なぜ節約すべきか — 理由は二つで、二つ目のほうが重要だ

一つ目は単純です。コンテキストはトークンでトークンはお金です。会話が長くなるほど、毎回のリクエストで同じ内容を再送するので費用が積み上がります。

二つ目のほうが重要です。コンテキストが多いほどモデルが混乱して答えが不正確になります。

これは直感と逆に聞こえます。情報を多く与えたほうがよく答えそうですから。しかし実際には、関係のない情報が関係のある情報の相対的な重みを削ります。CLAUDE.md を一つのファイルに寄せてはいけない理由と同じ場所です。

だから結論はこうなります。100万トークンの窓が開いたのだから全部入れてもよさそうに思えますが、逆です。入れるものを制限してこそ正確になります。

処方その一 — 長い出力は別のコンテキストに切り離す

出力の多い作業があります。ログを全部さらってエラーを探す仕事、大きなファイルを走査して特定のパターンを数える仕事などです。

こうした作業をメインの会話でやると、ログ数千行がそのままコンテキストに積み上がります。本当に必要なのは「エラーが三種類あって、それぞれこういう内容だ」という要約五行なのに、です。

だからこの作業を別のコンテキストに切り離します。発表ではフォーク(fork)と呼んでいました。別の枝でエージェントがログを全部読み、考え、整理したうえで、メインには要約だけを返します。冗長な出力はその枝の中だけに残って消えます。

Claude Code ではこれをサブエージェントでやります。前回「エージェントを割れ」と言ったのと同じ道具ですが、今回の理由はツールの数ではなく出力量です。

コードを書かない人にも同じ方法があります。資料をたくさん貼り付ける必要がある作業は、いまの会話でやらずに新しい会話を開いてください。そこで要約を受け取って、元の会話に持ち帰ります。

処方その二 — 大きくなったら圧縮する

切り離しても会話そのものは育ち続けます。だから二つ目の処方が圧縮です。

発表のコードは毎ループごとにトークン数を数え、基準線を超えると圧縮をかけます。そこに書かれていた基準線が15万トークンでした。圧縮とは、これまでの会話を要約に差し替えることです。細部は捨て、決定と状態だけを残します。

Claude Code にはこれが /compact コマンドとして入っています。自動でもかかりますが、会話が迷い始めたと感じたら自分で打っても構いません。

コードを書かないなら同じことを手でやります。「ここまで決めたことを五行で要約して」と言ってから、その五行を新しい会話の冒頭に貼ります。抱え込んで力を使わず、書いて渡すのです。

付いてくるもの — CI では対話モードで呼ばない

最後のシナリオがパイプラインの中で回すときです。ここのアンチパターンが少し可笑しい。

エージェントを対話用に呼ぶと「これをしてもいいですか」と権限を尋ねる場所で止まります。ところがパイプラインには答える人がいません。誰も答えない答えを待って立ち尽くすことになります。

だから非対話モードで回し、出力を JSON で受け取ってこそパイプラインが読めます。Claude Code なら `claude -p` がその場所です。

ここにもう一つ加わるのが Batch API です。プロンプトと作業をバッチにまとめて渡すとトークン費用が半分になり、結果は24時間以内に来ます。今すぐ答えが要らない仕事なら、そちらが正しい置き場所です。夜に渡しておいて朝に受け取る、という具合に。

五回を貫いていたもの一つ

ここまでが Anthropic の認定試験が挙げた五つのアンチパターンでした。

応答をそのまま使わず、なぜ止まったかから見る。ルールを一つのファイルに寄せず、効く場所に置く。ツールを全部つけず、エージェントを割る。長い出力は切り離し、大きくなったら圧縮する。CI では対話モードで呼ばない。

五つを貫くものが一つです。すべて与えすぎない側です。ツールも、コンテキストも、情報も。

エージェントをうまく扱うことが、より多くをつける能力のように語られますが、この試験が答えとして選んだのは反対側でした。何を与えないかを知っている側です。

今日やってみること一つ

いま開いている AI の会話のうち、いちばん長いものを思い浮かべてください。答えが最初より曖昧になっているなら、コンテキストがすでに邪魔をしています。

その会話に「ここまで決めたことを五行で要約して」と打ってみてください。その五行をコピーして新しい会話の冒頭に貼り、そこから続けます。処方その二を手でやるということです。

そして次にログや長い資料を貼り付ける必要が出たら、いまの会話ではなく新しい窓を開いてください。それが処方その一です。