概要
Claude Code、Cursor、Gemini CLI などの AI コーディングエージェントに永続メモリを提供します。hooks、MCP、または REST API を介して統合し、95% の再現率を実現し、トークンを 92% 節約します。
README プレビュー
\n \n\n\n\n \n Your coding agent remembers everything. No more re-explaining.\n Built on iii engine\n \n Persistent memory for Claude Code, Cursor, Gemini CLI, Codex CLI, pi, OpenCode, and any MCP client.\n\n\n\n \n\n\n\n The gist extends Karpathy's LLM Wiki pattern with confidence scoring, lifecycle, knowledge graphs, and hybrid search. agentmemory is the implementation.\n\n\n\n \n \n \n \n\n\n\n \n \n \n \n \n \n\n\n\n \n\n\n\n Quick Start •\n Benchmarks •\n vs Competitors •\n Agents •\n How It Works •\n MCP •\n Viewer •\n iii Console •\n Powered by iii •\n Config •\n API\n\n\n---\n\n\n\nagentmemory works with any agent that supports hooks, MCP, or REST API. All agents share the same memory server.\n\n\n\n\n\nClaude Code\n12 hooks + MCP + skills\n\n\n\nOpenClaw\nMCP + plugin\n\n\n\nHermes\nMCP + plugin\n\n\n\nCursor\nMCP server\n\n\n\nGemini CLI\nMCP server\n\n\n\nOpenCode\nMCP server\n\n\n\nCodex CLI\nMCP server\n\n\n\nCline\nMCP server\n\n\n\n\n\nGoose\nMCP server\n\n\n\nKilo Code\nMCP server\n\n\n\nAider\nREST API\n\n\n\nClaude Desktop\nMCP server\n\n\n\nWindsurf\nMCP server\n\n\n\nRoo Code\nMCP server\n\n\n\nClaude SDK\nAgentSDKProvider\n\n\n\nAny agent\nREST API\n\n\n\n\n\n Works with any agent that speaks MCP or HTTP. One server, memories shared across all of them.\n\n\n---\n\nYou explain the same architecture every session. You re-discover the same bugs. You re-teach the same preferences. Built-in memory (CLAUDE.md, .cursorrules) caps out at 200 lines and goes stale. agentmemory fixes this. It silently captures what your agent does, compresses it into searchable memory, and injects the right context when the next session starts. One command. Works across agents.\n\n**What changes:** Session 1 you set up JWT auth. Session 2 you ask for rate limiting. The agent already knows your auth uses jose middleware in `src/middleware/auth.ts`, your tests cover token validation, and you
FAQ (5)
トラブル対応初回実行時に AgentMemory の「Failed to load persisted index: Cannot read properties of undefined (reading 'v')」エラーを修正する方法は?
AgentMemory を v0.9.26 以降にアップグレードしてください。これにより、存在しないキーに対して undefined を返すアダプターにおける、シャード化されたインデックスマニフェストの読み込みの問題が修正されます。
npm install -g @agentmemory/agentmemory@0.9.26
その後、AgentMemory を再度実行してください。v0.9.25 では、このエラーは初回実行時において見た目上のものに過ぎません。起動直後にデバウンスされた保存プロセスによってインデックスが自動的に再構築されるため、すぐにアップグレードできない場合でも安全に無視できます。
トラブル対応iii-engine v0.16.1 がインストールされているのに v0.11.2 がハードピンされているため agentmemory が起動を拒否する問題は、どうすれば修正できますか?
agentmemory v0.9.24 を新規にグローバルインストールした環境で、ランタイムのバージョンチェックを上書きし、すでにインストールされている整合性の取れた v0.16.1 のエンジンとワーカーのセットを使用するには、次を実行します:
AGENTMEMORY_III_VERSION=0.16.1 agentmemory
npx の場合は、次を実行します:
AGENTMEMORY_III_VERSION=0.16.1 npx @agentmemory/agentmemory@latest
現在のシェルで永続化するには:
export AGENTMEMORY_III_VERSION=0.16.1
agentmemory
Ubuntu 24.04 aarch64 では、これにより iii-engine v0.16.1 で正常に起動し、ワーカー/REST サービスが健全であることが報告されます。提案される v0.11.2 へのダウングレード用 tarball をそのまま鵜呑みにするのは避けてください。その iii-aarch64-unknown-linux-gnu.tar.gz には iii バイナリしか含まれておらず、v0.11.2 の iii と v0.16.1 の iii-worker が組み合わさった状態になり、別のバージョン不一致が発生します。恒久的な修正としては、インストーラーがピン留めされたエンジンバージョンを取得するようにするか、agentmemory 側がピンを v0.16.1 に更新することが必要です。
トラブル対応なぜ ~/.agentmemory/.env の AGENTMEMORY_TOOLS=core が無視されるのですか?また、どうすれば修正できますか?
@agentmemory/agentmemory@0.9.27 では、src/mcp/tools-registry.ts の getVisibleTools() が、マージ済みの環境変数(loadEnvFile() + process.env)ではなく process.env.AGENTMEMORY_TOOLS を直接読み込んでいるため、~/.agentmemory/.env にのみ設定された値は警告なしに無視され、8つのコアツールではなく53個すべてのツールが公開されてしまいます。パッチが適用されるまでの回避策:(1) CLI フラグを使い agentmemory --tools core で起動する、または (2) 起動元のシェルで変数をエクスポートする(例:AGENTMEMORY_TOOLS=core agentmemory)、もしくは pm2 の ecosystem ファイルの env ブロックで設定してから pm2 restart agentmemory を実行する。(Invoke-RestMethod 'http://127.0.0.1:3111/agentmemory/mcp/tools').tools.Count で確認してください — 8 が返るはずです。恒久的な修正は、getVisibleTools() および src/mcp/standalone.ts で process.env["AGENTMEMORY_TOOLS"] を getEnvVar("AGENTMEMORY_TOOLS") に変更することです。
トラブル対応agent-sdk プロバイダーで大規模な AgentMemory セッションを要約する際に発生する 'too_many_chunks_skipped: chunks failed to parse after retry' を修正するにはどうすればよいですか?
これは AGENTMEMORY_ALLOW_AGENT_SDK=true の場合に、@agentmemory/agentmemory 0.9.22 から 0.9.24 に影響します。agent-sdk の再帰ガードがグローバルな process.env.AGENTMEMORY_SDK_CHILD を設定するため、並行して実行される要約チャンクがこのフラグを検出して空のレスポンスを返し、それがパース失敗としてカウントされます。回避策として、~/.agentmemory/.env に SUMMARIZE_CHUNK_CONCURRENCY=1 を追加してチャンク要約を強制的に直列実行させ、その後ワーカーを再起動してください:
echo 'SUMMARIZE_CHUNK_CONCURRENCY=1' >> ~/.agentmemory/.env
一時的にシェルで実行する場合:
SUMMARIZE_CHUNK_CONCURRENCY=1 AGENTMEMORY_ALLOW_AGENT_SDK=true node your-worker.js
その後、要約を再試行してください。恒久的なコード修正は、プロセスグローバルな環境変数による再帰ガードを AsyncLocalStorage や呼び出しごとのフラグなどのプロセス内メカニズムに置き換え、環境変数ガードは実際の子プロセス境界にのみ限定して維持することです。
トラブル対応私の agentmemory coding-agent-life-v1 の再現実験で、P@5 が公開されているベンチマークスコアではなく、わずか0.240しか出ないのはなぜですか?
再現された数値は正しく、公開されているスコアカードが誤っています。eval/runner/score.ts では、Precision@5 はクエリごとに次のように計算されます:
const topK = ranked.slice(0, k).map((r) => r.sessionId);
const gold = new Set(q.goldSessionIds);
const hits = topK.filter((id) => gold.has(id)).length;
const precisionAtK = k > 0 ? hits / k : 0;
const recallAtK = gold.size === 0 ? 0 : hits / gold.size;
アダプターのスコアは、全15問にわたる算術平均です。
coding-agent-life-v1 データセットには、ゴールドセッションが1つの質問が12問と、ゴールドセッションが2つの質問が3問含まれています。したがって、P@5 の可能な最大値は次のとおりです:
(12 × (1/5) + 3 × (2/5)) / 15 = 18/75 = 0.240
つまり:
- agentmemory-hybrid P@5=0.240, R@5=1.000 は、すべてのゴールドセッションが上位5件内に取得されたことを意味します。
- grep P@5=0.227, R@5=0.967 は、最大18件のトップ5ヒットのうち17件が成功したことに対応します。ゴールドが2つある質問の1つが、関連セッションを1件しか返さなかったのです。そのマクロ平均リコールは (14 + 0.5) / 15 = 0.9667 です。
回避策:現在の計算式を使用してベンチマークレポートを再計算または再生成し、公開されている誤った P@5 の値を置き換えてください。このメトリック定義の下では、このデータセットで 0.240 を超えるスコアはあり得ません。