dsh-task-assist:在發送鍵旁按任務掃描技能並注入 Agent

前言

在 DeepSeek Harness(DSH)裏跑 Agent 時,會話裏往往已經裝了不少技能(skills)和 MCP 工具,但輸入框旁沒有統一入口:要靠記憶去翻目錄、手動把方法論寫進對話,或指望 Agent 自己猜該用哪套流程。任務一換,重複勞動就多。

下面介紹社區插件 dsh-task-assist(維護者 TheFold060629,分類:工作流)。它在對話框輸入卡發送鍵左側放一個常駐「輔助」按鈕:用當前草稿當任務描述,掃描本會話可用的技能與 MCP,彈出可勾選的候選清單,確認後把選中項作爲 steering 注入當前會話,由正在運行的 Agent 在下一步加載並按其方法論執行。也可開啓「自動分析」,在每條消息發出後靜默匹配並注入,無需再點按鈕。

這是什麼

dsh-task-assist 是 DSH 的任務輔助啓動器插件:UI 掛在官方槽位 conversation.input.right(發送/停止鍵左側的工具欄右側);宿主側提供 api/task-assist/scan、inject、auto、diag 等路由,對技能元信息與 MCP 工具名做關鍵詞打分,客戶端負責面板與發送後觀測。

核心功能

發送鍵旁常駐按鈕

插件在 conversation.input.right 註冊客戶端組件,與官方對話 UI 同欄,不替換髮送鍵本身。

自動掃描與候選面板

  1. 用戶輸入任務描述(或使用輸入框當前草稿)。
  2. 點擊「輔助」後,客戶端讀取 useInput() 的 draft,向 api/task-assist/scan 發起掃描(任務文本與會話 id 一併帶上)。
  3. 宿主在技能根目錄(如 ~/.agents/skills、~/.dsh/skills、項目下的 .dsh/.agents/skills)枚舉已裝技能,並列出已連接 MCP 的工具;按任務關鍵詞打分排序。
  4. 面板展示技能(可勾選)與 MCP 工具(陳列);頂部搜索欄可按名稱或描述過濾,並提供對當前篩選結果的「全選/全不選」。
  5. 命中關鍵詞的技能在面板中可默認勾選(與「自動分析」開關聯動,見下)。

面板使用 position: fixed 相對視口定位,避免被 composer 層疊上下文擋住關閉與確認按鈕;點面板外、Esc 或再次點「輔助」可關閉。

一鍵注入執行

用戶在面板確認後,客戶端將勾選結果 POST 到 api/task-assist/inject;宿主組裝提示級指令,經 ctx.agents.get(sessionId).steer(message) 進入當前會話(消息 source 爲 plugin:dsh-task-assist)。注入的是 steering 輸入,不是直接代跑技能;是否加載、執行由 Agent 結合上下文判斷。

自動分析適配技能

面板內可勾選「根據文本內容自動分析適配技能」:

  • 打開面板時,默認勾中所有命中項。
  • 開啓後,每條消息發出時客戶端觀測 InputState(草稿清空且 draftRev 前進),調用 api/task-assist/auto;宿主再跑一遍 scan,對 score >= 1 的命中項同樣走 steer 注入。過程不打斷髮送;無命中時靜默成功。
  • 開關持久化在 localStorage(鍵 dsh-task-assist:auto-analyze);開啓時按鈕右上角有小圓點提示。

自動路徑不劫持發送鍵,僅觀測內核已發佈的狀態,避免違反 composer 契約導致客戶端 boot 失敗。

掃描邊界

  • 掃描爲只讀:只讀技能 name/description 與 MCP 工具名,不執行技能、不調用業務工具。
  • 面板 scan 結果展示全部技能(便於搜索與手動補選);自動路徑才用 score >= 1 過濾。

安裝與啓用

環境要求:dsh >= 0.2.0-rc.2(見包內 dsh.engines.dsh);客戶端依賴 @deepseek-ai/dsh-client-ui-conversation 聲明的 conversation.input.right 槽。

把插件加入目標 profile 的 dsh.profile.bundles,然後完全退出並重啓桌面端(僅刷新頁面不夠,host 半體只在進程啓動時加載):

dsh plugin --profile <profile-name> add dsh-task-assist

本地開發可用源碼軟鏈(正式環境建議用包名):

dsh plugin --profile <name> add link:<本目錄>

注意:不要在 profile 的 cordis.patch.yml 裏再手寫 - insert: [dsh-task-assist]。包內 dsh.bundle.patch 已 insert 該條目,重複會導致 duplicate entry id,桌面端無法啓動。

改完 host 端邏輯後務必結束所有 DeepSeek Harness 進程再開,否則可能出現「按鈕在、接口 404」的新客戶端與舊 host 混跑狀態。

典型用法

手動選技能再開幹

  1. 在輸入框寫好本輪任務(例如「給這個倉庫寫 PR 描述」)。
  2. 點發送鍵左側「輔助」,看掃描出的技能與 MCP 列表;用搜索欄縮小範圍,勾選需要的技能。
  3. 點「啓動輔助」,等待 Agent 下一步拾取 steering 並按所選技能推進。

常發同類任務時開自動分析

  1. 在輔助面板勾選「根據文本內容自動分析適配技能」。
  2. 之後正常輸入併發送;若任務文本與某技能名或描述有關鍵詞重疊(score ≥ 1),插件會在該條消息發出後自動注入,無需再點「輔助」。

排障時,客戶端可通過 POST api/task-assist/diag 寫入宿主側 ~/.dsh/rescue/task-assist-client.log(README 中有 diagOnce 去重說明)。

適用場景與注意

適合誰:已在 DSH 裏安裝多份技能或 MCP、希望按「當前任務一句話」快速掛方法論的工作流用戶;不想每次手動複製 SKILL 正文進對話的 Agent 開發者。

權限與安全:插件以當前 DSH 進程權限運行;scan 雖只讀元數據,inject 會改變會話 steering。安裝前請閱讀 倉庫源碼 與 MIT 許可證,確認符合你的環境策略。

生態說明:DSH 主張「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。本插件在 GitHub 上星標數爲 1(以目錄頁/倉庫爲準),屬早期社區工作流擴展,升級 DSH 時需留意 engines 與 peer 依賴。

結尾

dsh-task-assist 把「按任務找技能 → 勾選 → 注入 Agent」收攏到發送鍵旁一條鏈路,並可選發送後自動匹配,減少手工拼 prompt 的成本。若要安裝或看實現細節,可打開 SkillHub 目錄頁 與 GitHub 倉庫 README。

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

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

小夜