ourmem/omem
ourmem/omem has 173 GitHub stars and 10 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-09 21:58 UTC. Last push 2026-05-24.
Shared Memory That Never Forgets — persistent memory for AI agents with Space-based sharing across agents and teams. Plugins for OpenCode, Claude Code, OpenClaw, MCP Server.
实测星标增长
- 24小时
- 0
- 7天
- 0
- 15天
- 更新延迟
- 1个月
- 更新延迟
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README_CN.md
原文
OMEM
共享记忆,永不遗忘
English | 简体中文
问题
你的 AI 助手每次对话都失忆 -- 而且各自为战。
- 🧠 失忆 -- 每次新对话从零开始。偏好、决策、上下文全没了。
- 🏝️ 孤岛 -- 你的代码 Agent 不知道写作 Agent 学到了什么。
- 📁 绑定设备 -- 记忆存在一台机器上,换设备全部丢失。
- 🚫 无法共享 -- 团队 Agent 之间知识完全隔绝,每个 Agent 都在重复发现相同的东西。
- 🔍 笨搜索 -- 只有关键词匹配,没有语义理解,没有相关性排序。
- 🧩 没有集体智能 -- 即使 Agent 在同一个团队工作,也没有共享的知识层。
ourmem 解决所有这些问题。
ourmem 是什么
ourmem 让 AI Agent 拥有共享的持久记忆 -- 跨会话、跨设备、跨 Agent、跨团队。一个 API Key 重连一切。
🌐 官网: ourmem.ai
🧑💻 我用 AI 编程工具安装你平台的插件就行。记忆自动工作 -- 开始对话时自动加载历史记忆,结束时自动保存重要信息。 → 跳转到 快速开始 |
🔧 我在开发 AI 产品48+ 个 REST API 端点。Docker 一行命令自部署。把持久记忆嵌入到你自己的 Agent 和工作流中。 → 跳转到 自部署 |
核心能力
🔗 跨越边界共享三级空间 -- 个人、团队、组织 -- 让知识在 Agent 和团队之间流动,全程溯源追踪。 |
🧠 永不遗忘Weibull 衰减模型智能管理记忆生命周期 -- 核心记忆持久保留,边缘记忆优雅淡出。无需手动清理。 |
🔍 深度理解11 阶段混合检索:向量搜索、BM25、RRF 融合、交叉编码重排、MMR 多样性,精准召回。 |
⚡ 智能演化7 种协调决策 -- 创建、合并、取代、支持、情境化、矛盾、跳过 -- 让记忆越来越聪明。 |
📖 记忆管线架构 -- 深入了解 ourmem 如何存储、检索和演化记忆。
🔗 记忆共享架构 -- 记忆如何跨 Agent 和团队流动:共享、溯源、版本控制和跨空间搜索。
功能一览
| 分类 | 功能 | 详情 |
|---|---|---|
| 平台 | 4 个平台 | OpenCode、Claude Code、OpenClaw、MCP Server |
| 共享 | 空间共享 | 个人 / 团队 / 组织,带溯源追踪 |
| 溯源追踪 | 每条共享记忆携带完整来源链 | |
| 质量门控自动共享 | 规则在记忆创建时自动触发(异步、非阻塞) | |
| 向量嵌入传播 | 共享副本携带源记忆的向量嵌入,支持完整搜索 | |
| 幂等分享 | 重复分享返回已有副本(不创建重复) | |
| 版本追踪 | 记忆追踪版本计数器,共享副本通过 ?check_stale=true 检测过时状态 |
|
| 刷新过时副本 | 用源记忆最新内容和向量刷新过时的共享副本 | |
| 便捷分享 | 一步跨用户分享(share-to-user)和批量分享(share-all-to-user),自动创建桥接空间 |
|
| 组织管理 | 一步创建组织(org/setup)和发布(org/publish),支持自动分享规则 |
|
| 跨空间搜索 | 一次搜索覆盖所有可访问空间 | |
| 摄入 | 智能去重 | 7 种决策:创建、合并、跳过、取代、支持、情境化、矛盾 |
| 噪声过滤 | 正则 + 向量原型 + 反馈学习 | |
| 准入控制 | 5 维评分门控(效用、置信度、新颖度、时效性、类型先验) | |
| 双流写入 | 同步快速路径(<50ms)+ 异步 LLM 提取 | |
| 导入后智能化 | 批量导入 → 异步 LLM 重新提取 + 关系发现 | |
| 自适应导入策略 | 自动/原子/段落/文档 -- 启发式内容类型检测 | |
| 内容保真 | 保留原始文本,双路径搜索(向量 + BM25 搜索源文本) | |
| 交叉关联 | 通过向量相似度发现记忆间关系 | |
| 批量自去重 | LLM 在同一导入批次内去重事实 | |
| 隐私保护 | <private> 标签脱敏 |
|
| 检索 | 11 阶段管道 | 向量 + BM25 → RRF → 重排 → 衰减 → 重要性 → MMR 多样性 |
| 用户画像 | 静态事实 + 动态上下文,<100ms | |
| 检索追踪 | 每阶段可解释性(输入/输出/分数/耗时) | |
| 生命周期 | Weibull 衰减 | 按层级 β 值(核心=0.8、工作=1.0、边缘=1.3) |
| 三层晋升 | 边缘 ↔ 工作 ↔ 核心,基于访问频率晋升 | |
| 自动遗忘 | 时间引用检测("明天"、"下周")自动设 TTL | |
| 多模态 | 文件处理 | PDF、图片 OCR、视频转录、代码 AST 分块 |
| GitHub 连接器 | Webhook 实时同步代码、Issue、PR | |
| 部署 | 开源 | Apache-2.0 |
| 可自部署 | 单二进制、Docker 一行命令、~$5/月 | |
| musl 静态编译 | 零依赖二进制,任何 Linux x86_64 可运行 | |
| 对象存储 | AWS S3 或任何 S3 兼容存储,支持 IAM 角色 | |
| 托管版 | ourmem.ai -- 无需部署 |
从孤立 Agent 到集体智能
大多数 AI 记忆系统把知识困在孤岛里。ourmem 的三级空间架构让知识在 Agent 和团队之间流动 -- 带溯源追踪和质量门控的共享机制。
研究表明,协作记忆可以减少高达 61% 的重复工作 -- Agent 不再重新发现队友已经知道的东西。 — Collaborative Memory, ICLR 2026
| 个人空间 | 团队空间 | 组织空间 | |
|---|---|---|---|
| 范围 | 一个用户的多个 Agent | 多个用户 | 全公司 |
| 例子 | 代码 + 写作 Agent 共享偏好 | 后端团队共享架构决策 | 技术标准、安全策略 |
| 权限 | 仅所有者的 Agent | 团队成员 | 全组织(只读) |
溯源追踪共享 -- 每条共享记忆携带完整来源链:谁共享的、什么时候、从哪里来。共享副本包含源记忆的向量嵌入,在目标空间中可通过向量搜索完整检索。
质量门控自动共享 -- 按重要性、类别、标签过滤。规则在新记忆创建时自动触发。只有高价值洞察才能跨空间传播。
工作原理
┌──────────────────────────────────────────────────────────────────┐
│ 你的 AI Agent(OpenCode / Claude Code / OpenClaw / Cursor) │
│ │
│ 会话开始 → 自动召回相关记忆 │
│ 工作中 → 关键词检测触发召回 │
│ 会话结束 → 自动捕获决策、偏好、事实 │
└───────────────────────────┬──────────────────────────────────────┘
│ REST API(X-API-Key)
▼
┌──────────────────────────────────────────────────────────────────┐
│ ourmem 服务端 │
│ │
│ ┌─ 智能摄入 ─────────────────────────────────────────────────┐ │
│ │ 消息 → LLM 提取 → 噪声过滤 → 准入控制 │ │
│ │ → 7 种协调决策(创建 / 合并 / 取代 / │ │
│ │ 支持 / 情境化 / 矛盾 / 跳过) │ │
│ │ → 交叉关联发现 → 隐私脱敏 │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─ 混合检索(11 阶段)──────────────────────────────────────┐ │
│ │ 向量 + BM25 → RRF 融合 → 交叉编码重排 │ │
│ │ → Weibull 衰减加权 → 重要性评分 │ │
│ │ → MMR 多样性 → 并行跨空间聚合 │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─ 共享引擎 ─────────────────────────────────────────────────┐ │
│ │ 个人 / 团队 / 组织空间 │ │
│ │ → 溯源追踪 → 基于版本的过时检测 │ │
│ │ → 自动共享规则 → 一步跨用户分享 │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─ 生命周期 ─────────────────────────────────────────────────┐ │
│ │ Weibull 衰减(核心 β=0.8 / 工作 β=1.0 / 边缘 │ │
│ │ β=1.3)→ 三层晋升 → 自动遗忘 TTL │ │
│ └────────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
- 写一次,到处召回 — 记忆跨会话、跨设备、跨 Agent 持久存在
- 越用越聪明 — 协调机制自动合并、更新和标记矛盾记忆
- 跨越边界共享 — 个人 → 团队 → 组织的知识流动,全程溯源
- 无需手动管理 — Weibull 衰减处理生命周期,自动共享规则处理分发
核心概念
API Key = 租户 ID = 你的身份
创建租户时,返回的 id 就是你的 API Key。它们是同一个 UUID,没有独立的"租户 ID"。
curl -X POST https://api.ourmem.ai/v1/tenants -d '{"name": "alice"}'
# → {"id": "a1b2c3d4-...", "api_key": "a1b2c3d4-...", "status": "active"}
# ↑ 同一个值 ↑
API Key 与 Space ID 的区别
| 概念 | 说明 | 示例 | 数量 |
|---|---|---|---|
| API Key | 你的身份标识。放在 X-API-Key 请求头中。 |
a1b2c3d4-... |
每用户 1 个 |
| Space ID | 记忆存储地址。每个 Space 是一个独立的数据库。 | personal/a1b2c3d4-... |
每用户多个 |
一个 API Key 拥有多个 Space:
API Key "a1b2c3d4"
│
├── personal/a1b2c3d4 ← 自动创建,你的私有记忆
├── team/e5f6g7h8 ← 你创建的团队空间(你是管理员)
├── team/i9j0k1l2 ← 你被邀请加入的团队空间(你是成员)
└── org/m3n4o5p6 ← 你加入的组织(你是只读)
分享 = 传递对方的 API Key
分享记忆给另一个用户时,把对方的 API Key 作为 target_user 传入:
# 把你的所有偏好分享给用户 Bob
curl -X POST https://api.ourmem.ai/v1/memories/share-all-to-user \
-H "X-API-Key: your-api-key" \
-d '{"target_user": "bobs-api-key", "filters": {"categories": ["preference"]}}'
系统自动在你和 Bob 之间创建桥接 Team Space,无需手动管理空间。
快速开始
Agent 安装(推荐)
告诉你的 AI 助手一句话,它会自动完成所有操作 -- 创建 API Key、安装插件、配置、验证。
托管版(ourmem.ai -- 无需部署):
| 平台 | 复制给你的 Agent |
|---|---|
| OpenClaw | Read https://ourmem.ai/SKILL.md and follow the instructions to install and configure ourmem for OpenClaw |
| Claude Code | Read https://ourmem.ai/SKILL.md and follow the instructions to install and configure ourmem for Claude Code |
| OpenCode | Read https://ourmem.ai/SKILL.md and follow the instructions to install and configure ourmem for OpenCode |
| Cursor / VS Code | Read https://ourmem.ai/SKILL.md and follow the instructions to install and configure ourmem as MCP Server |
自部署版(你自己的服务器):
| 平台 | 安装方式 |
|---|---|
| OpenClaw | 运行 openclaw skills install ourmem,然后告诉 Agent:setup ourmem in self-hosted mode |
| Claude Code | Read https://raw.githubusercontent.com/ourmem/omem/main/skills/ourmem/SKILL.md and install ourmem for Claude Code, self-hosted mode |
| OpenCode | Read https://raw.githubusercontent.com/ourmem/omem/main/skills/ourmem/SKILL.md and install ourmem for OpenCode, self-hosted mode |
就这样。Agent 会处理剩下的一切。
Skill 安装(替代方式):
如果你更喜欢命令行安装,可以直接安装 ourmem skill:
npx skills add ourmem/omem --skill ourmem -g
支持 44+ AI Agent,包括 Claude Code、OpenCode、Cursor 等。详见 Vercel Skills CLI。
手动安装(不通过 Agent)
1. 获取 API Key
托管版:
curl -sX POST https://api.ourmem.ai/v1/tenants \
-H "Content-Type: application/json" \
-d '{"name": "my-workspace"}' | jq .
# → {"id": "xxx", "api_key": "xxx", "status": "active"}
自部署版:
docker run -d -p 8080:8080 -e OMEM_EMBED_PROVIDER=bedrock ghcr.io/ourmem/omem-server:latest
curl -sX POST http://localhost:8080/v1/tenants \
-H "Content-Type: application/json" \
-d '{"name": "my-workspace"}' | jq .
保存返回的 api_key -- 用它可以从任何设备重连到同一份记忆。
2. 安装插件
OpenCode: 在 opencode.json 中添加 "plugin": ["@ourmem/opencode"] + 在同文件中通过 plugin_config 配置 apiUrl 和 apiKey。
Claude Code: /plugin marketplace add ourmem/omem + 在 ~/.claude/settings.json 设环境变量。
OpenClaw: openclaw plugins install @ourmem/ourmem + 配置 openclaw.json 中的 apiUrl 和 apiKey。
MCP (Cursor / VS Code / Claude Desktop):
{
"mcpServers": {
"ourmem": {
"command": "npx",
"args": ["-y", "@ourmem/mcp"],
"env": {
"OMEM_API_URL": "https://api.ourmem.ai",
"OMEM_API_KEY": "your-api-key"
}
}
}
}
3. 验证
curl -sX POST "$OMEM_API_URL/v1/memories" \
-H "X-API-Key: $OMEM_API_KEY" -H "Content-Type: application/json" \
-d '{"content": "I prefer dark mode", "tags": ["preference"]}'
curl -s "$OMEM_API_URL/v1/memories/search?q=dark+mode" -H "X-API-Key: $OMEM_API_KEY"
Agent 获得的能力
记忆工具
| 工具 | 用途 |
|---|---|
memory_store |
保存事实、决策、偏好,智能去重 |
memory_search |
11 阶段混合搜索(向量 + BM25 + 重排) |
memory_get |
按 ID 获取特定记忆 |
memory_update |
修改内容、标签、重要性、层级 |
memory_delete |
删除记忆 |
memory_list |
浏览记忆,支持过滤和分页 |
memory_ingest |
智能摄入完整对话(LLM 提取) |
memory_profile |
自动生成用户画像(静态事实 + 动态上下文) |
memory_stats |
分析:标签分布、衰减曲线、关系图谱 |
共享工具
| 工具 | 用途 |
|---|---|
space_create |
创建团队或组织空间 |
space_list |
列出所有可访问的空间 |
space_add_member |
邀请用户加入共享空间 |
memory_share |
将记忆分享到任意空间,带溯源 |
memory_pull |
将共享记忆拉取到个人空间 |
memory_reshare |
用最新内容刷新过时的共享副本 |
便捷 API:
share-to-user(一步跨用户分享,自动创建桥接空间)和share-all-to-user(批量分享)。MCP 提供 15 个工具 + 1 个资源。OpenCode/OpenClaw 提供 11 个工具 + 3 个钩子。
智能钩子
| 钩子 | 触发时机 | 效果 |
|---|---|---|
| SessionStart | 新会话开始 | 近期记忆 + 用户画像自动注入上下文 |
| KeywordRecall | 会话中检测到关键词 | 相关记忆自动浮现,无需显式搜索 |
| SessionEnd | 会话结束 | 关键决策、偏好和事实自动捕获 |
| Compaction | 上下文窗口压缩 | 关键记忆跨压缩边界保留 |
Memory Space
在 ourmem.ai/space 可视化浏览、搜索和管理你的 Agent 记忆 -- 查看记忆如何连接、演化和衰减。
安全与隐私
| Rust 内存安全 | 无 GC、无数据竞争。所有权模型编译时保证安全。 |
| 租户隔离 | X-API-Key 认证 + 查询级租户过滤。每个操作验证归属。 |
| 隐私保护 | <private> 标签脱敏,存储前自动剥离敏感内容。 |
| 传输加密 | 全部 API 通过 HTTPS 传输。S3 服务端静态加密。 |
| 准入控制 | 5 维评分门控,低质量数据拒绝入库。 |
| 开源可审计 | Apache-2.0 许可。审计每一行代码,fork 它,运行你自己的实例。 |
自部署
# 最小化(仅 BM25 搜索,无需 embedding API)
docker run -d -p 8080:8080 ghcr.io/ourmem/omem-server:latest
# 使用 Bedrock embedding(推荐,需要 AWS 凭证)
docker run -d -p 8080:8080 \
-e OMEM_EMBED_PROVIDER=bedrock \
-e AWS_REGION=us-east-1 \
ghcr.io/ourmem/omem-server:latest
# 使用 OpenAI 兼容 embedding
docker run -d -p 8080:8080 \
-e OMEM_EMBED_PROVIDER=openai-compatible \
-e OMEM_EMBED_API_KEY=sk-xxx \
ghcr.io/ourmem/omem-server:latest
完整部署指南:docs/DEPLOY.md
对象存储(可选)
默认情况下 ourmem 将数据存储在本地磁盘。如需持久化和可扩展性,可配置 AWS S3 或任何 S3 兼容的对象存储:
# 添加到你的环境变量
OMEM_S3_BUCKET=your-bucket # 启用 s3:// 方案
AWS_ENDPOINT_URL=https://s3.amazonaws.com
AWS_REGION=us-east-1
# 替代方案:OSS 兼容存储
OMEM_OSS_BUCKET=your-bucket # 启用 oss:// 方案
OSS_ENDPOINT=https://oss-xx-internal.aliyuncs.com
OSS_ACCESS_KEY_ID=your-ak # 或使用 ECS RAM 角色(自动发现)
OSS_ACCESS_KEY_SECRET=your-sk
如果同时设置了
OMEM_S3_BUCKET和OMEM_OSS_BUCKET,OSS 优先。
从源码构建
两种构建模式
| 模式 | 命令 | 二进制 | Bedrock | 运行环境 |
|---|---|---|---|---|
| glibc(完整版) | cargo build --release |
动态链接,~218MB | ✅ AWS Bedrock | 与构建主机相同 glibc 版本 |
| musl(便携版) | 见下方 | 静态链接,~182MB | ❌ 仅 OpenAI 兼容 | 任何 Linux x86_64 |
glibc 构建(支持 Bedrock)
cargo build --release -p omem-server
# 二进制:target/release/omem-server
# 要求:目标机器有相同或更新版本的 glibc
musl 静态构建(便携,零依赖)
单个二进制文件,可在任何 Linux x86_64 上运行 -- 不需要 glibc,不需要任何库。
rustup target add x86_64-unknown-linux-musl
RUSTFLAGS="-C target-feature=+crt-static -C relocation-model=static" \
cargo build --release --target x86_64-unknown-linux-musl \
-p omem-server --no-default-features
# 二进制:target/x86_64-unknown-linux-musl/release/omem-server
# 静态链接,到处可运行
注意: musl 构建使用
--no-default-features,不包含 AWS Bedrock 支持。请改用OMEM_EMBED_PROVIDER=openai-compatible(如 DashScope、OpenAI)。原因是aws-lc-sys(AWS 加密库)在 musl 静态链接时因dlopen(NULL)不兼容而崩溃(aws-c-cal#213),且 Rust 默认的static-pie输出在 musl-gcc 下会段错误(rust-lang/rust#95926)。
传输到任意服务器
# 压缩
gzip -c target/x86_64-unknown-linux-musl/release/omem-server > omem-server.gz
# 复制到服务器
scp omem-server.gz user@server:/opt/
# 运行(无需任何依赖)
ssh user@server "gunzip /opt/omem-server.gz && chmod +x /opt/omem-server && /opt/omem-server"
API 概览
| 方法 | 端点 | 说明 |
|---|---|---|
| POST | /v1/tenants |
创建工作空间,获取 API Key |
| POST | /v1/memories |
存储记忆或智能摄入对话 |
| GET | /v1/memories/search |
11 阶段混合搜索 |
| GET | /v1/memories |
列表查询,支持过滤和分页 |
| GET | /v1/profile |
自动生成的用户画像 |
| POST | /v1/spaces |
创建共享空间 |
| POST | /v1/memories/:id/share |
分享记忆到空间 |
| POST | /v1/files |
上传 PDF / 图片 / 视频 / 代码 |
| GET | /v1/stats |
分析与洞察 |
完整 API 参考(48+ 个端点):docs/API.md
文档
| 文档 | 说明 |
|---|---|
| docs/API.md | 完整 REST API 参考 |
| docs/PIPELINE.md | 记忆管线架构 -- 存储、检索和插件集成流程 |
| docs/SHARING.md | 记忆共享架构、流程和教程 |
| docs/DEPLOY.md | Docker 与 AWS 部署指南 |
| docs/PLUGINS.md | 4 个平台的插件安装指南 |
| docs/TWEETCLAW_OPENCLAW.md | OpenClaw 工作流:将 TweetClaw X/Twitter 研究决策存入 ourmem |
| skills/ourmem/SKILL.md | AI Agent 入门技能 |
许可证
Apache-2.0
探索相关项目
affaan-m/ECC
智能体执行与控制框架的性能优化系统。面向 Claude Code、Codex、Opencode、Cursor 等,涵盖技能、本能、记忆、安全与研究优先的开发。
300,763 星标NousResearch/hermes-agent
与你一同成长的智能体
262,426 星标multica-ai/andrej-karpathy-skills
一个用于改进 Claude Code 行为的 CLAUDE.md 文件,源自 Andrej Karpathy 对 LLM 编程陷阱的观察。
231,844 星标firecrawl/firecrawl
借助来自网络及其他来源的数据,强化你的 AI 智能体。正在构建面向超级智能的资料库。🔥
200,444 星标