memory-retrieve · diff
git:20260428.bf023ec to git:20260728.634c4b7
6 added, 0 removed. Audit A to A.
---
name: memory-retrieve
description: >
被其他 skill 内部调用,从 Workbench/memory/ 中检索与当前任务相关的历史经验。
当 idea-generate 需要查失败方向、experiment-design 需要查有效方法、
或任何 skill 需要历史上下文时调用
argument-hint: "<query> [scope]"
user-invocable: false
allowed-tools: Read, Glob, Grep
---
## Purpose
memory-retrieve 是 MindFlow 记忆系统的检索接口。它被其他 skill 内部调用(如 idea-generate 查失败方向、experiment-design 查有效方法),从 `Workbench/memory/` 的结构化记忆文件中检索与当前任务语义相关的历史经验。
这是 Layer 1 的轻量实现——纯 Markdown 文件读取 + LLM 语义匹配,零外部依赖。未来 Layer 2 可用向量检索替换,接口不变。
## Steps
### Step 1:确定检索范围
根据 `scope` 参数确定要读取的记忆文件:
| scope | 目标文件 |
|:------|:---------|
| `patterns` | `Workbench/memory/patterns.md` |
| `insights` | `Workbench/memory/insights.md` |
| `effective-methods` | `Workbench/memory/effective-methods.md` |
| `failed-directions` | `Workbench/memory/failed-directions.md` |
| `all` | 以上全部 |
### Step 2:读取记忆文件
用 Read 读取 scope 对应的记忆文件。若文件不存在或为空,返回空结果并告知调用方"该记忆类别暂无条目"。
### Step 3:语义匹配
逐条扫描记忆文件中的条目(每个 `### [YYYY-MM-DD]` 标题为一条),判断其与 `query` 的语义相关性。判断标准:
- 条目的 observation/claim/method 是否与 query 描述的任务/问题直接相关
- 条目中引用的论文/实验是否与 query 涉及的领域重叠
- 条目的 lesson/pitfall 是否对 query 的任务有参考价值
### Step 4:返回结果
返回 top-k 相关条目(默认 k=5),每条包含:
- 条目原文(完整保留,不做概括改写)
- 来源文件路径(如 `[[Workbench/memory/patterns.md#条目标题]]`)
若相关条目不足 k 条,返回全部匹配条目,不补凑。
## Guard
- **只读**:不修改任何记忆文件,不修改任何 vault 文件
- **原文保真**:返回结果必须包含条目原文和 `[[wikilink]]` 来源引用,不做概括性改写
- **诚实返回**:若无相关条目,返回空结果,不编造记忆内容
+ ## Verify
+
+ - [ ] 返回条目 ≤ k 条,每条含原文 + `[[wikilink]]` 来源路径
+ - [ ] 未对任何文件产生写入(只读)
+ - [ ] 无匹配时返回空结果而非编造/补凑
+