独立于具体 Agent 的持久化记忆层 (MCP Server),可被 Claude Code / Qoder / Cursor 复用。Persistent memory layer across sessions and agents with semantic search, markdown sync, and work journal.
Server has 11 tools with mostly complete schemas and descriptions in Chinese. Naming follows verb_noun pattern (remember, recall, forget, etc.). Descriptions are detailed but lengthy (200-400+ chars, exceeding the 10-1024 baseline sweet spot of 50-200). All tools have input schemas with types. However, output schemas are not documented in the source code, responses are inferred from implementation. Error handling is minimal; no recovery guidance or error classification. Security: no secrets exposed as params (good), but no permission gates or audit trail logging visible. Tool composition is sound (each does one thing), but some tools could be better scoped (e.g., who_am_i mixes identity + stats).
删除一条记忆(SQLite+Chroma+Markdown 三处同步)。用户要求"删掉 / 忘掉"某条记忆时调用。
按 id 取单条记忆的完整内容(含 [[link]] 关联)。已知具体 id 时调用。
记录一次交互的工作日记(人读,按时间线翻看 logs/journal.md)。完成一次用户请求后调用一次。用你自己的话转述:用户问了什么、你怎么回答 / 做了什么。这是给人翻看的流水日记,不是原始对话存档。agent 名 / 时间 / 用户名自动补;与 remember 分工:remember 存可检索知识(AI 读),journal_entry 存交互流水(人读时间线)。同一次交互可都调。open_question:这次结束时留给用户的问题或待定项(可选),记下"停在哪、等用户定什么"。
列出记忆(可按分类过滤),按更新时间倒序(不含正文)。浏览 / 概览已有记忆时调用。
语义 + 关键词 + 标题三路融合检索,返回最相关记忆(含正文 + [[link]] 关联)。当用户问"之前 / 上次 / 有没有记录 / 回忆 / 召回 / 历史决策 / 踩过的坑"时调用。每条记忆若 content 含 [[其他记忆标题]],返回时附 links 字段(关联记忆 id/title/category)。
存储一条持久化记忆(SQLite+Chroma+Markdown 三处同步,自动 embed)。当用户说"记住 / 记下 / 沉淀 / 保存"某条信息时调用。content 中可用[[其他记忆标题]] 引用已有记忆,recall 时会解析为关联记忆。category:user(用户偏好)/ project(项目知识)/ process(工作过程)/ agent(Agent 协作)。scope:user / project / session。
Output schemas not documented. Tool descriptions state what is returned (e.g., 'returns most relevant memory with links'), but the actual response structure (fields, types, pagination) is not formally specified. LLMs cannot plan downstream calls or extract fields reliably.
Descriptions are verbose (250-400+ chars) and mix implementation details with user intent. E.g., 'recall' description includes 'SQLite+Chroma+Markdown 三处同步' (internal architecture) rather than focusing on when/why to call it. Exceeds baseline sweet spot of 50-200 chars.
No error handling or recovery guidance. Tools do not document what happens on failure (e.g., vector embedding fails, database locked, invalid category). No error classification (retryable vs. fatal) or actionable error messages.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
按关键词 / 日期 / Agent 检索工作日记(FTS5 + LIKE 兜底)。返回 snippet + preview + open_question。
按分类 / 标签 / 来源 Agent 结构化过滤(不含正文)。需精确筛选时调用。
设置用户名(写入 .aamm/profile.json)。会话开始时调用一次,后续 journal_entry 自动补用户名。
更新已有记忆;改 content 会重算向量并刷新 Markdown。修改 / 补充已有记忆时调用。
返回当前 Agent 标识、用户名、项目根、数据目录,以及各分类记忆数与日记数。会话开始时先调用,了解当前 agent 与记忆库概况,并确认 profile 用户名是否已设置。
who_am_i mixes two concerns: identity (agent name, user name, project root) and statistics (memory counts per category). Should split into separate tools or clearly document the dual purpose.
Destructive operations (forget, update_memory) lack confirmation or dry-run support. An agent could accidentally delete memories without a safety gate.