在 DeepSeek Harness (DSH) 的 Agent 循环中,通常依赖大模型自身的判断,这种方式在面对高置信度的危险操作或低质量产出时,缺乏结构化的拦截与修正手段。dsh-decision-layer 插件旨在为此提供解决方案,它通过一个结构化的决策层,将判断标准明确的问题交给同协议的裁决后端(如 dev / laya),并在 Agent loop 上接入危险门控、产出自检、工具收窄和防循环等自动介入机制。
dsh-decision-layer 是一个为 DeepSeek Harness Agent 循环提供结构化决策层的插件。由 xbzbing 维护,采用 MIT 许可证。它将有明确判断标准的问题交给裁决后端,并在 Agent loop 上接入危险门控、产出自检、工具收窄和防循环等自动介入机制。
核心功能¶
插件提供了一套完整的决策机制,主要包括以下功能:
- 手动裁决:使用
decision_evaluate工具提交noul、score、choice问题,或使用decision_check_connection做连通测试。手动调用不计入自动裁决指标。 - 可配置后端:支持覆盖 URL、Key、model,默认使用
https://api.typesafe.ai、jev-latest。未配置 Key 时不发送请求。 - 危险门控:破坏性工具调用执行前用脱敏摘要请后端裁决。仅当模型高置信判定「拒绝」时才拦截;低置信或后端故障一律不阻断。
- 产出自检:回合结束用评分量表给最终产出打分(0–2)。默认只提示,可开启「低分补完」。
- 任务完成核对:当用户列出多个交付条件时,逐项判定「已满足 / 未满足 / 证据不足」。
- 产出质量趋势告警:连续多次高置信低分时,触发视觉提示,建议调整 prompt 或更换模型。
- 工具收窄:回合开始时判断可选工具与本轮任务的相关性,摘掉用不上的(相关性概率低于摘除阈值)。不扩权,仅删除工具。
- 防循环:始终生效,拦截同一调用连续重复超过阈值的死循环。
- 会话面板:输入框下方的 dock 触发器弹出面板,展示自动裁决指标和决策日志。
- 决策分析页:基于已落盘日志做只读聚合,展示过程画像,支持对每条决策标注「判对 / 判错 / 说不准」。
- 决策点开关:详情页配置里,各决策点有独立开关,默认全开。
- 决策日志落盘:决策记录按会话全量落盘到
~/.config/dsh-decision-layer/logs,保留 30 天。 - 会话指标持久化:重启后按会话 id 保存快照到
~/.config/dsh-decision-layer/state,优先从快照恢复。
安装与启用¶
插件已发布到 npm 与 GitHub。安装或更新后需重启 dsh web 服务。
从 npm 安装:
dsh plugin --profile web add dsh-decision-layer@latest
从 GitHub 安装:
dsh plugin --profile web add github:xbzbing/dsh-decision-layer
典型用法¶
- 手动裁决:在工具调用中使用
decision_evaluate提交问题。 - 连通测试:使用
decision_check_connection测试后端连通性。 - 配置后端:在配置中覆盖 URL、Key、model,支持 dev/laya。
- 本地部署:使用 ollama + tev1 配合插件,实现裁决不出本机、无数据外发。
- 源码构建:先运行
npm ci --ignore-scripts && npm run build:client,再使用file:安装。
安全边界¶
自动介入只减不增。危险门控仅拦截高置信拒绝,后端失败或低置信不介入。发送摘要只含工具名、命令/路径并对密钥脱敏,不含文件内容。
开发¶
源码部署需先构建 client。0.6.4 为体验版,功能已可用,但介入能力与阈值仍在探索中。
该插件为 DSH 开发者提供了一套结构化的决策机制,适合需要精细化控制 Agent 行为的场景。更多细节请访问 GitHub。