dsh-advisor-group
v0.0.1
Published
DSH plugin: consult multiple expert advisor models in a retro chat-group card — auto-deepen consultation pipeline with real streaming, SSE replay, and 26 provider presets.
Readme
dsh-advisor-group
DeepSeek Harness(DSH)插件:主模型在遇到专业、长尾世界知识、高风险或不确定的问题时,召集多位专家顾问模型,在复古 CRT 聊天组卡片中真流式对话。
✨ 功能特性
- 自动深挖咨询流水线:一次
ask_advisors自动跑满maxRounds轮——每轮 = 驱动模型深挖追问 → 顾问 A → 顾问 B(看到 A)→ 顾问 C(看到 A+B)→ … 顺序接力,最后驱动模型产出综合结论。 - 顾问可调用会话工具(2026-09-05):顾问模型回答前可调用当前 DSH 会话可见的工具(默认只读白名单:read/grep/glob/web_search/web_fetch…)——走官方
ctx.tools完整管线(作用域分发、守卫、前置/后置策略),循环上限 4 轮后强制文字作答;每次调用在卡片 💭 面板实时播报(🔧 模型请求调用工具…+结果摘要)。可在设置中切到「全部会话工具」或「关闭」。 - 停止后可继续:用户停止或 dsh 重启后,卡片「⏹ 停止」原位变为「▶ 继续聊天」→
POST /advisor-group/resume→ 从断点续跑(本轮未答的顾问补答、已答的不重问、剩余轮次照常、最终照常生成综合结论);会话快照持久化到storages/advisor-group/sessions/<id>.json(仅存顾问 id/消息/状态,不含任何凭据),跨重启自动恢复。 - 驱动模型零配置复用:深挖追问由驱动模型生成,直接复用会话当前 agent 的 provider/model——无需额外配 Key 或模型;会话头不可读时回退
discussion.driverModel。 - 三种触发方式:
@顾问群提及(强制启动)、同一问题重复 3 次未解决、主模型自评置信度低于阈值。 - 复古 CRT 聊天组卡片:绿/琥珀/蓝三主题、扫描线、LIVE/DONE 标题、💭 思考面板默认展开自动滚底;顾问正文走轻量 Markdown 渲染(链接协议白名单,支持标题/列表/代码/引用/链接/表格)。
- 供应商预设(11 平台 · 26 预设):DeepSeek、月之暗面 Kimi、Kimi Code、阿里云百炼、智谱 AI、OpenAI、Claude、Gemini、硅基流动、AIHubMix、OpenRouter(含 OpenAI / Anthropic 兼容变体)。
- 注重安全:API Key 采用官方
SecretField语义(浏览器永不回显;apiKeysByProvider供应商密钥档案仅存服务端);诊断端点 SSRF 加固(仅 https/loopback、拒绝 IP 字面量与重定向);/advisor-group/*路由启动期 token 鉴权;每日新咨询可配置原子配额(默认 50,可关闭),持久化跨重启。 - 运行时开关:
toggle_advisor_group启停插件并持久化到设置。
✅ 兼容性
| 项目 | 状态 |
|---|---|
| Harness | DeepSeek Harness 0.1.2-rc.1 |
| Node | ^22.19.0 \|\| >=24.0.0 |
| 平台 | DSH Web(客户端 bundle)+ headless 宿主逻辑 |
📦 安装
# 1. 安装插件(一个包全都有)
dsh plugin --profile web add dsh-advisor-group
# 2. 重启 dsh web
npx @deepseek-ai/dsh web从源码开发安装
npm install --legacy-peer-deps --no-audit --no-fund npm run build dsh plugin --profile web add ./dsh-advisor-group-0.1.0.tgz # 先 npm pack
🚀 快速开始
- 重启 dsh web 并硬刷新浏览器(
Ctrl+Shift+R)。 - 打开 设置 → 插件 → 顾问群:配置顾问(提供商路由 + 模型,用「获取模型列表」拉取权威清单),按需调整
maxRounds、阈值与 UI 主题。 - 直接开聊:
- 提问时带
@顾问群强制发起咨询,或 - 直接提专业/不确定的问题——插件会按需自动升级。
- 提问时带
模型可用工具:ask_advisors、toggle_advisor_group。
⚙️ 配置项
| 键 | 类型 | 默认 | 说明 |
|---|---|---|---|
| enabled | boolean | true | 启用顾问群 |
| discussion.maxRounds | number | 2 | 自动深挖流水线总轮数(每轮 = 驱动追问 + 全体顾问接力) |
| discussion.maxAdvisorsPerCall | number | 3 | 单次咨询最大顾问数(1–10) |
| discussion.autoDeepen | boolean | true | 启用自动深挖流水线(驱动追问 + 综合结论) |
| discussion.driverModel | object | – | 兜底驱动模型 {provider, model}(会话头信息不可读时) |
| discussion.advisorTimeoutMs | number | 600000 | 单顾问调用超时(毫秒,1000–600000),双通道均生效 |
| discussion.driverTimeoutMs | number | 600000 | 驱动模型生成超时(深挖追问/综合结论;毫秒,1000–1200000) |
| discussion.advisorTools | string | 'readonly' | 未单独设置时的全局默认顾问工具调用范围:readonly(只读白名单 read/grep/glob/web_search/web_fetch…)|all(全部会话可见工具,含可写,慎用)|off(关闭)。仅直连通道(OpenAI/Anthropic)支持工具调用,DSH 内置通道的顾问需配 baseURL/apiKey/apiKeyEnv 直连(详情见「功能特性」)。 |
| advisors[].tools | string | – | 每个顾问的单独工具调用范围覆盖(readonly/all/off;未设置时跟随全局默认);设置卡片上:可直连的顾问显示下拉,DSH 内置通道顾问显示“不可配置”。 |
| quota.enabled | boolean | true | 启用每日咨询上限(成本安全阀) |
| quota.maxPerDay | number | 50 | 每日 UTC 日周期内最多新咨询次数(1–100000);quota.enabled=false 时不生效 |
| trigger.requireClassifier | boolean | true | 发起前先跑前置分类器 |
| trigger.allowWebFallback | boolean | true | 分类器建议联网搜索时返回该提示 |
| trigger.confidenceThreshold | number | 0.6 | 主模型置信度低于该值时升级 |
| ui.theme | string | retro-green | 卡片主题(retro-green / retro-amber / retro-blue) |
| ui.showTimestamps | boolean | true | 显示时间戳 |
| ui.autoExpand | boolean | true | 自动展开卡片 |
| advisors | array | [] | 顾问列表(provider/model/baseURL/apiKey/apiKeyEnv/protocol…,key 均标 role('secret')) |
discussion.parallel与discussion.stopOnConsensus为弃用遗留项,仅保留以兼容已存配置。
🔒 安全与隐私
- 直连 API Key 可存于 DSH
settings.yaml(标 secret,官方describe绝不回传浏览器);不想落盘请用apiKeyEnv环境变量模式。 /advisor-group/*路由为单机共享 token(本地单用户使用),不是多用户鉴权;暴露局域网必须外层加反代鉴权。- 诊断端点服务端按存档 key 解析真实值再打供应商,并对目标 URL 做 https-only/loopback SSRF 校验;DNS rebinding 记为文档化已知边界。
- 每日咨询上限(
quota.*可配置,默认 50、可关闭)持久化在$DSH_HOME/storages/advisor-group/daily-guard.json(UTC 日切),重启不再归零。 - 分类器影子模式:每次非强制分类追加一条观测样本(只读
/advisor-group/shadow),仅用于阈值调优,绝不干预行为。 advisorTools: 'all'属于高风险作用域:会把会话可见的全部工具(含pwsh/bash/write、配置/SSH 等可写/执行类)暴露给顾问模型(经官方守卫管线执行)。仅建议为可信的本地模型启用,并保证走 direct-http 通道;每次非只读工具调用都会以console.warn留审计痕迹。默认请用readonly(read/grep/glob/web_search/web_fetch/scan_discover/list_imported_sessions)或off。
🛠️ 开发
npm install --legacy-peer-deps --no-audit --no-fund
npm run typecheck
npm test # 64 单测(含本地假 LLM 服务器上的供应商流式契约)
npm run build # tsdown;客户端 bundle 禁用 minify: true📄 许可证
Apache License 2.0 © 2026 dsh-advisor-group contributors.
