Question Bubbles:在思考流裏把「沒問出口的疑問」浮成氣泡

前言

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 的鯨魚上方)。正文開始輸出或調用工具時,尚未回答的條目會標爲「已自行推進」(變暗,仍可補答)。

兩種疑問捕獲

  1. 提示詞標記協議(默認 markers: true):向 system prompt 掛約 120 tokens 的約定,模型在思考裏寫 ⟦問⟧…⟦/問⟧ / ⟦答⟧…⟦/答⟧;帶標記的氣泡顯示 ✦,自解後快速收起。
  2. 正則兜底:以 ?/? 結尾,或含猶豫詞且不像複述用戶原話;按語言過濾長度,跳過代碼塊與 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 並登記依賴。

  1. 將插件目錄放到 desktop profile 的 node_modules 下,或用 junction/軟鏈接指向源碼目錄:
<DSH_HOME>/profiles/desktop/node_modules/dsh-question-bubbles
  1. 編輯 <DSH_HOME>/profiles/desktop/package.json,在 bundles 與 dependencies 中登記:
{
  "dsh": { "profile": { "bundles": [ "...", "dsh-question-bubbles" ] } },
  "dependencies": { "dsh-question-bubbles": "link:<該目錄的絕對路徑>" }
}
  1. 重啓 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
羽毛球分组比赛记分
小程序二维码

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

小夜