Skip to content

Commit 447ea4b

Browse files
committed
docs: add architecture and memory-system documentation
- docs/architecture.md: CLI architecture, template system, IDE integration - docs/memory-system.md: dual-layer memory, ROT filtering, Ebbinghaus decay - Remove docs/ from .gitignore Fixes dead links in README that referenced these documents.
1 parent 8e0c279 commit 447ea4b

3 files changed

Lines changed: 637 additions & 2 deletions

File tree

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,3 @@ cli/_omp/
4949
cli/.cursor/
5050
cli/.claude/
5151
cli/.gemini/
52-
53-
docs/

docs/architecture.md

Lines changed: 316 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,316 @@
1+
# OpenMemory Plus 架构设计
2+
3+
本文档介绍 OpenMemory Plus 的整体架构、CLI 设计和模板系统。
4+
5+
## 目录
6+
7+
- [系统概览](#系统概览)
8+
- [CLI 架构](#cli-架构)
9+
- [模板系统](#模板系统)
10+
- [依赖服务](#依赖服务)
11+
- [IDE 集成](#ide-集成)
12+
13+
---
14+
15+
## 系统概览
16+
17+
OpenMemory Plus 是一个为 AI Agent 设计的统一记忆管理框架,由以下组件构成:
18+
19+
```
20+
┌─────────────────────────────────────────────────────────────┐
21+
│ OpenMemory Plus │
22+
├─────────────────────────────────────────────────────────────┤
23+
│ │
24+
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
25+
│ │ CLI 工具 │ │ 模板系统 │ │ MCP 配置 │ │
26+
│ │ (install) │ │ (_omp/) │ │ (IDE集成) │ │
27+
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
28+
│ └──────────────────┼──────────────────┘ │
29+
│ ↓ │
30+
│ ┌─────────────────────────────────────────────────────┐ │
31+
│ │ 依赖服务层 │ │
32+
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
33+
│ │ │ Docker │ │ Qdrant │ │ Ollama │ │ │
34+
│ │ │ │ │ (向量DB)│ │ (BGE-M3)│ │ │
35+
│ │ └─────────┘ └─────────┘ └─────────┘ │ │
36+
│ └─────────────────────────────────────────────────────┘ │
37+
│ │
38+
└─────────────────────────────────────────────────────────────┘
39+
```
40+
41+
---
42+
43+
## CLI 架构
44+
45+
### 技术栈
46+
47+
| 组件 | 技术 | 说明 |
48+
|------|------|------|
49+
| 运行时 | Node.js >= 18 | ESM 模块 |
50+
| 语言 | TypeScript | 严格模式 |
51+
| 构建 | tsup | 快速打包 |
52+
| 测试 | Vitest | 单元测试 |
53+
| CLI 框架 | Commander | 命令解析 |
54+
| 交互 | Inquirer | 用户输入 |
55+
| 样式 | Chalk + Ora | 终端美化 |
56+
57+
### 目录结构
58+
59+
```
60+
cli/
61+
├── src/
62+
│ ├── index.ts # 入口文件
63+
│ ├── commands/ # 命令实现
64+
│ │ ├── install.ts # 主安装命令 (3 阶段)
65+
│ │ ├── status.ts # 系统状态检查
66+
│ │ ├── doctor.ts # 诊断修复
67+
│ │ └── deps.ts # 依赖服务管理
68+
│ └── lib/ # 核心库
69+
│ ├── detector.ts # 依赖检测 (Docker, Ollama, Qdrant)
70+
│ ├── platform.ts # 跨平台工具
71+
│ ├── providers.ts # LLM Provider 配置
72+
│ └── mcp-config.ts # MCP 配置生成
73+
├── templates/ # 导出模板
74+
│ ├── entry/ # 入口文件模板
75+
│ │ └── AGENTS.md.template
76+
│ └── shared/ # 共享模板
77+
│ └── _omp/ # 核心目录模板
78+
└── tests/ # 测试文件
79+
```
80+
81+
### 命令列表
82+
83+
| 命令 | 描述 | 选项 |
84+
|------|------|------|
85+
| `install` | 一键安装 (默认) | `-y`, `--ide`, `--llm`, `--compose` |
86+
| `status` | 检查系统状态 | - |
87+
| `doctor` | 诊断并修复问题 | - |
88+
| `deps` | 依赖服务管理 | `init`, `up`, `down`, `status`, `logs` |
89+
90+
### 安装流程 (3 阶段)
91+
92+
```
93+
Phase 1: 依赖检测与安装
94+
├── 检测 Docker
95+
├── 检测 Ollama
96+
├── 检测 Qdrant
97+
└── 检测/下载 BGE-M3 模型
98+
99+
Phase 2: 项目初始化
100+
├── 复制 _omp/ 模板
101+
├── 生成入口文件 (AGENTS.md, CLAUDE.md, etc.)
102+
├── 配置 IDE 特定目录
103+
└── 设置 MCP 配置
104+
105+
Phase 3: 完成
106+
├── 显示安装摘要
107+
├── 显示 MCP 配置 JSON
108+
└── 验证安装结果
109+
```
110+
111+
---
112+
113+
## 模板系统
114+
115+
### 模板架构
116+
117+
```
118+
templates/
119+
├── entry/ # 入口文件模板
120+
│ └── AGENTS.md.template # 通用入口 (引用 _omp/AGENTS.md)
121+
122+
└── shared/_omp/ # 核心目录 (完整复制到用户项目)
123+
├── AGENTS.md # 完整 Agent 规则
124+
├── commands/ # Agent 命令
125+
│ └── memory.md # /memory 命令入口
126+
├── memory/ # 项目级记忆存储
127+
│ ├── projectbrief.md
128+
│ ├── productContext.md
129+
│ ├── techContext.md
130+
│ ├── activeContext.md
131+
│ ├── systemPatterns.md
132+
│ ├── decisions.yaml
133+
│ └── progress.md
134+
├── workflows/ # 工作流
135+
│ └── memory/ # 记忆管理工作流 (7 步骤)
136+
└── skills/ # Agent Skills
137+
└── memory-extraction/ # 记忆提取 Skill
138+
```
139+
140+
### 入口文件生成策略
141+
142+
| 文件 | 生成方式 | 已存在时行为 |
143+
|------|----------|--------------|
144+
| `AGENTS.md` | 模板渲染 | 追加 OMP 引用 |
145+
| `CLAUDE.md` | 动态生成 | 追加 OMP 引用 |
146+
| `.cursor/rules/openmemory.mdc` | 动态生成 | 追加 OMP 引用 |
147+
148+
### 渐进式配置
149+
150+
当目标文件已存在时,采用追加模式而非覆盖:
151+
152+
```markdown
153+
<!-- 原有内容保持不变 -->
154+
155+
<!-- OpenMemory Plus Integration -->
156+
> **MANDATORY**: Before proceeding, load and internalize:
157+
> `cat _omp/AGENTS.md`
158+
```
159+
160+
---
161+
162+
## 依赖服务
163+
164+
### 服务架构
165+
166+
```
167+
┌─────────────────────────────────────────────────────────────┐
168+
│ Docker Compose │
169+
├─────────────────────────────────────────────────────────────┤
170+
│ │
171+
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
172+
│ │ Qdrant │ │ Ollama │ │ OpenMemory │ │
173+
│ │ :6333/6334 │ │ :11434 │ │ :8765 │ │
174+
│ │ 向量数据库 │ │ LLM 推理 │ │ MCP 服务 │ │
175+
│ └─────────────┘ └─────────────┘ └─────────────┘ │
176+
│ │
177+
└─────────────────────────────────────────────────────────────┘
178+
```
179+
180+
### 端口配置
181+
182+
| 服务 | 端口 | 用途 |
183+
|------|------|------|
184+
| Qdrant HTTP | 6333 | REST API |
185+
| Qdrant gRPC | 6334 | gRPC 接口 |
186+
| Ollama | 11434 | LLM 推理 API |
187+
| OpenMemory MCP | 8765 | MCP 协议服务 |
188+
189+
### Docker Compose 命令
190+
191+
```bash
192+
# 初始化配置
193+
omp deps init
194+
195+
# 启动服务
196+
omp deps up
197+
198+
# 停止服务
199+
omp deps down
200+
201+
# 查看状态
202+
omp deps status
203+
204+
# 查看日志
205+
omp deps logs [service]
206+
```
207+
208+
---
209+
210+
## IDE 集成
211+
212+
### 支持的 IDE
213+
214+
| IDE | 入口文件 | 命令目录 | Skills 目录 |
215+
|-----|----------|----------|-------------|
216+
| Augment | `AGENTS.md` | `.augment/commands/` | `.augment/skills/` |
217+
| Claude Code | `CLAUDE.md` | `.claude/commands/` | `.claude/skills/` |
218+
| Cursor | `.cursor/rules/*.mdc` | `.cursor/commands/` | `.cursor/skills/` |
219+
| Gemini | `AGENTS.md` | `.gemini/commands/` | `.gemini/skills/` |
220+
| 通用 | `AGENTS.md` | `.agents/commands/` | `.agents/skills/` |
221+
222+
### MCP 配置
223+
224+
安装后会生成 MCP 配置,需要添加到 IDE 的 MCP 设置中:
225+
226+
```json
227+
{
228+
"mcpServers": {
229+
"openmemory": {
230+
"command": "npx",
231+
"args": ["-y", "openmemory-mcp@latest"],
232+
"env": {
233+
"OPENAI_API_KEY": "your-api-key",
234+
"MEM0_API_KEY": "your-mem0-key"
235+
}
236+
}
237+
}
238+
}
239+
```
240+
241+
### LLM Provider 配置
242+
243+
支持多种 LLM Provider 用于记忆分类:
244+
245+
| Provider | 模型 | 环境变量 | 特点 |
246+
|----------|------|----------|------|
247+
| DeepSeek | deepseek-chat | `DEEPSEEK_API_KEY` | 🔥 推荐,性价比高 |
248+
| MiniMax | abab6.5s-chat | `MINIMAX_API_KEY` | 中文优化 |
249+
| ZhiPu | glm-4-flash | `ZHIPU_API_KEY` | 国产大模型 |
250+
| Qwen | qwen-turbo | `DASHSCOPE_API_KEY` | 阿里云 |
251+
| OpenAI | gpt-4o-mini | `OPENAI_API_KEY` | 国际标准 |
252+
| Ollama | 本地模型 | - | 离线可用 |
253+
254+
---
255+
256+
## 数据流
257+
258+
### 记忆存储流程
259+
260+
```
261+
用户输入 → Agent 检测 → 分类路由 → 存储
262+
263+
┌───────┴───────┐
264+
↓ ↓
265+
项目级记忆 用户级记忆
266+
_omp/memory/ openmemory MCP
267+
↓ ↓
268+
Git 版本控制 Qdrant 向量库
269+
```
270+
271+
### 记忆检索流程
272+
273+
```
274+
Agent 查询 → 双层搜索 → 结果合并 → 返回上下文
275+
276+
┌───────┴───────┐
277+
↓ ↓
278+
读取本地文件 MCP 语义搜索
279+
_omp/memory/ openmemory
280+
```
281+
282+
---
283+
284+
## 安全考虑
285+
286+
### 敏感信息过滤
287+
288+
系统自动检测并阻止存储以下内容:
289+
290+
- API Key / Token / Secret
291+
- 密码 / Password
292+
- 私钥 / Private Key
293+
- 数据库连接字符串
294+
- 个人身份信息 (PII)
295+
296+
### 权限边界
297+
298+
| 操作 | 权限 |
299+
|------|------|
300+
| 读取记忆 | ✅ 自动 |
301+
| 写入记忆 | ✅ 自动 (高置信度) |
302+
| 删除记忆 | ⚠️ 需确认 |
303+
| 修改结构 | ⚠️ 需确认 |
304+
| 存储敏感信息 | 🚫 禁止 |
305+
306+
---
307+
308+
## 相关文档
309+
310+
- [记忆系统架构](./memory-system.md) - 双层记忆、ROT 过滤、衰减模型
311+
- [README](../README.md) - 快速开始指南
312+
- [CONTRIBUTING](../CONTRIBUTING.md) - 贡献指南
313+
314+
---
315+
316+
*OpenMemory Plus - Dual-layer memory for AI agents*

0 commit comments

Comments
 (0)