DSH Remote Control:为 Agent 提供操控本地 DSH 实例的能力

前言

DSH Agent 在开发与调试过程中,通常运行在单一实例中。这种模式限制了 Agent 的协作能力与隔离性。dsh-remote-control 插件为 Agent 提供了直接操控本地另一个完整 DSH 实例的能力,使其能够像用户一样操作远端会话与工作区。

插件定位

插件名称:dsh-remote-control
维护者:mazov2love
许可证:MIT
核心价值:零侵入、开箱即用。让 Agent 能够以接近用户的操作语义,操控另一个独立的 DSH 实例,支持增量读取、引用保存及远端会话与工作区搜索。

核心能力

  • 直接操控:Agent 可以直接操控另一个 DSH 实例。
  • 零侵入:目标实例无需安装配套插件。
  • 增量读取与引用保存:支持对远端会话的增量内容读取,并管理本地引用。
  • 搜索能力:支持远端会话与工作区的搜索。
  • 六个常驻工具:提供创建会话、发送消息、查看状态、搜索、管理引用、查询操作等工具。

安装与启用

安装命令如下。此插件要求 DSH 基线版本为 0.2.0-rc.2,Node.js 版本为 22.19+。

dsh plugin --profile web add 'github:mazov2love/dsh-remote-control#v1.0.0'

安装后重启调用方(Agent 所在的实例),即可在对话中启用连接配置。

配置与连接

安装后,需在对话中告知 Agent 目标实例的连接信息。

配置提示示例:

我要使用另一个 DSH,它在本机的 3080 端口,令牌是 <目标当前令牌>。请帮我配置连接并验证。

Agent 会根据对话内容配置连接。连接配置保存在 $DSH_HOME/remote-control/connections.json。连接配置改变后需要重载插件或重启调用方。

常用工具

插件提供六个常驻工具,用于与远端 DSH 交互:

  • dsh_create:创建会话或注册已有目录作为工作区,自动保存引用与用途/注释。
  • dsh_send:使用 ref 或 instance/sessionId 发送消息,立即返回回执。
  • dsh_status:查看状态。view=new 读取新增回复;view=final 预览最新回复。
  • dsh_search:搜索已保存引用;scope=sessions/workspaces 搜远端简短元数据。
  • dsh_refs:分页查看、保存、更新或删除本地引用。
  • dsh_other:查询详细操作用法,或按明确操作名称执行(高级操作说明需通过此工具查询)。

数据与状态

插件在 $DSH_HOME/remote-control/ 目录下维护状态。

  • 引用保存:创建时自动保存引用;删除引用只删除本地记录,远端会话不受影响。
  • 暂存结果:默认有效 24 小时,最多保存 50 份。主要用于处理超过返回预算的大结果。
  • 返回预算:默认工具返回预算为 6000 字符(JSON 文本)。超过预算时结果暂存,需通过 dsh_other 分段读取。
  • 增量读取:dsh_status view=new 默认只返回尚未读取的 assistant 文本。

注意事项

  • 权限依赖:插件以当前调用方进程的权限运行,请确保安装前检查源码与许可证。
  • 令牌安全:令牌通过对话提供,工具不会主动返回凭据。
  • 配置重载:连接配置改变后必须重载插件或重启调用方。
  • 高级操作:插件不注册额外的 system prompt 正文,不把完整操作手册放进基础工具 schema。高级操作说明需通过 dsh_other 查询。
  • 目标实例:目标 DSH 实例无需安装此插件。

结尾

此插件解决了 Agent 在单一实例中运行受限的问题。通过零侵入的方式,Agent 可以独立操作另一个 DSH 实例,进行测试、协作或复杂任务拆解。

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

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

小夜