dsh-qa-isolation:在 DSH 裏用「問答窗口」做單問隔離

前言

在 DeepSeek Harness(DSH)裏,同一會話往往會被用來連問多個互不相關的問題。DSH 的會話是追加式事件溯源日誌,模型能看到的內容與已寫入日誌的內容一致,並沒有內置開關讓某次請求「只看最新一條用戶消息」。內置壓縮(compaction)可以把舊歷史換成摘要,但舊問題會以摘要形式殘留,且每次還要額外調用模型寫摘要。

維護者 ShadowTang98 發佈的客戶端插件 dsh-qa-isolation 走官方支持的 surface 替換 路徑:在每個新問題的第一步,把系統提示之後的舊節點替換成一條短標記,讓模型只看到「系統提示 + 標記 + 當前問題」,同時會話日誌仍完整保留。下面介紹它的定位、安裝與用法。

這是什麼

dsh-qa-isolation 是一個 DSH bundle,附帶名爲 Q&A 的 Agent 預設。核心價值是:在一個會話窗口裏連續提問時,默認每個新問題都在乾淨上下文中回答,互不相關的問答不會在模型側互相污染;需要針對同一話題多輪深入時,可隨時切換到追問模式。

兩種模式:單問默認,追問可切

隔離是默認行爲,不是強制行爲。單問模式爲默認;要連續追問時,可點 composer 上的開關或輸入 /qa follow,此後按正常多輪對話累積上下文;要再隔離回來用 /qa fresh。

模式 模型看到什麼 適用
單問(默認) 只有系統提示 + 當前這一問 一個窗口裏問一堆互不相關的問題
追問 系統提示 + 切換後累積的問答 同一話題需要多輪深入

切換隻影響之後的問題;歷史仍完整保留在會話日誌與界面轉錄裏,可隨時回看。切換到追問模式不會恢復此前已被 surface 替換移出的問答,只保留當時仍在上下文裏的部分——README 中明確說明這是設計使然。

與壓縮相比:零額外模型調用

插件在每個新問題第一步做 surface 替換,與壓縮落檢查點同屬一條持久機制。效果是:

  • 模型輸入側不攜帶上一輪完整問答(單問模式下);
  • 無額外模型調用寫摘要,也無摘要殘留;
  • 重啓與恢復會話後行爲與會話日誌裏記錄的模式一致。

單問模式下跨輪次上下文規模基本恆定(上一問與上一答會隨替換移出)。同一輪內大量工具結果、或單條超長粘貼,由預設掛接的壓縮組兜底。追問模式下上下文會正常累積,長對話交給壓縮處理。

安裝與啓用

需要 DSH 0.2.2-rc.1 或更高,並依賴 dsh-agent-preset、dsh-persona、dsh-tool-web。

方式一(推薦):在任意 DSH 會話中對 Agent 說:

安裝 bundle `github:ShadowTang98/dsh-qa-isolation`

Agent 會通過 plugin_manager 的 install_bundle 完成安裝與啓用。

方式二:若已安裝 dshmarket,可在 DSH 插件頁的 Discover 裏從 GitHub 源添加本倉庫。

方式三(手工):在 profile 目錄(Linux 下一般爲 ~/.dsh/profiles/<profile>/package.json)增加依賴與 bundle,再執行 pnpm install:

{
  "dsh": { "profile": { "bundles": ["dsh-qa-isolation"] } },
  "dependencies": { "dsh-qa-isolation": "github:ShadowTang98/dsh-qa-isolation" }
}

安裝後重啓 DSH(新增的是 Host 組合裏的插件行,熱重載覆蓋不到)。新建會話時在 Agent 預設裏選擇 Q&A。

升級時需注意:pnpm 的 lockfile 會釘住 github:owner/repo 已解析的 commit,重新安裝未必自動升到最新 tag;發版說明建議顯式使用 github:ShadowTang98/dsh-qa-isolation#vX.Y.Z 形式的 ref。

典型用法

操作 效果
默認 單問模式:每個新問題清空模型側上下文,只回答當前這一問
/qa follow 或點 composer 開關 追問模式:保留當前仍在上下文裏的問答
/qa fresh 或點開關 切回單問模式
/qa 查詢當前模式

composer 工具行(模型選擇器旁)會出現「單問 / 追問」開關,僅在 Q&A 預設的會話裏顯示,其他預設自動隱藏。模式以 /qa 命令事件寫入會話日誌,刷新頁面或重開程序會恢復上次所選模式;每個會話各自獨立。

組成與生效範圍

插件由雙半包與一條 Host 註冊行、一個預設聲明構成:index.js(Host:surface 替換、/qa 命令、/dsh-qa/mode 路由)、client.js(瀏覽器:composer 開關)、cordis.patch.yml(註冊與 preset-qa 聲明)。僅對運行 config.preset(默認 qa)所指定預設的會話生效。

適用場景與注意

適合誰:需要在同一個 DSH 窗口裏快速切換多個獨立問題、又不想爲每問開新會話的用戶;或需要在同一話題上臨時開啓多輪追問、再切回單問的用戶。

運行與審計:插件隨當前 DSH 進程與 profile 加載,安裝前宜自行查看倉庫源碼與 MIT 許可證,確認符合你的環境策略。社區目錄 skillhub.cn 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

已知代價與邊界(據 README):

  • 每次 surface 替換會使 provider 前綴緩存從首條歷史 token 起失效,單問場景下每個問題按全量輸入計價,通常可接受。
  • Chat 界面渲染的是事件窗口而非 surface,舊問答在界面上仍可回看,僅模型上下文被清空。
  • composer 開關在切換會話後可能需下次頁面聚焦才刷新,可手動切走再切回。

結尾

dsh-qa-isolation 用 Q&A 預設與可切換的單問 / 追問模式,在不大改 DSH 會話模型的情況下,解決「一窗多問」時的上下文污染問題。進一步瞭解可到 SkillHub 目錄頁 或 GitHub 倉庫 查看說明與 issue。

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

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

小夜