关于 Memstate AI - Git for Agent Memory
Memstate AI 是面向 AI Agent 的托管版本化记忆服务,将事实存入结构化键路径并保留历史。它通过 MCP 服务支持冲突检测和检索,无需用户自行运行基础设施。
主要功能
- 01从文本和 Markdown 提取键路径
- 02检测相互冲突的事实
- 03保留完整版本历史
- 04浏览和搜索项目记忆
- 05软删除并保留记忆历史
适用场景
- 01在 Agent 会话间延续项目决策
- 02跟踪架构或配置的变化
- 03查找并审阅相互冲突的项目事实
MCP 相关
MCP 服务提供存储、检索、搜索、查看历史和软删除项目记忆的工具。配置时需要提供 `MEMSTATE_API_KEY`。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Memstate AI - MCP
为 AI Agent 提供版本化记忆。 存储事实、检测冲突,并追踪决策随时间的变化——通过托管的 MCP 服务提供。
为什么选择 Memstate?
| RAG(大多数其他记忆系统) | Memstate AI | |
|---|---|---|
| 每次对话的 Token 用量 | ~7,500 | ~1,500 |
| Agent 可见性 | 黑盒 | 完全透明 |
| 记忆版本管理 | 无 | 完整历史 |
| 记忆增长时的 Token 增长 | O(n) | O(1) |
| 所需基础设施 | 是 | 无——托管式 SaaS |
其他记忆系统会把所有内容都塞进上下文窗口,然后听天由命。Memstate 为你的 Agent 提供一个结构化、版本化的知识库,让它能够精准浏览——只加载所需内容,了解发生了哪些变化,并知道事实何时发生冲突。
基准测试
我们构建了一套开源基准测试套件,用于测试 Agent 记忆真正重要的能力:系统能否存储事实、跨会话准确回忆、在内容变化时检测冲突,并在项目不断演进时保持上下文?
正面对比:Memstate AI 与 Mem0
两个系统在相同条件下进行了测试,使用同一个 Agent(Claude Sonnet 4.6,temperature 0)、相同的场景和相同的评分标准。
| 指标 | Memstate AI | Mem0 | 胜出者 |
|---|---|---|---|
| 总分 | 69.1 | 15.4 | Memstate |
| 准确度(事实回忆) | 74.1 | 12.6 | Memstate |
| 冲突检测 | 85.5 | 19.0 | Memstate |
| 上下文连续性 | 63.7 | 10.1 | Memstate |
| Token 效率 | 22.3 | 30.6 | Mem0 |
评分权重:准确度 40%,冲突检测 25%,上下文连续性 25%,Token 效率 10%。
各场景明细
基准测试运行五种真实场景,模拟多会话 Agent 工作流:
| 场景 | Memstate AI | Mem0 |
|---|---|---|
| Web 应用架构演进 | 43.2 | 55.6 |
| 身份验证系统迁移 | 66.2 | 10.2 |
| 数据库架构演进 | 72.7 | 7.0 |
| API 版本冲突 | 86.5 | 0.9 |
| 团队决策反转 | 77.2 | 3.3 |
Mem0 在第一个场景(简单的架构追踪)中胜出,但在需要处理矛盾、跨会话上下文和追踪决策反转的场景中表现严重不足——在五个场景中的三个得分接近零。
Memstate 胜出的原因
基准测试揭示了根本性的架构差异:
Mem0 使用基于嵌入的语义搜索。 事实会被分块、嵌入,并按相似度检索。这适用于简单查询,但在以下情况下会失效:
- 事实与之前的事实矛盾时(系统无法区分当前信息和过时信息)
- 需要精确回忆时(嵌入返回的是“相似”结果,而非精确结果)
- 写入到读取的延迟很重要时(新记忆需要数秒才能被搜索到)
Memstate 使用结构化、带版本的键值存储。 每条事实都存储在明确的键路径下,并保留完整的版本历史。这意味着:
- 内置冲突检测——新事实与旧事实矛盾时,系统会识别并保留两个版本
- 回忆结果具有确定性——返回的内容与存储的内容完全一致,而非近似匹配
- 跨会话连续性可靠——Agent 会遍历结构化树,而不是寄希望于语义搜索能找到正确的上下文
- Token 成本保持 O(1)——Agent 会先加载摘要,仅在需要时深入查看细节,而不是把所有可能相关的嵌入都塞进上下文窗口
公平性说明
- 两个系统使用了相同的 Agent 模型、温度设置和评估标准
- 为考虑 Mem0 的异步嵌入流程,在写入和读取之间为 Mem0 设置了 10 秒的摄取延迟
- Mem0 的 Token 效率得分更高,但应结合具体情况解读这一指标——Token 用量较低可能仅仅意味着返回的信息较少。检索到的信息不完整或不正确的系统,每次响应使用的 Token 较少,但可能需要更多后续调用,最终要花费更多 Token 才能得到相同的答案
- 本仓库包含基准测试源代码,可供完整复现
- 使用自定义配置或不同的嵌入模型时,Mem0 的表现可能有所不同
快速开始
在 memstate.ai/dashboard 获取 API 密钥,然后将其添加到 MCP 客户端配置中:
{
"mcpServers": {
"memstate": {
"command": "npx",
"args": ["-y", "@memstate/mcp"],
"env": {
"MEMSTATE_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
无需 Docker。无需数据库。无需基础设施。60 秒即可运行。
客户端设置
Claude Desktop
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"memstate": {
"command": "npx",
"args": ["-y", "@memstate/mcp"],
"env": { "MEMSTATE_API_KEY": "YOUR_API_KEY_HERE" }
}
}
}
Claude Code
claude mcp add memstate npx @memstate/mcp -e MEMSTATE_API_KEY=YOUR_API_KEY_HERE
Cursor
在 Cursor Settings → MCP → Add Server 中添加——使用与上方 Claude Desktop 相同的 JSON 格式。
Cline / Windsurf / Kilo Code / Roo Code
它们都支持相同的 stdio MCP 配置格式。将配置添加到客户端的 MCP 设置文件中。
核心工具
| 工具 | 使用时机 |
|---|---|
memstate_remember | 存储 Markdown、任务摘要和决策。服务会自动提取键路径并检测冲突。大多数写入操作都应使用此工具。 |
memstate_set | 将单个键路径设为较短的值(例如 config.port = 8080)。不适用于散文内容。 |
memstate_get | 浏览某个项目或子树中的所有记忆。每项任务开始时都应使用。 |
memstate_search | 不知道确切键路径时,按含义进行语义搜索。 |
memstate_history | 查看某条知识随时间的变化——完整的版本链。 |
memstate_delete | 软删除某个键路径。会创建墓碑;完整历史会保留。 |
memstate_delete_project | 软删除整个项目及其所有记忆。 |
键路径的工作方式
记忆以分层点号表示法组织:
project.my_app.database.schema
project.my_app.auth.provider
project.my_app.deploy.environment
键路径会自动添加前缀:keypath="database" 且 project_id="my_app" → project.my_app.database。Agent 可以深入查找所需内容——无需导出完整上下文。
工作原理
Agent: memstate_remember(project_id="my_app", content="## Auth\nUsing SuperTokens...")
↓
Server extracts keypaths: [project.my_app.auth.provider, ...]
↓
Conflict detection: compare against existing memories at those keypaths
↓
New version stored — old version preserved in history chain
↓
Next session: memstate_get(project_id="my_app") → structured summaries only
↓
Agent drills into project.my_app.auth only when it needs auth details
无论记忆总量有多少,Token 成本都保持不变。
添加到 Agent 指令中
复制到 AGENTS.md 或系统提示词中:
## Memory (Memstate MCP)
### Before each task
- memstate_get(project_id="my_project") — browse existing knowledge
- memstate_search(query="topic", project_id="my_project") — find by meaning
### After each task
- memstate_remember(project_id="my_project", content="## Summary\n- ...", source="agent")
### Tool guide
- memstate_remember — markdown summaries, decisions, task results (preferred)
- memstate_set — single short values only (config flags, status)
- memstate_get — browse/retrieve before tasks
- memstate_search — semantic lookup when keypath unknown
- memstate_history — audit how knowledge evolved
- memstate_delete — remove outdated memories (history preserved)
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
MEMSTATE_API_KEY | (必填) | 来自 memstate.ai/dashboard 的 API 密钥 |
MEMSTATE_MCP_URL | https://mcp.memstate.ai | 用于覆盖可自托管部署的地址 |
验证连接
MEMSTATE_API_KEY=your_key npx @memstate/mcp --test
打印所有可用工具,并确认你的 API 密钥有效。
为值得了解自身所知内容的 AI Agent 而打造。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。