dsh-quick-invoke: 爲 DSH Web 提供統一的 `/` 命令快捷入口

DSH Web 開發中,調用 Skill、切換 Agent 或查看插件信息通常需要手動輸入完整命令。dsh-quick-invoke 是一個面向 DSH Web 的獨立 Cordis 插件,爲 Skill、Agent preset 和 Plugin 提供統一的 / 快捷入口、候選選擇和 Host 命令執行能力。

該插件由 thuCGRA 維護,不修改 DSH 核心,也不提供任意 Tool 的直調語法。Tool 的調用仍由 Agent 根據自然語言選擇,並繼續經過 DSH 的 tools、approval、guard 和 permission 流程。

核心功能

插件主要提供以下命令能力:

  • 統一的 / 快捷入口:在 DSH Web 中輸入 / 即可查看可用命令。
  • Skill 快捷調用:輸入 /skill 並選擇候選,可直接發起 Skill 調用。
  • Agent 切換:輸入 /agent 並選擇候選,可切換 Agent preset(需在空白會話下,並遵循官方 API)。
  • 插件發現與檢查:通過 /plugin 命令查看已加載插件列表和 inventory 信息。
  • Host 命令支持:支持 Skill 和 Agent 的候選選擇和 Host 命令執行。
  • 輸入焦點自動恢復:候選確認後僅回填輸入框,並在草稿回填完成後自動恢復輸入框焦點,用戶無需手動點擊即可繼續輸入。

安裝與啓用

前提條件

  • Node.js 環境。
  • 已安裝 DSH 0.1.1-rc.2 或兼容版本。
  • 已存在 DSH Web profile,且該 profile 已組合 commands、skills、agent presets、plugin inventory 和 command UI 相關插件。
  • 當前用戶對 DSH profile 目錄有寫權限。

安裝步驟

進入插件目錄,使用 DSH profile 插件管理命令安裝:

cd $localPath/dsh-quick-invoke
dsh plugin --profile web add "$PWD"

安裝完成後,重啓 Web profile 以加載 Host 註冊和 Client bundle:

dsh web --no-open

使用示例

插件提供以下典型用法:

  • 查看命令候選:
    在 DSH Web 輸入框輸入 /,即可看到 /skill、/agent、/plugin 等候選。
  • 調用 Skill:
    輸入 /skill,選擇目標 Skill,輸入框會回填命令。繼續輸入任務後手動發送即可。
    /skill quick-invoke-test 驗證快捷調用鏈路
    /skill quick-invoke-skill-context 請複述任務上下文
  • 調用 Agent:
    輸入 /agent,選擇可用 preset。發送後 Host 會通過官方 agentPreset.select 處理。
    /agent quick-invoke-agent 分析這個問題
  • 插件管理:
    查看插件列表和詳細信息。
    /plugin list
    /plugin inspect dsh-quick-invoke

工作原理與限制

架構與執行流程

插件分爲 Host 和 Client 兩部分,使用不同的 Cordis context:
* Host:註冊和執行命令,查詢 Skill 和 Agent preset,通過官方 API seam 執行操作。
* Client:裝飾命令菜單,獲取動態候選,定位會話並回填輸入框。

執行流程如下:
1. 用戶輸入 /。
2. DSH Web command UI 展示候選。
3. 用戶選擇候選,僅回填輸入框,不執行遠程操作。
4. 用戶手動發送完整命令。
5. Host 執行命令,經過解析、校驗和權限檢查,記錄 command/run 和 command/done 事件。

重要限制

  1. 插件啓停:插件不支持 /plugin enable 和 /plugin disable 命令。建議使用 DSH profile CLI 管理插件啓停。
  2. 插件打開:/plugin open 在沒有通用 opener 時會明確失敗,不會回退到內部邏輯。
  3. Agent 切換約束:Agent preset 的切換受 Agent 生命週期約束,必須在空白 Agent 上操作,且必須使用官方 agentPreset.select API。如果無法訪問官方 seam,命令會明確失敗。
  4. 項目級資源:項目級 Skill 和 Agent preset 僅用於演示和發現,不可直接作爲全局資源使用。

注意事項

  • 候選行爲:候選選擇僅回填輸入框,不會自動發送消息。插件會在草稿回填完成後恢復焦點。
  • 項目級發現:.dsh/agent/ 下的預設僅用於發現,標記爲 unregistered 不可選擇。
  • 源碼審查:插件不修改 DSH 核心,但建議在使用前檢查源碼以確保符合當前環境的依賴要求。

結語

dsh-quick-invoke 通過統一的 / 入口和候選機制,簡化了 DSH Web 下的 Skill 和 Agent 調用流程。它保持了與 DSH 核心架構的一致性,不破壞現有的工具調用和安全流程。

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

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

小夜