AI Agent Memory

io.github.xiangzi1126由 GitHub 帳號 xiangzi1126 發布v0.1.1更新於 Oct 27, 2026

Agent-agnostic persistent memory MCP server. Local-first: memories travel with your project.

發布方自己的服務:Memory.fit

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

本地優先的持久記憶 MCP 伺服器,把記憶存放在專案的 .aamm 目錄中,並可在 Claude Code、Cursor、Qoder 等代理之間共用。

可以做什麼
  • 依使用者、專案、流程、代理四類記憶進行儲存、召回、讀取、篩選、更新、列出與刪除,召回時融合向量、關鍵字與標題標籤比對。
  • 記錄工作日誌條目,並在需要時檢索過往日誌時間軸。
  • 設定日誌中顯示的使用者名稱,查看目前代理與專案脈絡。
  • 透過命令列管理儲存:初始化、查看狀態、匯出為 Markdown、從 Markdown 重建索引以及一致性檢查。
適用情境
適合希望助理跨工作階段記住使用者偏好、專案知識與除錯經驗,並讓多個 MCP 用戶端在同一個專案上共用一份記憶儲存的場景。較偏向本地、依專案劃分的記憶,而非託管式記憶服務。
執行需求
以本地 Python 程序執行;需從 PyPI 安裝 ai-agent-memory-mcp 套件,並要求 Python 3.11 以上。需要相容 OpenAI 的嵌入服務,在 .aamm/config.yml 中設定 model、base_url、api_key_env 與 dim;API 金鑰從該設定指定的環境變數讀取,例如 VOLCENGINE_API_KEY、SILICONFLOW_API_KEY 或 OPENAI_API_KEY,放在專案根目錄的 .env 中。需要能連線到嵌入服務端點。
安裝前請注意
記憶與日誌會寫入專案的 .aamm 目錄,包括 Markdown 鏡像與每日產生的日誌檔案,這些內容可能隨專案被提交或分享。記憶內容、標題與標籤會傳送給所設定的第三方嵌入服務,可能產生費用。相關工具可以更新與刪除已存記憶,日誌會記錄被提問與完成的事項。更換嵌入模型可能導致既有向量失效。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 AI Agent Memory,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

AI Memory MCP Server

Agent-agnostic persistent memory as an MCP Server — local-first: memories travel with your project in .aamm/, shared across Claude Code / Qoder / Cursor.

[License: MIT] [Python 3.11+] [MCP] [PyPI]

中文 | 日本語

An agent-agnostic persistent memory layer exposed as an MCP Server. Any MCP client — Claude Code, Qoder, Cursor — can reuse it. Memories live in each project's .aamm/ directory and travel with the project; different agents working the same project share one memory store, with a source_agent stamp distinguishing writers.

Architecture

  • SQLite — structured source of truth (CRUD + FTS5 keyword search)
  • Chroma (embedded) — vector retrieval, persisted to .aamm/chroma/
  • Embedding — any OpenAI-compatible service (Volcengine / SiliconFlow / OpenAI / others); defaults to Volcengine doubao-embedding-vision
  • Markdown mirror — each memory is also written to .aamm/memories/<category>/<id>.md, human-readable and editable

The three layers are joined by id.

Memory categories

categoryuse
useruser preferences (tech background / dev habits / answer style)
projectproject knowledge (architecture / stack / layout / design decisions)
processwork process (solved issues / bugs / debugging / lessons)
agentagent collaboration (what was done / handoff notes)

Install

From PyPI:

powershell
pip install ai-agent-memory-mcp

From source:

powershell
cd ai_agent_memory_mcppip install .          # or: pip install -e .   (editable, for development)

Requires Python 3.11+.

Configure embedding (any OpenAI-compatible service)

The embedding layer is a generic OpenAI-compatible client — Volcengine / SiliconFlow / OpenAI / any compatible service works. On first run a default config is generated at .aamm/config.yml; edit as needed.

Fields (embedding section of .aamm/config.yml)

fieldmeaning
providerlabel (informational only)
modelembedding model name
base_urlOpenAI-compatible endpoint
api_key_envwhich env var holds the key
dimvector dim (must match the model)

Put the key in the project root .env, then edit the embedding section of config.yml.

Examples

Volcengine doubao-embedding-vision (default; Agent/Coding Plan keys must use the Plan endpoint /api/plan/v3 — standard /api/v3 returns 401)

yaml
embedding:  provider: volcengine  model: doubao-embedding-vision  base_url: https://ark.cn-beijing.volces.com/api/plan/v3  api_key_env: VOLCENGINE_API_KEY  dim: 2048

.env: VOLCENGINE_API_KEY=...

SiliconFlow bge-large-zh (Chinese-text optimized)

yaml
embedding:  provider: siliconflow  model: BAAI/bge-large-zh-v1.5  base_url: https://api.siliconflow.cn/v1  api_key_env: SILICONFLOW_API_KEY  dim: 1024

.env: SILICONFLOW_API_KEY=...

OpenAI

yaml
embedding:  provider: openai  model: text-embedding-3-small  base_url: https://api.openai.com/v1  api_key_env: OPENAI_API_KEY  dim: 1536

.env: OPENAI_API_KEY=...

Any other OpenAI-compatible service: just fill in base_url / model / api_key_env / dim.

After switching embedding model, old vectors may mismatch in dimension; clear .aamm/chroma/ and re-remember, or run python tests/rebuild_vectors.py.

Retrieval

recall uses three-way fused retrieval to maximize hit rate:

  • Vector (weight 0.6): Chroma cosine; embeddings are computed from title + tags + content, so title/tag signal enters the vector
  • Keyword (weight 0.25): SQLite FTS5 trigram
  • Title/tag match (weight 0.15): +0.15 if the query appears in the title, +0.075 if in a tag

Candidates are expanded to top_k*3, then fused down to top_k. If the query contains FTS5 special characters (., *, ", -, ...), the keyword branch falls back to LIKE substring matching instead of erroring.

Work journal

Besides searchable memories, aamm keeps a human-readable work journal. After completing a user request, the agent calls journal_entry() to log what was asked / what it did / any open question. Journals are for people reading a timeline; recall does not search them. Use search_journal() only as a fallback to recover "what happened in a past interaction".

Journals are written to .aamm/logs/:

  • journal.db — single SQLite store (the search source, spans all dates)
  • YYYY-MM-DD.md — one Markdown file per day, append-only timeline
.aamm/logs/├── journal.db        # search source (all dates)├── 2026-07-14.md     # per-day timeline└── 2026-07-15.md

MCP tools

Memory (8):

  • remember(title, content, category, tags?, scope?) — store (three-way sync, auto-embed)
  • recall(query, category?, top_k=5) — fused retrieval (vector + keyword + title match)
  • get_memory(id) — get one
  • search_memories(category?, tag?, agent?) — structured filter
  • update_memory(id, ...) — update (re-embed + refresh md)
  • forget(id) — delete (three-way sync)
  • list_memories(category?) — list
  • who_am_i() — current agent + project context

Journal (3):

  • journal_entry(question, answer_summary, key_points?, open_question?, session_id?) — log a timeline entry
  • search_journal(query, date_from?, date_to?, agent?, limit=10) — fallback search over journals
  • setup_profile(user_name) — set the user name (shown in journals)

Management CLI

powershell
python -m ai_agent_memory_mcp.cli init                  # initialize .aamm in the current projectpython -m ai_agent_memory_mcp.cli status                # store overview (categories / vectors / md / journal)python -m ai_agent_memory_mcp.cli export [--dir DIR]    # export all memories to Markdownpython -m ai_agent_memory_mcp.cli sync                  # rebuild SQLite + Chroma from Markdownpython -m ai_agent_memory_mcp.cli check                 # consistency check (db / md / chroma)python -m ai_agent_memory_mcp.cli journal [--limit N]   # show recent journal entries

Wire into Claude Code (user scope; shared code, per-project data)

From PyPI (no PYTHONPATH needed):

powershell
claude mcp add aamm -s user -- python -m ai_agent_memory_mcp --agent claude-code --project-from-cwd

From a source clone, add -e PYTHONPATH=<clone dir>\ai_agent_memory_mcp:

powershell
claude mcp add aamm -s user -e PYTHONPATH=<clone dir>\ai_agent_memory_mcp -- python -m ai_agent_memory_mcp --agent claude-code --project-from-cwd

Qoder / Cursor are the same — just change --agent.

Data layout

.aamm/├── memory.db                    # SQLite: structured memories + FTS5├── chroma/                      # Chroma vector store├── memories/<category>/<id>.md  # Markdown mirror (editable)├── logs/│   ├── journal.db               # work journal (search source)│   └── YYYY-MM-DD.md            # per-day journal timeline├── config.yml                   # embedding config└── profile.json                 # user name

License

MIT

來源:README.md,提交 467d1e9

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Memory 整合