【Claude Code】agent-memory(エージェントメモリー)の使い方をわかりやすく解説
Claude CodeのAIサブエージェントに、永続的に知識を記憶させる`agent-memory`機能の使い方を解説します。サブエージェントが過去の学習内容を忘れずに、プロジェクトルールを考慮したレビューや作業を効率的に行う仕組みを学べます。チームで知識を共有したり、個人で管理したりするメモリの「スコープ」の選び方も理解できます。
開発環境
- OS: Windows10(WSL2 / Ubuntu)
- Editor: Visual Studio Code
- Node.js: v22.22.2
- claude-code: 2.1.118
Claude Code agent-memory(エージェントメモリー)とは?
agent-memory(エージェントメモリー)は、サブエージェントが会話をまたいで知識を蓄積できる永続メモリの仕組みです。
ここで言う「サブエージェント」とは、Claude Codeの中で特定の役割を担当する専門的なAIプログラムのことです。「永続メモリ」とは、一度学んだ内容を忘れることなく、ずっと覚えていられる記憶の仕組みを指します。つまり、agent-memoryを使うことで、サブエージェントは一つのタスクが終わっても、そこから得た知識を忘れずに、次のタスクや別の会話でその知識を活かせるようになります。
サブエージェント(.claude/agents/ で定義する専門エージェント)は通常、毎回まっさらな状態で起動します。これは、過去にどんなタスクを実行し、何を学んだかをすべて忘れてしまう状態を意味します。しかし、agent-memoryを有効にすると、各サブエージェント専用の MEMORY.md というファイルが自動で作られます。この MEMORY.md ファイルには、サブエージェントがタスクを通じて学んだ知識が記録されます。そして、サブエージェントは起動時にこの MEMORY.md を読み込み、過去の知識を思い出します。タスクが終了する際には、新しく学んだことを MEMORY.md に書き込み、知識を更新します。
この一連の流れは、以下の図のように行われます。
1タスク開始 2 ↓ 3[MEMORY.md を読み込む] ← 過去に学んだ知識を思い出す 4 ↓ 5タスク実行 6 ↓ 7[MEMORY.md を更新する] ← 新しく学んだことを書き残す 8 ↓ 9タスク終了
公式ドキュメント: https://code.claude.com/docs/ja/sub-agents
auto-memory との違い
Claude Code には、情報を記憶するための仕組みが2種類あります。これらは「メモリ」と呼ばれ、AIが過去の会話や作業内容を覚えておくために使用されます。
| 種類 | 対象 | 格納先 |
|---|---|---|
| auto-memory | メインセッション(あなたとの会話) | ~/.claude/projects/<project>/memory/ |
| agent-memory | サブエージェント | ~/.claude/agent-memory/<agent名>/ など |
それぞれのメモリについて詳しく説明します。
-
auto-memory:
- このメモリは、直接 Claude Code と行っている「メインセッション」、つまり通常の会話や指示の履歴を対象としています。
- メインセッションで話した内容や指示は、この
auto-memoryに記憶されます。 - 記憶された情報は、
~/.claude/projects/<project>/memory/という指定された場所に保存されます。
-
agent-memory:
- このメモリは、「サブエージェント」と呼ばれるものに使用されます。サブエージェントとは、Claude Codeが複雑なタスクをこなす際に、特定の目的のために内部的に生成する、独立したAIの補助役のことです。
- サブエージェントはそれぞれ独自のタスクを実行するため、そのタスクに必要な情報や作業履歴を
agent-memoryに記憶します。 - 記憶された情報は、
~/.claude/agent-memory/<agent名>/といった指定された場所に、それぞれのサブエージェント専用に保存されます。
独立性について
auto-memoryとagent-memoryは完全に独立しています。これは、以下のことを意味します。
- メインセッション(あなたとの会話)で記憶された内容は、サブエージェントからは見ることができません。
- 反対に、サブエージェントが記憶した内容は、メインセッションからは見ることができません。
それぞれのサブエージェントは、独自のMEMORY.mdというファイルに自分の記憶を記録しています。これにより、お互いの記憶が混ざることなく、それぞれの役割に集中して効率的に作業を進めることができる仕組みになっています。
3つのスコープ
agent-memory は3つのスコープから選べます。
agent-memory とは、AIエージェントが情報を記憶し、後でその記憶を再利用するための機能です。ここで言う「スコープ」とは、その記憶がどこまで有効か、どこで使われるかという「範囲」を指します。AIエージェントの記憶を管理する方法には、主に3つの異なる範囲があります。
| スコープ | パス | 用途 | git管理 |
|---|---|---|---|
user | ~/.claude/agent-memory/<agent名>/ | 全プロジェクト横断で記憶を共有したい | – |
project | .claude/agent-memory/<agent名>/ | プロジェクト固有・チームで共有したい | する |
local | .claude/agent-memory-local/<agent名>/ | プロジェクト固有・個人ローカルだけに残したい | しない(gitignore推奨) |
スコープごとの詳細
user スコープ
- パス:
~/.claude/agent-memory/<agent名>/~は、ご自身のパソコンのユーザーアカウントのホームディレクトリを表します。これは、ご自身の環境全体に適用される場所です。<agent名>の部分には、使用しているAIエージェントの名前が入ります。そのAIエージェント固有の記憶がここに保存されます。
- 用途: 全プロジェクトで同じ記憶を共有したい場合に利用します。例えば、AIエージェントに一度だけ教えておきたい「あなたの得意なプログラミング言語はPythonです」といった情報を、どのプロジェクトでAIエージェントを使っても覚えていてほしい場合に便利です。
- git管理: Git(バージョン管理システム)では管理されません。これは個人の設定として扱われるため、他の人には共有されません。
project スコープ
- パス:
.claude/agent-memory/<agent名>/- これは、現在作業しているプロジェクトのルートディレクトリ(一番上の階層)の中に作られるディレクトリです。このパスで保存される記憶は、そのプロジェクト専用となります。
- 同様に、
<agent名>の部分にはAIエージェントの名前が入ります。
- 用途: 特定のプロジェクトに関する記憶を、チームメンバー全員で共有したい場合に利用します。例えば、「このプロジェクトのデータベース接続設定はAです」といった情報をAIエージェントに記憶させ、チーム全員がAIエージェントを通じて同じ情報を参照できるようにする場合に適しています。
- git管理: Gitで管理されます。そのため、プロジェクトのソースコードなどと一緒にAIエージェントの記憶もバージョン管理され、チームメンバー全員が同じ記憶を共有できます。
local スコープ
- パス:
.claude/agent-memory-local/<agent名>/- これも
projectスコープと同様に、現在作業しているプロジェクトのルートディレクトリの中に作られるディレクトリです。ただし、ファイル名が異なるため、他のスコープとは区別されます。 - このパスに保存される記憶も、そのプロジェクト専用ですが、ご自身の環境でのみ使われます。
- これも
- 用途: プロジェクト固有の情報でありながら、他のチームメンバーには共有したくない、ご自身のローカル環境だけで使いたい記憶を保存するのに適しています。例えば、ご自身のパソコンでしか使わないAPIキーや、個人的な開発メモなどをAIエージェントに記憶させたい場合に利用します。
- git管理: Gitでは管理されません。誤って機密情報などが共有されるのを防ぐため、通常は
.gitignoreというファイルにこのパスを追加し、Gitの管理対象から除外することが推奨されます。
| 迷ったら | おすすめ |
|---|---|
| 個人で複数プロジェクトを行き来する | user |
| チームで知識を共有したい | project |
| 機密情報を含む可能性がある | local |
迷ったときの選び方
- 個人で複数プロジェクトを行き来する場合:
- 「
user」スコープがおすすめです。ご自身のユーザーアカウント全体で記憶が共有されるため、どのプロジェクトでAIエージェントを使っても、常に同じ知識を持っている状態で作業を進められます。
- 「
- チームで知識を共有したい場合:
- 「
project」スコープがおすすめです。プロジェクトのGitリポジトリで記憶が管理されるため、チームメンバー全員がAIエージェントの共有された記憶にアクセスし、共通の認識を持って開発を進めることができます。
- 「
- 機密情報を含む可能性がある場合:
- 「
local」スコープがおすすめです。このスコープの記憶はGit管理されず、ご自身の環境だけに留まります。APIキーなどの重要な情報が含まれる可能性がある場合は、情報漏洩のリスクを避けるためにこのスコープを選び、.gitignoreで確実にGitの管理対象から外すように設定してください。
- 「
ディレクトリ構成
これから開発を進めるにあたり、ファイルを整理するための「箱」、つまりディレクトリ(フォルダ)を準備する方法を説明します。ここでは特に、エージェントの定義と、エージェントが使う「記憶」を保存する場所について見ていきます。
1.claude/ 2├── agents/ 3│ ├── code-reviewer.md ← 今回 memory を追加するサブエージェント 4│ └── optimizer.md 5├── agent-memory/ ← projectスコープの格納先(git管理) 6│ └── .gitkeep 7└── agent-memory-local/ ← localスコープの格納先(gitignored) 8 └── .gitkeep
上記の構成について説明します。
-
.claude/: これは「Claude」というAIアシスタントや、関連する設定ファイルをまとめるための親ディレクトリです。 -
agents/: このディレクトリの中には、特定の役割を持つ「サブエージェント」の定義ファイルが置かれます。code-reviewer.md: コードをレビューする役割を持つサブエージェントの設定ファイルです。今回は、このサブエージェントに「記憶」(memory)を追加します。optimizer.md: コードの最適化などを行うサブエージェントの設定ファイルです。
-
agent-memory/: これは、エージェントが学習した内容や作業の履歴、つまり「記憶」を保存する場所です。- projectスコープの格納先: ここに保存される記憶は、プロジェクト全体で共有したい情報です。
- git管理: このディレクトリの内容はGitというバージョン管理システムで管理されます。これにより、チームメンバーと記憶を共有したり、変更履歴を追跡したりできます。
.gitkeep: 空のディレクトリをGitで管理したい場合に、目印として置かれるファイルです。
-
agent-memory-local/: こちらもエージェントの「記憶」を保存する場所です。- localスコープの格納先: ここに保存される記憶は、個人の環境でのみ使いたい情報です。
- gitignored: このディレクトリの内容はGitのバージョン管理対象から除外されます。つまり、他の開発者と共有されず、個人のPCの中にのみ存在します。
次に、Gitというバージョン管理システムを使ってプロジェクトのファイルを管理する際に、特定のファイルを「管理対象外」にする設定について説明します。これは、個人の環境でのみ必要なファイルや、セキュリティ上共有したくないファイルを、誤って共有してしまうことを防ぐための大切な設定です。
.gitignore に .claude/agent-memory-local/ を登録しておく。
agent-memory-local/ ディレクトリは、先ほど説明したように、個人の環境で使う記憶データなので、他の開発者と共有する必要がありません。そのため、.gitignore という特別なファイルにこのディレクトリを登録し、Gitがこのディレクトリ内のファイルをバージョン管理しないように設定します。
以下のコマンドで、.gitignore ファイルに正しく設定が追加されているかを確認できます。
1cat .gitignore | grep agent-memory
このコマンドは、.gitignore ファイルの中身を表示し(cat コマンド)、その中から「agent-memory」という文字列が含まれる行だけを抽出する(grep コマンド)ためのものです。これにより、.gitignore に正しく agent-memory-local が登録されているかを確認できます。
出力結果1.claude/agent-memory-local/
上記の出力結果が表示されれば、設定が正しく行われていることを示しています。
実践:code-reviewerサブエージェントに記憶を持たせる
このセクションでは、AIアシスタントの機能の一つである「サブエージェント」に、プロジェクトの情報を記憶させる方法を学びます。具体的には、コードレビューを担当する code-reviewer サブエージェントに memory: project という設定を追加し、レビューを通じて気づいたプロジェクト固有のパターンやルールを MEMORY.md というファイルに自動で蓄積させるようにします。これにより、AIアシスタントは過去のレビューから学習し、より一貫性のある、質の高いレビューを提供できるようになります。
①既存のサブエージェント定義を確認する
まずは、現在設定されている code-reviewer サブエージェントがどのような内容になっているかを確認します。
以下のコマンドをターミナルで実行してください。cat コマンドは、指定したファイルのコンテンツを画面に表示するために使われます。
1cat .claude/agents/code-reviewer.md
出力結果1--- 2name: code-reviewer 3description: コードの品質・セキュリティをレビューする。コード変更後に積極的に呼び出すこと。 4tools: Read, Grep, Glob 5model: sonnet 6--- 7 8あなたはシニアエンジニアとしてコードレビューを担当します。 9(以下省略)
このコマンドを実行すると、code-reviewer サブエージェントの設定ファイルの内容が表示されます。
出力結果を見ると、サブエージェントの名前(name)、役割の説明(description)、利用できるツール(tools)、使用するAIモデル(model)などの情報が書かれていることがわかります。この時点では、まだ記憶に関する設定(memory)は含まれていません。
②フロントマターに memory: project を追加する
次に、code-reviewer サブエージェントがプロジェクトの情報を記憶できるように、設定ファイルに memory: project を追加します。
以下のMarkdownブロックにある内容が、code-reviewer.md ファイルの最終的な形になります。ファイルの先頭にある「---」で囲まれた部分を「フロントマター」と呼び、サブエージェントの基本的な設定情報を記述する場所です。ここに memory: project という行を追加します。
1--- 2name: code-reviewer 3description: コードの品質・セキュリティをレビューする。コード変更後に積極的に呼び出すこと。 4tools: Read, Grep, Glob 5model: sonnet 6memory: project 7--- 8 9あなたはシニアエンジニアとしてコードレビューを担当します。 10 11レビューの観点: 12- コードの可読性・保守性 13- セキュリティの問題(SQLインジェクション、XSS、シークレットのハードコードなど) 14- パフォーマンスの懸念点 15- ベストプラクティスへの準拠 16 17レビュー中に発見した以下の情報を、エージェントメモリに継続的に書き残してください: 18- プロジェクト固有のパターン(例:エラー処理の方針、型定義の慣習) 19- よく使われるライブラリと配置場所 20- アーキテクチャ上の決定事項 21- 繰り返し見つかる問題 22 23出力形式: 24- 問題点はファイル名と行番号で示す 25- 各問題に「重要度: 高/中/低」を付ける 26- 改善案のコードスニペットを提示する
memory: project を追加することで、このサブエージェントはコードレビューの過程で学んだプロジェクト固有のルールや知識を「プロジェクトメモリ」として記憶し、MEMORY.md ファイルに書き出すようになります。これにより、毎回同じ指摘をする手間が省け、より賢くレビューを行えるようになります。
また、サブエージェントへの指示(プロンプト)に「レビュー中に発見した以下の情報を、エージェントメモリに継続的に書き残してください」という項目が追加されている点にも注目してください。これは、どのような情報を記憶してほしいかを具体的に指示している部分です。
フロントマターで設定できる主要なキーとその説明を以下に示します。
| フロントマターのキー | 説明 |
|---|---|
name | サブエージェントを識別するための名前です。ディレクトリ名にも使われます。 |
description | サブエージェントがどのような役割を持つか、一言で説明します。 |
tools | サブエージェントが利用できるツール(例:ファイルの読み込み、検索など)を指定します。 |
model | サブエージェントが使用するAIモデルを指定します。 |
memory | サブエージェントが記憶を保持するかどうか、そしてどのような種類の記憶かを指定します。user(ユーザー個人)、project(プロジェクト全体)、local(特定の場所)のいずれかを選びます。 |
注意:
memoryの設定をフロントマターに書かない場合、そのサブエージェントは永続的な記憶を持ちません。レビューのたびに過去の情報を忘れ、毎回ゼロからレビューを行うことになります。
③動作確認の準備
memory: project を設定したサブエージェントは、初めて起動されたときに自動的に MEMORY.md ファイルを作成します。そのため、事前に手動で MEMORY.md ファイルを作る必要はありません。
現在の .claude/agent-memory/ ディレクトリの内容を確認してみましょう。
1ls .claude/agent-memory/
出力結果1.gitkeep
出力結果を見ると、まだ MEMORY.md は存在せず、.gitkeep というファイルだけがあることがわかります。これは、空のディレクトリをGitで管理するために置かれるファイルです。この状態からサブエージェントを一度実行すると、MEMORY.md が自動的に作成され、学習した情報がそこに記録されていくようになります。
動作確認:MEMORY.mdが書き込まれる様子
①サブエージェントを呼び出す
このセクションでは、AIの「サブエージェント」と呼ばれる特別なプログラムに、コードのレビューを依頼する様子を見ていきます。サブエージェントは、特定の専門的な作業を行うために作られたAIのことだと考えてください。
1code-reviewer サブエージェントで src/auth.ts をレビューしてください
このテキストは、私たちがサブエージェントに送る指示です。「code-reviewer」という名前のサブエージェントに、「src/auth.ts」というパスにあるファイルを読んで、問題点や改善点がないか確認してほしい、という意味になります。
サブエージェントが起動し、コードを読んで気づいたパターンを MEMORY.md に書き込む。
指示を受け取ったサブエージェントは、指定されたファイル「src/auth.ts」の中身を詳しく調べます。そして、そのコードの特徴や、繰り返し使われている書き方(これを「パターン」と呼びます)を見つけ出します。見つけたパターンや学んだことは、「MEMORY.md」というファイルに記録されます。これは、サブエージェントが「覚えたこと」をノートに書き留めるようなイメージです。
②生成された MEMORY.md を確認する
次に、サブエージェントが書き込んだ「MEMORY.md」というファイルが本当に作られたのか、そしてその中身がどうなっているのかを確認してみましょう。
1ls .claude/agent-memory/code-reviewer/
このコマンドは、指定された場所にあるファイルの一覧を表示するものです。ここでは、「.claude/agent-memory/code-reviewer/」というフォルダの中にどんなファイルがあるかを確認しています。
出力結果1MEMORY.md
出力結果を見ると、「MEMORY.md」というファイルが確かに存在していることがわかります。
1cat .claude/agent-memory/code-reviewer/MEMORY.md
このコマンドは、指定されたファイルの中身を画面に表示するものです。ここでは、「MEMORY.md」の中身を見ています。
出力結果1# code-reviewer memory 2 3## Patterns seen 4- src/auth.ts は express + pg(PostgreSQL) 構成 5- パスワードは bcrypt.compare でハッシュ照合 6- トークン発行は jsonwebtoken(HS256, expiresIn: 1h) 7- 認証失敗時は res.status(401).json({ error: ... }) で返す慣習 8- src/CLAUDE.md ルール:新規ファイルは TypeScript / 秘密情報は環境変数から
ここに表示されているのが、サブエージェントが「src/auth.ts」のコードを読んで覚えた内容です。具体的には、以下のような特徴を記憶しています。
src/auth.tsファイルは、expressというWebアプリケーションのフレームワークと、pg (PostgreSQL)というデータベースを使っていること。- パスワードの照合には、
bcrypt.compareという安全な方法が使われていること。 - ユーザー認証のための「トークン」は、
jsonwebtokenというライブラリを使って作られており、HS256というアルゴリズムで1時間有効に設定されていること。 - 認証が失敗した場合は、HTTPステータスコード
401とエラーメッセージを返すという、決まった処理の仕方がされていること。 - プロジェクトのルールとして、「新しいファイルはTypeScriptで作成すること」や、「パスワードなどの秘密の情報は、プログラムの中に直接書かずに、環境変数という別の場所から読み込むこと」が設定されていること(これは
src/CLAUDE.mdというファイルに書かれているルールだと理解しています)。
サブエージェントが自分で学んだことを記録している。
このように、サブエージェントはただコードをレビューするだけでなく、そのコードの特徴や、関連するプロジェクトのルールを自分自身で学習し、記録することができます。これが、AIが知識を蓄積していく仕組みです。
③2回目以降の挙動
サブエージェントは一度学習したことを忘れません。新しい会話で同じサブエージェントを呼び出した場合、前回のレビューで生成された「MEMORY.md」ファイルを自動的に読み込みます。そして、その中に記録されている過去の知識やプロジェクトのルールを考慮に入れた上で、次のレビューを行います。
1code-reviewer サブエージェントで src/api/ 配下もレビューしてください
例えば、このように「src/api/」フォルダ配下にある他のファイルもレビューするよう指示した場合を考えてみましょう。
すると、サブエージェントは以下のような指摘をすることがあります。
「src/CLAUDE.md のルールでは新規ファイルは TypeScript ですが、users.py は Python で書かれています。また API_SECRET がハードコードされており、環境変数化のルールにも違反しています」のように、過去に学んだプロジェクトルールを引いた指摘ができる。
この指摘は、サブエージェントが「MEMORY.md」に記録された「新規ファイルはTypeScriptで作成する」というルールと、「秘密情報は環境変数から取得する」というルールを覚えているからこそできるものです。
- 「
users.pyが Python で書かれている」という点について、プロジェクトルールではTypeScriptを使うことになっているので、そのルールに反していると指摘しています。 - 「
API_SECRETがハードコードされている」とは、API_SECRETという秘密の情報がプログラムのコードの中に直接書かれている状態を指します。これも、環境変数から読み込むというルールに違反していると指摘しています。
このように、サブエージェントは過去の学習内容を活かすことで、より深く、プロジェクトの特定のルールに沿った質の高いレビューを提供できるようになります。
注意:
MEMORY.mdの先頭200行までがサブエージェントのシステムプロンプトに読み込まれる。長くなりすぎる場合はサブエージェント自身に整理させる。
ただし、「MEMORY.md」ファイルに記録できる情報量には限りがあります。具体的には、ファイルの先頭から200行目までの内容が、サブエージェントがレビューを行う際の「基本的な指示」や「前提知識」(システムプロンプト)として読み込まれます。もし記録する情報が多すぎると、サブエージェントが情報を効率的に活用できなくなる可能性があります。そのため、記録された情報が長くなりすぎた場合は、サブエージェント自身が内容を整理し、重要な情報だけを残すように調整する必要が出てくる場合もあります。
スコープの切り替え方
AIエージェントの記憶(メモリ)は、設定ファイルの一番上にあるmemoryという値を変更するだけで、その記憶をどこまで共有するか(スコープ)を切り替えることができます。
projectスコープ(チーム共有)
この設定は、チーム全体で共有する記憶を保存する場合に使用します。
格納先は .claude/agent-memory/code-reviewer/MEMORY.md です。このファイルはGitでバージョン管理され、チームメンバー間で共有されます。これにより、プロジェクト固有のルールや共通認識など、チーム全員がアクセスできる知識ベースを構築できます。
1--- 2name: code-reviewer 3description: コードの品質・セキュリティをレビューする。 4tools: Read, Grep, Glob 5model: sonnet 6memory: project 7---
userスコープ(全プロジェクト共通)
この設定は、ご自身が複数のプロジェクトで共通して利用したい知識を保存する場合に使用します。
格納先は ~/.claude/agent-memory/code-reviewer/MEMORY.md です。これはご自身のホームディレクトリ内に保存されます。例えば、特定のプログラミング言語の仕様や、個人的な開発のベストプラクティスなど、プロジェクトに関わらず役立つ知識をここに蓄積できます。
1--- 2name: code-reviewer 3description: コードの品質・セキュリティをレビューする。 4tools: Read, Grep, Glob 5model: sonnet 6memory: user 7---
localスコープ(個人ローカルのみ)
この設定は、他の人に共有したくない、ご自身だけの個人的な記憶を保存する場合に使用します。
格納先は .claude/agent-memory-local/code-reviewer/MEMORY.md です。チームに共有したくない個人メモや、機密に関わる気づきなどをここに残すことができます。
1--- 2name: code-reviewer 3description: コードの品質・セキュリティをレビューする。 4tools: Read, Grep, Glob 5model: sonnet 6memory: local 7---
1# .gitignore 2.claude/agent-memory-local/
上記の.gitignoreの設定は、localスコープの記憶ファイルが誤ってGitを通じてチームに共有されないようにするために必要です。この設定により、個人ローカルの記憶がバージョン管理の対象から外れます。
コラム:何をメモリに書かせるか
サブエージェント(特定のタスクを補助するシステムやAI)に「何でも書いて」と漠然と指示すると、不要な情報(ノイズ)が増えてしまい、かえって本当に必要な情報が見つけにくくなり、作業の精度が落ちてしまうことがあります。記録させるべき情報は、主に次の2種類です。
-
繰り返し参照する事実(型定義の場所、命名規則、API仕様)
- プロジェクトを進める上で、何度も確認が必要になる基本的な情報のことです。例えば、プログラムで使うデータの種類や形式がどこで定義されているか(型定義の場所)、変数や関数の名前の付け方のルール(命名規則)、外部のシステムと連携するためのルールや使い方(API仕様)などがこれにあたります。これらは開発チーム内で共通認識として持っておくべき、非常に重要な情報です。
-
一度ハマった落とし穴(このライブラリのv2はBreakingChangeがある等)
- 過去に遭遇して解決に時間がかかった問題点や、特に注意すべき制約のことです。例えば、「このライブラリのバージョン2では、以前のバージョンと互換性がなく、プログラムが動かなくなる可能性がある(BreakingChangeがある)」といった情報です。一度経験したトラブルを記録しておくことで、同じ問題で再び時間を無駄にすることを防ぎ、効率的に開発を進められるようになります。
逆に、記録させないほうがよい情報もあります。
-
コードを読めば分かる内容(クラス名、関数の引数)
- プログラムのソースコード自体を見れば、すぐに理解できる情報のことです。例えば、プログラムの設計図となるクラスの名前や、関数に渡す情報の種類(引数)などは、コードを直接確認すればすぐに把握できます。このような情報は、あえて別途記録として残す必要はありません。
-
一度きりの会話の文脈
- その場限りで交わされた、一時的なやり取りや特定の状況下での会話内容のことです。将来的に役立つ可能性が低い、あるいは情報として整理されていない一時的なやり取りは、記録することでむしろ情報が散らかり、本当に必要な情報を見つけにくくなるため、記録しないほうが良いです。
サブエージェントを定義する際には、その役割や目的に合わせて「どのような情報を記録すべきか」というガイドラインを明確に記述しておくことが、とても効果的です。
おわりに
agent-memoryは、AIサブエージェントが過去の学習内容を忘れずに、永続的に知識を記憶するための重要な機能です。例えばcode-reviewerサブエージェントにmemory: projectを設定すると、レビューを通じて学んだプロジェクト固有のルールやパターンをMEMORY.mdファイルに記録し、次回以降のレビューで活用することで、より質の高い指摘が可能になります。記憶の範囲は「スコープ」としてuser、project、localの3種類から選択でき、チームで知識を共有したり個人で管理したりと、目的に合わせて使い分けられます。効率的に開発を進めるためには、サブエージェントに「繰り返し参照する事実」や「一度ハマった落とし穴」といった、本当に役立つ情報を記録させることが大切です。