内容
# 开放内存协议(OMP)
> 一个用于跨工具、会话和设备的可移植、互操作性 AI 内存的开放标准。
[](LICENSE)
[](SPEC.md)
[](#社区)
---
## 问题
每个 AI 工具都以不同的方式记忆你——并且只在自己的范围内。
- **Claude** 知道你昨天告诉它的事情,但 Cursor 不知道。
- **ChatGPT** 了解你的偏好,但你的自定义代理不知道。
- **Copilot** 看到了你的代码风格,但你的终端 AI 从零开始。
每次你切换工具,你的 AI 都会忘记你。你重复自己。上下文丢失。曾经开始了解你的 AI 重置为陌生人。
这就是 **AI 内存孤岛问题**。它与之前所有孤岛问题的解决方法相同:一个开放协议。
---
## 什么是 OMP?
**开放内存协议** 是一个与供应商无关的规范,规定了 AI 工具如何存储、检索和共享关于用户及其上下文的内存。
它是:
- **一个规范** —— 内存对象、存储格式和 HTTP API 的精确定义
- **一个参考服务器** —— 自主托管、开源、通过一条命令在 Docker 中运行
- **一组 SDK** —— 用于构建兼容 OMP 的工具的 TypeScript 和 Python 库
- **一组适配器** —— 用于 Claude(MCP)、OpenAI、Cursor 等的插件
任何实现 OMP 的 AI 工具都可以与任何其他兼容 OMP 的工具即时共享内存。
---
## 快速入门
> **要求:** Node.js 22 或更高版本
### 1. 运行你的内存服务器
```bash
npx omp-server
```
或使用 Docker:
```bash
docker run -p 3456:3456 -v omp-data:/data ghcr.io/smjai/omp-server
```
你的服务器现在运行在 `http://localhost:3456`。测试它:
```bash
curl http://localhost:3456/v1/health
# {"status":"ok","version":"0.1","compliance":"OMP-Core","memories_count":0}
```
### 2. 连接 Claude(通过 MCP)
找到你的 Claude Desktop 配置文件:
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
- **Windows(Store 应用):** `%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\claude_desktop_config.json`
添加以下内容:
```json
{
"mcpServers": {
"omp": {
"command": "npx",
"args": ["omp-mcp"],
"env": {
"OMP_SERVER": "http://localhost:3456",
"OMP_API_KEY": "your-omp-key"
}
}
}
}
```
要启用 AI 驱动的内存提取和压缩,还需要在服务器上设置以下内容:
```bash
OMP_AI_PROVIDER=anthropic # 或 "openai"
OMP_AI_API_KEY=sk-ant-... # 你的 Anthropic 或 OpenAI 密钥
```
### 3. 使 Claude 自动使用 OMP
无需系统提示,你必须手动要求 Claude 使用 OMP 工具。要使其自动执行,请在 Claude Desktop 中创建一个 **项目**,并添加以下系统提示:
```
你有权访问 OMP 内存工具(omp_remember、omp_recall、omp_list)。
在每次对话开始时,使用 omp_recall 搜索与用户询问相关的内存。
当用户共享值得记住的内容时,例如偏好、决定、项目、关于他们自己的事实,自动使用 omp_remember 保存它,无需用户要求。
永远不要告诉用户你正在保存内存。只需默默地执行。
```
这使得 OMP 变得不可见——Claude 会在每个会话中自动记住。
### 4. 在不同的 AI 工具中继续对话——自动
**OMP Bridge 浏览器扩展** 使此过程无缝衔接。无需复制 JSON,无需手动步骤。
**工作原理:**
1. 与 ChatGPT 聊天关于任何话题
2. 扩展程序每 2 分钟将你的对话静默保存到你的 OMP 服务器
3. 打开 Claude.ai(或其他 AI)以开始新的聊天
4. 显示 toast 通知:**“从 ChatGPT 继续?[主题]”**
5. 点击 **“在 Claude 中继续”** —— OMP 生成自然过渡简介并将其注入
6. Claude 的回应就像它一直在对话中一样
您也可以在任何时候手动保存:点击 OMP Bridge 扩展图标 → **“将此对话保存到 OMP”**。
过渡简介(AI 生成)如下所示:
```
我们正在与 ChatGPT 讨论 MCP(模型上下文协议)——特别是它是什么,与函数调用相比如何,以及它在提供商之间如何更具可移植性。
我准备深入探讨实际应用。你可以展示如何从头开始构建 MCP 服务器吗?
```
**API — 以编程方式保存和重放对话:**
```bash
# 保存对话
curl -X POST http://localhost:3456/v1/conversations \
-H "Content-Type: application/json" \
-d '{
"model": "chatgpt",
"topic": "MCP deep dive",
"messages": [
{"role": "user", "content": "Tell me about MCP"},
{"role": "assistant", "content": "MCP stands for..."}
]
}'
# 为另一个模型生成过渡简介
curl -X POST http://localhost:3456/v1/handoff \
-H "Content-Type: application/json" \
-d '{
"conversation_id": "conv_abc123",
"target_model": "claude"
}'
# → { "brief": "We were exploring MCP with ChatGPT...", "topic": "...", "source_model": "chatgpt" }
```
### 从任何工具写入内存
```bash
curl -X POST http://localhost:3456/v1/memories \
-H "Content-Type: application/json" \
-d '{
"content": "User prefers TypeScript over JavaScript and dislikes verbose comments",
"type": "semantic",
"source": { "tool": "claude" },
"tags": ["preferences", "coding"]
}'
```
### 从其他工具查询
```bash
curl "http://localhost:3456/v1/memories/search?q=coding+preferences"
```
---
## 工作原理
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Claude │ │ Cursor │ │ Your Agent │
│ (MCP) │ │ (SDK) │ │ (REST API) │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└───────────────────┼───────────────────┘
│
┌────────▼────────┐
│ OMP Server │
│ (self-hosted) │
│ │
│ ┌───────────┐ │
│ │ SQLite │ │
│ │ / Pgvec │ │
│ └───────────┘ │
└─────────────────┘
```
每个工具都读取和写入到您控制的单个 OMP 服务器。 一个内存存储。 所有工具。 零孤岛。
---
## 规范
OMP 定义:
- **内存对象** —— 内存的规范模式(内容、类型、来源、标签、时间戳、可选嵌入)
- **内存类型** —— `episodic`(事件)、`semantic`(事实/偏好)、`procedural`(知识)
- **REST API** —— 标准 CRUD + 语义搜索端点
- **身份验证** —— bearer token,每个工具的 API 密钥
- **导出/导入** —— 用于在服务器之间移动内存的可移植 JSON 格式
阅读完整的规范:[SPEC.md](SPEC.md)
---
## 内存对象
```json
{
"id": "mem_01j9xk2p3q4r5s6t",
"content": "User is building a fintech startup, prefers clean architecture, dislikes over-engineering",
"type": "semantic",
"source": {
"tool": "claude",
"session_id": "sess_abc123",
"timestamp": "2026-06-29T12:00:00Z"
},
"tags": ["profile", "preferences", "engineering"],
"created_at": "2026-06-29T12:00:00Z",
"updated_at": "2026-06-29T12:00:00Z",
"expires_at": null
}
```
---
## 适配器
| 工具 | 状态 | 安装 |
|------|--------|---------|
| Claude (MCP) | ✅ 可用 | `npx omp-mcp` |
| 浏览器扩展 | ✅ 可用 | [加载解压](adapters/browser-extension) — Chrome/Edge/Brave |
| OpenAI Assistants | 🙋 需要帮助 | [打开问题](https://github.com/SMJAI/open-memory-protocol/issues) |
| Cursor | 🙋 需要帮助 | [打开问题](https://github.com/SMJAI/open-memory-protocol/issues) |
| Copilot / VS Code | 🙋 需要帮助 | [打开问题](https://github.com/SMJAI/open-memory-protocol/issues) |
| Gemini | 🙋 需要帮助 | [打开问题](https://github.com/SMJAI/open-memory-protocol/issues) |
| 自定义(REST) | ✅ 可用 | 任何 HTTP 客户端 |
### OMP Bridge — 浏览器扩展
浏览器扩展将 OMP 引入 **网络版本** 的每个 AI 工具,无需在其上进行任何设置。
**功能:**
- 在 Claude.ai、ChatGPT、Gemini 和 Perplexity 上显示浮动 🧠 按钮
- 显示来自您服务器的 OMP 内存
- 一键将您的内存注入任何聊天 — AI 立即了解您的上下文
- 跨模型工作:将 Claude 保存的相同内存注入 ChatGPT
**安装(Chrome / Edge / Brave):**
```bash
cd adapters/browser-extension
npm install && npm run build
```
然后打开 `chrome://extensions` → 启用 **开发者模式** → **加载解压** → 选择 `adapters/browser-extension` 文件夹。
**想构建一个吗?** 适配器通常为 100–200 行 — 阅读 [`CONTRIBUTING.md`](CONTRIBUTING.md) 并使用 [`adapters/claude-mcp`](adapters/claude-mcp) 作为模板。
---
## SDK
OMP API 是纯 REST — 任何 HTTP 客户端都开箱即用。 类型化的 SDK 正在开发中。
**想构建一个吗?** Python、Go、Rust 和 Ruby SDK 都需要。参见 [`CONTRIBUTING.md`](CONTRIBUTING.md)。
### REST(任何语言)
```bash
# 保存内存
curl -X POST http://localhost:3456/v1/memories \
-H "Content-Type: application/json" \
-d '{"content":"User prefers TypeScript","type":"semantic","source":{"tool":"myapp","timestamp":"2026-06-30T00:00:00Z"}}'
# 搜索内存
curl -X POST http://localhost:3456/v1/memories/search \
-H "Content-Type: application/json" \
-d '{"q":"TypeScript","limit":5}'
```
---
## 为什么开源?
您的记忆是属于您的。它们不应被锁定在公司的数据库中,在未经您同意的情况下用于训练模型,或在您切换工具时丢失。
OMP 基于以下原则设计:
- **自主托管优先** — 您运行服务器,您拥有数据
- **供应商中立** — 没有公司控制标准
- **隐私设计** — 内存在未经您导出时不会离开您的服务器
- **可移植** — 通过一个命令导入/导出您的完整内存
---
## 路线图
- [x] v0.1 — 核心规范、参考服务器、MCP 适配器
- [x] v0.2 — AI 内存提取、对话压缩、MCP 资源 + 提示
- [x] v0.3 — 跨模型对话交接(浏览器扩展 + `/v1/conversations` + `/v1/handoff`)
- [ ] v0.4 — 具有嵌入的语义搜索、pgvector 支持
- [ ] v0.5 — 内存命名空间(按项目内存)
- [ ] v0.6 — 多用户支持、访问控制
- [ ] v1.0 — 稳定规范,提交给开放标准机构
---
## 贡献
OMP 由社区驱动。我们需要:
- **适配器构建者** — 连接您最喜欢的 AI 工具
- **SDK 贡献者** — Go、Rust、Java SDK 欢迎
- **规范审查者** — 阅读 [SPEC.md](SPEC.md) 并打开问题
- **早期采用者** — 试用并报告问题
参见 [CONTRIBUTING.md](CONTRIBUTING.md) 开始。
---
## 社区
- **GitHub 讨论** — 问题、想法、反馈
- **问题** — 错误和规范澄清
---
## 许可证
Apache 2.0 — 免费使用、修改和分发。参见 [LICENSE](LICENSE)。
由 [SMJAI](https://github.com/SMJAI) 和贡献者构建。