前言¶
在 DSH(DeepSeek Harness)里交给智能体一项任务时,常见情况是需求里仍有歧义、缺字段或隐含假设,模型却已经开始改文件、跑命令。Plan 模式能先出方案,但不会系统化地把「阻塞性不明点」拆开问清楚。维护者 Kingzhoudk 提供的 拷问(Grill)模式插件,把「先分析、先问清阻塞项、再规划或执行」写进会话级策略,并在 Composer 工具栏提供开关。下面介绍它是什么、怎么装、怎么用,以及配置时要注意什么。
这是什么¶
dsh-grill 是 DSH 的工作流类插件:为每个会话增加一个可恢复的「拷问模式」开关。开启后,每条用户请求都要先过一道分析闸门,再进入规划或执行;简单、可逆、范围极小的活可以直接做并附一行说明,其余非平凡任务必须先出完整计划并等你批准,期间不得发起会改变状态的 tool 调用。
- 仓库:github.com/Kingzhoudk/dsh-grill
- 社区目录:skillhub.cn 插件页
- 当前包版本(见
package.json):1.0.0 - 运行时要求:
engines.dsh为>=0.2.2-rc.1 <0.3.0 - 许可证:MIT
DSH 的生态原则是「一切皆插件」;SkillHub 等目录由社区维护,与 DeepSeek / 幻方无官方从属关系。安装前请自行阅读仓库源码与许可证——插件随当前 DSH 进程权限运行。
核心功能¶
分析闸门(开启模式后每条请求)¶
模式打开时,智能体对用户请求按 README 描述的步骤处理:
- 分析目标、范围、输入、约束、含糊用语、矛盾与沉默假设。
- 将发现分为 blocking(阻塞)与 non-blocking(非阻塞)。
- 存在阻塞项时停止推进,通过
ask_user_question提问:点明具体歧义、说明为何阻塞、给出 2–4 个可执行选项(推荐项放前)及修补建议。 - 每次得到回答后重新分析,直到没有阻塞项。
- 权衡任务量级:琐碎工作(单文件、只读、可逆、验收标准显然)可直接执行并附一行阅读说明;非平凡工作(多文件、新功能、共享或用户可见行为变更、不可逆步骤、或改动 plugins/profiles/prompt 策略)必须先 规划并停下,未经用户批准不得做会改变状态的 tool 调用。
- 非平凡计划的回复需包含已确认需求、精确路径与逐文件改动、行为前后对比、验证方式、风险与回滚、本可静默替你做的选择,以及一行「是否继续」;同一轮通过
ask_user_question征求批准(Approve and execute/I want to change the plan/Stop for now)。
同一 Session 内后续消息(含「继续」「改一下」等短跟帖)也受此闸门约束;若跟帖是在 已批准计划 上的延续,则按延续执行,而不是重新走一遍完整规划。
会话级开关与界面¶
- Composer 工具行
conversation.input.left组最前(order 10)注册开关;权限选择器与 plan chip 在更早的 mode cluster 中渲染,与开关不在同一紧邻位置。 - 点击开关等价于执行
/grill on或/grill off,无独立客户端模式状态。 - 模式按 Session + 日志投影 持久化:
/grill on、/grill off为普通斜杠命令;resume、fork、replay 会从既有command/run/command/done事件折叠恢复开关位置。 - 开启时 Host 在每次模型请求的 system prompt 中注入
grill:policy段(紧接在 plan-mode policy 之后);关闭的 Session 不附加该段。
斜杠命令¶
在任意会话中可直接输入:
/grill:无参数时 开启 模式(不 toggle)。/grill on//grill off:显式开/关。- 无
status子命令。
子智能体¶
Fork 出的子智能体继承父会话日志前缀,开启拷问模式时协议同样生效。被委托的子智能体不能向人类提问(ask_user_question 会以 DELEGATED_CALLER 拒绝);内置协议含例外:阻塞性问题改为在最终结果中汇报。可通过配置 appendSubagentNote 控制是否在自定义 section 后仍附加该说明。
安装与启用¶
官方安装方式(摘自 README):
dsh plugin add github:Kingzhoudk/dsh-grill
# 或使用显式 git 地址
dsh plugin add git+https://github.com/Kingzhoudk/dsh-grill.git
插件管理器会记录依赖并启用 bundle;Host 行经 live profile patch 激活,浏览器侧 client.js 作为客户端模块注入,页面加载新 client 图后 Composer 会出现开关。若本机 DSH 版本不在 >=0.2.2-rc.1 <0.3.0 范围内,管理器会拒绝安装。
典型用法¶
用界面开关¶
- 完成安装并刷新会话页面。
- 在 Composer 输入区左侧工具组打开「拷问」开关(底层为
/grill on)。 - 用自然语言提出任务;若存在阻塞歧义,智能体会先追问选项,再继续。
- 对非平凡任务,阅读计划全文后,在同一轮问题中选择
Approve and execute等选项。
用斜杠命令¶
关闭或不想用开关时,可在输入框执行:
/grill on
结束会话级拷问策略:
/grill off
可选配置(profile 中的插件行)¶
在 Cordis profile 的插件行可为 grill 指定:
- id: grill
name: 'dsh-grill'
config:
section: |-
...custom model-facing protocol text...
appendSubagentNote: true
section:替换默认面向模型的协议全文;省略或留空则使用 README 中的内置文本。appendSubagentNote:默认true,在生效文本后附加子智能体例外说明;若自定义section已写明DELEGATED_CALLER相关规则,可设为false。
无效配置会在插件加载时失败(类型错误、未知键、协议超长等);有效协议文本上限为 20000 字符。
适用场景与注意¶
更适合:需求常含业务术语与隐含约束、希望减少「先动手再返工」、需要在改多文件或不可逆操作前看到带路径与回滚说明的计划、团队希望统一「先澄清再执行」的工作流习惯。
使用时注意:
- 开启后交互步数可能增加,琐碎任务虽可直通,但边界由模型按协议自判,应用时仍应自己核对验收标准。
- 子任务委托场景下,阻塞问题不会弹窗问你,只会写入子智能体结果,需在上层会话里处理。
- 插件不替代你对权限与安全的要求:安装前后请审查
index.js、client.js与 patch 内容。
维护者提供的集成测试需在 DSH 源码检出目录上运行(DSH_CHECKOUT=/path/to/deepseek-harness node scripts/test.mjs),普通使用者以 Plugin Manager 安装即可。
结尾¶
dsh-grill 把「拷问」做成可 per-session 切换的策略与 Composer 开关:阻塞歧义先问清,非平凡改动先计划后执行。若你在 Harness 里做复杂工作流,值得一试。