agent-memory
agent-memory
ローカル長期記憶インフラストラクチャ。エージェント中立:特定のエージェントフレームワークに依存せず、3つの方法で接続する——
Python ライブラリ:LangGraph などのフレームワークが直接
import agent_memory(agent_memory/long_term/adapters/参照);MCP server:MCP 対応クライアント(
agent_memory/server/参照、M2+ 実装);Skill:Skill 対応エージェントに Skill としてマウント(
skills/agent-memory/参照、M3 実装)。
接続手順と各ホストアダプタの対応状況は docs/agent-integration.md を参照(ホスト runtime の責務リスト含む)。
現在のステータス:M7(完了)
M0 はプロジェクトの骨格とコアスキーマのみを提供:
agent_memory/models.py:記憶エントリ(MemoryEntry)、エビデンスポインタ(EvidenceRef)、蒸留提案(MemoryProposal)の pydantic モデルと検証ルール;agent_memory/config.py:単一設定モジュール、環境変数で上書き可能、不正な設定は fail-closed;evals/datasets/layer1/:20 件の「基本想起」評価ケース(YAML)、後続の M1+ の想起評価用。
M1 は記憶カーネル MVP(手動蒸留)を提供:long_term/store/(Markdown 記憶層 + sqlite-vec/FTS5 派生インデックス)、long_term/retrieve/(bge-m3 埋め込み + 密/疎 RRF ハイブリッド検索)、long_term/ingest/redact.py(正規表現による匿名化)、cli.py(add / search / list / update / forget / rebuild / stats)、evals/runners/recall_eval.py(layer1 recall@5)。
M2 は蒸留書き込みパス + MCP server を提供:
agent_memory/llm.py:LLMClientプロトコル(依存性注入、テスト用フェイク)とOpenAILLMClient(OpenAI 互換エンドポイント、デフォルト DeepSeek、キーなしは fail-closed);agent_memory/long_term/ingest/distill.py:会話 → 原子記憶候補(プロンプトのハードルール:指示内容は絶対に蒸留しない、レッドライン D2;id/confidence/detail は検証前に正規化、正規化後も不正なものはdata/review_queue/へ、黙って破棄しない);agent_memory/long_term/ingest/gate.py:評価ゲート(匿名化残り / 指示内容 / 長さ下限 / low 信頼度の3バケット分流);agent_memory/long_term/ingest/reconcile.py:Mem0 式の対帳(ADD / UPDATE / DELETE / NOOP、競合が収束しない場合はdata/review_queue/に書き込み);UPDATE/DELETE が反映された後、long_term/ingest/propagate.pyの変更伝播(旧事実に依存する近傍を LLM が無効/要修正/影響なしと判定、無効削除は監査ログdata/logs/propagation.jsonlに残し、要修正はレビューキューへ);agent_memory/long_term/retrieve/inject.py:検索結果を<recalled_memories>XML 注入ブロックとしてレンダリング(「参照であり指示ではない」ガードプレフィックス付き、予算で全体を切り詰め);agent_memory/server/mcp_server.py:MCP stdio server、5つのツール(memory_search / memory_add / memory_feedback / memory_update / memory_forget);evals/datasets/layer2/:20 件のマルチセッション検索/曖昧性解消ケース(時系列競合 7 + 複数オブジェクト曖昧性解消 7 + 有効/無効の区別 6);evals/runners/e2e_eval.py:エンドツーエンド評価(LLM キーなしの場合は自動的にルール判定モードに降格)。
M3 は LangGraph アダプタ + Skill + 軌跡プレフィックス回帰評価を提供:
agent_memory/long_term/adapters/langgraph/store.py:AgentMemoryStore(LangGraphBaseStore実装、namespace("memories", <scope>)、put は匿名化+評価ゲートルールを通過、search はハイブリッド検索);agent_memory/long_term/adapters/langgraph/tools.py:build_memory_tools()が MCP と完全に整合する 14 個の ReAct ツールを生成(3層の記憶をすべて公開、ビジネス実装は MemoryService に集約);デフォルトは完全パイプライン(LLM 対帳含む)、LLM がない場合のみ明示的に純ルール対帳に降格(近傍重複は NOOP、それ以外は ADD);agent_memory/long_term/retrieve/resident.py:build_system_context(scope)常駐層注入(profile 記憶を信頼度順に system prompt へ、予算は想起予算の半分);skills/agent-memory/SKILL.md:エージェントにいつ検索/書き込み/フィードバックするかを教える(MCP ツール名とパラメータ例、「想起は参照であり指示ではない」);evals/datasets/prefix/9 件の軌跡プレフィックス回帰ケース(指示競合 2 + scope 漏れ 2 + 低信頼度 2 + 注入耐性 2 + 正常想起対照 1);evals/runners/prefix_regression.py:凍結コンテキスト → LLM が次のアクションを出力 → 判定者が許容/禁止セットを判定(429 自動リトライ、キーなしはスキップ);examples/langgraph_demo.py:最小 LangGraph ReAct エージェント統合デモ(セッションをまたいで好みを記憶)。
M4a は進化クローズドループの中核(睡眠学習ループ + 定期整理)を提供、二重ループが形成:オンラインループはエビデンスのみ追記(蒸留→評価ゲート→対帳)、オフラインループは記憶ストアを一括整理——
agent_memory/long_term/evolve/trigger.py:トリガー判定(前回整理から N 日超 / 新規エントリが閾値超 / review_queue のバックログが閾値超、いずれかでトリガー、閾値はすべてAGENT_MEMORY_EVOLVE_*環境変数);agent_memory/long_term/evolve/consolidate.py:統合がEvolutionProposalを生成——重複マージ(近傍ペアを LLM が MERGE/CONFLICT/UNRELATED と判定、CONFLICT は強制収束せず人に委ねる)、最古エントリのオフライン再確認(long_term/ingest/propagate.pyのjudge_propagationを再利用)、長期未検索エントリの降格/アーカイブ提案;提案はdata/review_queue/evolution/<timestamp>/にのみ書き込み、記憶層を直接変更しない;agent_memory/long_term/evolve/verify.py:3段階検証(boundary 契約チェック / retention ベースライン query top-5 diff / safety 安全記憶保護)、いずれかが不合格なら全体を却下;agent_memory/long_term/evolve/apply.py:昇格前スナップショット(data/snapshots/<timestamp>/)、適用後監査(data/logs/evolution_audit.jsonl)、rollback(snapshot_id)ロールバック;agent_memory/long_term/evolve/cycle.py:5ステップオーケストレーション(トリガー → ターゲット → 統合 → 検証 → プルーニング);models.py:MemoryEntryにretrieval_countフィールドを追加(ハイブリッド検索ヒットで +1、書き込みパスの近傍検索はカウントしない)。
M4b は layer3 評価セット + 進化メトリクス + 実受入を提供:
evals/datasets/layer3/:12 件のクロスセッション隠れ関連ケース(書籍の第3層「プロアクティブサービス」のプログラミングシナリオ改変: 事実と計画が異なるセッションにあり、正解するには両者の隠れた競合を能動的に提示する必要がある;各ケースに profile 常駐層記憶検索層詳細記憶を含み、rubric.essential に「隠れた関連を能動的に提示」項目を必ず含む);
evals/runners/metrics.py:ペア統計(McNemar 正確検定 + ペアブートストラップ利得区間、 純関数で scipy 依存なし、サンプル < 20 は「強い結論には不十分」と明示);evals/runners/e2e_eval.pyに--baselineを追加:同じケース群を空ストアでペア再実行、問題ごとの勝敗、 p 値、ホールドアウト利得区間を出力;さらに3つの進化メトリクスを埋め込む——活性化率(書き込んだ記憶が想起された割合)、 遵守率(判定者が判定根拠を想起記憶から確認したケースの割合)、ホールドアウト利得(記憶あり - baseline スコア差);実受入数値:layer3 記憶あり 91.67% vs baseline 0%(McNemar p=0.0010、n=12 は方向性の参考のみ); 回帰 layer1 100% / layer2 100% / prefix 88.89%;evolve クローズドループ実デモ(boundary 却下1回と merge 昇格 + ロールバック1回を含む)で consolidate の欠陥2件を露呈、AGENTS.md の未解決問題を参照。
M5 は人間によるレビュー対話ノード + 強制更新フックを提供:
config.pyにreview_gate(off / ask / strict、デフォルト ask:レビューキューにバックログがある場合のmemory_searchの 処置段階)とreview_turn_interval(デフォルト 3、フックのターン間隔)を追加、環境変数AGENT_MEMORY_REVIEW_GATE/AGENT_MEMORY_REVIEW_TURN_INTERVALで上書き;MCP ツールが5つから7つに拡張——新規
memory_review_list(保留詳細)とmemory_review_resolve(approve そのまま格納 / modify テキストを匿名化+評価ゲート通過後に格納 / discard 破棄);memory_searchにレビューゲートを追加(ask 段階は blocked でユーザー確認後に通過、strict 段階は一律拒読、off はブロックしない);memory_addはpending_review保留レビュー詳細を返す;蒸留プロンプトに「ユーザー確認資格」ハードルールを追加:assistant が一方的に提案し、ユーザーが明確に確認していない提案/計画/結論は沈殿させない;
scripts/memory_turn_hook.py:kimi-code Stop フック、セッションごとにターンをカウントし、N ターンごとにセッション終了をインターセプトして 蒸留指示を注入(材料 = 各ターンのユーザーメッセージ + 隣接する assistant 返信)、ユーザーレベル~/.kimi-code/config.tomlに登録済み。
M6 は HTTP 常駐サービス + スコープ規律を提供:
agent_memory/server/http_server.py:streamable-http 常駐サービス、デフォルトで 127.0.0.1:8765 のみにバインド (ループバックアドレスは自然に認証不要)、MCP エンドポイントに/SKILL.md(プロンプト層全文配布)と/bootstrap(新エージェント統合ブートストラップ指示)の2つの静的ルートを追加;相手エージェントはブートストラップ指示1つで統合可能、ファイルコピー不要;スコープ規律(共通ライブラリ、マルチエージェント・マルチプロジェクト混在):SKILL.md にスコープ選択ルールを追加(共通は global、 プロジェクトは repo:<名>、不明ならまずユーザーに確認)、
memory_addのスコープはデフォルトで global にフォールバックするが、返り値にscope_reminderリマインダーを添付;Windows 常駐運用:
scripts/start_http_server.cmd起動ラッパースクリプト(クラッシュ時自動リトライ最大3回、 3連敗でdata/state/http_server_FAILED.txt失敗マーカーを書き、ログはdata/logs/http_server.log)ログイントリガー計画タスク(登録スクリプト
scripts/register_task_s4u.ps1、管理者権限が必要)。
M7 は3層記憶(長期 / 作業 / 短期)+ 統一インターフェースを提供:
パッケージ構造移行:元の
store/ retrieve/ ingest/ evolve/ adapters/5つのサブパッケージをすべてagent_memory/long_term/に移行(ロジック変更ゼロ)、新規working/とshort_term/;agent_memory/working/:作業記憶(操作層、現在のタスク状態——目標/ToDo/決定/変数/メモ、 スコープごとに1つ、data/working/に保存)。書き込みは全置換、匿名化のみで評価ゲートなし;turn_watermark水位とstale_wmで状態が遅れているか判定;agent_memory/short_term/:短期記憶 transcript アダプタ層、エージェントのネイティブログ (例:kimi-code の wire.jsonl)をクリーンなターンシーケンスに解析、新規ファイルは作成しない;MCP ツールが7つから13個に拡張:新規
memory_wm_read/memory_wm_write/memory_wm_clear(作業記憶の読み書きクリア)、memory_context(常駐プロファイル + 作業記憶 + 想起を一度に組み立て)、memory_transcript_read(ターン読み取り、since_turn 増分)、memory_session_end(セッション終了処理:data/raw アーカイブ + 共同蒸留 + 完了済み ToDo のクリーンアップ、保留 ToDo は veto)。
Related MCP server: mnemo
ディレクトリ構造
agent-memory/
├── agent_memory/ # Python 包(扁平布局,import 名 agent_memory)
│ ├── config.py # 配置(AGENT_MEMORY_* 环境变量覆盖)
│ ├── models.py # 记忆条目 schema(M0 核心)
│ ├── long_term/ # 长期记忆:store / ingest / retrieve / evolve / adapters(M1-M4,M7 迁入)
│ ├── working/ # 工作记忆:当前任务状态,操作层(M7a)
│ ├── short_term/ # 短期记忆:transcript 适配层(M7b)
│ └── server/ # MCP server:stdio(M2)+ HTTP 常驻(M6)
├── skills/agent-memory/ # Skill 接入方式(M3)
├── scripts/ # 运维脚本:turn hook(M5)、HTTP 服务启动/计划任务注册(M6)
├── evals/ # 评估集:datasets / rubrics / runners(agent 禁改,D6)
├── tests/
└── data/ # 运行时数据(gitignored):raw / memory / working / review_queue / snapshots / state / logsクイックスタート
uv sync # 创建虚拟环境并安装依赖
uv run pytest # 跑测试
uv run ruff check .M2 の使い方
LLM の設定(蒸留 / 対帳 / LLM 判定用)
蒸留書き込みパスには OpenAI 互換エンドポイントが必要、デフォルトは DeepSeek(https://api.deepseek.com、モデル deepseek-chat):
export AGENT_MEMORY_LLM_API_KEY=sk-...
# 可选覆盖:AGENT_MEMORY_LLM_BASE_URL / AGENT_MEMORY_LLM_MODEL
# 评估评委可单独配置(异源互审):AGENT_MEMORY_JUDGE_LLM_API_KEY 等キー未設定の場合、検索、手動書き込み、フィードバック、削除など LLM に依存しない機能は通常通り利用可能; 会話蒸留パスのみ呼び出し時にエラー(fail-closed)。
CLI 蒸留コマンド
会話([{role, content}, ...] の JSON ファイル)を完全な書き込みパイプラインでストアに格納:
uv run agent-memory distill --file conversation.json --scope repo:my-project \
--source kimi-code --session-id 2026-08-19-session
# 管线:蒸馏 → 评价门 → 对账;无法自动收敛的冲突会写入 data/review_queue/MCP server
起動:uv run python -m agent_memory.server.mcp_server(stdio)。
Claude Code / Kimi Code の MCP 設定スニペット:
{
"mcpServers": {
"agent-memory": {
"command": "uv",
"args": ["run", "python", "-m", "agent_memory.server.mcp_server"],
"env": {
"AGENT_MEMORY_DATA_DIR": "C:/Users/<you>/.agent-memory/data",
"AGENT_MEMORY_LLM_API_KEY": "sk-...",
"AGENT_MEMORY_LLM_BASE_URL": "https://api.deepseek.com",
"AGENT_MEMORY_LLM_MODEL": "deepseek-chat"
}
}
}
}5つのツールから開始(M5 から7つ、M7 から13個に拡張、下記 M5 / M7 の使い方を参照):memory_search(ハイブリッド検索 + XML 注入ブロック、scope フィルタはサーバー側で強制)、
memory_add(会話 JSON は蒸留パイプライン / 単一 content は匿名化+対帳)、
memory_feedback(信頼度を上げ下げ、low 未満はレビューキューへ)、
memory_update(匿名化+評価ゲート通過後に更新)、memory_forget(削除)。
エンドツーエンド評価
uv run python evals/runners/e2e_eval.py --layers 1,2 # 无 key 时自动规则降级模式
uv run python evals/runners/e2e_eval.py --layers 1,2 --llm-judge # 真实 LLM 评委按 rubric 判定
uv run python evals/runners/e2e_eval.py --layers 3 --llm-judge --jobs 8 # layer3 跨会话隐藏关联
uv run python evals/runners/e2e_eval.py --layers 3 --llm-judge --jobs 8 --baseline
# --baseline:同一批用例在空库下配对重跑,输出逐题胜负 / McNemar p 值 /
# 配对 bootstrap 留出增益区间,以及激活率 / 遵循率 / 留出增益三个进化指标
uv run python evals/runners/e2e_eval.py --layers 2 --llm-judge --jobs 8 # 调高用例并发
uv run python evals/runners/e2e_eval.py --layers 2 --llm-judge --no-cache # 禁用响应缓存高速化メカニズム(実モードはデフォルト有効):
LLM レスポンスディスクキャッシュ:蒸留 / 対帳 / 判定の各レスポンスを sha256(model + system + user) で
data/logs/llm_cache/にキャッシュ(gitignored)。再実行時、変更されていない部分は直接キャッシュヒット、 秒単位で完了;モデル変更で自動的にミス。--no-cacheで無効化。ケースレベル並行:
--jobs N(デフォルト 4)でスレッドプールを使いケースを並行実行、各ケースは独立した一時ディレクトリ、 429 レート制限は自動指数バックオフリトライ。モデルロード:bge-m3 はプロセスごとに1回ロード(約1〜2分)。複数レイヤーを実行する場合は
--layers 1,2で一度に実行、2つのプロセスに分けて各レイヤーを実行しない。
ルール降格モードは実際の蒸留品質を表すものではないため、正式な受入には実際の LLM を設定して再実行が必要。
M3 の使い方
LangGraph 統合
自作の LangGraph エージェントには3つの接続方法があり、重ねて使用可能:
from agent_memory.long_term.adapters.langgraph.store import AgentMemoryStore
from agent_memory.long_term.adapters.langgraph.tools import build_memory_tools
from agent_memory.long_term.retrieve.resident import build_system_context
from langgraph.prebuilt import create_react_agent
# 1) BaseStore:namespace 约定 ("memories", <scope>),put/search/delete 直接映射到记忆内核
store = AgentMemoryStore() # 配置走 AGENT_MEMORY_* 环境变量
store.put(("memories", "repo:myproj"), "db-choice",
{"content": "本项目数据库定为 SQLite,文件 data/app.db。", "confidence": "high"})
# 2) ReAct tool:recall_memories / save_memory 挂进 tools 列表
tools = build_memory_tools()
# 3) 常驻层:profile 类记忆渲染进 system prompt(预算是召回预算的一半)
prompt = "你是用户的编程助手……\n\n" + build_system_context("repo:myproj")
agent = create_react_agent(model, tools, prompt=prompt, store=store)完全な実行可能な例は examples/langgraph_demo.py(uv run python examples/langgraph_demo.py、
AGENT_MEMORY_LLM_API_KEY が必要)。
BaseStore の put は低レベル同期インターフェース:呼び出し側は精製済みの原子コンテンツを提供する必要があり、アダプタ層は 匿名化+評価ゲートルールを通過(指示内容は直接エラーを投げる)が、LLM 蒸留は行わない;save_memory ツールの 対帳は LLM なしの純ルールパス(近傍重複は NOOP、それ以外は ADD)、競合収束は M2 蒸留パイプラインを経由。
Skill 統合
skills/agent-memory/SKILL.md はプロンプト層で、ラップされたエージェント(Kimi Code / Claude Code)に
いつ検索、書き込み、フィードバックするかを教える。インストール方法(MCP server と併用):
Kimi Code:
skills/agent-memory/を~/.kimi-code/skills/agent-memory/にコピーまたはシンボリックリンク;Claude Code:
~/.claude/skills/agent-memory/にコピー;同時に上記 MCP 設定で
agent-memoryserver をマウントし、Skill 内のツール名(memory_search など)に実装を持たせる。
軌跡プレフィックス回帰評価
凍結コンテキスト(system + 注入済み記憶ブロック + ユーザー最新メッセージ)→ LLM が次のアクションを出力 → 判定者が 許容セットに含まれ、禁止セットに触れていないかを判定。4つの境界シナリオ(指示競合 / scope 漏れ / 低信頼度 / 注入耐性)+ 正常想起対照をカバー:
uv run python evals/runners/prefix_regression.py # 需 LLM key,无 key 整体跳过
uv run python evals/runners/prefix_regression.py --seeds 3 # 多种子报均值与区间
uv run python evals/runners/prefix_regression.py --no-cache # 禁用 LLM 响应缓存(默认开)429 レート制限は自動間隔リトライ;LLM レスポンスディスクキャッシュは e2e_eval と data/logs/llm_cache/ を共有。この評価にはルール降格モードはない(アクターの動作自体が被験対象)。
M4 の使い方
睡眠学習ループ(evolve)
# dry-run:只到提案为止,打印提案摘要,不验证、不应用
uv run agent-memory evolve --dry-run
# 完整循环:触发 → 整合 → 三档验证 → 通过则晋升(自动快照 + 审计)
uv run agent-memory evolve
# 只整理某个 scope
uv run agent-memory evolve --scope repo:my-repoトリガー条件(いずれか、閾値は AGENT_MEMORY_EVOLVE_* 環境変数で上書き):前回整理から7日超(EVOLVE_INTERVAL_DAYS)、新規エントリ50超(EVOLVE_NEW_ENTRIES_THRESHOLD)、レビューキューバックログ10超(EVOLVE_REVIEW_BACKLOG_THRESHOLD)。
整理が生成するのは提案(data/review_queue/evolution/<timestamp>/proposal.yaml)であり、直接書き換えではない:3段階検証(boundary / retention / safety)のいずれかが不合格なら却下、提案はアーカイブして人に委ねる;すべて合格して初めて昇格——昇格前に記憶層のスナップショット(data/snapshots/<timestamp>/)、昇格後に監査ログ(data/logs/evolution_audit.jsonl)を書き込む。ロールバックは agent_memory.long_term.evolve.apply.rollback(snapshot_id, settings, embedder) でスナップショットから記憶層を復元しインデックスを再構築。
M5 の使い方
人間によるレビュー(レビューキューの2つの対話ノード)
蒸留の不正出力、評価ゲートの低信頼度、対帳が収束しない競合はすべて data/review_queue/ に入り、人間の裁定を待つ。
レビューは2つの MCP ツールで完了:
memory_review_list:保留詳細を一覧表示(ソース、理由、内容);memory_review_resolve:裁定——approveそのまま格納 /modifyテキストを匿名化+評価ゲート通過後に格納 /discard破棄。裁定成功でキューファイルを削除;raw_record タイプの保留は直接格納不可。
レビューゲート(AGENT_MEMORY_REVIEW_GATE、デフォルト ask):キューにバックログがある場合の memory_search の動作——
ask は status=blocked を返しユーザー確認を待つ(acknowledge_pending=true で通過)、strict は一律拒読
(無人運用シナリオ)、off はブロックしない。memory_add の返り値には pending_review 詳細が含まれ、
エージェントは各項目をユーザーに報告し裁定を求めるべき(SKILL.md に対応フローあり)。
強制記憶更新フック
scripts/memory_turn_hook.py は kimi-code の Stop フック:セッションごとにターンをカウントし、
AGENT_MEMORY_REVIEW_TURN_INTERVAL(デフォルト 3)ターンごとにセッション終了をインターセプトし、蒸留指示を注入
(材料 = 各ターンのユーザーメッセージ + 隣接する assistant 返信)。ユーザーレベル
~/.kimi-code/config.toml に登録済みで、すべてのプロジェクトセッションに有効;他のホストはスクリプトを参照して自分でフックを接続可能。
M6 の使い方
HTTP 常駐サービス
stdio モードはホストが server を子プロセスとして起動し、セッションとともに生滅;HTTP モードは長期実行のローカルサービスで、 HTTP リクエストを送信できる任意のエージェントホストが URL を登録するだけで13個すべてのツールを取得:
uv run python -m agent_memory.server.http_server
# 默认监听 http://127.0.0.1:8765/mcp(只绑回环地址,天然免鉴权)
# 覆盖:AGENT_MEMORY_HTTP_HOST / AGENT_MEMORY_HTTP_PORTサービスには他に2つの静的ルートがある:/SKILL.md(プロンプト層全文)と /bootstrap(統合ブートストラップ指示)。
新エージェントの統合は /bootstrap の内容を与えるだけ:http://127.0.0.1:8765/mcp を登録
(トランスポートタイプ streamable-http)+ /SKILL.md を読んで従う、ファイルコピーは不要。
Windows 常駐(計画タスク)
scripts/start_http_server.cmd は起動ラッパースクリプト:異常終了時60秒待って再起動、最大3回;
3連敗で data/state/http_server_FAILED.txt 失敗マーカーを書き、ログは
data/logs/http_server.log。scripts/register_task_s4u.ps1 はログイントリガー計画タスクを登録
(S4U バックグラウンドモード、完全にウィンドウなし)、管理者権限が必要。両スクリプトは純 ASCII を維持する必要がある
(cmd.exe は .cmd を GBK で読み、PowerShell 5.1 は BOM なし .ps1 を ANSI で読む、非 ASCII は解析を壊す)。
M7 の使い方
統一コンテキスト組み立てと作業記憶
memory_context(scope, query?, k?, current_turn?) は3つのセクションを一度に組み立てる:常駐プロファイルブロック(長期記憶内の profile)
→ 作業記憶ブロック(現在のタスク状態)→ 想起ブロック(query を渡した場合のみ長期記憶を検索)。現在のタスク状態の日常メンテナンスは
3つの作業記憶ツールで行う:
memory_wm_write(scope, goal?, decisions?, variables?, todos?, notes?, turn_watermark?): 全置換書き込み(マージではなく、渡されなかったフィールドはクリアされる)、匿名化のみ、評価ゲートなし;memory_wm_read(scope, current_turn?):読み取り + 鮮度判定(stale_wm=trueは現在のターン数が 作業記憶のturn_watermark水位を超えていることを意味——「この状態は何ターン目まで更新済みか」、状態が遅れている可能性);memory_wm_clear(scope):クリア(冪等、存在しない場合もエラーではない)。
作業記憶は操作層のドラフト:完了項目の結論は長期記憶に蒸留(memory_add または下記 memory_session_end)して初めて
沈殿したと見なされる。
セッションログ読み取りとセッション終了処理
memory_transcript_read(log_path, adapter?, since_turn?) はエージェントのセッションログ(例:kimi-code の
wire.jsonl、ファイル名で形式を自動検出)をクリーンなターンシーケンス(user/assistant/tool)に解析;since_turn
は作業記憶の水位と組み合わせて増分読み取り(水位以降のターンのみ返す)。
memory_session_end(scope, conversation_json?|log_path?, ...) はセッション終了の標準処理で、一度に完了:
原文をアーカイブ(data/raw/、追記のみで書き換えなし)→ 共同蒸留(会話 + 作業記憶スナップショットを参照コンテキストとして)→ 作業
記憶の完了済み ToDo をクリーンアップ。作業記憶に保留 ToDo がある場合は veto(アーカイブ/蒸留/クリーンアップすべて実行しない)、終了確認は
force=true を渡す。これは N ターンごとのローリング蒸留フックと二重トラックの役割分担:フックは途中クラッシュによる損失を防ぐ保険、session_end
は標準終了処理を行う。
3つのアーキテクチャレッドライン
AGENTS.md を参照。要するに:データ3層分離(raw は追記のみ、memory は唯一の真実ソース、index は再構築可能で手動変更禁止);書き込みは匿名化→蒸留→対帳のゲートを通過必須;evals / rubric / リリース閾値 / 監査ログはエージェントによる自己変更を禁止。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenancePersistent memory for AI agents. Store, recall, and share knowledge across sessions with five MCP tools: remember, recall, context, forget, and share. Includes semantic search and agent/user/org scoping.52Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to have persistent, self-managing memory with bi-temporal supersession, timely forgetting, and recall under a limited context window, using MCP protocol.MIT
- AlicenseNot gradedqualityBmaintenanceProvides long-term memory for AI agents via MCP tools to store, recall, and delete memories, with per-user scoping and usage limits.AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to have persistent long-term memory by automatically storing and retrieving important information via MCP tools.MIT
Related MCP Connectors
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Shared long-term memory vault for AI agents with 20 MCP tools.
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ac0033/agent-memory'
If you have feedback or need assistance with the MCP directory API, please join our Discord server