模态AI-MCP
](https://www.npmjs.com/package/@memstate/mcp)   ](https://nodejs.org) 
AI代理的版本化内存。 存储事实、检测冲突并跟踪决策如何随时间变化——作为托管的MCP服务器公开。
______________________________________________________________________
为什么选择Memstate?
| RAG(大多数其他存储系统) | Memstate AI | |
|---|---|---|
| 每次对话的令牌使用量 | ~7500 | ~1500 |
| 代理可见性 | 黑盒 | 完全透明 |
| 内存版本控制 | 无 | 完整历史记录 |
| 随着记忆规模的扩大,代币增长 | O(n) | O(1) |
| 需要基础设施 | 是 | 无--托管SaaS |
其他内存系统将所有内容转储到您的上下文窗口中,并希望一切顺利。Memstate给你的代理人一个 结构化、版本化的知识库 它精确导航——只加载你需要的内容,知道发生了什么变化,知道什么时候事实发生了冲突。
______________________________________________________________________
基准测试
我们建造了一个 开源基准测试套件 这测试了对代理内存真正重要的是什么:你的系统能否存储事实,在会话中准确地回忆它们,在事情发生变化时检测冲突,并在项目发展过程中维护上下文?
正面交锋:Memstate AI vs Mem0
这两个系统都在相同的条件下使用相同的试剂(Claude Sonnet 4.6,温度0)、相同的场景和相同的评分标准进行了测试。
| 指标 | Memstate AI | Mem0 | 获胜者 |
|---|---|---|---|
| 总体评分 | 69.1 | 15.4 | 记忆状态 |
| 准确度(事实回忆) | 74.1 | 12.6 | 记忆状态 |
| 冲突检测 | 85.5 | 19.0 | 模态 |
| 上下文连续性 | 63.7 | 10.1 | 模态 |
| 令牌效率 | 22.3 | 30.6 | Mem0 |
*评分权重:准确率40%,冲突检测25%,上下文连续性25%,令牌效率10%。*
按场景细分
该基准测试运行了五个模拟多会话代理工作流的真实场景:
| 场景 | 模态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使用结构化、版本化的键值存储。 每个事实都存在于一个具有完整版本历史的显式密钥路径中。这意味着:
- 内置冲突检测功能 --当一个新事实与旧事实相矛盾时,系统会知道并保留这两个版本
- 召回是确定性的 --你得到的是存储的内容,而不是大致匹配的内容
- 跨会话连续性可靠 --代理在结构化树中导航,而不是希望语义搜索能够显示正确的上下文
- 代币成本保持O(1) --代理首先加载摘要,只有在需要时才深入细节,而不是将所有潜在的相关嵌入转储到上下文窗口中
公平注意事项
- 两个系统使用相同的试剂模型、温度和评估标准
- Mem0在写入和读取之间有10秒的摄取延迟,以解释其异步嵌入管道
- Mem0在令牌效率方面得分更高,但这个指标应该在上下文中阅读——较低的令牌使用率可能只是反映了返回的信息较少。检索不完整或不正确事实的系统每次响应使用的令牌较少,但可能需要更多的后续调用,最终会花费更多的令牌来达到相同的答案
- 基准源代码包含在此存储库中,以实现完全可重复性
- Mem0在自定义配置或不同的嵌入模型下可能表现不同
______________________________________________________________________
快速开始
获取API密钥: memstate.ai/仪表板,然后添加到MCP客户端配置中:
{
"mcpServers": {
"memstate": {
"command": "npx",
"args": ["-y", "@memstate/mcp"],
"env": {
"MEMSTATE_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}没有Docker。没有数据库。没有基础设施。60秒后跑步。
______________________________________________________________________
客户端设置
克劳德桌面
配置位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"memstate": {
"command": "npx",
"args": ["-y", "@memstate/mcp"],
"env": { "MEMSTATE_API_KEY": "YOUR_API_KEY_HERE" }
}
}
}克劳德代码
claude mcp add memstate npx @memstate/mcp -e MEMSTATE_API_KEY=YOUR_API_KEY_HERE光标
在光标设置中→ MCP → 添加服务器——与上面的Claude Desktop相同的JSON格式。
Cline/Windsurf/Kilo码/Roo码
所有这些都支持相同的stdio MCP配置格式。添加到客户的MCP设置文件中。
______________________________________________________________________
核心工具
| 工具 | 何时使用 |
|---|---|
memstate_remember | 存储降价、任务摘要、决策。服务器提取密钥路径并自动检测冲突。 用于大多数写作。 |
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: 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代币成本保持不变 无论存在多少总记忆。
______________________________________________________________________
添加到您的代理说明中
复制到您的 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 | *(必填)* | API密钥来自 memstate.ai/仪表板 |
MEMSTATE_MCP_URL | https://mcp.memstate.ai | 覆盖自托管部署 |
验证您的连接
MEMSTATE_API_KEY=your_key npx @memstate/mcp --test打印所有可用的工具并确认API密钥有效。
*专为有权了解自己所知的AI代理而构建。*
