Memory（心智记忆）是 SolonCode 的长期认知系统。它在对话过程中自动提取关键信息并持久化存储，使得 AI 在后续会话中能"记住"用户的偏好、项目约定和历史上下文——用得越多，理解越精准。

### 1、核心架构

```
用户对话
    │
    ▼
 Agent 推理（LLM 自动判断是否需要记忆操作）
    │
    ├── extract     ──→  发现新事实？存入记忆（key 已存在则触发认知对比）
    ├── recall      ──→  需要"回忆"某条具体记忆？按 key 精确召回
    ├── search      ──→  需要查找相关背景？语义搜索匹配记忆
    ├── consolidate ──→  碎片太多？合并多条低层记忆为一条高层认知
    └── prune       ──→  记忆过时？直接删除
    │
    ▼
 MemorySolution
    ├── MemoryStoreProvider  ──→  RogueMap 本地 KV 持久化
    └── MemorySearchProvider ──→  Lucene 全文语义索引
```

整个记忆系统作为 Agent 的**内置技能（Skill）**运行，LLM 在推理过程中自主决定何时读取或写入记忆，无需用户手动操作。

### 2、存储结构

记忆数据保存在本地，默认所有项目共享一份统一记忆：

```
~/.soloncode/memory/
├── lucene/          # Lucene 全文索引（语义搜索用）
│   ├── _0.cfe
│   ├── _0.cfs
│   └── ...
└── rogue/           # RogueMap KV 数据库（精确存取用）
    └── ...
```

#### 隔离模式

通过配置 `memoryIsolation` 控制记忆是全局共享还是项目隔离：

| 配置值 | 存储路径 | 说明 |
|--------|----------|------|
| `false`（默认） | `~/.soloncode/memory/` | 所有项目共享一份记忆，跨项目积累认知 |
| `true` | `<workspace>/.soloncode/memory/` | 每个工作区独立记忆，项目间互不干扰 |

配置位置：`.soloncode/config.yml`

```yaml
memoryIsolation: true  # 长记忆是否工作区隔离
```

### 3、使用效果示例

```
# 第一次对话
用户: 我这个项目用的是 MyBatis-Plus，不要给我用 JPA
助手: 好的，我记住了。
      [自动 extract] key=user_orm_preference, fact="项目使用 MyBatis-Plus，不使用 JPA", importance=7

# 第二次对话（新会话）
用户: 帮我写一个用户查询接口
助手: [自动 search "用户ORM偏好"] → 命中 "项目使用 MyBatis-Plus"
      好的，我使用 MyBatis-Plus 的 QueryWrapper 来实现...

# 第三次对话
用户: 我们团队决定统一用 Solon 框架了
助手: [自动 extract] key=user_framework, fact="团队统一使用 Solon 框架", importance=9
      [自动 recall user_orm_preference] → 发现相关偏好
      了解。后续我会基于 Solon + MyBatis-Plus 的组合来给你建议。

# 多次对话后...
      [自动 consolidate]
      碎片: user_orm_preference, user_framework, user_code_style...
        ↓ 合并为
      高层认知: user_tech_stack = "团队使用 Solon + MyBatis-Plus 技术栈，偏好注解式开发"
```

### 4、设计哲学

Memory 的核心设计理念来自认知科学：

- **提取（Extract）**：模拟"注意到并记住"——从对话中识别值得保存的信息
- **召回（Recall）**：模拟"想起来"——精确回忆已知事实
- **搜索（Search）**：模拟"联想"——通过语义关联找到相关记忆
- **整合（Consolidate）**：模拟"顿悟"——将零散知识点升维为高层认知
- **修剪（Prune）**：模拟"遗忘"——清理过时信息，保持记忆库精简

这个过程完全自动化。用户只需要正常对话，AI 会在背后持续积累和演化对用户的理解——越用越聪明。
