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 核心架构的一致性,不破坏现有的工具调用和安全流程。

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

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

小夜