内容
放内存
开放内存是用于人工智能工具CP客户端的开源内存基础设施。
它为每个用户提供了一个可移植的、内存层,可以在助手、代理、应用程序和之间共享。
该项目为Cloudflare原生:API,Durable Objects与SQLite结合使用每个用户的,D1用于身份控制平面数据,Vector AI用于语义召回,R2用于Cloudflare的MCP运行时用于工具访问。
>alpha。核心内存API存储、OAuth支持的端点、召回流程、源和对话摄摄入作业、恢复、修复路径、提取工作线程集成套件正在运行。托管的个人资料/上线UI、命名为MCP请求配置文件冒烟测试、浏览器OAuth回调验证、更大的召回基准、类型化关系诊断、生产遥测和发布验证门正在运行。MCP Inspector、Cursor、Claude和ChatGPT的手动供应商表面MCP食用测试以及托管的GitHub/Google社交OAuth食用测试被跟踪为严格的发布门。
## 为什么是开放内存
人工智能内存不应在一个封闭的聊天。开放内存旨在更便携的后的基础设施层:
- 在用户拥有的内存事实、偏好、决策、个人资料详细信息块和不断演变的上下文。
- 将AI摄入为具有conversationId`来源的角色保留对话块。
- 通过关键词、图和语义检索召回有用的上下文。
- 让MCP兼容的工具通过OAuth支持读写内存。
-头到尾使用Cloudflare服务来保持操作足迹小。
- 使实现可检查、可测试和托管。
## 当前- 通过Durable实现多用户内存隔离。
- 每个租户的SQLite支持内存图,包含节点、边、元数据、标签、置信度、重要当前度和有效性- API、Dur图存储、Eden客户端、统计数据、测试和管理器共享类型图关系分类法。
内存创建、读取、更新、软忘记、搜索、配置文件、上下文、图邻居、图统计、源摄入、对话记录摄入、R2导出、图恢复和Vectorize修复API。
- 具有源和块来源的块化源/文档摄入。
- 由Cloudues、Work租户Durable Object作业账本支持的异步源和对话摄入作业。
- 异步实体提取工作线程,丰富内存元数据并添加关系特定的图边。
-检索分数、原因信度、重要性、最近度和当前度的确定性召回重新排序。
- 通过Workers AI嵌入和Cloudflare Vectorize的可选语义候选检索。
- 为API和MCP召回配置`OPENMEMORY_RERANK_MODEL`时的可选Workers AI重新- 报告预期当前向量、过时向量候选、采样缺失向量、采样过时向量和修复建议的语义索引诊断。
- 更好的身份验证路由、OAuth 2.1/OIDC发现、动态客户端注册、仪表盘管理的公共PKCE MCP客户端、JWT/JWKS支持的资源令牌和可选的GitHub/Google登录提供程序。
- 由Drizzle/D1支持的会话支持的工作区和团队成员管理。
- 用于图清除、Vectorize清理、R2导出清理和用户拥有的身份验证/工作区/OAuth控制平面行的确认帐户和租户删除路径。
- 具有`remember`、`recall`、`profile`和`forget`工具的可流式HTTP MCP端点。
- 身份验证的OAuth/MCP客户端注册管理、连接列表和授权撤销。
- 用于捕获、召回、遗忘和本地检查的Worker托管的TanStack仪表盘。
- 具有精致的托管仪表盘方向、共享的shadcn样式UI包、托管的个人资料编辑、开机、内存健康指标、图表、图操作信号`react-force-graph-2d`支持的ian样式知识TanStack Start Web应用程序。
## 架构
```txt
apps/web Start应用程序和托管产品UI资产
apps/apiflare Worker API、Better Auth、MCP
packages/client Eden,用于类型化API访问
packages/core 共享内存、图、召回和身份验证域逻辑
packages/ui sh样式共享UI基元
```
运行时服务:
- **Cloudflare Workers + Elysia**:HTTP API、身份验证路由和MCP传输。
- **Cloudflare Worker Assets**:托管的TanStack仪表盘壳,从与API相同的提供服务。
- ** Objects + SQLite**:隔离的每个用户内存图数据库。
- **Durable Objects**:全局应用程序速率限制。
- **D1 + Drizzle**:更好的身份验证和控制平面架构。
- **Vectorize + Workers AI**:嵌入生成和语义检索。
- **R2**:租户图导出和备份工件。
- **Workers Analytics Engine**:请求、错误、速率限制和异步工作线程遥测。
- **Cloudflare Agents MCP**:可流式传输的HTTP MCP表面。
- **Queues + Workflows**:异步源摄入加上内存实体/关系提取。
默认部署形状故意设计为整体:API路由、更好的身份验证、托管的TanStack仪表盘资产和`/mcp`作为一个Worker发布。构建过程渲染`apps/web/dist/client/index.html`,然后Worker Assets提供服务,同时API/身份验证/MCP路径仍然是Worker优先的。MCP使用Cloudflare Agents的`createMcpHandler`;如果需要基于会话的MCP状态或单独的操作缩放,请将其分成专用的`McpAgent`Worker。
Cloudflare AI Search被跟踪为一个可选的托管搜索层,而不是核心图/RAG基板。
## 快速入门
需求:
- Bun `>=1.3.14`
- Node兼容的shell工具
- 用于Cloudflare资源配置或部署的Wrangler身份验证
- 如果您想要干净的容器集成运行程序,则需要Docker
安装并运行本地开发:
```sh
bun install
bun run dev:api
bun run dev:web
```
在新账户中设置Cloudflare资源:
```sh
bun run setup:cloudflare
```
设置脚本还会应用R2生命周期策略。在存储桶更改后,可以使用以下命令重新应用或验证:
```sh
bun run setup:r2-lifecycle
```
数据库助手:
```sh
bun run db:generate
bun run db:migrate:local
bun run db:migrate:remote
```
当前部署的API:
```txt
https://openmemory-api.abbierman101.workers.dev
```
部署详情请参见[docs/deployment.md](docs/deployment.md)。
## API 接口
有用的端点:
- `GET /`
- `GET /health`
- `POST /v1/memories`
- `GET /v1/memories/:id`
- `PATCH /v1/memories/:id`
- `DELETE /v1/memories/:id`
- `POST /v1/searchPOST /v1/context`
- `POST /v1/ingest`
- `POST /v1/sources`
- `POST /v1/sources/async`
- `POST /v1/conversations`
- `POST /v1/conversations/async`
- `GET /v1/sources/:sourceId`
- `GET /v1/profile`
- `GET /v1/readiness`
- `GET /v1/account`
- `DELETE /v1/account`
- `GET /v1/graph/stats`
- `GET /v1/graph/relationships`
- `GET /v1/graph/:id/neighbors`
- `POST /v1/exports`
- `POST /v1/imports/preview`,带有`mode: "replace"`或`mode: "merge"`,以及可选的`conflictPolicy: "skip" | "overwrite"`
- `POST /v1/imports`,带有`mode: "replace"`或`mode: "merge"`,以及可选的`conflictPolicy: "skip" | "overwrite"`
- `POST /v1/index/repair`
- `DELETE /v1/tenant`
- `GET /v1/oauth/connections`
- `DELETE /v1/oauth/connections/:clientId`
- `POST /mcp`
- `GET /.well-known/oauth-authorization-server`
- `GET /.well-known/openid-configuration`
- `/api/auth/*`
在本地开发期间,传递`x-openmemory-user-id: local-user`。如果配置了`OPENMEMORY_API_TOKEN`,还请传递`Authorization: Bearer <token>`。生产环境中,出于设计考虑,拒绝租户头,使用OAuth支持的身份验证。每个响应都包含`x-openmemory-request-id`和支持性的速率限制头。配置每个隔离的安全阀,`OPENMEMORY_RATE_LIMIT_PER_MINUTE`或在受控环境中禁用它,`OPENMEMORY_RATE_LIMIT_ENABLED=false`。设置`OPENMEMORY_RERANK_MODEL`,选择加入的Workers AI重新召回候选不变,仅限确定性召回。
## MCP
开放内存通过以下网址公开可流式传输的端点:
```txt
https://open.abbierman101.workers.dev/mcp
```
请求应包含:
```txt
Accept:, text/event-stream
Content-Type: application/json
```
参见[docs/mcp.md](docs/mcp[docs/mcp.md](docs/mcp-compatibility.md),了解OAuth发现、通用客户端配置、测试客户端请求形状、本地开发、工具和连接撤销。
MCP Inspector、Cursor、Claude和ChatGPT的实际供应商表面食用测试在[`config/mcp-vendor-dogfood.json`](config/mcp-vendor-dogfood.json跟踪。正常的CI通过`bun run mcp:vendor-dogfood:status状态工件;严格的发布门是` mcp:vendor-dogfood:check`所有必需的供应商条目包含真实证据之前,预计会失败。
## 身份验证
Worker在/*`处提供更好的身份验证,并在根知名URL处公开OAuth/O。生产MCP和API访问使用OAuth承载令牌;验证令牌租户。
可选提供者秘密启用:
```sh
bun --cwd apps/api wrangler secret put GITHUB_CLIENT_ID
bun --cwd apps/api wrangler secret put GITHUB_CLIENT_SECRET
bun --cwd apps/api wrangler secret put GOOGLE_CLIENT_ID
bun --cwd apps/api wrangler secret put GOOGLE_CLIENT_SECRET
```
托管的GitHub和Google社交登录证据在[`config/social-oauth-dogfood.json`](config/social-oauth-dogfood.json)中跟踪。正常的CI通过`bun run social-oauth:status`验证状态工件;严格的发布门是`bun run social-oauth:check`,在两个提供者都包含托管就绪和登录证据之前,预计会失败。
身份验证存储在配置时使用`AUTH_DB` D1通过Drizzle,并在本地测试和开发时回落到内存适配器。
注意:`kysely@0.28.17`仅作为Better Auth兼容性依赖项保留。开放内存的是Drizzle。
## 测试
开放内存遵循测试奖杯:有针对性的单元覆盖率,在运行时边界周围有更重的集成覆盖率,MemoryBench风格的召回和图规模基准,命名的MCP客户端请求配置文件冒烟测试,以及部署产品的端到端浏览器/API冒烟测试。
```sh
bun run release:validate
```
维护者也可以在发布标签之前运行手动的`Release Qualification` GitHub Actions工作流。它记录发布门和可配置的大容量图规模运行基准JSONL报告上传为`benchmark-reports`工件。
在广泛部署托管版本之前,请更新MCP供应商食用账本中的真实MCP Inspector、Cursor、Claude和ChatGPT证据,并运行手动的`MCP Vendor Dogfood` GitHub Actions工作流,严格模式下进行。同样,对于托管的GitHub和Google登录使用手动的`Social OAuth Dogfood`工作流。在[`config/rag-production-review.json`](config-production-review.json)中查看图/RAG生产证据,然后运行严格的`RAG Production Review`,以记录托管的图基准趋势、语义RAG跟踪审查和重新排序阈值审查。
对于更快的拉取请求循环:
```sh
bun run check
bun run build
bun run test:integration:local
bun run test:mcp:sdk
bun run test:e2e:local
bun run test:benchmark:local
```
本地集成套件在随机非默认端口上启动真实的Wrangler Workers,应用D1迁移到隔离的本地持久性,并练习Durable Objects、D1身份验证存储、Better Auth会话、OAuth元数据、MCP、图边、召回、同步和异步源摄入、提取工作线程、Queues、Workflows、导出、索引修复和仪表盘API。
MCP SDK冒烟测试启动本地Wrangler,并通过官方TypeScript SDK `StreamableHTTPClientTransport`驱动`/mcp`。
本地浏览器端到端套件在显式非默认端口上启动API和TanStack Start应用程序,并练习仪表盘、图表、内存表、源摄入、图资源管理器、操作就绪、管理员设置、MCP设置面板和真实浏览器OAuth回调监听器,用于MCP承载令牌交换。托管浏览器冒烟测试还涵盖Better Auth注册、个人资料/工作区更新、团队成员邀请/删除、仪表盘管理的MCP OAuth客户端注册/禁用、浏览器OAuth回调验证、种子OAuth连接撤销、就绪、召回、遗忘和确认帐户删除。
可选的干净容器复制:
```sh
bun run test:integration:docker
```
如果Docker Hub凭证或元数据查找不可用,但之前构建的OpenMemory测试镜像本地存在,请在挂载到当前检查点的缓存镜像中运行相同的Wrangler集成套件:
```sh
bun run test:integration:docker:cached
```
可选的更重的本地规模检查:
```sh
bun run test:scale:local
OPENMEMORY_SCALE_GRAPH_SIZE=1000 bun run test:scale:local
```
基准测试运行在`.tmp/benchmark-reports/`下写入被忽略的JSONL证据,包括召回质量分数、图大小、召回延迟和断言阈值。
可选的托管图基准测试:
```sh
bun run test:benchmark:live
```
实时基准测试创建并删除一个综合托管帐户,导入一个有界图,衡量托管的召回延迟,并写入`.tmp/benchmark-reports/live-production.jsonl`。设置`OPENMEMORY_LIVE_BASE_URL`以获取非默认部署,并设置`OPENMEMORY_LIVE_GRAPH_SIZE`以请求大小;测试将实时图大小限制在40到160之间。
图/R审查证据在[`config/rag-production-review.json`](config/rag-production-review.json)中跟踪。正常的CI通过` rag:production-review:status`验证状态工件;严格的发布门是`bun run rag-review:check`,在记录托管的趋势、语义RAG跟踪审查和重新排序阈值,预计会失败。
将外部MemoryBench样式或JSONL夹OpenMemory图导出,以进行本地恢复/导入评估:
```sh
bun run benchmark:/memorybench.example.jsonl --out .bench-export.json
```
可选的实时检查```sh
bun run --cwd apps/api test:live
bun run test:e2e:```
实时检查需要可部署和目标工作流所需的任何环境涵盖托管身份图召回、就绪快照、导出、OAuth、浏览器OAuth回调捕获和浏览器会话就绪访问。
## 路线图
当前优先级:
- 根据alpha反馈完善托管的注册流程和仪表。
- 的TanStack作为配套仪表盘平面,同时APICP集成仍然是表面。
- 扩展图表和知识地图,以显示图健康状况、召回质量、索引新鲜度和MCP使用情况。
- 使用更大的MemoryBench样式夹件扩展召回质量基准。
- 在广泛托管使用之前,将托管的图基准工件与进行- 在通用验证器变为绿色后,完成MCP测试门,适用于MCP Inspector、Cursor、Claude和ChatGPT。
- 在安装生产秘密后,完成GitHub和Google的社交OAuth食用测试门。
-托管的图、语义RAG跟踪审查和重新排序阈值审查后,完成严格的RAG生产审查门。
- 保持Cloudflare Git/首选的生产部署路径。
参见[roadmap.md](docs/roadmap.md当前的工作基线和剩余的实现轨道。
## 文档
- [部署](docs/deployment.md)
操作手册](docs/operations.md)
-观察性](docs/observability.md)
- [数据模型](docs/data-model.md)
- [发布公告](docs/launch-announcement.md)
- [MCP设置](docs/mcp.md)
- [M性](docs/mcp-compatibility.md [路线图](docs/roadmap.md)
- [发布就绪](docs/launch-readiness.md)
- [发布资格](docsqualification.md)
- [测试策略](ans/testing-strategy.md)
- [内存栈研究](docs/research/cloudflare-memory-stack.md)
- [Cloudflare RAG瓶颈](docs/research/cloudflare-rag-bottlenecks.md)
- [图内存架构](docs/research/graph-memory-architecture.md)
- [超级内存功能评估](docs/research/supermemory-feature-evaluation.md)
- [需求集思广益](docs/brainstorms/openmemory-requirements.md)
- [实施计划](docs/plans/openmemory-plan.md)
## 贡献
开放内存采用MIT许可证。参见[CONTRIBUTING.md](CONTRIBUTING.md)、[SECURITY.md](SECURITY.md)、[PRIVACY.md](PRIVACY.md)、[SUPPORT.md](SUPPORT.md)和[CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md),在打开问题或PR之前。