3.8 KiB
3.8 KiB
name, description
| name | description |
|---|---|
| memory-merger | 将领域记忆文件中的成熟经验合并到其指令文件中。语法:`/memory-merger >domain [scope]`,其中 scope 为 `global`(默认)、`user`、`workspace` 或 `ws`。 |
Memory Merger
你将某个领域的记忆文件中积累的经验教训整合到其指令文件中,确保在最小冗余的前提下保存知识。
使用任务列表来跟踪你在各个处理步骤上的进度,并让用户了解最新情况。
作用域
记忆指令可以存储在两个作用域中:
- 全局(
global或user)——存储在<global-prompts>(vscode-userdata:/User/prompts/)中,适用于所有 VS Code 项目 - 工作区(
workspace或ws)——存储在<workspace-instructions>(<workspace-root>/.github/instructions/)中,仅适用于当前项目
默认作用域为 全局。
在整个提示词中,<global-prompts> 和 <workspace-instructions> 均指上述目录。
语法
/memory-merger >domain-name [scope]
>domain-name—— 必填。要合并的领域名称(例如>clojure、>git-workflow、>prompt-engineering)[scope]—— 可选。可选值:global、user(两者均表示全局)、workspace或ws。默认为global
示例:
/memory-merger >prompt-engineering—— 合并全局的 prompt engineering 记忆/memory-merger >clojure workspace—— 合并工作区的 clojure 记忆/memory-merger >git-workflow ws—— 合并工作区的 git-workflow 记忆
处理流程
1. 解析输入并读取文件
- 提取用户输入中的领域和作用域
- 确定文件路径:
- 全局:
<global-prompts>/{domain}-memory.instructions.md→<global-prompts>/{domain}.instructions.md - 工作区:
<workspace-instructions>/{domain}-memory.instructions.md→<workspace-instructions>/{domain}.instructions.md
- 全局:
- 用户可能输错领域名称,如果找不到记忆文件,请在该目录下进行 glob 搜索,判断是否存在可能的匹配项。如有疑问,请向用户确认。
- 读取两个文件(记忆文件必须存在;指令文件可能不存在)
2. 分析并提出建议
审阅所有记忆章节,并将其展示出来供合并考虑:
## 建议合并的记忆
### 记忆:[标题]
**内容:** [关键要点]
**位置:** [在指令中的合适位置]
[更多记忆]...
请说:"请审阅这些记忆。输入 'go' 批准全部,或指定要跳过的条目。"
停下来等待用户输入。
3. 定义质量标准
制定 10/10 标准,定义何为优秀的合并后指令:
- 零知识丢失 —— 每个细节、示例和细微之处都得以保留
- 最小冗余 —— 重叠的指导内容被合并精简
- 最高可扫描性 —— 清晰的层级结构、平行句式、有策略地加粗、逻辑分组
4. 合并与迭代
在更新文件之前,先拟定最终的合并后指令:
- 起草合并后的指令,纳入已批准的记忆
- 对照质量标准进行评估
- 优化结构、措辞和排版
- 重复上述步骤,直到合并后的指令达到 10/10 标准
5. 更新文件
一旦最终的合并后指令达到 10/10 标准:
- 创建或更新指令文件,写入最终的合并内容
- 如果是新建文件,请包含正确的 frontmatter
- 如果记忆文件和指令文件均存在,则合并两者的
applyTo模式,确保覆盖全面且不重复
- 删除记忆文件中已合并的章节
示例
用户:"/memory-merger >clojure"
Agent:
1. 读取 clojure-memory.instructions.md 和 clojure.instructions.md
2. 提出 3 条待合并的记忆
3. [停止]
用户:"go"
Agent:
4. 制定 10/10 质量标准
5. 合并新的指令候选版本,迭代至 10/10
6. 更新 clojure.instructions.md
7. 清理 clojure-memory.instructions.md