dsh-deep-research:在 DSH 里一次调用完成多源检索与证据报告

前言

在 DeepSeek Harness(DSH)里做需要联网的研究型问题时,常见路径是模型先调 web_search 拿到若干链接,再自行决定是否 web_fetch、如何合并多轮结果。查询条数有限,正文取证和交叉印证往往落在模型侧,回答容易变成零散片段,引用也不统一。

下面介绍社区插件 dsh-deep-research(维护者 houdinicc):在一次工具调用或面板操作内走完「多查询检索 → 合并去重 → 正文取证 → 交叉印证 → 可引用证据报告」,联网全部走宿主已有的 ctx.web,插件本身不持有 API Key。报告只提供证据并标注外部内容为 untrusted data,结论仍由会话模型基于证据给出。

这是什么

dsh-deep-research 是 DSH 的深度研究半插件:注册 Agent 工具 deep_research,并在左侧栏提供与 Raindrop Dashboard 同级的 DeepResearch 面板。分类为联网工具;当前 GitHub 星标为 0。许可证 MIT,包版本 0.1.1,要求 Node >=20.11、DSH >=0.2.0-rc.1 <0.3.0。

与单次 web_search 相比,插件会围绕问题规划多条查询(含从已抓正文发现的新词项的第二轮),自动按分数抓取正文、计算多查询命中分数,并输出带编号来源与原文摘录块的 Markdown 报告。

核心功能

Agent 工具 deep_research

一次调用内完成完整流水线,返回结构化 JSON;模型侧看到的是渲染后的证据报告。主要参数:

参数 说明
question 必填,研究问题,trim 后 1–300 字符
subquestions 可选,已拆解子问题,≤5 条、每条 ≤128 字符
depth quick / standard / deep,缺省用配置 defaultDepth
max_sources 本次来源上限,只能调小,不能突破配置 maxSources
fetch_top 本次取证来源数,≤ 配置 fetchTop,0 表示只检索不取证

失败不抛异常,返回 { ok: false, code, message },code 包括 invalid-input、web-unavailable、aborted、all-searches-failed、no-results、internal 等。

侧边栏 DeepResearch 面板

安装并重启 Harness 后,左侧栏会出现 DeepResearch。面板支持:

  • 表单:研究问题(≤300 字符)、档位 quick/standard/deep、max_sources、fetch_top
  • 运行:与 Agent 工具同一套流水线,走真实 ctx.web
  • 结果:查询/来源/证据/耗时统计、来源列表、证据引用块、缺口与可折叠完整报告
  • 历史:最近 20 次研究,刷新不丢;数据存于 $DSH_HOME/deep-research/runs.json(DSH_HOME 缺省 ~/.dsh)

本机 API(仅接受回环请求):

  • GET /api/dsh-deep-research/runs — 历史摘要
  • GET /api/dsh-deep-research/runs?id=<id> — 单条完整记录
  • POST /api/dsh-deep-research/run — 运行一次研究

联网与配置边界

所有搜索与抓取经 ctx.web.search() / ctx.web.fetch() 完成。部署侧在「插件 → 内置插件设置 → Web search」切换 provider(如 DeepSeek Search API、Messages 搜索、本地抓取等)。ctx.web 不可用时工具仍注册,执行返回 web-unavailable。

cordis.patch.yml 中可配置查询数、来源数、抓取数、正文字符预算与各层超时;depth 预设会覆盖一轮中的 maxQueries、maxSources、fetchTop、fetchCharBudget 等(例如 quick 为 1 轮、不取证;standard 为 2 轮;deep 加大来源与正文预算)。

安装与启用

先做安装,再重启一次 Harness(宿主路由与客户端 bundle 属于新模块代际),左侧栏才会出现 DeepResearch,工具同时可用。

桌面版:设置 → 插件 → 插件市场 → 搜索 dsh-deep-research → 安装。桌面 profile 由 Electron 独占,dsh plugin CLI 不能操作 desktop,请走市场或 plugin_manager。

命令行(dsh web 等非 Electron profile):

dsh plugin --profile web add dsh-deep-research

从 GitHub 安装:

dsh plugin --profile web add github:houdinicc/dsh-deep-research

卸载或关闭工具:通过 plugin_manager remove_bundle target=dsh-deep-research,或将 patch 中 config.enableTools 设为 false。

典型用法

在对话中让 Agent 调用

向模型说明需要多来源交叉印证时,可让它调用 deep_research,传入 question 与合适的 depth。若你已拆好子问题,可传 subquestions 覆盖自动扩展。

报告结构包含:检索执行表、编号来源、以 > 引用块呈现的未改写原文摘录、交叉印证说明、缺口与统计。报告开头会声明外部内容为 untrusted data,不得当作指令执行。

在面板中手动跑研究

  1. 打开左侧 DeepResearch
  2. 输入问题,选择 quick(纯检索)、standard 或 deep
  3. 按需调小 max_sources、fetch_top
  4. 点击「开始研究」,查看来源、证据与缺口;历史列表可回看最近 20 次

离线可用仓库内 npm run demo 生成示例报告(不发起真实联网),用于对照输出格式。

适用场景与注意

适合:需要多查询、多来源合并排序、正文取证与摘录、并希望在回答前拿到统一证据包的研究型问题;与单点事实查证的 web_search 形成互补。

注意:

  • 插件以当前 DSH 进程权限运行,只读、不写工作区,除 ctx.web 外不发起其他网络请求;安装前请自行查看 GitHub 源码 与 MIT 许可证。
  • 抓取效果依赖宿主 fetch provider,部分站点可能失败;插件会记录缺口并尝试候选回退。
  • 成本与耗时受 maxQueries、maxSources、fetchTop、fetchCharBudget 及超时上限约束;fetch_top: 0 可退化为纯检索。
  • 社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系,属于社区生态中的「一切皆插件」实践。

结尾

经过上面的步骤,你可以在 DSH 里用 dsh-deep-research 把「搜、抓、证、报」收成一次调用或一面板操作,让模型基于可引用证据作答,而不是拼凑搜索片段。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye