dsh-ask-template:用 /ask 零模型調用寫入五段結構化提問模板

前言

在 DSH(DeepSeek Harness)Web 裏向模型提複雜需求時,若背景、約束、輸出格式寫不全,首輪迴答往往要來回補問。社區裏常見做法是走 skill,讓模型調用 ask_user_question 逐項彈表——功能完整,但會多一次模型往返。若你更習慣自己在輸入框裏一次性填好再發送,就需要一條不經過模型的本地路徑。下面介紹客戶端插件 dsh-ask-template(維護者 maboloshi):在輸入框敲裸 /ask 並回車,瀏覽器把固定五段空白模板寫進草稿,全程 0 次模型調用;填完再按回車,與普通用戶消息無異。

這是什麼

dsh-ask-template 是 DSH 客戶端類插件(當前 GitHub 星標 0),版本 0.1.0,MIT 許可。倉庫同時交付兩半能力,共用同一套五段字段:

半 載體 手勢 誰在彈表 模型調用
客戶端命令(本插件主體) DSH 客戶端插件 裸 /ask + 回車 瀏覽器本地寫草稿 0 次
配套 skill ask-user 技能文件 /ask-user 或 / 菜單 模型調 ask_user_question 有

想省模型往返、自己打字填——用 /ask;想讓 agent 在對話裏逐項問、點選即可——用 /ask-user(skill,需單獨放置 SKILL.md)。

DSH 生態理念是「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

核心功能

裸 /ask 的工作方式

敲 /ask 且後面沒有空格參數時,全程不碰模型:

  1. / 命令源在裸 token /ask 上命中本插件的 action 型命令貢獻;
  2. 消費 /ask 詞,執行純客戶端回調,不提交任何消息;
  3. 回調通過 ctx.sessions.scope(sessionId) 取會話作用域,再用 ctx.conversation.input.for(actx).setDraft(模板) 把空白模板寫入輸入框草稿;
  4. 你填完按回車——此時纔是普通用戶消息,模型只看到填好的五段表。

/ask 參數…(帶空格)不命中命令,會照舊當普通文本發出,skill 那條路仍可用。

五段模板

【背景情況】

【核心問題】

【約束與要求】

【輸出格式】
未提供

【已有嘗試】
未提供

必填三段(背景、核心問題、約束與要求)留空等你填;選填兩段預填 未提供,不動即表示該項最終取值爲「未提供」,無需刪改。

實現側要點(維護者參考)

  • 瀏覽器半爲手寫 CJS 閉包 bundle,無 React、無構建步驟、無運行時依賴,改完刷新頁面即生效。
  • 回車命中 action 時,提交機器記爲 handled 且不產生 effect,草稿不會被「提交後清空」邏輯喫掉。

安裝與啓用

插件以當前 dsh 進程權限運行;安裝前請自行查看倉庫源碼與 LICENSE(MIT)。

1. 客戶端命令(插件)

本地 link 安裝(README 原文):

dsh plugin --profile web add link:<本倉庫路徑>

該命令經 pnpm 安裝,並自動把 dsh-ask-template 追加進 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles,裝完刷新 DSH Web 頁面。

發佈後也可從 npm 源安裝:

dsh plugin --profile web add dsh-ask-template

2. 配套 skill ask-user(可選)

若需要模型驅動的彈表路徑,將 README 中的 front matter 與說明存爲:

~/.agents/skills/ask-user/SKILL.md

(倉庫內路徑約定爲 skills/ask-user/SKILL.md。)skill 原曾叫 ask,改名是爲了把裸 /ask 手勢讓給客戶端命令,避免 / 菜單出現兩行同名。

卸載

dsh plugin --profile web remove dsh-ask-template

skill 側刪除 skills/ask-user/ 目錄即可。

典型用法

  1. 在 DSH Web 會話輸入框輸入 /ask,不要在 /ask 後加空格或參數,直接回車。
  2. 輸入框出現五段模板草稿;從「【背景情況】」起填寫必填段,按需改選填段。
  3. 確認內容後回車發送,模型按你填好的結構化信息作答。

若輸入框裏已有文字,執行 /ask 會整段替換爲模板,替換前會有提示,舊草稿不保留。

適用場景與注意

適合誰

  • 經常提「帶背景 + 約束 + 輸出格式」類問題,希望首輪就信息完整;
  • 希望減少一次「模型彈表」往返,更願意在本地草稿裏編輯後再發。

已知限制(README 原文)

  • setDraft 後光標停在草稿末尾(「【已有嘗試】」的 未提供 之後),要填第一段需自己點上去;契約暫無「帶光標位置寫草稿」入口。
  • 命令與 skill 共用同一套五段字段,改字段需兩邊一起改。

安全提醒

客戶端插件在瀏覽器側執行回調並改寫輸入草稿;安裝前請從 GitHub 覈對 lib/client.js 等行爲是否符合預期。

結尾

dsh-ask-template 把結構化填表從「模型彈表」拆出一條 零模型調用 的 /ask 路徑,與可選 skill ask-user 字段一致,按習慣二選一即可。

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

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

小夜