前言¶
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 答案。
操作步驟可概括爲:
- 按上文安裝並重啓 DSH。
- 在對話中等待交互式問答彈窗出現。
- 點選選項,在選項下方輸入補充說明(可選)。
- 單選:回車或點「下一題」進入下一題;最後一題回車提交。多選:按彈窗原有流程勾選與提交。
若官方彈窗組件在後續 DSH 版本中內部結構變化,可能需要同步調整插件內 src/client/carrier.ts 與 src/client/composer.tsx。
適用場景與注意¶
適合誰
- 需要在「選 A / 選 B」之外,把與具體選項綁定的細節一次性交給模型的 DSH 用戶與插件作者。
- 希望零協議改動、沿用現有
answersJSON 的多選 / 單選流程。
安裝前請注意
- 插件以當前 dsh 進程權限在客戶端運行;安裝前應自行查看 GitHub 源碼 與 LICENSE,確認符合你的安全與合規要求。
- SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係;插件星標與維護節奏以倉庫爲準。
單選場景需適應「點選後不自動跳題」的交互變化;若你依賴原版「點選即下一題」的極速填答,啓用前先在測試環境走一遍完整題目流。
結尾¶
dsh-question-note 在不動宿主協議的前提下,把「選項 + 按選項補充說明」收進同一次 ask_user_question 提交,適合需要結構化選擇又不願丟失上下文的 Harness 工作流。