前言¶
在 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 正常加载。
典型用法¶
- 克隆或下载仓库到本地固定路径(勿在安装后随意移动)。
- 按上文执行
install.mjs,重启 DSH,新建任务并选择「顾问模式」。 - 在 bundle config 中把
provider、model改成你 profile 里已有的顾问模型。 - 执行任务;在需要时可
/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