memory-retrieve · git:20260428.bf023ec · 2026-04-28 · sha256 fb3ffd746dbd469b

memory-retrieve git:20260428.bf023ecA

Immutable. This exact content never changes and is served at /api/v1/blob/fb3ffd746dbd469b.

---
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]]` 来源引用,不做概括性改写
- **诚实返回**:若无相关条目,返回空结果,不编造记忆内容