DeepSeek Harness (DSH) 的任务编排需要解决“任务是否真正完成”的信任问题。单纯依赖 LLM 的结论容易产生幻觉,且难以审计。dsh-outcome-loop 插件提供了一套基于机械证据的验收机制,旨在解决这些问题。
这是一个本地优先、用户拥有、供应商中立的任务结果账本与验收插件。它将一次 DSH 会话的目标、约束、验收标准、执行证据、用户反馈、成本和最终结果整合为一个可重新审计的任务记录。
核心能力¶
该插件主要提供以下能力:
- 机械证据验收:验收标准不依赖 LLM 的主观判断,而是基于测试、构建、退出码、文件状态、诊断信息、Git 范围等机械证据。
- 默认零额外模型成本:默认情况下不进行额外的 LLM 调用,也不暴露模型可见的工具,避免增加 token 消耗。
- 默认本地离线:所有结果数据默认存储在本地 DSH 存储后端,不依赖外部网络服务。
- 用户拥有并控制数据:用户可以检查、删除或导出数据,导出前需经过预览和脱敏检查。
- 状态分离:明确区分成功、失败、未知状态,未知状态不会静默转换为成功。
安装与前置条件¶
安装插件需要使用提供的安装命令:
dsh plugin --profile <name> add ./dsh-outcome-loop-0.1.0-beta.8.tgz
在安装前,需要确认环境满足前置条件。该插件依赖于 storageDomain 服务,而官方的 dsh-base bundle 并不提供此服务(仅 @deepseek-ai/dsh-web-app 等上层 bundle 提供)。如果在无头或裸机配置下使用,需手动安装 storageDomain 服务。
常用命令¶
插件通过 /outcome 命令集进行交互,支持创建任务、定义标准、验证状态和导出数据。
- 创建任务合同
/outcome new 修复登录页按钮在移动端溢出问题
此命令创建一个任务记录,记录目标文本。
- 添加验收标准
可以手动添加文本标准,或通过命令添加机械证据标准:
/outcome criterion add 移动端 375px 宽度下无横向滚动
/outcome criterion add-command "pnpm test"
/outcome criterion add-test
/outcome criterion add-file dist/bundle.js
也可以添加结构化的测试计数标准:
/outcome criterion add-test --min-passed 2 --max-failed 1
- 运行验证
默认情况下,插件不运行主动验证,仅进行被动观察。
/outcome verify
- 用户裁决
用户根据机械验证结果和自身判断进行裁决,这是一个独立的轴:
/outcome accept
/outcome reject
/outcome revise
/outcome abandon
- 导出数据
导出支持两阶段流程:预览和确认。
/outcome export [<contract>]
/outcome export <contract> --approve <digest> --out <path> [--overwrite]
/outcome exports [<contract>]
注意事项¶
- 数据本地化:数据完全本地持有,不上传。插件绝不进行任何上传操作,数据交付完全由用户决定。
- 被动验证:默认不运行主动验证,仅被动观察现有事件。主动验证的运行受策略层控制。
- 贡献模式:贡献模式默认未安装,需要手动添加配置才能使用相关命令(如
/contribute)。 - 服务依赖:确保环境中有
storageDomain服务,否则插件启动会失败。
总结¶
dsh-outcome-loop 为 DSH 插件生态提供了一种可靠的任务结果追踪与验收方案。它通过机械证据替代主观判断,保证了验收的可信度;通过本地存储和零额外成本的设计,降低了使用门槛。对于需要严格审计任务完成情况或控制模型成本的场景,该插件是一个实用的选择。
- 目录页: https://www.skillhub.cn/plugins/victorzhong0110/dsh-outcome-loop
- 源码: https://github.com/victorzhong0110/dsh-outcome-loop