概要
AIでのコード生成やコードレビュー、どんどん進化していっていますが、完全に信用はしきれず、特にプロダクトに特有の文脈を読み取ったりすることはまだまだ発展途上だなと感じています。
そんな中、こんな記事が上がっていました。
どうも、リポジトリ内の情報を読み込んで、特有の内容を保持し、コード生成やレビューなどに生かしてくれる機能だそう。使い方や仕組みを含めて、まとめてみようと思います。
Agentic Memoryとは?
公式の紹介によるとこんなところ。
Copilot automatically captures tightly scoped insights called “memories” as it works in your repositories. These memories are:
・Repository-specific and validated against the current codebase before use.
・Shared across Copilot features, so what coding agent learns can help code review.
・utomatically expired after 28 days to prevent stale information.
ようは、リポジトリの内容をもとにしてCopilotが動作してくれるようになる。あんまり古すぎる情報を参照するのも信頼性なくなるので、28日以上経ったらその情報は無効になる。ということみたいです。
公式のドキュメントでは、以下の二つがこの動作の例として挙げられていました。
- データベース接続方法を読み込み、ちゃんと一貫性のある処理になっているかレビュー
- 2つの同期をとる必要のある箇所があり、片方だけしか編集されていない場合、もう片方の内容も変更するようレビュー
このあたりがほんとに動作するのであれば、Copilotのコードレビューの信頼性は確かに上がりそう...!
使い方
GitHubのSettings > Copilotから、該当の設定をEnableにするだけ!これだけでCopilotエージェントがリポジトリの内容も参照してレビューなどを返してくれるようになるそう。
保存されたメモリに関しては、Settings > Copilot > Memory から参照できます。どんな内容が保存されているか、以下画像のように一覧できるみたいです。
仕組み
動作の手順や仕組みなどは以下の記事にまとまっていました。かいつまんで紹介します。
メモリに保存しておくべき事項の検出
開発者が記述したコードをCopilotがレビューする際に、例えば以下の記述があるとします。
export const API_VERSION = "v2.1.4";
const APIVersion = "v2.1.4"
Version: v2.1.4
こういった内容があった場合、以下のような形でメモリにまとめるようです。
{
subject: "API version synchronization",
fact: "API version must match between client SDK, server routes, and documentation.",
citations: ["src/client/sdk/constants.ts:12", "server/routes/api.go:8", "docs/api-reference.md:37"],
reason: "If the API version is not kept properly synchronized, the integration can fail or exhibit subtle bugs. Remembering these locations will help ensure they are kept syncronized in future updates."
}
どういう事実(APIのバージョンがそろっている)があり、コードのどの場所がその指摘に該当し、どういう理由でこのルールを適用すべきなのか、みたいな内容をメモリとして保存しておくようですね。
メモリの適用
ここで保存されたメモリによって、以下のようなことが可能になるそうです。
- コーディングエージェントがコードを更新をしようとする場合、もしAPIのバージョンを1か所変えたときに、ほかの2か所も漏らさず変更してくれる
- Copilotによるコードレビューの際、もし1つしか変更されていなければ他の2つも変更するよう指摘する
ここの例で上がっているみたいに、ドキュメントとソースコードがあった場合、それの同期も勝手にとってくれるまでしてくれると更新漏れがなく大変助かりそうです。
感想
言ってしまえば、自動ReadMe、もしくは自動インストラクションファイル作成機能のようなものなのかなとも思えました。単に保存して内部的にCopilotが使っている、だけだったらちゃんと動作してるか分かりにくいですが、それが一覧になって見られるのは結構安心ポイントです。
そのリポジトリ特有のルールみたいなものは、基本外部から入れることでしかAIに読み込んでくれるのは不可能だと思っていたので、それをしてくれるのは大変便利。古いルールが残り続けない仕組みもあり、手動でルールを書くよりも確実にレビューできるかも?目指せコード作成の全自動化!

