mnemo — Cloud-Persistent Memory for AI Agents \U0001F9E0
Your agents are stateless. Your memory shouldn't be.
Every AI agent session starts from zero. Context is lost, decisions are forgotten, and your agents keep rediscovering what they already knew. mnemo externalizes agent memory into TiDB Cloud Serverless — so agents stay disposable, but memory persists forever.
CODEBLOCK0
What Problem Does This Solve?
| Pain Point | Without mnemo | With mnemo |
|---|
| Session amnesia | Agent forgets everything on restart | Memory persists in the cloud |
| Machine-locked |
Memory in local files, lost on device switch | Same memory from any machine |
|
Agent silos | Claude can't see what OpenCode learned | All agents share one memory pool |
|
Team isolation | Teammate's agent starts from scratch | Shared spaces with per-agent tokens |
|
No semantic search | Grep through flat files | Hybrid vector + keyword search |
|
Concurrent conflicts | Last write silently overwrites | CRDT vector clocks detect & resolve |
Why TiDB Cloud Serverless?
mnemo chose TiDB Cloud Serverless because it uniquely combines everything agent memory needs — in one service, at zero cost:
- - Native
VECTOR type — Semantic search in the same table as your metadata. No separate vector database. EMBED_TEXT() auto-embedding — TiDB generates embeddings server-side (e.g. tidbcloud_free/amazon/titan-embed-text-v2). No OpenAI API key required for semantic search.- HTTP Data API — Agents talk to TiDB via
fetch/curl. No database drivers, no connection pools. - Free tier — 25 GiB storage, 250M Request Units/month. More than enough for individual use.
- MySQL compatible — Migrate to self-hosted TiDB or MySQL anytime.
One database gives you relational storage + vector search + auto-embedding + HTTP access. No glue code. No infra.
Hybrid Search: Vector + Keyword
CODEBLOCK1
Three embedding options — pick one or none:
- 1. TiDB auto-embedding —
EMBED_TEXT() generates vectors server-side. Zero config. Free. - OpenAI / compatible API — Set
MNEMO_EMBED_API_KEY. Works with Ollama too. - No embedding — Keyword search works immediately. Add vectors later, no migration needed.
Multi-Agent Conflict Resolution (CRDT)
When multiple agents write to the same memory, mnemo uses vector clocks — no coordination required:
CODEBLOCK2
| Scenario | Result |
|---|
| A's clock dominates B's | A wins — B's write is stale |
| B's clock dominates A's |
B wins — A's write is outdated |
| Concurrent (neither dominates) | Deterministic tie-break — no data loss |
| No clock sent (legacy client) | LWW fast path — backward compatible |
Deletes are soft (tombstone + clock increment) — no ghost resurrection from agents that missed the delete.
Install for OpenClaw
CODEBLOCK3
Add to openclaw.json:
CODEBLOCK4
Get a free cluster in 30 seconds at tidbcloud.com.
Optional — enable auto-embedding (no API key needed):
CODEBLOCK5
Also Works With
| Platform | Install |
|---|
| Claude Code | INLINECODE8 → INLINECODE9 |
| OpenCode |
"plugin": ["mnemo-opencode"] in
opencode.json |
|
Any HTTP client | REST API or TiDB HTTP Data API directly |
5 Memory Tools
| Tool | What it does |
|---|
| INLINECODE12 | Store a memory (upsert by key, with optional CRDT clock) |
| INLINECODE13 |
Hybrid vector + keyword search across all memories |
|
memory_get | Retrieve a single memory by ID |
|
memory_update | Update an existing memory |
|
memory_delete | Soft delete with tombstone (CRDT-aware) |
Two Modes, One Plugin
| Direct Mode | Server Mode |
|---|
| For | Individual developers | Teams with multiple agents |
| Backend |
Plugin → TiDB Serverless | Plugin → mnemo-server → TiDB |
|
Deploy | Nothing — free tier | Self-host Go binary |
|
Features | Hybrid search, auto-embedding | + Space isolation, per-agent tokens, CRDT |
Mode is inferred from config. Start personal, scale to team — no code change.
Links
Built for agents that need to remember. Powered by TiDB Cloud Serverless.
mnemo — AI智能体的云端持久化记忆 🧠
你的智能体是无状态的。但你的记忆不应该如此。
每一次AI智能体会话都从零开始。上下文丢失,决策被遗忘,你的智能体不断重新发现它们已知的信息。mnemo将智能体记忆外部化到TiDB Cloud Serverless中——这样智能体可以随时丢弃,但记忆永久保存。
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Claude Code │ │ OpenCode │ │ OpenClaw │
│ 插件 │ │ 插件 │ │ 插件 │
└──────┬───────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└────────────────────┼────────────────────┘
│
┌───────┴────────┐
│ mnemo-server │ ← 可选(团队模式)
└───────┬────────┘
│
┌───────┴────────┐
│ TiDB Cloud │ ← 零运维,免费层级
│ Serverless │
│ │
│ • VECTOR类型 │
│ • EMBED_TEXT │
│ • HTTP API │
└────────────────┘
这解决了什么问题?
| 痛点 | 没有mnemo | 使用mnemo |
|---|
| 会话失忆 | 智能体重启后忘记一切 | 记忆在云端持久化 |
| 机器锁定 |
记忆在本地文件中,设备切换后丢失 | 从任何机器访问相同记忆 |
|
智能体孤岛 | Claude看不到OpenCode学到的内容 | 所有智能体共享一个记忆池 |
|
团队隔离 | 队友的智能体从零开始 | 共享空间配合每个智能体的令牌 |
|
无语义搜索 | 通过grep搜索平面文件 | 混合向量+关键词搜索 |
|
并发冲突 | 最后一次写入静默覆盖 | CRDT向量时钟检测并解决 |
为什么选择TiDB Cloud Serverless?
mnemo选择了TiDB Cloud Serverless,因为它独特地结合了智能体记忆所需的一切——在一个服务中,零成本:
- - 原生VECTOR类型 — 在与元数据相同的表中进行语义搜索。无需单独的向量数据库。
- EMBEDTEXT()自动嵌入 — TiDB在服务端生成嵌入向量(例如tidbcloudfree/amazon/titan-embed-text-v2)。语义搜索无需OpenAI API密钥。
- HTTP数据API — 智能体通过fetch/curl与TiDB通信。无需数据库驱动,无需连接池。
- 免费层级 — 25 GiB存储,2.5亿请求单位/月。个人使用绰绰有余。
- MySQL兼容 — 随时迁移到自托管TiDB或MySQL。
一个数据库为你提供关系型存储+向量搜索+自动嵌入+HTTP访问。无需胶水代码。无需基础设施。
混合搜索:向量+关键词
配置了嵌入?
┌─────────┴─────────┐
是 否
│ │
混合搜索 仅关键词
(向量+关键词) (LIKE %q%)
│ │
┌─────────┴─────────┘ │
向量结果 关键词结果 │
(ANN余弦) │
└─────────┬─────────┘ │
合并并排序 直接返回结果
三种嵌入选项——选择一个或都不选:
- 1. TiDB自动嵌入 — EMBEDTEXT()在服务端生成向量。零配置。免费。
- OpenAI/兼容API — 设置MNEMOEMBEDAPIKEY。也适用于Ollama。
- 无嵌入 — 关键词搜索立即可用。稍后添加向量,无需迁移。
多智能体冲突解决(CRDT)
当多个智能体写入同一记忆时,mnemo使用向量时钟——无需协调:
智能体A:时钟 {A:3, B:1} 智能体B:时钟 {A:2, B:2}
\ /
└──── 服务器比较 ─────────┘
│
两者都不占优 →
并发冲突!
│
确定性平局决胜
│
胜者保存,时钟合并:{A:3, B:2}
| 场景 | 结果 |
|---|
| A的时钟支配B的 | A胜出——B的写入已过时 |
| B的时钟支配A的 |
B胜出——A的写入已过时 |
| 并发(两者都不占优) | 确定性平局决胜——无数据丢失 |
| 未发送时钟(旧版客户端) | LWW快速路径——向后兼容 |
删除是软删除(墓碑+时钟增量)——不会因错过删除的智能体而出现幽灵复活。
为OpenClaw安装
bash
npm install mnemo-openclaw
添加到openclaw.json:
json
{
plugins: {
slots: { memory: mnemo },
entries: {
mnemo: {
enabled: true,
config: {
host: <你的tidb主机>,
username: <你的tidb用户名>,
password: <你的tidb密码>
}
}
}
}
}
在tidbcloud.com上30秒内获取免费集群。
可选——启用自动嵌入(无需API密钥):
json
{
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 |
在opencode.json中添加plugin: [mnemo-opencode] |
|
任何HTTP客户端 | 直接使用REST API或TiDB HTTP数据API |
5个记忆工具
| 工具 | 功能 |
|---|
| memorystore | 存储一条记忆(按键upsert,可选CRDT时钟) |
| memorysearch |
在所有记忆中执行混合向量+关键词搜索 |
| memory_get | 按ID检索单条记忆 |
| memory_update | 更新现有记忆 |
| memory_delete | 带墓碑的软删除(支持CRDT) |
两种模式,一个插件
| 直接模式 | 服务器模式 |
|---|
| 适用对象 | 个人开发者 | 拥有多个智能体的团队 |
| 后端 |
插件 → TiDB Serverless | 插件 → mnemo-server → TiDB |
|
部署 | 无需部署——免费层级 | 自托管Go二进制文件 |
|
功能 | 混合搜索,自动嵌入 | + 空间隔离,每个智能体令牌,CRDT |
模式从配置中推断。从个人开始,扩展到团队——无需修改代码。
链接
为需要记忆的智能体而构建。由TiDB Cloud Serverless提供支持。