面向AI智能体的云端持久化记忆。无状态插件结合TiDB Serverless,实现跨会话记忆召回、多智能体共享,以及混合向量与关键词检索。
mnemo — AI代理 U0001F9E0. 您的代理是无国籍的是一项面向实际任务的技能,主要用于您的记忆不应该是;每次AI代理会话从零开始;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
你的 Agent 是无状态的,但你的内存不该如此。
每个 AI Agent 会话都从零开始:上下文丢失、决策被遗忘,Agent 不断重复发现它本已知晓的内容。mnemo 将 Agent 内存外置至 TiDB Cloud Serverless —— 使 Agent 保持可丢弃性,而内存永久持久化。
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Claude Code │ │ OpenCode │ │ OpenClaw │
│ Plugin │ │ Plugin │ │ Plugin │
└──────┬───────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└────────────────────┼────────────────────┘
│
┌───────┴────────┐
│ mnemo-server │ ← 可选(团队模式)
└───────┬────────┘
│
┌───────┴────────┐
│ TiDB Cloud │ ← 免运维,免费套餐
│ Serverless │
│ │
│ • VECTOR 类型 │
│ • EMBED_TEXT │
│ • HTTP API │
└────────────────┘
| 痛点 | 未使用 mnemo 时 | 使用 mnemo 后 |
|---|---|---|
| 会话失忆 | Agent 重启后遗忘一切 | 内存持久化存储于云端 |
| 设备锁定 | 内存存于本地文件,切换设备即丢失 | 任意设备均可访问同一份内存 |
| Agent 孤岛 | Claude 无法看到 OpenCode 已学习的内容 | 所有 Agent 共享统一内存池 |
| 团队隔离 | 团队成员的 Agent 均从零开始 | 支持共享空间 + 每 Agent 独立 token |
| 缺乏语义搜索能力 | 仅能通过 grep 在扁平文件中检索 | 支持向量 + 关键词混合搜索 |
| 并发写冲突 | 最后写入静默覆盖先前内容 | CRDT 向量时钟自动检测并解决冲突 |
mnemo 选用 TiDB Cloud Serverless,是因为它以单一服务、零成本的方式,集成了 Agent 内存所需的全部能力:
VECTOR 类型 —— 语义搜索与元数据共存于同一张表,无需独立向量数据库。EMBED_TEXT() 自动嵌入 —— TiDB 在服务端生成 embedding(例如:tidbcloud_free/amazon/titan-embed-text-v2),语义搜索无需 OpenAI API key。fetch/curl 与 TiDB 通信,无需数据库驱动或连接池。一个数据库即可提供关系型存储 + 向量搜索 + 自动嵌入 + HTTP 接口访问 —— 无需胶水代码,也无需基础设施管理。
是否配置了 embedding?
┌─────────┴─────────┐
是 否
│ │
混合搜索 仅关键词搜索
(向量 + 关键词) (LIKE '%q%')
│ │
┌─────────┴─────────┐ │
向量结果 关键词结果 │
(ANN 余弦相似度) │
└─────────┬─────────┘ │
合并并排序 直接返回结果
三种 embedding 方式 —— 可任选其一或全不启用:
EMBED_TEXT() 在服务端生成向量,零配置,完全免费。MNEMO_EMBED_API_KEY;亦支持 Ollama。当多个 Agent 并发写入同一段内存时,mnemo 使用向量时钟(vector clocks),无需协调:
Agent A: 时钟 {A:3, B:1} Agent B: 时钟 {A:2, B:2}
/
└──── 服务端比对 ─────────┘
│
双方互不支配 →
并发冲突!
│
确定性决胜机制
│
胜者写入,时钟合并为:{A:3, B:2}
| 场景 | 结果 |
|---|---|
| A 的时钟支配 B 的时钟 | A 获胜 —— B 的写入已过期 |
| B 的时钟支配 A 的时钟 | B 获胜 —— A 的写入已过时 |
| 并发(双方互不支配) | 确定性决胜 —— 无数据丢失 |
| 未发送时钟(旧版客户端) | LWW 快路径 —— 向后兼容 |
删除操作为软删除(打墓碑标记 + 时钟递增),避免因 Agent 错过删除通知而导致已删数据“幽灵复活”。
npm install mnemo-openclaw
在 openclaw.json 中添加:
{
"plugins": {
"slots": { "memory": "mnemo" },
"entries": {
"mnemo": {
"enabled": true,
"config": {
"host": "",
"username": "",
"password": ""
}
}
}
}
}
在 tidbcloud.com 上 30 秒内即可获取免费集群。
可选 —— 启用自动 embedding(无需 API key):
{
"config": {
"host": "...",
"username": "...",
"password": "...",
"autoEmbedModel": "tidbcloud_free/amazon/titan-embed-text-v2",
"autoEmbedDims": 1024
}
}
| 平台 | 安装方式 |
|---|---|
| Claude Code | /plugin marketplace add qiffang/mnemos → /plugin install mnemo-memory@mnemos |
| OpenCode | "plugin": ["mnemo-opencode"] 添加至 opencode.json |
| 任意 HTTP 客户端 | 直接调用 REST API 或 TiDB HTTP Data API |
| 工具 | 功能说明 |
|---|---|
memory_store |
存储一条记忆(按 key upsert,支持可选 CRDT 时钟) |
memory_search |
跨全部记忆执行混合向量 + 关键词搜索 |
memory_get |
根据 ID 获取单条记忆 |
memory_update |
更新已有记忆 |
memory_delete |
软删除(带墓碑标记,CRDT 感知) |
| 直连模式(Direct Mode) | 服务端模式(Server Mode) | |
|---|---|---|
| 适用对象 | 个人开发者 | 拥有多个 Agent 的团队 |
| 后端架构 | 插件 → TiDB Serverless | 插件 → mnemo-server → TiDB |
| 部署方式 | 无需部署 —— 免费套餐开箱即用 | 自托管 Go 二进制程序 |
| 功能特性 | 混合搜索、自动 embedding | + 空间隔离、每 Agent 独立 token、CRDT 支持 |
运行模式由配置自动推断:从个人起步,无缝扩展至团队协作 —— 无需修改代码。
专为需要“记住”的 Agent 而构建,由 TiDB Cloud Serverless 提供动力。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.3万人学习
共49课时 | 82.7万人学习
最新文章