前言¶
在 DeepSeek Harness(DSH)里長時間改代碼、排錯時,常見現象是同一會話反覆試相近思路:每一步看起來都在推進,卻遲遲出不了結果。宿主裏已有 sessionController.prompt、send_message 等跨會話能力,但前者會把消息標成用戶本人發言,後者又受父子會話鏈限制,平級會話之間很難「請另一個人從頭看一遍」而不打斷、不冒充。
dsh-second-opinion(維護者 xfgil,GitHub 分類爲工作流插件)針對的是這一缺口:求助方在自己的工具調用裏同步等待,顧問在獨立會話裏分析,答案作爲工具結果回到原會話;用戶也不必轉述問題。下面介紹它是什麼、怎麼裝、怎麼用,以及使用時要注意什麼。
這是什麼¶
一句話:DSH 跨會話「第二意見」插件——會話卡住時,通過 ask_advisor 把問題交給自動創建的顧問會話,顧問答完後答案 inline 返回;每個求助會話有專屬顧問(標題爲「輔助 + 求助會話標題前三字」),同一問題還可指定 advisor: 2、3 再要完全獨立的第二個、第三個顧問。
倉庫:github.com/xfgil/dsh-second-opinion
社區目錄:skillhub.cn/plugins/xfgil/dsh-second-opinion
許可證:MIT;當前 package 版本 0.1.0;Node 要求 >= 22(與 package.json 的 engines 一致)。README 寫明在 DSH 0.2.0-rc.2 上實測。
和宿主現有通道的差別¶
插件 README 用表格說明了爲什麼不直接用兩條現成路:
| 通道 | 問題 |
|---|---|
sessionController.prompt |
能喚醒會話,但來源被硬編碼爲 kind: "user",等於冒充用戶 |
send_message |
授權限制在父子鏈,夠不着兩個平級會話 |
本插件繞開「跨會話投遞」:求助方在工具調用裏阻塞等待,結果天然屬於調用方會話,不投遞、不冒充。等待期間主會話會停住——作者認爲這符合「卡住就該等外部判斷」的語義。
核心功能¶
求助方工具¶
ask_advisor:把明確問句(必填 question)交給顧問;可選 situation、tried、context;advisor 默認爲 1,傳 2、3 使用獨立槽位。成功返回含 answer、advisor.sessionId、elapsedMs 等;失敗或超時返回 { ok: false, ... },不拋異常。
advisor_status:查看本會話顧問狀態;reset: true 丟棄記錄(下次新建映射,不刪舊會話);all: true 可列出各求助會話的顧問。
顧問側工具(僅插件創建的顧問會話可調用)¶
advisor_watch:只讀查看所輔助主會話的實況(sessionController.inspect,不 resume Agent);可選 detail: "tools" 只看近期工具調用。
advisor_note:給主會話留便條;主會話下次調用 ask_advisor 或 advisor_status 時消費式讀取,默認隊列上限 5 條。
觸發方式¶
- 模型自行判斷卡住(反覆改同一處、同類錯誤、用戶說「換個思路」等)並調
ask_advisor。 - 用戶口頭說「問問顧問」,會話同樣調工具。
- 用戶打開顧問窗口,讓顧問
advisor_watch/advisor_note,不打斷主會話。
插件不做自動監聽打轉行爲;觸發需顯式。
安裝與啓用¶
安裝命令以 README「安裝」節爲準。本地鏈接:
dsh plugin --profile <你的profile> add link:/絕對路徑/dsh-second-opinion
若已從 npm/GitHub 發佈渠道安裝:
dsh plugin --profile <你的profile> add dsh-second-opinion
裝好後通常無需重啓;可用 /status 或讓模型調一次 advisor_status 確認裝載。
配置寫在 profile 的 cordis.patch.yml(不導出 Config schema,運行時讀取)。常用項包括:enabled(默認 true)、waitMs(默認 600000,超時只放棄求助方等待,不殺顧問)、cwd(默認跟隨求助方)、advisorLabel(默認「輔助」)、maxAdvisors(默認 9)等。完整鍵與默認值見倉庫 README「配置」表。
典型用法¶
README 給出的最小驗證:不必真卡住,讓模型調用 ask_advisor,例如:
question: "2 的 10 次方是多少?"
檢查返回的 advisor.title 是否在會話列表裏形如「輔助 + 標題前三字」;打開顧問會話應能看到自我介紹與提問;求助方工具結果裏的 answer 即顧問正文。
實際排錯時,應把 question 寫成明確問句,並在 tried 裏寫已失敗的路徑,避免顧問重複你的死路。需要第二個獨立視角時:
ask_advisor({ question: "...", tried: "...", advisor: 2 })
適用場景與注意¶
適合誰:已在用 DSH、希望在不冒充用戶、不依賴父子 relay 的前提下,爲單個會話增加外部顧問視角的開發者。
權限與安全:插件以當前 DSH 進程權限運行,會自動創建會話並把問題內容寫入顧問會話;安裝前應閱讀源碼與 MIT 許可證,確認符合隱私與合規預期。狀態默認落在 $DSH_HOME/second-opinion/state.json(無 DSH_HOME 時退回 ~/.dsh)。
穩定性:README 免責聲明寫明依賴宿主內部接口(如 resolveAgent、followup、snapshotEvents 等),非穩定 API,DSH 升級後可能失效;作者非官方,按「現狀」提供。
生態說明:DSH 社區插件目錄(如 SkillHub)是獨立站點,與 DeepSeek / 幻方無官方從屬關係;本文介紹的是社區維護的 xfgil/dsh-second-opinion,GitHub 上當前星標數爲 1。
結尾¶
卡住時用一次工具調用換獨立會話的第二意見,答案直接回到求助方工具結果裏,顧問命名也在列表裏標明「在輔助誰」。需要細節、配置表與實現說明時,以倉庫 README 爲準。
- 目錄頁:https://www.skillhub.cn/plugins/xfgil/dsh-second-opinion
- GitHub:https://github.com/xfgil/dsh-second-opinion