mcpField
D
distill

distill

github.com/open-horizon-labsAgent 工作流370 次安装12 周前更新
代码仓库

关于 distill

distill 是用于整理会话或知识语料中累积经验的技能。它会归纳重复、冲突或过时的条目并提出处理建议,晋升、编辑和删除均须由人批准。

主要功能

  1. 01检查会话或语料中的经验
  2. 02归类重复及相互冲突的条目
  3. 03评估模式的持久性与适用范围
  4. 04建议保留、晋升、合并或弃用
  5. 05变更须经人工批准

适用场景

  1. 01回顾多个会话积累的经验
  2. 02新阶段开始前整理已确定的经验
  3. 03减少搜索结果中的噪声和重复
  4. 04成功会话结束后整理经验

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/open-horizon-labs/skills --skill distill

安装后在 Claude Code 中输入/distill确认已加载。

附带文件agents/openai.yaml

详细介绍

/distill

在积累的知识中发现规律。提出哪些内容应保留、提升、合并精简或舍弃,由人来决定。

Salvage 从单次会话中提取经验;distill 则整理这些提取内容逐步构建的语料库。没有 distill,metis 只会不断积累,却不会沉淀增益。

适用场景

在以下情况调用 /distill:

  • 多次会话之后 — 语料库已经扩充,却还没有经过审查
  • 进入新阶段之前 — 想在继续推进前了解哪些内容已经确定
  • 搜索结果显得杂乱 — oh_search_context 返回了太多关联松散的内容
  • 类似的经验不断出现 — /salvage 一再提取相同的见解(这就是元信号)
  • 成功的会话结束时 — 即使是顺利的会话,也会产生值得记录的经验,应在上下文丢失前捕捉下来

如果会话进展顺利,请使用 distill,而不是 /salvage。 /salvage 用于因事情出错而停止的情况。Distill 用于因事情进展顺利或已经完成而暂停的情况——此时值得在上下文丢失前记录经验。

不要在以下情况使用: 正在执行任务时。Distill 是暂停点,不是执行过程中的活动。

以人为主导的整理原则

大模型发现规律;人决定哪些内容重要。自动提升永远不可取。只有人写下某个主题,它才会成为护栏。

流程

步骤 1:确定范围

决定要处理哪个语料库:

  • 会话范围(默认,无需 RNA):本次对话中的经验
  • 语料库范围(有 RNA):所有会话中累积的 metis,可按结果、阶段或标签进行筛选

筛选(RNA): 如果只需整理某个领域的子集,可向 oh_search_context 传入结果 ID、阶段标签或时间范围,以缩小语料库范围。

步骤 2:找出候选内容

会话范围: 回顾对话。学到了什么?哪些假设得到验证或被推翻?发现了哪些约束?下一次会话开始时,哪些信息会派上用场?除非能明确证明通用建议会改变当前情境下的决策,否则不要纳入。

语料库范围(RNA): 广泛调用 oh_search_context。按语义相似度聚类。找出:

  • 反复同时出现的条目(适合合并精简)
  • 条目之间的规律(适合提升为护栏)
  • 相互矛盾的条目(适合协调解决)
  • 过时、泛泛而谈或过于依赖特定上下文的条目(适合舍弃)
步骤 3:辨别神话与 Metis

在提出提升或合并精简建议前,先判断这一规律是经得起考验的经验,还是一个令人印象深刻的故事:

  • 现实依据: 这一情况在多次观察中反复出现,还是仅仅发生过一次、印象深刻的事件?
  • 适用条件: 它在什么情况下适用,又会在什么情况下造成误导?
  • 是否过时: 系统、上下文或约束是否仍然相同?
  • 判断还是旧日恐惧: 它能改善当前决策,还是只是在延续对过去失败的担忧?
  • 适用范围: 它是局部的、暂时的还是普遍的?如实标注。

如果依据不足,请建议保留或舍弃,而不是提升。Distill 负责找出候选内容;每次写入仍需由人批准。

步骤 4:提交人工审核

将每组候选内容及四种可选操作一并呈现:

**Theme: [theme name]**
Entries: [list with source IDs and one-line summaries]
Suggested action: [Keep / Promote / Compact / Dismiss]
Myth vs. metis: [reality contact, tied conditions, staleness, scope]
Reason: [why this action fits]
→ Your call:

保留 — 保持为独立的 metis 条目,不作更改。 提升 — 规律反复出现且足够稳定,值得纳入护栏。Distill 起草一个草案;由人批准内容(并按需编辑),然后由 Agent 写入文件:

---
id: [slug]
outcome: [outcome-id]
severity: soft
title: [one-line constraint]
---
[drafted body — human refines, agent writes to .oh/guardrails/]

合并精简 — 多个条目表达相同内容。由人批准合并后的版本;原始条目归档或删除。 舍弃 — 内容过时、泛泛而谈、已被取代,或过于依赖特定上下文,以至于造成的误导大于帮助。

第 5 步:写入结果

只写入经人类批准的内容。不得自动提升或自动删除。

  • 新的 metis 条目 → .oh/metis/<slug>.md
  • Guardrail 候选项 → 起草内容,由人类写入 .oh/guardrails/<slug>.md
  • 精简 → 创建新的合并条目,并注明哪些原始条目可以删除
  • 会话文件精简 → 提议移除过时的规划产物,将已确定的决策保留为简短锚点

输出格式

## Distill Summary

**Scope:** [session | corpus — filtered by: outcome/phase/tag]
**Entries reviewed:** [N]

### Proposals

**[Theme or entry title]**
- Source(s): [file paths or conversation reference]
- Suggested: [Keep / Promote to guardrail / Compact / Dismiss]
- Reason: [one sentence]
- Myth vs. metis: [why this is durable situated learning, or why it may be myth/stale]
→ Decision: [human fills this in]

[repeat for each proposal]

### Results Written
- [what was written, with file paths]

Guardrail

  • 绝不自动提升。 主题提案在人类将其写入之前,都不是 Guardrail。
  • 绝不自动删除。 驳回提案需要人类确认。
  • 保留来源信息。 每条提案都要链接到源 metis ID 或对话上下文。
  • 优先选择有情境依据的 metis,而非通用建议。 如果某条笔记未能提供基础模型已有知识之外的本地助益,则将其视为驳回或精简候选项。
  • 先检查 myth,再检查 metis。 一次令人印象深刻的事件不构成模式,除非反复接触现实且存在关联条件,使其足以改变决策。
  • 考虑阶段差异。 语料模式聚类必须显示阶段标签——跨阶段的 metis 往往会造成误导。在问题空间中学到的内容,并不自动适用于解决方案空间。
  • 妥善处理稀疏语料。 条目少于 5 条时,呈现现有内容,不要凭空制造虚假模式。不要对噪声进行聚类。
  • Metis 具有情境性,并非普遍适用。 在一种情境中有效的方法,不一定处处适用。由人类选择适用内容;distill 负责提炼候选项。

会话交接

Distill 用于语料/会话整理,而非执行。在多次 salvage 后,或在产生了可复用的本地经验的会话结束后使用。提升、精简或删除任何内容前,必须获得人类批准。

评论

支持 Markdown