dsh-advisor-mode:主模型决策前向更强模型要第二意见

前言

在 DeepSeek Harness(DSH)里跑 coding agent 时,常见做法是换更大的模型,或把 system prompt 写得更长,希望模型在删文件、改公共 API、选架构方案之前多想一想。问题是同一个模型既执行又自审,容易在关键节点仍按惯性往下走。

下面介绍第三方 bundle dsh-advisor-mode(维护者 fromluli):给 DSH 增加名为「顾问模式」的 agent preset。主模型在难以回退的决策点调用工具 consult_advisor,由你在配置里指定的第二个(通常更强)模型阅读清洗后的完整会话 transcript,返回结构化结论(proceed / revise / stop)、具体建议与风险提示。顾问侧不传 tools,不能执行动作,也不会替用户确认。包本身零依赖、纯 ESM、无构建步骤,本地通过 ctx.llm.stream() 调用顾问模型。

这是什么

  • 名称:dsh-advisor-mode(目录页:fromluli/dsh-advisor-mode)
  • 分类:模型推理(社区目录 SkillHub,与 DeepSeek / 幻方无官方从属关系)
  • 版本:0.1.0(MIT)
  • 兼容:DSH 桌面版 engines.dsh 要求 >=0.2.1-rc.3 <0.3.0;安装脚本使用 Node ≥ 20

它解决的是「一个模型既当选手又想当裁判」:执行用当前任务模型,判断在决策点交给顾问模型,往往比全程只换一个大模型更省、也更聚焦。

核心功能

Agent preset 与工具

新建任务时,模式选择器里会多一项「顾问模式」。该 preset 在官方 standard 插件树基础上整块 patch(约 120 行 cordis.patch.yml),并插入本 bundle 一行插件。

会话内还提供斜杠命令(状态通过标准 command/run / command/done 持久化,便于 resume / fork):

/advisor            查看当前状态(开/关及顾问路由)
/advisor on         开启
/advisor off        关闭

工具 consult_advisor 始终注册;顾问模式关闭时调用会被拒绝,以保持工具目录稳定。开启时,system prompt 段 advisor:policy 会注入,指导主模型何时该咨询。

何时会咨询

README 中写明主模型应在例如这些时刻调用 consult_advisor:

  • 选择难以回退的方案之前(架构、数据模型、公共 API、迁移、依赖或配置变更、删除或重写已有文件);
  • 同一错误修了两次以上仍在复发;
  • 声明一个大任务「完成」之前。

顾问返回结论、建议与风险;建议不等于授权,仍需用户确认的事项仍要问用户。

配置项(bundle 行 config)

在 cordis.patch.yml 里 advisor 插件行的 config 中设置(生成物默认 provider: acme、model: gpt-6.1-sol 为作者本机示例,换机器需改):

- id: advisor-mode
  name: 'dsh-advisor-mode'
  config:
    provider: acme
    model: gpt-6.1-sol
    defaultOn: true
键 默认值 说明
provider / model 见上 顾问路由;二者要么都设要么都不设,都不设则复用会话当前路由
defaultOn true 新会话默认是否开启顾问
maxTranscriptChars 80000 发给顾问的会话文本上限
maxSystemChars 12000 随请求携带的主 agent system 上限
maxTokens 3000 顾问回复 token 上限
temperature 0.2 采样温度
timeoutMs 180000 单次咨询超时
section / system 内置英文默认 分别控制注入主 agent 的策略段与发给顾问的 system prompt

未知键或越界值在加载期报错。

安装与启用

前置条件

  • 已安装 DSH 桌面版且版本满足 >=0.2.1-rc.3 <0.3.0
  • 顾问用的 provider / model 已在 profile 的 LLM 配置中存在
  • 本机 Node ≥ 20(脚本仅用内置模块,无需 npm install)

插件以当前 DSH 进程权限运行;安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。

推荐:安装脚本

脚本会定位 DSH 桌面应用自带的 CLI(PATH 上的普通 dsh 无法管理 desktop profile),备份 profile 文件后执行 plugin add,并校验 dsh.profile.bundles 是否出现 dsh-advisor-mode。

# 先看将执行什么(不写文件)
node scripts/install.mjs --dry-run

# 安装到 desktop profile
node scripts/install.mjs --yes

# 完全退出并重启 DSH 桌面应用 → 新建任务 → 模式选择器选「顾问模式」

# 只读复查
node scripts/verify.mjs

常用参数:

node scripts/install.mjs --profile desktop
node scripts/install.mjs --app /path/to/DeepSeek\ Harness.app
node scripts/install.mjs --home /tmp/dsh-test --profile web

图形化等价方式

DSH 侧栏「插件」→「添加插件」→ 输入本目录绝对路径,或 npm pack / pnpm pack 的 tgz。本地目录安装时 pnpm 记录为 link:<绝对路径>:改仓库代码后重启 DSH 即生效,但不要删除或移动该目录。

安装成功后,~/.dsh/profiles/desktop/package.json 会多出对 dsh-advisor-mode 的依赖及 bundles 条目;bundle 追加在 @deepseek-ai/dsh-web-app 之后,以便 preset 与模式选择器 UI 正常加载。

典型用法

  1. 克隆或下载仓库到本地固定路径(勿在安装后随意移动)。
  2. 按上文执行 install.mjs,重启 DSH,新建任务并选择「顾问模式」。
  3. 在 bundle config 中把 provider、model 改成你 profile 里已有的顾问模型。
  4. 执行任务;在需要时可 /advisor off 临时关闭,或 /advisor 查看路由与开关。

主模型在 policy 规定的决策点会发起 consult_advisor;你在会话里看到顾问的结构化评审后再决定是否继续、修改方案或停止。

DSH 升级与回滚

cordis.patch.yml 由脚本从当前 DSH 内置 standard preset 复制生成。DSH 升级后官方插件树可能变化,应重跑:

node scripts/sync-preset.mjs
node scripts/sync-preset.mjs --check
node scripts/install.mjs --yes

卸载或恢复:

node scripts/rollback.mjs --dry-run
node scripts/rollback.mjs --yes
node scripts/rollback.mjs --restore-last --yes

也可在 profile 的 cordis.patch.yml 里对 advisor-mode 行设 disabled: true 仅关闭而不卸 bundle。

适用场景与注意

适合:希望在 DSH 里保留快模型做执行、在不可逆决策前固定走「第二意见」流程的开发者;愿意维护本地 link 安装与 DSH 版本在 0.2.x 段内的用户。

注意:

  • 「顾问模式」是新建任务时的 agent preset;会话创建后不能换 preset,中途只能用 /advisor on|off 调整同一 preset 内的开关。
  • 顾问只读 transcript 与问题文本,不接收 tools,不会递归调用自身。
  • 社区目录 SkillHub 与 GitHub 源码是核实安装步骤与配置的唯一依据;勿在未核对源码的情况下信任第三方打包。

结尾

dsh-advisor-mode 把「执行模型 + 顾问模型」拆成 preset 与 consult_advisor 工具,贴合 DSH「一切皆插件」的组合方式,且用标准 command 事件存状态,避免自定义会话事件导致日志不可读。

  • 目录页:https://www.skillhub.cn/plugins/fromluli/dsh-advisor-mode
  • 源码与完整说明:https://github.com/fromluli/dsh-advisor-mode
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye