8 / 10
レッスン 8
本文 約3分

エージェントのメモリと状態管理

※このページには広告(PR)リンクが含まれます

PRこのレッスンで使う:Audible ↗

🎯 このレッスンのゴール:最後の3問に答えられること

  1. ユーザーの好みを、別の日に始めた会話でも覚えておきたい場合、どのメモリで扱うのが適切ですか?
  2. 長い会話で古い文脈を失いたくないが、トークン消費も抑えたい場合、本文の短期メモリ戦略で適切なのはどれですか?
  3. 長時間かかる処理が障害で止まっても、途中の状態から復旧できるようにしたい場合、本文で挙がる手法はどれですか?

本文は約3分で読めます。先に問題を頭に入れてから読むと、答えの箇所が見つけやすくなります。

すぐに問題に挑戦する ↓
▶

解説動画は無料登録で視聴できます

全26コース・260レッスンが完全無料。登録は1分、クレジットカードは不要です

エージェントのメモリと状態管理

はじめに

AIエージェントが真に実用的になるためには、過去の対話や処理結果を記憶し、状態を適切に管理する能力が不可欠です。メモリのないエージェントは毎回ゼロから始めることになり、ユーザー体験も業務効率も著しく低下します。この章では、エージェントのメモリ設計と状態管理の実践手法を学びます。

メモリの種類

AIエージェントのメモリは主に3つのレベルに分類されます。

  • ◆短期メモリ: 現在の会話セッション内の情報。メッセージ履歴として保持される。セッション終了で消える
  • ◆作業メモリ: 現在のタスク遂行に必要な中間状態。処理途中のデータやタスクの進捗状況
  • ◆長期メモリ: セッションをまたいで永続化される情報。ユーザーの好み、過去の意思決定、学習した知識

短期メモリの管理戦略

会話履歴の管理はコストとパフォーマンスに直結します。

  • ◆ウィンドウ方式: 直近N件のメッセージだけを保持。実装が簡単だが、古い文脈が失われる
  • ◆トークン制限方式: トークン数の上限を設定し、超えた分は古い順に削除する
  • ◆要約方式: 古い会話を定期的にLLMで要約し、コンパクトな形で保持する
  • ◆重要度ベース: 重要なメッセージにフラグを立て、重要でないものを優先的に削除する

長期メモリの実装

セッションをまたいで情報を記憶する仕組みを構築します。

  • ◆ベクトルストア方式: 重要な情報をエンベディングしてベクトルDBに格納。類似検索で呼び出す
  • ◆構造化DB方式: ユーザー情報、設定、履歴をRDBに格納。正確な検索が可能
  • ◆ファイルベース方式: メモリ内容をMarkdownやJSONファイルに保存。実装がシンプル
  • ◆ハイブリッド方式: 構造化データはRDB、非構造化データはベクトルDBに格納

状態管理パターン

エージェントの実行状態を管理するためのパターンを学びます。

  • ◆ステートマシン: エージェントの状態を明示的に定義し、遷移条件を管理する。予測可能性が高い
  • ◆グラフベース: LangGraphのようにノードとエッジで処理フローを定義。柔軟な分岐が可能
  • ◆イベントソーシング: すべての状態変更をイベントとして記録。任意の時点に復元可能
  • ◆チェックポイント: 定期的に状態をスナップショットとして保存。障害時の復旧に利用

コンテキストウィンドウの最適化

LLMのコンテキストウィンドウを効率的に使う戦略を学びます。

  • ◆情報の優先順位付け: システムプロンプト>直近の会話>関連するメモリ>背景情報の順に配置
  • ◆動的コンテキスト: 現在のタスクに関連する情報のみをメモリから取得して挿入する
  • ◆コンテキスト圧縮: 冗長な情報を要約し、重要なポイントだけを残す
  • ◆段階的読み込み: 必要になったタイミングで追加情報をコンテキストに投入する

セッション管理の実装

マルチユーザー環境でのセッション管理も重要です。

  • ◆セッションID: ユーザーごとにユニークなセッションIDを発行し、メモリを分離する
  • ◆TTL設定: 一定期間アクセスがないセッションは自動的にクリーンアップする
  • ◆並行処理: 同一ユーザーの複数リクエストが競合しないよう排他制御を実装する
  • ◆データ暗号化: メモリに保存される個人情報は暗号化して保護する

🏋️実践ワーク

以下の課題に取り組みましょう。

  • ◆要約方式の短期メモリを実装し、長い会話でも文脈が維持されることを確認してみましょう
  • ◆ベクトルストアを使った長期メモリを実装し、過去の会話内容を呼び出してみましょう
  • ◆ステートマシンでエージェントの状態遷移を定義し、各状態での振る舞いを実装してみましょう

📝まとめ

メモリと状態管理は、エージェントの「賢さ」を決定する重要な要素です。短期・作業・長期メモリの適切な使い分けと、状態管理パターンの選択により、文脈を理解し継続的に学習するエージェントを構築できます。次の章では、エージェントの品質評価手法について学びます。

理解度チェック

3問

全問正解でこのレッスンが「完了」になり、コースの全レッスンを完了すると修了証が発行されます。何度でも挑戦でき、全問正解すると全問の解説が読めます(不正解のときは正解した問題の数だけ表示され、30秒後に答え直せます)。

  1. Q1.ユーザーの好みを、別の日に始めた会話でも覚えておきたい場合、どのメモリで扱うのが適切ですか?

  2. Q2.長い会話で古い文脈を失いたくないが、トークン消費も抑えたい場合、本文の短期メモリ戦略で適切なのはどれですか?

  3. Q3.長時間かかる処理が障害で止まっても、途中の状態から復旧できるようにしたい場合、本文で挙がる手法はどれですか?

すべての問題に答えると押せます

「AIエージェント開発・自動化上級講座」全10レッスンを無料で修了しよう

  • ✓ 理解度チェックの採点と、合格レッスンの記録
  • ✓ 全レッスン合格で修了証を発行(URLでシェア・LinkedInに追加できます)
  • ✓ 全レッスンの解説動画と、続きから再開できる学習ダッシュボード
無料で受講をはじめる(1分)

完全無料・クレジットカード不要

このレッスンで使うツール・次の学び方 PR

関連レッスン(他のコースから)