ブログに戻る

AI入門ガイド

なぜAIエージェントは毎ステップで履歴全体を読み直すのか

Claude Codeのステータス行の修正は、長いエージェントセッションがなぜ高くつくかを示している。呼び出しのたびに会話を再送している。コストを見積もり、削減しよう。

投稿者: CheapTokens Team公開日 読了時間 7 分

カバー:なぜAIエージェントは毎ステップでチャット全体を読み直すのか
このページの内容
  1. すべてを読み直していたステータス行
  2. なぜ各ステップが履歴を再送するのか
  3. いくらかかるか:1タスク、1日
  4. 削減する4つの方法
  5. メモのパターン

あなたのエージェントが10分間動いただけで、タスクの見た目より請求額が大きくなる。ほぼ必ず理由は同じだ。モデルは呼び出しの間で何も覚えていないため、各ステップでそれまでの会話全体を入力として再送している。50ステップのセッションは最初のメッセージに50回分を支払う。だからコストは作業量より速く増える。

Anthropicが2026年11月4〜5日にClaude Code向けに発表した修正は、このことを小さな一箇所で示している。以下では、何が変わったか、50ステップのループの計算、そしてそれに対して何ができるかを扱う。

すべてを読み直していたステータス行#

Claude Codeはバックグラウンドのサブエージェントを起動できる。あなたが作業を続ける間に脇の仕事を進める補助エージェントだ。それぞれが1行のステータスを表示する。たとえば「テスト実行中、8件中3件完了」のようなものだ。

XのClaudeDevsアカウントが変更を発表した(投稿の日付は2026年11月5日。二次報道では11月4日または5日とされている)。以前はステータスが30秒ごとに更新され、更新のたびにサブエージェントの会話全体を読み直していた。今はHaiku 5.5が短いメモからステータスを書き、Anthropicはそれを更新あたり約99%安くなるとしている。これは更新あたりの数字であり、セッションあたりではない。サブエージェントの実際の作業は依然として履歴を読む。

以前の方式が何を意味したか想像してほしい。サブエージェントが20分時点で60,000トークンの会話を持っているとする。ステータス自体はおそらく30トークンだ。しかしその30トークンを書くために、モデルは60,000トークンすべてを、1分に2回、サブエージェントが動いている間ずっと読み直さなければならなかった。

修正前はステータスが30秒ごとに会話全体を読み直していた。修正後は短いメモ
2026年11月5日のClaudeDevs発表で説明されたステータス行の変更

「テスト実行中」と言うのに完全な記録は誰も必要としない。数行のメモ(何をしているか、何が終わったか)で十分だ。それが修正のすべてだ。脇のタスクには記録ではなくメモを渡す。

なぜ各ステップが履歴を再送するのか#

返信した瞬間にあなたを忘れる相手への手紙を考えてほしい。続けるには、これまでのやり取り全体に新しい一行を加えて送り直す。エージェントのステップはまさにその呼び出しだ。システムプロンプト、あなたのタスク、それまでのすべての応答、すべてのツール結果が再び入力される。(この話のチャット版は長いAIチャットが高くつく理由にある。)

数字を当てはめてみよう。システムプロンプトとタスクで3,000トークン、各ステップが約2,000トークン(モデルの応答と読み取ったツール出力)を加えるとする。するとステップnは3,000 + 2,000 × nトークンを送る。ステップ1で5,000、ステップ10で23,000、ステップ50で103,000だ。

例のエージェントのステップごとの入力トークンは5,000から103,000へ増える
例のエージェントのステップごとの入力サイズ(開始3,000、1ステップあたり+2,000と仮定)

数字を当てる

このエージェントのステップ50は何トークンの入力を送るか?

答えを表示

答え: 103,000

3,000 + 2,000 × 50 = 103,000。モデルは開始プロンプトとそれ以前の49ステップすべてを読み直し、その上に新しいステップを加える。

次に50ステップすべてを合計する。増加する部分は2,000 × 1,275 = 2,550,000で、1,275は1 + 2 + … + 50だ。毎回送られる開始プロンプトは50 × 3,000 = 150,000。合わせて150,000 + 2,550,000 = 2,700,000入力トークンになる。完成した会話は103,000トークンしかない。103,000トークンの記録を得るために270万トークンをモデルに通したのであり、請求は最初の数字に従う。

いくらかかるか:1タスク、1日#

同じ50ステップのエージェントをDeepSeek-V4-Flashで価格計算する。平均ステップは54,000トークンを送るので、合計54,000 × 50 = 2,700,000入力トークンとなり、各ステップで約400トークンを書く(400 × 50 = 20,000)。タスク全体で$0.0425かかる。同じワークロードを全モデルで、OpenRouterと並べて示す:

モデル リクエストあたり 50 リクエスト OpenRouter、50 リクエスト
GLM-5.3-Flash $0.0011 $0.0548 $0.0921
DeepSeek-V4-Flash $0.00085 $0.0425 $0.192
MiniMax-M2.7 $0.0028 $0.138 $1.66

リクエストあたり 54,000 入力トークンと 400 出力トークン。100万トークンあたりの価格は現行のもので、当社の料金体系に合わせて変動します。OpenRouter 列は同じワークロードの参考価格を示しています。

表では、入力と出力を合計すると、すべてのモデルがOpenRouterより安い。

次にステータス行。120回の更新は1つのサブエージェントの1時間分で、それぞれ約30トークンを書く(30 × 120 = 3,600出力)。以前の方式では60,000 × 120 = 7,200,000入力トークン、つまり上記の50ステップタスク2.5個分以上を、ステータステキストのためだけに費やしていた。500トークンのメモなら500 × 120 = 60,000だ。GLM-5.3-Flashでは$0.144対$0.0013になる。

自分のエージェントで試してみよう:1ステップあたりのトークン、ステップ数、1日あたりのタスク数。

コスト計算機

そのようなタスク10個の1日

リクエストあたりの入力トークン数: 54,000 · リクエストあたりの出力トークン数: 400 · 1日あたりのリクエスト数: 500

モデル1日あたり1か月あたり
GLM-5.3-Flash$0.548$16.44
DeepSeek-V4-Flash$0.425$12.75
MiniMax-M2.7$1.38$41.40

ベースURL、キー、最初のリクエストはCheapTokensのドキュメントにあり、全モデルの現在の価格は価格ページにある。

削減する4つの方法#

どれも特別なツールを必要としない。「この呼び出しは本当に履歴を必要とするか?」と問う習慣だ。

メモのパターン#

エージェントが動いている間、数行のメモを保ち、ステータスや要約が必要なときはそれだけを小さなモデルに渡す。GLM-5.3-Flash(zai-org/GLM-5.3-Flash、390Kコンテキスト、1回答あたり最大8,192出力トークン)での例:

python
import os
from openai import OpenAI

client = OpenAI(
    base_url='https://api.cheaptokens.dev/v1',
    api_key=os.environ['CHEAPTOKENS_API_KEY'],
)

notes = [
    'Task: fix failing tests in billing/',
    'Done: found 3 failing tests, fixed 2',
    'Now: running the third test',
]

reply = client.chat.completions.create(
    model='zai-org/GLM-5.3-Flash',
    max_tokens=100,
    messages=[
        {'role': 'system', 'content': 'Write a one-line status from the notes.'},
        {'role': 'user', 'content': '; '.join(notes)},
    ],
)
print(reply.choices[0].message.content)
print(reply.usage.prompt_tokens, reply.usage.completion_tokens)

短い1行が返り、使用量のペアは入力が数万ではなく数十トークンであることを示す。これはClaude Codeの変更と同じ考えを十数行で表したものだ。

どの習慣があなたのケースに合うか?

ケースを選ぶ

あなたの状況は?

1つのセッションで話題が変わった

新しいセッションを開始する。古い記録ではなく5行のメモ(目標、完了したこと、次にやること)を貼り付ける。トリミングの選択肢はチャット履歴のトリミング:スライディングウィンドウか要約かにある。

脇の仕事:ステータス、要約、タイトル

履歴ではなくメモを渡し、上のコードのように小さなモデルに送る。

巨大なツール出力:ログ、テストダンプ

履歴に入れない。ダンプ全体ではなく最後の20行か失敗したテスト1件だけを見せる。残した行はすべて以降の各ステップで再送される。Claude Codeのトークン使用量:ツール出力をコンテキストから外すに方法が示されている。

毎回同じ長いプロンプト

プロバイダーにプロンプトキャッシュについて尋ねる。毎回新しく読む代わりに、プロンプトの繰り返される先頭部分を再利用できる。

Claude Codeを使っているなら、更新して変更履歴でステータス行の記述を確認しよう。

ループ自体には、DeepSeek-V4-Flash(deepseek-ai/DeepSeek-V4-Flash-0731)が380Kコンテキスト、1回答あたり最大32,768出力トークン、どの時間帯でも同一価格を提供する。例の終端の103,000トークンはそのウィンドウに3回以上収まる。メモと要約にはGLM-5.3-Flash。他のモデルはモデルページにある。