distill 使用指南
DSH 后台对话反思插件,在每轮结束后静默复盘用户消息,把反复出现的纠错或工作流沉淀为本地技能文件供后续会话直接调用。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
distill
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add github:LoserFox/distill
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- 插入行 id:
distill(cordis.patch.yml);不注册任何面向模型的工具或技能——它只挂接agent/turn-stopping并运行后台反省。 - 宿主前提:dsh 组合必须挂载
subagent-spawn-in-process(注册反省子代理使用的spawn子代理提供方)与tool-skill(子代理可调用的skill查看器)——两者在 base bundle 中默认存在。 - 卸载:
dsh plugin --profile web remove distill。 - 安装后需重启目标 profile 的 DSH 进程(组合层变更不参与 HMR 热更新)。
{"action": "skip"}— 无值得保存的内容;本轮结束。
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
装上之后主对话会变慢或被打扰吗?
不会。distill 完全在后台运行,只在回合结束事件触发后才异步派发复盘子代理,主对话不会被注入任何新工具或提示词。
复盘生成的技能会覆盖我手写的技能吗?
不会。复盘只能新建技能,或全量替换带 distilled-by: dsh-distill frontmatter 标记的技能(即它自己之前生成的)。你手写、内置或运行时注册的技能永远不会被改写。
复盘生成的文件存放在哪里?
默认写入当前项目 git 根目录下的 .agents/skills/<技能名>/SKILL.md;若配置 targetRoot: "user",则写入 ~/.agents/skills/ 下,可通过 agentsHome 配置项或 DSH_AGENTS_HOME 环境变量覆盖根目录。
为什么装了但从来没看到复盘发生?
两个最常见原因:新增的人类用户消息没攒够 minUserMessages 条(默认 3 条);或者既没配置显式 provider/model,主 agent 自身也没指定 provider/model,此时本轮会被跳过并打印 warning 日志。
复盘子代理需要哪些宿主插件才能工作?
需要宿主的 base bundle 默认挂载 subagent-spawn-in-process(提供名为 spawn 的子代理提供方)和 tool-skill(复盘子代理用 skill 工具查看现有技能内容)。缺 tool-skill 时复盘仍会运行,但子代理看不到技能目录。
怎么彻底关掉这个插件?
在 profile 配置里把 distill.enabled 设为 false 即可静默关闭,也可以 dsh plugin --profile web remove distill 卸载。注意安装/卸载后必须重启目标 profile 的 DSH 进程——组合层变更不参与 HMR 热更新。
它会占用多少额外 token?
每次复盘最多消耗 maxTokens 个输出 token(默认 2048),且只在消息累积到阈值后才触发;超时会被截止为 timeoutMs(默认 30 秒),日常对话几乎感觉不到开销。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 0.1.0-rc.6+
- Node: 未声明
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则