本文へスキップ
開発日記読了 約5

AIエージェントに「記憶」を持たせる——セッションをまたいで学びを活かす設計

AIエージェントは、1回の会話セッションが終わると、それまでのやり取りを一切覚えていません。 これはモデルの性能の問題ではなく、セッションが終わるたびに文脈が破棄される仕組み(ステートレス性)そのものによるものです。セッションをまたいで「前回はこう指示された」「このユーザーはこういう進め方を好む」を活かすには、モデルの外側に記憶を持たせる設計が要ります。私たちが1人+AIで複数プロダクトの日次運用を回すなかで、このメモリ設計を作り直すことになった3つの失敗と、そこから引いた原則を一次体験として公開します。

AIエージェントの「記憶」とは何か

AIエージェントにとっての記憶とは、会話モデル自体が持つ能力ではなく、次回のセッションでも参照できる形で外部に保存された、ユーザー像・過去の指示・進行中の案件情報を指します。モデルは毎回まっさらな状態から会話を始めるため、記憶を持たせるには「何を」「どう分類して」「いつ読み込むか」を人間側が設計する必要があります。この設計をおろそかにすると、同じ指摘を毎回繰り返す、過去に決めた方針を無視する、といった形で表面化します。

失敗1: 1つのファイルに全部書いて、精度が落ちた

最初の設計は単純で、気づいたことを1つのメモファイルに時系列で追記するだけでした。数十件を超えたあたりから、関連の薄い情報まで毎回まとめて読み込まれるようになり、本当に必要な情報がノイズに埋もれて参照されにくくなりました。記憶は「量を増やす」ほど強くなるわけではなく、関係のない情報を毎回読ませること自体が精度を下げるという、当たり前だが見落としやすい落とし穴でした。

対処として、記憶を「ユーザー像」「フィードバック(進め方の指示)」「進行中の案件」「外部参照先」の4種類に分け、種類ごとに別ファイルへ切り出しました。全件を毎回読み込むのではなく、索引だけを先に読み、必要な種類だけを開く構成に変えたことで、無関係な情報を読ませる量を大きく減らせました。

失敗2: 古い前提を、状況が変わった後も使い続けた

2つ目の失敗は、ある時点でユーザーから聞いた情報(担当プロダクトや優先順位など)をそのまま記憶し、状況が変わった後もその古い前提に基づいて提案を続けてしまったことです。人間なら会話の流れで「あれ、前と状況が違うな」と気づけますが、記憶をそのまま信じて動くAIエージェントは、この違和感に自分では気づけません。

対処として、「記憶に書かれた固有名詞(ファイル名・機能名・担当)は、それを根拠に行動する前に現状を確認してから使う」というルールを明文化しました。記憶は「その時点で真実だった」ことの記録であり、「今も真実である」ことの保証ではない、という前提を運用ルールとして組み込む必要がありました。

失敗3: 評価的な記述が、判断に無自覚な偏りを持ち込んだ

3つ目は、ユーザーに関する記憶に「対応が遅い」「この指示は分かりにくかった」といった評価的な言い回しを書いてしまったことです。事実の記録のつもりでも、評価的な言葉は次回以降のやり取りの前提として無自覚に持ち込まれ、フラットな判断を歪めるリスクがあります。

対処は明快で、ユーザーに関する記憶には否定的な評価を書かないというルールを設けました。役に立つのは「何を好み、何を避けたいか」という行動の傾向であって、人物評ではありません。この線引きを明文化してから、記憶を読み返したときの違和感がなくなりました。

3つの失敗から引いた設計原則

セッションをまたぐ記憶を安定させる3原則
  1. 種類ごとに分けて保存し、必要な種類だけを読み込む(全件常時ロードしない)
  2. 記憶は「過去の事実」として扱い、行動の根拠にする前に現状を確認する
  3. 人物に対する評価ではなく、行動の傾向として記述する

AIへの委譲・レビューの型とのつながり

このメモリ設計は、単独の工夫ではなく、AIエージェントに実務を任せる一連の運用の一部です。タスクを検証可能な単位に割る話はAIエージェントに仕事を渡す技術に、生成役と検証役を分けるレビューの型はAIのコードレビューを二重化するにまとめています。記憶・委譲・検証はいずれも、AIエージェントを「毎回ゼロから説明し直す道具」から「文脈を引き継いで動ける協働者」に変えるための、別々の側面だと捉えています。

よくある質問

Q. 記憶を持たせると、AIエージェントの判断は必ず良くなりますか。 A. 良くなるとは限りません。この記事の失敗2・3のように、誤った前提や評価的な記述をそのまま記憶させると、かえって判断を歪めます。記憶は量ではなく、書き方と読み込み方の設計次第です。

Q. どのくらいの粒度でメモリファイルを分けるべきですか。 A. 私たちの運用では「ユーザー像」「フィードバック」「進行中の案件」「外部参照先」の4種類に分けています。種類が混ざると索引だけでは絞り込めなくなるため、性質の異なる情報は最初から別ファイルにするのが安全です。

Q. 記憶が古くなった場合、どう気づけばよいですか。 A. 記憶の内容を無条件に信じず、行動の根拠にする直前に現状を確認する運用ルールを組み込むのが有効です。記憶自体に有効期限を持たせるより、「使う前に検証する」を習慣化するほうが壊れにくいと感じています。

Q. これは特定のツールに限った話ですか。 A. いいえ。ここで挙げた3つの失敗と原則は、外部メモリを持つAIエージェント全般に当てはまる設計上の論点です。使うツールが変わっても、記憶の分類・検証・記述方法という論点自体は残ります。

コメント

コメントは即時公開されます。不適切な内容は予告なく削除します。

#AI開発#AIエージェント#個人開発