内容
# OMO 内存
OMO 内存是为 OMO 适配器提供的宿主中立的本地会话/工作内存。
它为 lazycodex、omo-on-opencode、lfg 和未来的 OMO 适配器提供了一个共享的本地 SQLite 分类账,可以通过以下方式访问:
- `omo-memory` 命令行界面,用于安装、检查、搜索和交接工作流程。
- `omo-memory mcp` 标准输入/输出服务器,用于编码工具和代理。
## 产品形态
- 项目本地数据库:`<project-root>/.omo/memory/state.sqlite`
- 项目命名空间:通过 git 远程仓库 + 项目根哈希
- 移动处理:如果项目目录与其 `.omo` 分类账一起移动,现有行将自动迁移到新的根目录。
- 默认隐私:仅本地,无网络同步,无机密设计
- 预期适配器:Codex/lazycodex、OpenCode/OMO、GrokBuild/lfg
## 最低可行产品命令
```sh
npm install
npm run build
node dist/cli.js init
node dist/cli.js session start --host grok --adapter lfg
node dist/cli.js event record --type decision --summary "选择 SQLite + MCP + 命令行界面作为 OMO 共享内存"
node dist/cli.js recent
node dist/cli.js mcp
```
## 安装
在包发布到 npm 后,使用相同的包进行命令行界面和 MCP:
```sh
npx -y omo-memory init
npx -y omo-memory session bootstrap --host codex --adapter lazycodex --limit 5
npx -y omo-memory recent --limit 5
npx -y omo-memory mcp
```
在发布前进行本地开发:
```sh
npm install
npm run build
npm link
omo-memory init
```
## MCP 注册
在每个应该读写当前项目内存数据库的主机上注册相同的 MCP 服务器。
Codex:
```sh
codex mcp add omo-memory -- npx -y omo-memory mcp
```
Grok:
```sh
grok mcp add omo-memory -- npx -y omo-memory mcp
```
两个主机默认情况下都使用当前项目分类账 `<project-root>/.omo/memory/state.sqlite`。`host` 值在适配器调用 `memory_start_session` 时记录,而不是通过安装单独的服务器。
## 会话引导
适配器应在每个主机会话开始时调用引导工具:
```json
{
"tool": "memory_bootstrap_session",
"arguments": {
"host": "codex",
"adapter": "lazycodex",
"limit": 5
}
}
```
响应包含新的 `sessionId` 和当前项目的 `recentEvents`。在记录后续事件时重用该 `sessionId`:
```json
{
"tool": "memory_record_event",
"arguments": {
"type": "decision",
"summary": "选择 npm MCP 包作为共享本地内存表面。",
"sessionId": "<sessionId>"
}
}
```
这是本地路由,而不是转录抓取。OMO 内存不会自动读取完整的 Codex 或 Grok 转录;主机或适配器必须调用这些 MCP 工具。
## MCP 工具
初始标准输入/输出 MCP 工具:
- `memory_init`
- `memory_project_context`
- `memory_start_session`
- `memory_bootstrap_session`
- `memory_record_event`
- `memory_recent_events`
- `memory_write_handoff`
- `memory_export`
- `memory_purge`
## 最低可行产品的非目标
- 无云同步。
- 默认情况下无完整转录捕获。
- 无机密存储。
- 无适配器特定的主机锁定。