Skip to content

Commands zh

pawaca edited this page Aug 30, 2026 · 2 revisions

命令

上游斜线命令注册和执行系统在 Edge 中的适配。

上游参考:Commands

上游提供了什么

命令子系统(dsh-commands)支持针对特定 agent 直接执行插件注册的斜线命令,不创建模型消息:

  • CommandRegistry — 插件注册命名命令,包含 handler、描述和可选的输入描述符(提示文本、图片支持)。命令可以是全局的或 agent 作用域的。
  • 执行流程parseCommand() 解析斜线前缀,注册表验证输入和图片准入,生命周期事件(command/runcommand/done)包裹 handler 调用,结果直接渲染到 UI,不经过模型。
  • 发现 — 适配器查询注册表获取 CommandDescriptorcommands/change 事件在命令注册或注销时通知客户端。
  • 与技能的关系 — 在 composer 中通过 /name 调用技能走命令系统:dsh-tool-skill 注册命令 handler,加载技能内容并注入为模型上下文。

Edge 当前状态

Edge 没有安装上游 dsh-commands CommandRegistry 插件。服务端没有注册任何斜线命令。

客户端 dsh-client-ui-commands 插件包含在 33 个插件的 bundle 中。它在 composer 中渲染命令菜单,并查询 commands/list 获取可用命令。

Edge 通过 handleEdgeRemote()edge-remotes.ts)中的手写桩处理 commands/list RPC,始终返回空数组。此桩存在的原因:

  • 客户端 UI 在连接时始终查询 commands/list
  • 没有响应,客户端会显示错误
  • Typert 网关无法自动路由,因为上游 CommandService 缺少 @Remote 装饰器

Edge 没有改什么

  • 客户端命令 UI(composer 菜单、命令输入气泡)
  • 命令生命周期事件格式(command/runcommand/done

架构总结

组件 分类 状态
CommandRegistry(服务端) 未安装 空目录桩
客户端 UI(ui-commands 复用 渲染命令菜单
commands/list RPC 通过 handleEdgeRemote 返回 []

关键观察:命令与技能紧密相关——斜线命令的主要用途是 /skill-name 调用。一旦 Skills 从 feat/tool-skill 合入(#103),命令系统才有实际意义。届时可以评估 handleEdgeRemote 桩(#95)是否可替换。

TODO

(#109) **Skills 合入后安装 CommandRegistry。**一旦 feat/tool-skill 合入(#103)且 SkillRegistry 激活,安装上游 dsh-commands 插件,使技能调用斜线命令出现在 composer 菜单中。届时 handleEdgeRemote 桩(#95)可能可以移除。

English

中文

Clone this wiki locally