dsh-advisor 使用指南
为 DSH 会话挂一个独立评审模型:观察主会话 transcript,按 nit/concern/blocker 三级严重度把建议注入回主循环,不接管也不递归评审自己。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
dsh-advisor
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add github:btspoony/dsh-advisor
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- 每个会话一个独立评审者:独立的模型调用观察主 transcript 并评审每个 stepped 主 turn;advisor 消息被排除在此后的 delta 之外,因此 advisor 永远不会读回自己的建议。
- 显式模型门禁:
enabled默认关闭;enabled: true而缺少provider+model时绝不发起模型调用——状态报告 disabled-with-reason。未知配置键会被拒绝。 - 零工具的最小启动:评审者只是一个独立的模型调用——无 advisor tools,除了 advisory 消息之外它无法对会话做任何事。
- 不卡主循环的失败策略:失败或 quota 耗尽的 advisor 只会丢弃自己有界的 backlog——永远不会卡住或污染主循环。
- 会话级控制:
/advisor on|off|status|config按会话工作;开关是临时的 override,从不修改持久化配置。
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
装上之后默认就会启动评审吗?
不会。enabled 默认 false,插件默认零侵入不工作(src/config.ts:71、README.md:33-40)。需要在设置里把 enabled 打开,并同时填好 provider 和 model,插件才会真正调用评审模型。
启用了但没填 provider / model 会发生什么?
插件走的是硬门禁(S4)而不是警告:评审模型根本不会发起调用,状态报告为「禁用并给出原因」,可见于 /advisor status 与 /advisor config(src/config.ts:113-121、README.md:42-44)。
在哪里配置评审参数?
三个并行的编辑面都写到同一个 advisor 命名空间:profile 补丁层($DSH_HOME/profiles/<profile>/cordis.patch.yml)、web Settings 的 Advisor 卡片、dsh-tui /settings 里的 Advisor 分节(dsh-tui ≥ v0.8.0);保存后新会话立即生效,无需重启(docs/configuration.md:1-13、README.md:44-50)。
评审意见会送到主循环里吗?会打断主代理吗?
会注入回主会话。nit(轻微建议)走非唤醒通道 agent.inject,在下一个 pre-step 边界消费;concern / blocker(值得停下权衡 / 明显继续就是在浪费工作)走唤醒通道 agent.steer,但有 immuneTurns 冷却:刚送过一次打断性 note 后必须先完成若干个主 turn 才能再送下一次(src/delivery.ts:107-108、src/delivery.ts:197、README.md:74-82)。
怎么在会话里临时打开 / 关闭评审?
输入 /advisor(toggle)或 /advisor on / /advisor off,这是会话级且临时的 override,不会写入持久化配置;/advisor status 可以看到当前会话的开关、provider/model、运行时状态(running / paused / quota_exhausted / halted / disabled)、待处理数和最近活动时间(src/commands.ts:39-61、src/commands.ts:114-133、README.md:60-69)。
评审模型被限流或者挂了,主循环会卡住吗?
不会。失败策略是有界 backlog 丢弃,quota 耗尽进入暂停(需 /advisor on 手动恢复),永久错误(如凭据失效)进入 halted(需 /advisor on 手动重建);无论哪种状态都不会阻塞或污染主循环(src/advisor-runtime.ts:327-332、README.md:84)。
会修改 DSH 本体代码吗?
不会。安装方式是纯挂载:bundle/cordis.patch.yml 只插入一行 id: advisor、自带 /api/advisor/get|set 网关通道(受宿主 typertGateway 认领)、自带 /advisor 指令与客户端卡片,无 dsh 源码改动、无 postinstall 步骤(README.md:89-91、cordis.patch.yml:4-6)。
配置里写了不认识的键会怎么样?
插件会拒绝加载。resolveAdvisorConfig 用 CONFIG_KEYS 白名单严格拒绝未知键和非对象输入,构造期直接抛错(src/config.ts:51-58、src/config.ts:98-102)。如果错误是从 settings user layer 写入的,热路径会落到 safeFallback 解析为 disabled-with-reason,永远不会发起模型调用。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 0.1.1-rc.2+
- Node: >=22.19.0
- Platforms: 跨平台
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则