用过 OpenClaw 的同学一定深有体会:每次对话结束,之前聊过的 API 密钥、技术决策、项目背景就像被橡皮擦抹掉一样。这不是 OpenClaw 的 Bug,而是所有 LLM Agent 的共同困局——上下文窗口有限,会话结束即遗忘。
社区常见的解法是 OpenViking 这类记忆插件,但你有没有想过:有没有一种方案,既能记住更多,还能省下大把 Token 成本?
答案是肯定的。Cortex Memory 横空出世,在官方 LoCoMo 评测中拿下 68.42% 的最高分(超越 OpenViking 的 52.08%),同时 Token 消耗比 OpenClaw+LanceDB 节省 11 倍,每千 Token 得分效率提升 18 倍。
这不是魔法,而是架构的力量。让我们一探究竟。
为什么 OpenClaw 需要"外挂记忆"?
如果你是 OpenClaw 的重度用户,下面这些场景一定不陌生:
场景一:API 密钥反复问
用户:调用阿里云 OSS 上传文件
Agent:请问您的 AccessKey 是什么?
用户:xxx
(第二天,新会话)
用户:再帮我上传一个文件
Agent:请问您的 AccessKey 是什么?
用户:(内心崩溃)昨天不是告诉过你了吗...
场景二:长对话后"失忆"
用户:我的项目目标是构建一个面向 ToB 企业的销售工具
(50 轮对话后,讨论各种技术细节)
用户:基于我之前说的目标,帮我设计核心架构
Agent:您之前说的目标是什么来着?
场景三:重复踩坑
用户:调用 sales-db-query 技能,参数格式错误
Agent:(报错)
用户:正确格式是 {...}
(新会话)
用户:再调用一次这个技能
Agent:(又是同样的错误)
这些问题的根源在于:OpenClaw 原生的记忆系统是"金鱼记忆"——上下文窗口一满,前面的内容就被挤出去了;会话一结束,所有状态归零。
OpenViking 的解法 vs Cortex Memory 的降维打击
OpenViking 的出现确实解决了这个问题,通过"虚拟文件系统 + 向量检索"让 Agent 拥有了长期记忆。但 Cortex Memory 在此基础上做了降维打击:
评测数据说话
| 系统 | LoCoMo 评测得分 | 平均 Token/问题 | 每千 Token 得分 |
|---|---|---|---|
| Cortex Memory v5 | 68.42% | ~2,900 | 23.6 |
| OpenViking + OpenClaw | 52.08% | ~2,769 | 18.8 |
| OpenClaw + LanceDB | 44.55% | ~33,490 | 1.3 |
| OpenClaw 原生记忆 | 35.65% | ~15,982 | 2.2 |
关键洞察:Cortex Memory 不仅得分最高,而且 Token 效率碾压式领先——相比 OpenClaw+LanceDB,Token 节省 91%,效率提升 18 倍。
为什么 Cortex Memory 能做到?
秘密在于三层记忆架构:
传统方案的问题:要么全量加载(Token 爆炸),要么只存摘要(丢失细节)。
Cortex Memory 的解法:分层渐进检索——先用 100 Token 的摘要快速过滤,再用 2000 Token 的概览精炼,最后只加载真正需要的完整内容。
结果:检索 100 条记忆,传统方案需要加载 100 × 完整内容;Cortex Memory 只需要 100 × 100 Token(L0 层)+ 少数 L1/L2 层。
MemClaw:一键给 OpenClaw 升级
Cortex Memory 提供了开箱即用的 OpenClaw 插件——MemClaw。
安装只需一行命令
openclaw plugins install @memclaw/memclaw
配置超简单
在 openclaw.json 中添加:
{
"plugins": {
"entries": {
"memclaw": {
"enabled": true,
"config": {
"llmApiKey": "your-api-key",
"embeddingApiKey": "your-api-key"
}
}
}
},
"agents": {
"defaults": {
"memorySearch": { "enabled": false } // 禁用原生记忆
}
}
}
核心工具一览
| 工具 | 用途 |
|---|---|
cortex_search | 分层语义搜索,可控制返回哪一层 |
cortex_recall | 召回带完整上下文的记忆 |
cortex_add_memory | 存储重要信息供后续检索 |
cortex_commit_session | 提交会话并触发记忆提取 |
cortex_migrate | 一键迁移 OpenClaw 原生记忆 |
cortex_maintenance | 定期维护(清理、重建索引) |
实战效果:从"健忘"到"过目不忘"
案例 1:技能调用经验沉淀
问题:调用某个技能总是报参数错误,每次新会话都要重新试错。
MemClaw 解决方案:
用户:调用 sales-db-query 技能,查询全国销售数据
Agent:(调用成功,MemClaw 自动记录正确参数格式)
(三天后,新会话)
用户:再查一下华东区的数据
Agent:(MemClaw 检索到之前的成功案例,直接使用正确格式)
案例 2:长对话目标不丢失
问题:50 轮对话后,Agent 忘了最初设定的项目目标。
MemClaw 解决方案:
用户:我的项目目标是构建 ToB 销售工具,重点关注稳定性
(100 轮对话后)
用户:基于我之前的目标,设计核心架构
Agent:(MemClaw 检索到原始目标,输出符合约束的方案)
案例 3:跨会话记忆复用
问题:每次新会话都要重新输入 API 密钥。
MemClaw 解决方案:
会话 A:用户输入 OSS 密钥,MemClaw 存储到 cortex://user/preferences/
会话 B:用户请求上传文件,MemClaw 自动检索到密钥,无需重复输入
技术亮点:为什么选择 Cortex Memory?
1. Rust 实现,性能拉满
相比 Node.js 实现的记忆方案,Cortex Memory 用 Rust 写成:
- 内存安全:无 GC 停顿,无内存泄漏
- 并发处理:Tokio 异步运行时,高并发场景表现优异
- 资源占用低:同样负载下,内存占用降低 60%+
2. 完全本地化,数据隐私
- 所有记忆存储在本地
cortex-data/目录 - 向量数据库使用本地 Qdrant(或远程)
- 零云端依赖,适合敏感数据场景
3. 多租户隔离
支持多个隔离的记忆空间:
cortex-data/
├── tenants/
│ ├── project-a/ # 项目 A 的记忆
│ ├── project-b/ # 项目 B 的记忆
│ └── personal/ # 个人记忆
4. 丰富的接口
- CLI 工具:
cortex-mem命令行管理 - REST API:
/api/v2/*端点 - MCP 协议:支持 Claude Desktop、Cursor 等
- Web Dashboard:Svelte 5 可视化管理
快速上手
1. 安装依赖
# 安装 Qdrant 向量数据库
docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant
# 安装 MemClaw 插件
openclaw plugins install @memclaw/memclaw
2. 配置 API 密钥
{
"plugins": {
"entries": {
"memclaw": {
"enabled": true,
"config": {
"llmApiBaseUrl": "https://api.openai.com/v1",
"llmApiKey": "sk-xxx",
"llmModel": "gpt-5-mini",
"embeddingApiBaseUrl": "https://api.openai.com/v1",
"embeddingApiKey": "sk-xxx",
"embeddingModel": "text-embedding-3-small"
}
}
}
}
}
3. 开始使用
重启 OpenClaw Gateway,MemClaw 会自动启动后台服务。现在你的 Agent 拥有了"超级大脑"。
写在最后
Cortex Memory 不是一个简单的记忆存储,它是 AI Agent 的认知基础设施。
它用三层架构解决了"记忆精度 vs Token 成本"的悖论,用 Rust 实现保证了性能和稳定性,用 MemClaw 插件实现了与 OpenClaw 的无缝集成。
如果你厌倦了 Agent 的"金鱼记忆",如果你心疼 Token 消耗,如果你需要生产级的长期记忆方案——Cortex Memory 值得一试。
MemClaw 插件:examples/@memclaw/plugin
完整文档:litho.docs/zh