用 dsh-deep-research 給 DeepSeek Harness 補上自適應深度研究閉環

前言

DeepSeek Harness(簡稱 dsh)是 DeepSeek 開源的 Agent 運行時。官方倉庫把架構寫成 Everything is a Plugin:模型、工具、會話、界面都以 Cordis 插件的形式組合。倉庫目前仍標 developer preview,兼容性可能隨時變。社區裏已經有若干獨立站點在收錄帶 dsh-plugin topic 的倉庫;本文依據的 DeepSeek Harness 插件庫 是其中之一,和 DeepSeek / 幻方沒有官方從屬關係,不要把它當成官方應用商店。

在這種架構裏,一次「深度調研」如果只靠對話裏堆提示詞,很容易變成固定流水線:拆問題、搜一圈、寫報告、收工。主題簡單還好;主題一複雜,不是搜不夠,就是搜到停不下來。dsh-deep-research 把這件事做成擴展插件:掛在官方 workflow 引擎上,按控制論和信息論的思路跑自適應研究閉環。本文按目錄詳情頁、GitHub README 和倉庫源碼交叉覈對後整理。

這是什麼

dsh-deep-research 是一款工作流與自動化插件,由 GitHub 組織 omdsh-dev 維護。npm 包名是 @dsh-external/dsh-deep-research,倉庫在 omdsh-dev/dsh-deep-research,許可證 MIT(版權聲明爲 2026 dsh2026)。目錄頁 2026-08-11 收錄,主要語言 TypeScript,package.json 裏的版本是 0.1.0。GitHub 在 2026-08-17 顯示 14 stars;同一天社區目錄頁仍寫 11 stars,星標以倉庫頁面爲準。

它和 skill 體系是分開的:不註冊進 ctx.skills,而是向模型暴露一個工具 deep_research。觸發靠工具描述裏的場景詞(深度研究、調研、多源信息綜合分析、研究報告、文獻蒐集),對話裏直接說人話即可。編排走官方 workflow 引擎(ctx.workflows / @deepseek-ai/dsh-workflow-workerthread),搜索和抓取繼續用內置的 web_search / web_fetch。README 的原話是:插件零網絡邏輯、零自研編排。

GitHub 上還有名稱相近的 dsh-deepresearch(少一個連字符),那是另一個項目,安裝時不要混用。

核心功能

倉庫 README 把設計寫成「不是固定提示詞流水線,而是活的、自適應的研究閉環」。源碼 src/index.ts 裏的 workflow 腳本按階段執行,和文檔一致。

規劃:先定答案空間,再拆子問題

規劃子代理不會一上來就搜。它先寫 scope(這份研究要支撐什麼判斷或決策),再枚舉信息維度,把每個子問題映射到一個維度,並給出驗收標準 acceptance。覆蓋不到的維度寫進 coverage_gaps,作爲待驗證的盲區假設,而不是悄悄丟掉。

控制論裏的說法是參考信號校準:目標設錯了,後面閉環再勤奮也是白費。必要多樣性定律對應的是:子問題集合覆蓋不住主題空間,後面一定有盲區。

如果調用時已經傳入 questions(每行一個,或 1. 2. 3. 編號),規劃階段會跳過,直接並行研究。

研究:按邊際信息增益停下來

研究子代理維護三態證據:confirmed / uncertain / gaps。每一輪的動作是:針對高不確定性的點預測能新增什麼 → 用 web_search / web_fetch 取證 → 更新證據 → 做邊際增益驗證。連續一輪沒有新增,子代理自己停;整次運行還有輪次硬上限。

研究階段是閉環再規劃,不是一次扇出:

  1. 第 1 輪並行研究全部子問題(以及規劃聲明的盲區偵察)。
  2. 每輪結束收集 high-priority 缺口,自動派發下一輪補充研究。
  3. 簡單主題一輪收斂,複雜主題自動擴展,直到某一輪邊際增益約爲 0,或達到輪次上限。

輪次上限由 depth 決定:1 初步最多 2 輪,2 深入(默認)最多 3 輪,3 窮盡最多 4 輪。源碼裏寫成 depth + 1,且 depth 只能是 1、2、3。

每輪併發默認 maxParallel = 4。超出併發上限的子問題留在隊列裏後續處理,不會靜默丟棄。

綜合與可選審查

綜合子代理默認開啓(synthesize: true)。它按率失真的思路把證據壓縮成最終報告:只保留對結論有區分度的信息,並保留置信度、矛盾和已驗證盲區。synthesize: false 時只返回各子問題的三態證據,由主代理自己寫報告。

review: true 時額外跑對抗性審查子代理:抽查引用(URL 可達性 / 是否真能支撐論斷)、做覆蓋度審計、標註矛盾和過度自信。默認關閉。

和官方引擎綁在一起的部分

源碼把插件聲明爲 inject: ['tools', 'workflows'],工具執行時調用 ctx.workflows.start()。因此它會複用官方引擎已有的能力:worker 隔離、併發和總數上限、取消、進度事件、wf-runs 記錄。exec.signal 會傳入 workflow run,取消時子代理隨之中止。單個子問題研究失敗只在該節標註;規劃失敗則整個工具報錯,主代理可以調參重試。

插件不碰 TUI:沒有 tuiPrompt、overlay 或 system-prompt 注入。README 還保留了一份技能模板 .claude/skills/deep-research,和這個插件互相獨立。

安裝與啓用

目錄詳情頁給出的安裝命令是:

dsh plugin add github:omdsh-dev/dsh-deep-research

需要可復現安裝時,按目錄頁的寫法固定 commit 哈希:

dsh plugin add github:omdsh-dev/dsh-deep-research#<commit>

<commit> 換成倉庫裏實際審覈過的提交哈希,不要留佔位符。

README 補充了按 profile 安裝的寫法。包聲明瞭 dsh.bundle.patchcordis.patch.yml),可以裝進 tui / headless / web 或自建 profile;裝完後重啓對應 profile,工具 deep_research 纔會注入:

dsh plugin --profile <profile> add git+https://github.com/dsh-external/dsh-deep-research.git
dsh --profile <profile>

這裏有一處需要對照倉庫現狀:README 仍寫 GitHub 組織 dsh-external,當前訪問 dsh-external/dsh-deep-research 會跳轉到 omdsh-dev/dsh-deep-research,二者是同一倉庫。安裝時優先用目錄頁上的 github:omdsh-dev/dsh-deep-research。若本機 git 把 https 重寫成 ssh(全局 insteadOf),README 建議改用上面的 git+https:// 形式。dsh plugin 提示需要 allowBuilds 時,按提示在 $DSH_HOME/profiles/<profile>/pnpm-workspace.yaml 加一行即可。

卸載用包名,不是倉庫名:

dsh plugin --profile <profile> remove @dsh-external/dsh-deep-research

依賴方面:profile 的組合需要包含官方 workflow 引擎和內置 web 工具。README 寫明 dsh 官方 base 組合自帶,不必額外安裝;peer 依賴(@deepseek-ai/dsh-tools@deepseek-ai/dsh-workflowcordis)由組合提供。package.json 要求 Node ^22.19.0 || >=24.0.0

Profile 兼容性:請裝進提供 workflows provider 的組合(README 舉例 tui / headless)。部分 Web Profile 如果未聲明該 provider,Loader 會保持 pending,需要先在 DSH Hub 登記關係,或改用提供該服務的組合。

典型用法

工具由模型按描述自動調用。下面幾句來自倉庫 README,可以按原樣說:

深度調研一下 MCP 生態現狀,重點對比幾家主流實現,出一份帶引用的報告
按這份問題清單做研究:1. ... 2. ...

已有清單時會跳過自動拆解,直接並行研究。

調研一下 A/B 方案,purpose 是決定我們選哪個

用途寫得越清楚,規劃階段的答案空間越準。複雜主題會自動加輪次;想更嚴可以傳 depth: 3,要引用糾錯和覆蓋度審計就傳 review: true

工具參數(以 README 和 src/index.ts 爲準):

參數 必填 說明
topic 研究主題
purpose 要支撐的判斷或決策;缺省時規劃代理會聲明假設用途
questions 已有問題清單;提供則跳過自動拆解
depth 1 初步 / 2 深入(默認) / 3 窮盡
synthesize 是否出最終報告,默認 true
review 對抗性審查,默認 false

可選配置(裝進 profile 後按插件配置填寫,全部可省略):

Key 默認 說明
subagentProvider 引擎默認 spawn 子代理 provider
maxParallel 4 每輪研究併發上限
maxTotalAgents 引擎上限 整次運行子代理總數上限
plannerModel / researcherModel / synthesizerModel / reviewerModel 繼承父配置 按角色換模型

README 的成本建議是分層:規劃、綜合用強模型,研究用便宜模型。未配置的角色繼承父路由。

適用場景與注意事項

比較適合這些情況:

  • 需要多源交叉驗證、帶引用的調研報告,而不是單次搜索摘要
  • 主題邊界還不清楚,希望先定答案空間再拆維度
  • 已經有問題清單,只想並行取證
  • 願意爲嚴謹性打開 review,接受多一輪審查成本

需要先想清楚的限制:

  • 插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。目錄頁寫明:安裝前請檢查源代碼倉庫和許可證;需要可復現安裝時固定 commit 哈希。
  • 它不是通用工作流引擎,只註冊 deep_research 這一個工具。
  • 搜索能力完全依賴宿主內置的 web_search / web_fetch,插件自己不聯網。
  • 部分 Web Profile 缺 workflows provider 時不會真正加載。
  • 深度研究必然消耗多輪子代理和檢索;depth: 3 加上 review: true 會更貴。倉庫建議用模型分層控制成本,本文沒有獨立評測數據。
  • DeepSeek Harness 仍處於 developer preview,官方倉庫聲明會有破壞性變更。插件版本目前是 0.1.0,接口和 profile 組合都可能跟着宿主一起變。

小結

dsh-deep-research 做的事情很窄:把一次深度研究從「提示詞流水線」換成掛在官方 workflow 引擎上的自適應閉環。規劃先定答案空間,研究按信息增益停下來,綜合保留不確定性,審查可選。社區目錄和 GitHub 都能裝,優先用目錄頁這條命令:

dsh plugin add github:omdsh-dev/dsh-deep-research

目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-deep-research/

GitHub:https://github.com/omdsh-dev/dsh-deep-research

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

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

小夜