ここ1年のあいだAIを使って開発してきたなら、エージェント型(agentic)エンジニアリングにおける最大のボトルネックが何かはお分かりでしょう。Goldfish Problem(魚鉢問題)。
何時間もかけて完璧なシステムプロンプトを作り込みます。複雑なタスクを処理させるために、AIエージェントをデプロイします。うまくいきます。ですが、そのセッションが終わった瞬間に? Poof。 エージェントはすべてを忘れてしまいます。
これを解決するために、開発者たちはエージェントに物体の永続性(object permanence)に関する最低限の感覚を与えるために、複雑なVector DB、RAGパイプライン、そしてローリング・コンテキストウィンドウを悪戦苦闘しながらつぎはぎしてきました。大変で、コストが高く、壊れやすいのです。
しかし今週の時点で、ゲームのルールが完全に変わりました。Anthropicがパブリックベータとして「Claude Managed Agents向けのMemory」を提供開始したのです。そしてこれは、自律システムの作り方を根本から変えます。
更新内容について知っておくべきことすべて、標準的なRAGよりもなぜ優れているのか、そして今日あなたのコードにどう実装するのかをまとめます。
Claude Agent Memoryとは?
ウィンドウが閉じるとコンテキストが失われてしまう標準的なチャットボットのやり取りとは異なり、Anthropicの新しいMemory機能により、Claude Managed Agentsは時間の経過とともに異なるセッションをまたいで知識を蓄積できます。
ですが、真に素晴らしいポイントはここです:これはファイルシステムベースのレイヤーです。
データは単にブラックボックスのベクトル空間に浮いているだけではありません。Claudeは、そのメモリを実際のファイルとして保存します。これにより、エージェントは連続した状態を読み書きし、参照することができます。一方で(開発者であるあなたは)保存される内容に関して、プログラム的に絶対的な制御を維持できます。NetflixやRakutenのような初期のエンタープライズ導入企業は、手作業のプロンプトを頻繁に更新することなく、複雑で長時間稼働するワークフローを自動化するために、すでにこれを使っています。
️ 「監査証跡(Audit Trail)」のスーパーパワー
エンタープライズ向けのツールを作っているなら、標準的なRAGパイプラインはコンプライアンスの悪夢です。もしAIが幻覚を起こしたりデータを漏えいしたりした場合、なぜその特定の情報を参照(取得)したのかを突き止めるのは非常に困難です。
Anthropicは、新しいこのメモリシステムをエンタープライズ向けのガバナンス込みで設計しました:
- 完全な監査可能性: あらゆるメモリの変更がすべてログに記録されます。
- きめ細かな制御: 各セッションとエージェントごとに監査証跡を持てます。
- ロールバック: エージェントが誤りや機微な内容を学習してしまった場合、特定のメモリをプログラム的にロールバック、削除(redact)、または削除できます。
TypeScriptで「スマート」PRレビュアーを作る
この仕組みがどれほど強力かを理解するために、現実のシナリオを見てみましょう。
あなたが本番環境で使えるGitHub Appを作っていると想像してください。ここでは secure-pr-reviewer と呼びます。TypeScriptとNode.jsを使います。
メモリがない場合、AIのレビュアーはすべてのPull Requestを完全に別々のものとして扱います。同じ内部で安全なユーティリティ関数が「セキュリティリスク」だと判断され、それが100回も繰り返されるかもしれません。すると、警告を毎回手作業で却下しなければならない上級エンジニアたちは激怒することになります。
Claudeの新しいMemory APIなら、エージェントはチームから学習します。たとえばシニア開発者が「この認証パターンはレガシーモジュールでは想定されている」とエージェントに伝えれば、エージェントは次のPRでそれを覚えています。
実装のロジックは、新しいManaged Agents APIのパラダイムを使うと次のようになります:
import Anthropic from '@anthropic-ai/sdk';
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
});
// このWebhookは新しいPRが開かれたときに発火する想定
export async function handlePullRequestEvent(prData: any) {
console.log(`[secure-pr-reviewer] PR #${prData.number}を監査中...`);
// 1. Memoryを有効にしたManaged Agent Sessionを初期化、または再開する
const session = await anthropic.beta.agents.sessions.create({
agent_id: process.env.CLAUDE_SECURITY_AGENT_ID, // 事前に設定済みのエージェント
memory: {
enabled: true,
scope: `repo-${prData.repository.name}`, // この特定のリポジトリに対してメモリのスコープを制限
}
});
// 2. PR の差分をエージェントに送信する
const response = await anthropic.beta.agents.messages.create({
session_id: session.id,
messages: [
{
role: 'user',
content: `次の差分に対してセキュリティ上の欠陥がないか監査してください。
これまでの、承認済みのレガシー・パターンに関する会話を思い出してください。
${prData.diff}`
}
]
});
// エージェントは最終レポートを生成する前に、ファイルシステムのメモリを使って過去の開発者フィードバックを確認します。
if (response.content.includes("VULNERABILITY_FOUND")) {
await postGitHubComment(prData.number, response.content);
}
}
もし開発者が GitHub 上のボットのコメントに対して、「将来この特定のファイルパスは無視して。テスト用のモックDBなんだ」と返信したら、あなたはそのメッセージをそのままセッションに渡すだけです。Claude はそのルールをメモリ層に書き込み、二度とそのファイルをフラグすることはありません。
更新すべきデータベースのスキーマはありません。再インデックスする RAG パイプラインもありません。エージェントはただ賢くなるだけです。
Stateful AI の時代
私たちはいよいよ、ステートレスな関数から、ステートフルで自律的なチームメイトへ移行します。透明で監査可能な、ファイルシステムベースのメモリ層を提供することで、Anthropic は企業での AI 導入における最大の摩擦ポイントを取り除いています。
この機能は現在、Claude Console と API 経由でパブリックベータとして利用可能です。
あなたはカスタムの Vector DB を取り外して、ネイティブの Agent Memory に切り替えますか?以下のコメントで更新内容についてどう思うか教えてください!
この解説が役に立ったなら、❤️ を押して、次のエージェント型サイドプロジェクト用にコードスニペットをブックマークしてください!





