dsh-question-note:爲 DSH 交互式問答選項增加補充說明

前言

DeepSeek Harness(DSH)裏,智能體通過 ask_user_question 彈出交互式問答,讓用戶點選選項或填寫自定義內容。選項文字往往只能概括意圖,具體約束、例外情況或上下文仍要靠對話裏再補一句——既打斷節奏,模型也未必在下一輪準確關聯到剛纔的選擇。

下面介紹的 dsh-question-note 是社區維護的客戶端插件:用戶點選某個選項後,在該選項正下方出現可選的補充說明輸入框;填寫內容與選中選項一併傳給模型,無需改協議、無需動宿主校驗邏輯。

這是什麼

  • 倉庫: buaaflyaway/dsh-question-note
  • 目錄頁: SkillHub 插件頁
  • 維護者: buaaflyaway(npm 包作者字段爲 NedFlanders)
  • 定位: DSH「交互式問答」彈窗增強;純瀏覽器端 Cordis 插件,不接管 plan-review、審批、超時續答等官方流程。

插件在保留官方 QuestionComposer 樣式與交互的前提下,爲每個被選中的選項提供獨立的補充輸入區域。

核心功能

與原版一致的部分

  • 彈窗樣式、功能、交互基於官方組件的移植,沿用同一套 CSS 令牌與幾何。
  • 底部「其他(自定義輸入)」行保留,仍是獨立的自由回答入口(單選打字清空已選、多選與勾選並存等語義與原版相同)。
  • 計劃審查類卡片、審批卡片、超時後續答、已結算回答回看等由官方組件處理,本插件不接管。

按選項獨立的補充說明

  • 每個被選中的選項下方各有一個自己的補充輸入框,互不共享;取消勾選時輸入框隱藏,文字保留,重新勾選會恢復。
  • 單選題換選選項時,各選項各記各的,不會混用。

提交給模型的答案格式

提交時 JSON 結構不變:

{
  "answers": [
    {
      "id": "...",
      "selected": ["選項文字"],
      "custom": "…"
    }
  ]
}

custom 的組裝規則(README 原文):

  • 單選:custom 爲補充文本原文。
  • 多選:每個填寫了補充的選項佔一行,格式爲「選項文字: 補充」;底部自由回答行若有內容,追加在最後。
  • 未填補充說明:行爲與原版完全一致。

與原版唯一的行爲差異

啓用後,單選點選項不再自動跳到下一題(原版會自動跳轉,用戶來不及填補充說明)。用戶需在該題輸入框內回車,或點「下一題」按鈕;最後一題回車即提交。

實現要點(二次開發參考)

  • 在瀏覽器端向 conversation.composer 鏈式槽以 priority: -10 註冊增強組件(官方默認爲 0);鏈選舉規則爲數值小者先跑、第一個 select 非 null 者勝出,從而優先渲染通用問題卡。
  • 鴨子類型失配時 select 返回 null,安全降級爲官方彈窗。
  • 宿主端 userQuestions.answer() 仍只校驗「每題恰好回答一次」,不禁止 selected 與 custom 並存。

安裝與啓用

面向 DSH 0.2.0-rc 族(@deepseek-ai/* peer ^0.2.0-rc.1)。npm 包當前版本爲 0.3.0,許可證 MIT,Node >= 20。

從源碼構建(可選):

pnpm install
pnpm run build     # 產出 lib/index.js(宿主半)與 lib/client.js(瀏覽器半)
pnpm run check     # 產物語法檢查

安裝到 desktop 配置(會寫入 dsh.profile.bundles,需重啓 DSH 生效):

dsh plugin --profile desktop add <本目錄路徑或 npm 包名>

安裝命令以 README 爲準;包名可用 npm 上的 dsh-question-note。

典型用法

本插件不新增 CLI 或獨立配置項,啓用後凡觸發 DSH 標準「交互式問答」彈窗的場景都會生效——例如智能體工具調用 ask_user_question、用戶在彈窗中點選選項並在下方補充說明,提交後模型收到帶 custom 的同一 JSON 答案。

操作步驟可概括爲:

  1. 按上文安裝並重啓 DSH。
  2. 在對話中等待交互式問答彈窗出現。
  3. 點選選項,在選項下方輸入補充說明(可選)。
  4. 單選:回車或點「下一題」進入下一題;最後一題回車提交。多選:按彈窗原有流程勾選與提交。

若官方彈窗組件在後續 DSH 版本中內部結構變化,可能需要同步調整插件內 src/client/carrier.ts 與 src/client/composer.tsx。

適用場景與注意

適合誰

  • 需要在「選 A / 選 B」之外,把與具體選項綁定的細節一次性交給模型的 DSH 用戶與插件作者。
  • 希望零協議改動、沿用現有 answers JSON 的多選 / 單選流程。

安裝前請注意

  • 插件以當前 dsh 進程權限在客戶端運行;安裝前應自行查看 GitHub 源碼 與 LICENSE,確認符合你的安全與合規要求。
  • SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;插件星標與維護節奏以倉庫爲準。

單選場景需適應「點選後不自動跳題」的交互變化;若你依賴原版「點選即下一題」的極速填答,啓用前先在測試環境走一遍完整題目流。

結尾

dsh-question-note 在不動宿主協議的前提下,把「選項 + 按選項補充說明」收進同一次 ask_user_question 提交,適合需要結構化選擇又不願丟失上下文的 Harness 工作流。

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

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

小夜