前言¶
DeepSeek Harness(DSH)桌面端在 agent 執行過程中,模型往往會在 reasoning 裏猶豫、自問,卻很少把這些話寫進正式對話。你只有事後翻思考記錄,纔可能發現它其實卡在某個拍板點上。常見做法是盯着日誌或等任務結束再補一句——會打斷當前步,也容易錯過「剛卡住」的那一瞬間。
Question Bubbles(dsh-question-bubbles)面向這類場景:Host 訂閱 agent/assistant-stream 的 reasoning-delta,從思考流裏抽出疑問,用一小段客戶端腳本畫成氣泡;你點氣泡作答時走 steer,在下一個 step 邊界併入會話,而不是中途插話。下面按定位、依賴、安裝、用法與機制說明如何接入。
這是什麼¶
dsh-question-bubbles 是 DSH 桌面端的一個 bundle 插件(維護者 3341284397-max,當前版本 0.3.0,許可證 MIT)。它解決的是:模型思考裏的隱性疑問可見、可答,且儘量不破壞任務節奏。
要點(與 README 一致):
- 不打斷 —— 氣泡旁路顯示,不進入對話上下文。
- 不落盤 —— 疑問只在內存裏,重啓 DSH 即清空(刻意設計:價值在於「被恰好看見」)。
- 就地作答 —— 點氣泡輸入一行,經
steer排隊到下一輪。 - 依賴鯨魚掛件 —— 需
dsh-whale-widget作定位;未安裝時僅有右下角圓點,氣泡無錨點。
插件分類爲客戶端側能力,與 DSH「一切皆插件」的 bundle 形態一致;社區目錄見 SkillHub 條目,源碼在 GitHub。
核心功能¶
思考流訂閱與展示¶
Host 側處理實時思考流,客戶端通過注入腳本把疑問渲染爲氣泡(默認浮在 Balance Whale Widget 的鯨魚上方)。正文開始輸出或調用工具時,尚未回答的條目會標爲「已自行推進」(變暗,仍可補答)。
兩種疑問捕獲¶
- 提示詞標記協議(默認
markers: true):向 system prompt 掛約 120 tokens 的約定,模型在思考裏寫⟦問⟧…⟦/問⟧/⟦答⟧…⟦/答⟧;帶標記的氣泡顯示 ✦,自解後快速收起。 - 正則兜底:以
?/?結尾,或含猶豫詞且不像複述用戶原話;按語言過濾長度,跳過代碼塊與 URL 等,同義句合併,單步最多 6 條、每分鐘 20 條。
多語種與主題¶
語言模式支持 auto(跟隨當前思考語言)、all,或鎖定 zh / en / ja / ko / ru。界面主題與 DSH 一致(深/淺/跟隨系統)。面板文案隨瀏覽器語言,不支持語言回落英文。
本地 HTTP 與作答路徑¶
路由掛在 Host 迴環上(拒絕跨站 Sec-Fetch-Site,有 Origin 時要求同源),例如:
GET /dsh-qb/client.js—— 客戶端腳本GET /dsh-qb/events—— SSE(hello/q/resolve/config/counters)POST /dsh-qb/answer——{ id, text },經sessionController.prompt(mode: 'steer')注入
完整路由表見項目 README。
安裝與啓用¶
README 寫明爲純本地 bundle,無構建步驟;沒有 dsh plugin add github:… 一類命令,需手動放入 profile 並登記依賴。
- 將插件目錄放到 desktop profile 的
node_modules下,或用 junction/軟鏈接指向源碼目錄:
<DSH_HOME>/profiles/desktop/node_modules/dsh-question-bubbles
- 編輯
<DSH_HOME>/profiles/desktop/package.json,在 bundles 與 dependencies 中登記:
{
"dsh": { "profile": { "bundles": [ "...", "dsh-question-bubbles" ] } },
"dependencies": { "dsh-question-bubbles": "link:<該目錄的絕對路徑>" }
}
- 重啓 DSH(Host 僅在啓動時讀取 bundle);改客戶端腳本後刷新頁面即可熱更新。
bundle 通過 package.json → dsh.bundle.patch → cordis.patch.yml 自我聲明。安裝前請自行審閱源碼與 MIT 許可;插件以當前 DSH 進程權限運行。
前置依賴:DSH 桌面端本體,以及 dsh-whale-widget(氣泡錨點與中鍵打開面板的入口)。
典型用法¶
面板與氣泡交互¶
- 中鍵點鯨魚(或右下角 💭)打開面板:總開關、氣泡數量上限(1–9)、語言模式、主題,以及出現 / 你答了 / 自己往下走三個計數器。
- 點氣泡 → 輸入 → 「發過去」(
steer)或「算了」;右鍵展開全文,右上角 × 可關閉。 - 30 秒無人操作氣泡會淡出;你已回答的會亮到下一輪結束。
持久配置寫在 <DSH_HOME>/dsh-question-bubbles/config.json:
{ "enabled": true, "maxBubbles": 9, "langMode": "auto", "markers": true }
也可 POST /dsh-qb/config 更新 enabled / maxBubbles / langMode / markers。
驗證渲染¶
GET /dsh-qb/demo?text=… 可塞一條假疑問,用於檢查客戶端渲染而不必等真實思考流。
Host 自測(不啓動 DSH)¶
倉庫提供 Node 測試,覆蓋注入、SSE、/state、/answer、標記協議等:
node test/host.test.mjs
適用場景與注意¶
適合:你經常開着 DSH 桌面端跑 agent,且已裝鯨魚掛件;希望在模型「默默糾結」時輕量補一句拍板,又不想中斷當前 step。
務必注意(README「已知限制」):
- 正則兜底會漏報或誤報;標記協議更好,但依賴模型遵守約定。
- 答案只在下一 step 邊界生效,回得太晚可能幫不上正在卡的那一步。
- 模型不流式輸出
reasoning時不會有氣泡。 - 所有 agent 共用一條 SSE,氣泡暫不區分來源會話。
- 無鯨魚掛件時體驗退化爲右下角圓點。
社區目錄的星標數會變動;接入前以 GitHub 倉庫與本地 package.json 版本爲準。
結尾¶
Question Bubbles 把 DSH 思考流裏的隱性疑問接到界面旁路:看見、點選、用 steer 排隊注入,而不是把整條 reasoning 倒進對話。若你在做 Harness 周邊或客戶端插件,可對照其 SSE、steer 與標記協議實現。
- 目錄頁:https://www.skillhub.cn/plugins/3341284397-max/dsh-question-bubbles
- 源碼:https://github.com/3341284397-max/dsh-question-bubbles