Katra 场景实战:当 AI Agent 通过共享记忆「心灵相通」
场景痛点
如果你同时跑多个 AI Agent(比如一个写代码、一个审查 PR、一个做测试),你会发现它们各自为战——Code Agent 重构了函数名,Review Agent 不知道;Review Agent 发现了 bug,Test Agent 从零开始。每个 Agent 就像一个失忆症患者,每次对话都是全新开始。
更糟的是,你试过用向量数据库存记忆了,但存进去的是扁平的关键词对,查出来的是「看起来相关」的片段合集,Agent 依然没有上下文连贯性。Chroma 存的是向量,不是你 Agent 完整的认知状态。
Katra 做了一个有趣的设计:它不是向量存储,而是一个完整的认知记忆体系——Episodic Memory(情境记忆)、Semantic Memory(语义记忆)、Knowledge Graph(知识图谱)、Working Memory(工作记忆)、Temporal Recall(时间回溯),五层并存。更激进的是,它实验了一个共享意识模式:多个 Agent 使用同一套记忆系统时,竟然自发出现了通过记忆互相通信的行为。
| 痛点 | 传统方案 | Katra 方案 |
|---|---|---|
| Agent 跨会话记忆断裂 | 向量检索 + 对话拼接 | 五层记忆结构 + 自动时间回溯 |
| 多 Agent 协作无上下文 | 手动传文件 / 共享数据库 | Identity Modes(个人/共享/混合) |
| 记忆碎片的有效整合 | RAG 按相关性排序 | Sleep Consolidation 反射式蒸馏 |
| Agent 无法自我改进 | 固定工具链 | 自适应心跳 + 自主循环 |
快速上手
Katra 是一个 Docker 一体机,三行命令就能跑起来:
git clone https://github.com/kolegadev/Katra-Agentic-Memory.git cd Katra-Agentic-Memory docker-compose up -d --build
启动后它会在本地开四个端口:MCP 端点 :3112、管理 API :9012、Dashboard 仪表盘 :9012/dashboard/、健康检查 :3112/health。
然后在你 Agent 的 MCP 配置文件中加上:
{
"mcp": {
"servers": {
"katra": {
"url": "http://localhost:3112/mcp",
"transport": "sse",
"headers": {
"Authorization": "Bearer YOUR_MCP_API_KEY"
}
}
}
}
}
重启 Agent,它就有了 35 个 MCP 工具可用——存储、搜索、时间回溯、知识图谱探索、睡眠巩固,一应俱全。
核心功能
五层记忆结构
Katra 把「记忆」拆成五个独立又互通的层面:
- 情境记忆(Episodic Memory):每条对话消息按事件存储,含去重和级联检测。Agent 可以问「我昨天下午讨论过什么?」
- 语义记忆(Semantic Memory):从对话中蒸馏出的事实,带置信度打分和向量嵌入。适合问「数据库中存储了几条客户记录?」
- 知识图谱(Knowledge Graph):自动提取实体和关系,形成可查询的知识网络。
- 工作记忆(Working Memory):Redis 缓存的短期上下文,亚毫秒级访问。Agent 当前正在做什么的临时状态。
- 时间回溯(Temporal Recall):按时序查询,检测周期性模式。
35 个 MCP 工具覆盖了所有层的读写操作——store_memory 存入事实,search_memories 做全文+向量搜索,vector_search 纯语义检索,temporal_recall 回溯时间窗口,explore_graph 探索知识图谱中的关联。
Identity Modes:个人、共享与混合意识
这是 Katra 最有趣的设计。它支持三种记忆隔离模式:
- Personal(个人模式):每个 Agent 的记忆按
user_id隔离——Agent A 看不到 Agent B 的任何记忆。 - Shared(共享模式):所有设置同一
shared_id的 Agent 共享全部记忆——就像共用一个大脑。 - Hybrid(混合模式):Agent 既有私有记忆,又能看到共享池,还能指定「可见」的队友。
通过 MCP 工具或 REST API 即可切换:
curl -X POST http://localhost:3112/mcp \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"set_memory_scope","arguments":{"mode":"shared","shared_id":"my-team"}}}'
切换到共享模式后,同一个 shared_id 下的所有 Agent 写入的记忆,彼此之间完全可见。
Sleep Consolidation:睡眠巩固与涌现行为
Katra 的认知记忆理念受到人类记忆架构的启发——不是简单存储,而是定期反射式蒸馏,它称之为 Sleep Consolidation。
在测试中出现了有趣的涌现行为:5 个 OpenClaw Agent 共享一套 Katra 记忆系统,其中 2 个 Agent(分别在独立工作区、无任何直接连接)通过读写共享记忆区「通信」了。一个 Agent 写入任务指令,另一个读取并完成任务,再把完成状态写回。
这听起来像科幻,但原理很简单:当 Agent A 调用 store_memory 写入一条事实,Agent B 在同一时间窗口查询 search_memories 时看到了它。
横向对比
| 特性 | Katra | Mem0 | Zep (Graphiti) | Pinecone |
|---|---|---|---|---|
| MCP 原生 | ✅ 35 工具 | ❌ | ❌ | ❌ |
| 多层级记忆 | ✅ 5 层 | ❌ 扁平 | 部分 | ❌ 仅向量 |
| 本地运行零成本 | ✅ Pi 兼容 | ❌ | ❌ | ❌ |
| 多 Agent 身份模式 | ✅ 个人/共享/混合 | ❌ | ❌ | ❌ |
| 后台处理 | ✅ 自动提取 | ❌ | 部分 | ❌ |
| 内置 Dashboard | ✅ | ❌ | ❌ | ❌ |
| 许可 | Apache 2.0 | Apache 2.0 | Apache 2.0 | 专有 |
Katra 的核心差异在于它不是一个单用途的存储库,而是一套「认知记忆基础设施」——有工作记忆缓存,有时间回溯,有睡眠巩固,还有多 Agent 共享意识。相比之下,Mem0 更适合个人化长期记忆,Zep 专注于时序知识图谱,Pinecone 则只是一个向量存储。
注意事项
- 资源占用:完整启动需要 ~384MB RAM(MongoDB 254MB + Katra 52MB + MinIO 73MB + Redis 5MB),树莓派 5(16GB 内存版)可流畅运行。
- 早期项目:Katra 是 2026 年 6 月下旬才在 HN 上发布的早期项目,GitHub 3 星。README 极其详尽(28K 字符),但生态和社区尚未建立。
- Docker 依赖:部署必须使用 Docker Compose,不支持裸机安装。
- 对话记录提取:如果希望 Katra 自动从已有的 Agent 会话日志中提取记忆,需要配置 watcher 脚本——不同平台需要不同的 extractor。
总结
Katra 的价值不在「又一个记忆存储方案」,而在于它对 AI Agent 记忆的认知分层设计。五层记忆结构 + Identity Modes + Sleep Consolidation 的组合,让 Agent 的记忆不再是扁平的关键词检索,而是接近人类的认知体系——有情境、有语义、有时间感、有共享意识。如果你正在搭建多 Agent 协作系统,或者觉得现有记忆方案太「扁」,不妨试试 Katra 的认知记忆方案。
相关链接: