>_Skillful
Need help with advanced AI agent engineering?Contact FirmAdapt
All Posts

AIエージェントのメモリシステム: 短期記憶と長期記憶

エージェントがステップやセッションをまたいでどう文脈を覚えているかが、扱えるタスクの種類を決めます。メモリ手法のトレードオフは、エージェントを作る人にとって実用上の意味を持ちます。

April 25, 2026Basel Ismail
ai-agents memory architecture technical

メモリが重要な理由

メモリのないエージェントは単一セッション内のタスクに限定されます。トピックを調査し、レポートを書き、コードをデバッグできますが、すべて1回の会話の中だけです。セッションが終われば、エージェントが学んだことはすべて失われます。次のセッションはゼロから始まります。

多くの用途では、これで問題ありません。ほとんどの開発タスク、調査クエリ、データ分析リクエストは自己完結型です。しかし継続性を必要とするユースケースもあります。時間をまたぐシステム監視、過去の調査の上に積み上げる作業、プロジェクト進捗の追跡、進行中の会話の文脈維持などです。

短期記憶: コンテキストウィンドウ

エージェントメモリの最も基本的な形は、言語モデル自身のコンテキストウィンドウです。エージェントがタスクを進めるにつれて、会話履歴が蓄積されます。過去の観察、ツール結果、推論ステップがすべてコンテキストに残り、後続の判断に影響します。

これは、モデルのコンテキストウィンドウに収まるタスク(現代のモデルでは10万トークン以上)に対してうまく機能します。エージェントは現在のセッションで起きたすべてを完璧に思い出せます。先の発見を参照し、過去のミスを修正し、中間結果の上に積み上げていけます。

制約は、コンテキストウィンドウが有限で、しかも高価であることです。会話が長くなるにつれて、新しいステップごとのコストが増えます。モデルが過去のコンテキストすべてを処理しなければならないからです。長時間動くタスクではコンテキスト管理が必要になります。先のステップを要約し、無関係な詳細を捨て、会話を本質的な要素に圧縮していくのです。

ワーキングメモリ: 構造化された状態

一部のエージェントフレームワークは、ワーキングメモリをタスク中にエージェントが維持する構造化データストアとして実装しています。会話履歴だけに頼るのではなく、エージェントが変数、中間結果、タスク状態を、生の会話テキストよりも効率的なフォーマットで明示的に追跡します。

ワーキングメモリには、すでに調べたファイルのリスト、これまでの発見の要約、残りのサブタスクのキュー、検証中の仮説のセットなどが含まれ得ます。この構造化アプローチによって、コンテキスト維持のトークンコストが下がり、エージェントの状態が開発者やユーザーにとって透明になります。

トレードオフは複雑性の増加です。エージェントは、いつどうワーキングメモリを更新するかを知る必要があり、これが新たなエラー源を生みます。エージェントが重要な発見を記録し損ねたり、状態を誤って更新したりすると、後続の判断が不完全または誤った情報に基づくものになります。

長期記憶: 永続ストレージ

長期記憶は、エージェントがセッションをまたいで情報を保持できるようにします。今日学んだ有用なことを、来週思い出せるのです。これによって、好みを覚える個人アシスタント、過去の調査の上に積み上げる調査エージェント、時間をまたぐ変化を追跡する監視エージェントといった用途が可能になります。

長期記憶への一般的なアプローチには、ベクトルデータベース(情報を埋め込みとして保存し、意味的類似度に基づいて取り出す)、キーバリューストア(事実を構造化データとして保存する)、ドキュメントストア(会話の要約や知識ベースを維持する)があります。

ベクトルデータベースは特に人気があります。保存情報に対して自然言語クエリを行えるからです。エージェントは「競合の価格について何を学んだか」と尋ねて、情報がどう保存されたかを正確に知らなくても関連する記憶を取り出せます。これは言語モデルが情報を処理する方法とよく合致します。

取り出しという課題

記憶を保存することは簡単な部分です。難しいのは、適切な記憶を適切なタイミングで取り出すことです。何千もの記憶を保存しているエージェントは、コンテキストにすべて読み込むこと(高コストかつ混乱を招きます)なく、現在のタスクに関連するものを特定する必要があります。

RAG(Retrieval-Augmented Generation)は、クエリと保存された記憶の両方をベクトル空間に埋め込み、意味的に最も近い記憶を取り出すことでこれに対処します。事実の想起にはうまく機能しますが、時間的文脈(先週の記憶が先月のものより優先することの理解)や関係的文脈(意味的には異なるが関連する記憶のつなぎ合わせ)では苦戦することがあります。

実践的な推奨事項

多くのエージェントアプリケーションでは、機能する最もシンプルなメモリアプローチから始めましょう。コンテキストウィンドウは単一セッションタスクには十分なことが多いです。コンテキストが大きくなりすぎたり構造化された状態の追跡が必要になったりしたら、ワーキングメモリを追加します。長期記憶の追加は、セッションをまたぐ継続性が真に必要な場合に限ります。

メモリの各層は複雑性、コスト、潜在的な失敗モードを増やします。高度なメモリシステムを管理しようとして失敗するエージェントは、シンプルなコンテキストウィンドウに頼ってそれを上手く使うエージェントより劣る結果を出すでしょう。メモリアーキテクチャはユースケースの実際のニーズに合わせるべきです。


関連記事

Skillful.shでAIエージェントを発見する137,000以上のAIツールを検索する