エージェント基盤・プロトコル

短期記憶とは|9往復目で上限に当たり、20往復目には最初の12往復が消えていた

短期記憶とは何を指すのか上限に当たると何が起きるのかどう対処すればよいのか

AIとの会話で「さっき言ったこと」を覚えていられるのは、履歴を毎回まるごと送り直しているからです。記憶しているわけではありません。

20往復の会話を積み上げたところ、全部送る構成は9往復目で上限に当たりました。古いものから捨てる構成では、20往復目に最初の12往復が消えています。

この記事の要点

  • 短期記憶の正体は毎回送り直している会話の履歴
  • 1往復900トークン・上限8000トークンなら9往復目で当たる
  • 古いものを捨てると、20往復目には最初の12往復が消える
  • 要約に切り替えても粗くなるだけで元には戻らない

9往復目で上限に当たり、20往復目には最初の12往復が消えていた

20往復ぶんを積み上げました。全部送る構成は9往復目で上限を超え、捨てる構成では最初の12往復が完全に失われます。

短期記憶がどこで限界に当たるのかを、往復ごとに積み上げました。条件は1往復900トークン、履歴の上限8000トークンです。

断っておくと、これは実際の会話を計測したものではありません。1往復あたりの量を置いて積み上げた計算です。置いた値はコードに書いてあります。

javascript
const TURNS = 20;
const PER_TURN = 900;      // 1往復あたりのトークン量(置いた値)
const LIMIT = 8000;        // 履歴に許す上限
const SYSTEM = 400;        // 毎回必ず送る指示
const SUMMARY_TOK = 250;   // 要約1つぶんの量

// 2: 古いものから捨てる(最初の指示や前提が消える)
function dropOldest() {
  const fit = Math.floor(LIMIT / PER_TURN);
  // 直近 fit 往復ぶんだけを残す。それより前は完全に消える
}
text
1往復 900 tok、履歴の上限 8000 tok で 20往復したとき

往復  全部送る        古いのを捨てる   要約して残す
  5回  4900 tok       4900 tok        4900 tok
  8回  7600 tok       7600 tok        7600 tok
 10回  上限超過           7600 tok        7850 tok
 15回  上限超過           7600 tok        7850 tok
 20回  上限超過           7600 tok        7850 tok

全部送る構成が上限を超えるのは 9往復目
古いのを捨てる構成が 20往復目に持っている最古の往復: 13往復目
  → 1〜12往復目の内容は完全に消えている
要約して残す構成が 20往復目に要約している往復数: 12往復ぶん

8往復目までは3つとも同じ値です。差が出るのは上限に当たってからで、そこから扱い方の違いが現れます。

捨てると完全に消える

古いものから捨てる構成では、20往復目に残っているのは13往復目以降だけです。最初の12往復で決めたことは、参照できません

会話の最初は前提を確認する部分になりがちです。ですから消える順序としては、いちばん困る側から消えていきます。

要約しても戻らない

要約して残す構成では、12往復ぶんが250トークンに圧縮されています。痕跡は残りますが、圧縮の過程で細部は落ちます

落ちやすいのは数値と固有名詞です。「予算の話をした」は残っても、「320万円」は残らないことがあります。

上限に当たるのは避けられない。選べるのは何を失うかだけ。

本体に送るトークン量1840005往復8往復10往復15往復20往復上限(履歴8000+指示400)全部送る古いのを捨てる要約して残す全部送る線は9往復目で上限を超える。以降は上限を無視した場合の量を引いている。
図1 ── 20往復目に参照できる範囲
出典Claude Platform Docs「Context windows」2026-08-17 確認
As conversations grow, you'll eventually approach context window limits.
原文Claude Platform Docs「Context windows」 この内容の有効期限2027-02-17

短期記憶とは何を指すのか

覚えているのではなく、毎回まるごと送り直しています。ですから送れる量に上限があります。

短期記憶と呼ばれているものの正体は、会話の履歴をそのまま送り直しているという動作です。AIの中に何かが保存されているわけではありません。

往復ごとに積み上がる

Anthropicの説明でも、会話が進むにつれて利用者の発言とAIの応答が積み上がり、それまでの往復はそのまま保たれるとされています。要約されるのではなく、丸ごと残る形です。

ですから10往復目には10往復ぶんが送られます。1往復目の内容も、そのときと同じ形で毎回送り直されています。

積み上がる先に上限がある

積み上がる場所には容量の上限があります。同じ文書には、会話が長くなればいずれ上限に近づくと明記されています。

この上限は応答の生成ぶんも含みます。ですから履歴で埋まるほど、返せる答えの長さも短くなっていきます。

長期記憶との違い

短期記憶は1つの会話の中だけのものです。会話を閉じれば消えます。会話をまたいで保つには、外部に保存する仕組みが別に要ります

余談 消えて困るものは履歴に置かない

運用してみて分かったのは、大事な前提を会話の中だけに置くと必ず失われることでした。編集部では、守ってほしい決まりごとは毎回送る指示のほうに書き、作業の進み具合はファイルに残すようにしています。計画が履歴から消える問題はPlan-and-Executeの記事でも扱っています。

出典Claude Platform Docs「Context windows」2026-08-17 確認
Progressive token accumulation: As the conversation advances through turns, each user message and assistant response accumulates within the context window, and previous turns are preserved completely.
原文Claude Platform Docs「Context windows」 この内容の有効期限2027-02-17

履歴の上限にどう備えるか

上限を広げるだけでは解決しません。消えて困るものを履歴の外に出しておくのが確実です。

短期記憶の限界への備えは、何を失ってよいかを先に決めておくことから始まります。失わない選択肢は存在しないためです。

上限を広げても解決しない

まず出てくる案が、上限の大きいモデルに変えることです。到達する時期は遅くなりますが、往復を重ねれば同じところに行き着きます。

しかも副作用があります。Anthropicも、上限が大きいほど長い入力を扱えるが、文脈が多ければ自動的に良くなるわけではないとしています。

履歴の外に出す

  1. 守ってほしい決まりごと。毎回送る指示のほうに書く
  2. 作業の進み具合。ファイルや記録用の場所に残す
  3. 調べた結果の中身。要約だけ履歴に置き、原本は外に置く
  4. 雑談や言い直し。消えてかまわない

3番目の扱いが効きます。読み込んだ内容をそのまま履歴に積まず、要約だけ残すと、上限に当たる時期をかなり遅らせられます。この切り出し方はサブエージェントの記事で数字とともに扱っています。

決めておくこと

実装に入る前に、上限に当たったときの動きを決めてください。止まるのか、古いものから落とすのか、要約に切り替えるのか。決めていないと、想定していない形で情報が消えます。

また、いつ何が落ちたかを記録しておくと、答えがおかしくなった原因を追えます。記録の設計はエージェント可観測性の記事で扱っています。

上限を広げても到達する。消えて困るものを外に出すしかない。

消えても支障がないかいいえ履歴の外に保存するはい要約で足りるかいいえ原本を外に置き参照させるはい履歴に置いてよい1往復900tok・上限8000tokの条件では、9往復目に上限へ到達した。
図2 ── 履歴に置くかどうかの判断
要約で数値が落ちる要約に切り替えるとき、いちばん落ちやすいのが数値と固有名詞です。金額や日付が消えたまま会話が続くと、後の判断が静かに狂います。数値は要約に頼らず、別に控えておいてください。
出典Claude Platform Docs「Context windows」2026-08-17 確認
A larger context window allows the model to handle more complex and lengthy prompts, but more context isn't automatically better.
原文Claude Platform Docs「Context windows」 この内容の有効期限2027-02-17

よくある質問

上限を大きくすれば解決しませんか
先延ばしにはなりますが、なくなりません。往復を重ねれば必ず到達します。また履歴が長くなるほど1回あたりの送信量が増えるため、費用と時間も伸びます。
何を残すかは自分で決められますか
実装によります。古いものから自動的に落ちる作りもあれば、何を残すかを自分で組める作りもあります。重要な前提は履歴とは別の場所に置くのが確実です。
要約すればほぼ元通りになりますか
なりません。要約に入らなかった細部は失われます。数値や固有名詞が落ちやすいので、消えて困る情報は要約に頼らないでください。
長期記憶とは何が違いますか
短期記憶は1つの会話の中だけで保たれ、会話が終われば消えます。会話をまたいで保つには、外部に保存する仕組みが別に要ります。

まとめ

  • 短期記憶は毎回送り直している履歴のことで、記憶ではない
  • 積み上げた条件では9往復目で上限に当たった
  • 古いものを捨てると最初の12往復が完全に消える
  • 選べるのは何を失うかだけで、失わない選択肢はない

今日から始められること

  1. 1往復あたりの送信量と、使っている上限を確認する
  2. 何往復目で上限に当たるかを計算する
  3. 会話をまたいで保ちたい前提を書き出す
  4. その前提を履歴とは別の場所に置く

実務で組んだ短期記憶のワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る