README
@dsh-external/dsh-deep-research
把 deep-research 流程做成 DSH 扩展插件(plugin,与 skill 体系分开),
基于 DSH 官方 workflow 引擎(ctx.workflows / @deepseek-ai/dsh-workflow-workerthread)
实现,按 控制论 + 信息论 设计——不是固定提示词流水线,而是活的、自适应的研究闭环。
理论 → 机制
| 理论 | 插件里的落地 |
|---|---|
| 控制论:参考信号校准(闭环控制错误目标 = 白费) | 规划代理先定义答案空间(scope:研究支撑什么判断/决策)与每个子问题的验收标准(acceptance),再开始研究 |
| Ashby 必要多样性定律(控制器多样性 < 系统多样性 ⇒ 必有盲区) | 规划代理枚举主题的信息维度,每个子问题映射一个维度,并输出覆盖度自检 coverage_gaps |
| 信息论:信息 = 不确定性的减少 | 研究子代理维护三态证据 confirmed / uncertain / gaps——条件熵的工程表达;报告保留置信度与矛盾,不掩盖不确定性 |
| 信息论:边际信息增益(EIG)递减 ⇒ 无限搜索是错的 | 每个研究子代理:预测(针对哪个高熵点、预期新增什么)→ 行动(web_search/web_fetch)→ 更新证据 → 边际增益验证;连续一轮零增益即停 + 轮次硬上限 |
| 控制论:自适应控制(流程是活的,不是固定脚本) | 研究阶段是闭环再规划:第 1 轮并行研究全部子问题;每轮结束收集 high-priority 缺口 → 自动派发下一轮补充研究;规划声明的"盲区"会被定向侦察验证(假设被实验检验而非静态接受);简单主题一轮收敛,复杂主题自动扩展,直到边际增益 ≈ 0 |
| 信息论:率失真(给定"率"最小化失真) | 综合子代理把证据有损压缩为最终报告:只保留对结论有区分度的信息,决策有用性最大化 |
| 信息论:信道冗余/纠错(对抗幻觉=噪声) | 可选对抗性审查子代理 = 奇偶校验:引用抽查(URL 可达性/支撑性)、覆盖度审计、矛盾与过度自信标注 |
结构
dsh-deep-research/
├── package.json # @dsh-external/dsh-deep-research(声明 dsh.bundle.patch)
├── cordis.patch.yml # bundle 补丁:按包名插入插件行
├── src/index.ts # cordis 插件:注册 deep_research 工具,提交官方 workflow 脚本(原生 TS,零构建)
├── tsconfig.json # typecheck 配置(project references 解析到 sibling deepseek-harness 源码)
└── README.md
开发与检查
pnpm install # 仅 typescript/@types/node(typecheck 用)
pnpm run typecheck # tsc -b,类型从 sibling deepseek-harness checkout 解析
源码即运行时:包入口直接指向 src/index.ts,无构建步骤。profile 安装的副本位于
node_modules 下,由 dsh 源码启动器的 tsx hook 加载(Node 原生类型剥离拒绝
node_modules 内的文件);源码 checkout 在 node_modules 外直跑时也可用 Node ≥22.18
原生剥离。要求 erasable-only TS 语法(无 enum/命名空间等),
node --test/pnpm typecheck 会挡住不可移植写法。
安装与使用方式
包声明了 dsh.bundle.patch(cordis.patch.yml),通过 dsh plugin 装进任意 profile
(把 <profile> 换成 tui / headless / web 或自建 profile):
dsh plugin --profile <profile> add git+https://github.com/dsh-external/dsh-deep-research.git
dsh --profile <profile> # 重启生效:工具 deep_research 随 profile 注入
若 pnpm 把 https URL 重写成 git+ssh(本机全局 git
insteadof配置所致),用上面的git+https://形式;dsh plugin会提示需要allowBuilds时按提示在$DSH_HOME/profiles/<name>/pnpm-workspace.yaml加一行即可。
工具由模型按工具描述自动触发(深度研究/调研/多源信息综合分析/研究报告/文献搜集), 对话中直接说人话即可:
- 「深度调研一下 MCP 生态现状,重点对比几家主流实现,出一份带引用的报告」
- 「按这份问题清单做研究:1. ... 2. ...」(已有清单 → 跳过自动拆解,直接并行研究)
- 「调研一下 A/B 方案,purpose 是决定我们选哪个」(用途越明确,答案空间越准)
- 复杂主题会自动扩展轮次(自适应闭环),简单主题一轮收敛;想要更严谨传
depth: 3, 要引用纠错和覆盖度审计传review: true。
成本建议:模型分层——规划/综合用强模型、研究用便宜模型(配置
plannerModel/researcherModel/synthesizerModel/reviewerModel),可显著降本。
依赖要求:profile 的组合必须包含官方 workflow 引擎与内置 web 工具——dsh 官方
base 组合自带,无需额外安装;peer 依赖(@deepseek-ai/dsh-tools 等)由组合提供,
profile 的 autoInstallPeers: false 可避免向 registry 查找未发布的 @deepseek-ai/*。
更新 / 卸载:
dsh plugin --profile <profile> update
dsh plugin --profile <profile> remove @dsh-external/dsh-deep-research
# 或:从 profile 的 package.json 移除依赖后 dsh plugin --profile <profile> update
工具参数
| 参数 | 必填 | 说明 |
|---|---|---|
topic |
是 | 研究主题 |
purpose |
否 | 研究用途(要支撑的判断/决策)——用于定义答案空间;缺省时规划代理声明假设用途 |
questions |
否 | 已有问题清单(每行一个);提供则跳过自动拆解 |
depth |
否 | 精度/容差:1=初步 2=深入(默认)3=穷尽——决定研究闭环轮次上限(depth+1) |
synthesize |
否 | 综合子代理出最终报告(默认 true);false 只返回三态证据 |
review |
否 | 对抗性审查(默认 false):引用纠错 + 覆盖度审计 + 矛盾/过度自信标注 |
配置(可选)
| Key | 默认 | 说明 |
|---|---|---|
subagentProvider |
引擎默认 spawn |
子代理 provider |
maxParallel |
4 |
每轮研究并发上限 |
maxTotalAgents |
引擎上限 | 整次运行子代理总数上限 |
plannerModel / researcherModel / synthesizerModel / reviewerModel |
继承父配置 | 模型分级(OpenAI 指南:规划/综合用强模型,执行用便宜模型) |
设计说明
- plugin ≠ skill:不注册进
ctx.skills;触发靠工具描述(深度研究/调研/多源信息综合分析等)。 - 复用官方能力:编排走官方 workflow 引擎(worker 隔离、并发/总数 caps、取消、进度事件、
wf-runs记录);搜索/抓取走内置web_search/web_fetch——插件零网络逻辑、零自研编排。 - 不碰 TUI:无 tuiPrompt / overlay / system-prompt 注入,规避 prompt 槽位 disposed 类崩溃。
- 取消传播:
exec.signal传入 workflow run,取消时子代理随之中止。 - 失败隔离:单个子问题研究失败只在该节标注;规划失败则工具报错,主代理可调参重试。
- 技能模板(
.claude/skills/deep-research)保留不动,两者独立。
Profile 兼容性
本插件运行时依赖 DSH 官方 workflow 引擎(ctx.workflows,peer:@deepseek-ai/dsh-workflow)。
请把它安装进提供 workflows provider 的 Profile(如 tui/headless 组合);若 Profile 未声明
该 provider(如部分 Web Profile 组合),Loader 会保持 pending——此时请先在 DSH Hub 登记
workflows provider 关系或改用提供该服务的组合。编译产物(lib/types/index.js)为官方
0810 生产入口,Node 原生可加载。
更多「知识与研究」插件
dsh-browser
作者 lum1104
dsh plugin: Chrome sidebar extension that lets DSH operate your browser directly, no vision capabilities required. 一款 Chrome 侧边栏扩展程序,可让 DSH 直接操控您的浏览器,无需视觉能力。
modsearch
作者 liustack
The web search plugin for DeepSeek Harness, and the search bridge for every model without native web access. Ask the web or X, get structured JSON evidence. | DeepSeek Harness 的联网搜索插件,为不能联网的模型补上搜索。问网页或 X,拿回结构化 JSON 证据(搜索、抓取、引用)。
argo
作者 taxueseek
专门为 agent 打造的 agent 搜索工具,具备多语言搜索能力,覆盖中文/英文/学术/代码/购物/金融/新闻/百科。
dsh-chat-import
作者 nwflower
Import 14+ external agent chat histories (Claude Code, Codex, ChatGPT, Cursor, Gemini, Reasonix, opencode, ZCode, Grok Build, OpenClaw, Pi, Hermes, Kimi CLI, DSH) into DeepSeek Harness as resumable sessions — full-fidelity, reverse export/sync, bundle backup. | 从 Claude Code、Codex、Reasonix 等 Agent 工具导入历史消息到 DeepSeek Harness 并继续对话。
