@mazov2love/dsh-remote-control
为 Agent 提供直接操控本机完整 DSH 实例的能力:目标 DSH 无需安装任何插件或额外组件,零侵入,环境隔离便于用户直接让agent为另一环境进行修改配置到自主测试,也能让不同模型、不同人格的 Agent 互相聊天、角色扮演或层层套娃,探索趣味玩法,可通过对话由 Agent 自主配置连接,并支持接近用户的操作语义、增量读取、引用保存以及远端会话与工作区搜索。
安装
dsh plugin --profile web add @mazov2love/dsh-remote-control
沙箱测试
这个插件还没测过。提交测试 →
README
DSH Remote Control
让 DSH Agent 使用另一个 DSH 实例:创建会话、发送需求,随后自行选择查状态或读取结果。发送返回接收回执,远端独立继续工作。目标无需安装配套插件。
图片为宣传插画,展示概念性的界面与玩法。
插件用途
1. 不只是 Agent 团队,而是真正独立的 Agent
不同于传统的子代理或多 Agent 团队,本插件让 Agent 能够直接操控另一个完整、独立运行的 DSH 实例。每个实例都可以拥有自己的上下文、记忆、人格、模型、工具和配置,不必共享一个脑子,更不用挤在同一个环境里。
你可以自由组合不同的 DSH 环境,让它们相互交流、协作,又不必担心一个 Agent 的会话或配置修改直接影响另一个。
2. 让 Agent 帮 Agent 折腾自己
想给 DSH 安装新插件、修改配置,或者测试某个大胆的想法?不妨让另一个 Agent 帮你完成。
借助接近用户的操作语义,Agent 可以直接操作目标 DSH 的会话与工作区,为它编写插件、调整配置、安装组件、运行测试,甚至根据测试结果继续修改。
不再需要把所有实验都塞进主 Agent 的工作环境。给它准备一个独立的 DSH 实例,让它尽情折腾,成功了就留下成果,失败了就继续尝试。
3. 好玩,才是第一生产力
谁说 Agent 一定要用来提高生产力?
让不同模型、不同人格的 Agent 互相聊天、吵架、出题、玩角色扮演;或者让一个 Agent 假装成用户,去指挥另一个 Agent,再让后者也假装成用户,继续指挥下一个……
Agent A 控制 Agent B,B 控制 C,C 控制 D……甚至一路套娃到 Z,再让 Z 回过头来控制 A。
快速开始
插件版本 1.0.0,已验证的 DSH 基线为 0.2.0-rc.2,Node.js 要求 22.19+。具体边界见 [COMPATIBILITY.md](COMPATIBILITY.md)。
使用 DSH 官方命令从 npm 安装到调用方的 profile。自定义 DSH_HOME 时,先设置为你实际使用的数据目录;使用默认目录时无需设置。
$env:DSH_HOME = 'C:\path\your-dsh-home' # 仅自定义数据目录时设置 dsh plugin --profile web add '@mazov2love/dsh-remote-control@1.0.0'
也可以固定 Git 标签安装,或下载 / clone 源码后安装:
dsh plugin --profile web add 'github:mazov2love/dsh-remote-control#v1.0.0' # 以下是另一种选择,替换为自己的源码路径 dsh plugin --profile web add 'C:\path\dsh-remote-control'
源码 DSH 在其源码目录使用 pnpm dsh plugin --profile web ...。将 web 替换为实际调用方 profile。安装后重启调用方,开启新会话。
然后直接告诉 Agent:
我要使用另一个 DSH,它在本机的 3080 端口,令牌是 <目标当前令牌>。请帮我配置连接并验证。
也可以提供完整启动链接,或要求 Agent 启动另一个 DSH 实例并配置连接。该路径由用户在自定义 DSH_HOME 和复杂插件环境中实测可用,依赖 Agent 已有的文件、终端及管理能力。目标实例无需安装配套插件。
插件同时安装 dsh-remote-control Skill,供 Agent 按需读取配置和使用说明,不需要另外安装 Skill。默认只增加简短 Skill 摘要,不把完整操作手册放进每次请求。自定义 preset 需保留 DSH 的 Skill 加载能力;缺少通用操作权限时,Agent 会说明需要补充的步骤。
连接配置改变后需要重载插件或重启调用方。重启不删除原有连接、引用和读取状态。令牌可通过对话提供,工具不会主动返回凭据;原始对话仍包含用户提供的令牌。
建立一个独立的源码 DSH(Windows 示例)
想保留日常 DSH,同时给 Agent 准备一个可以独立调整和测试的实例,可以另建源码目录、数据目录和端口。下面使用 %USERPROFILE%\dsh-lab\deepseek-harness 存源码、%USERPROFILE%\.dsh-lab 存 DSH 数据、8081 端口提供 Web;日常实例仍可使用原来的目录与 3080 端口。如果 8081 已被占用,换一个空闲端口。
1. 下载并构建
准备 Git、Node.js 和 pnpm;本插件验证基线要求 Node.js 22.19+,DSH 源码的实际 Node.js 与 pnpm 要求以所下载版本的 package.json 中 engines、packageManager 为准。在 PowerShell 执行以下命令,每一步成功后再继续;目录已存在时请换一个新目录,不要覆盖已有源码:
New-Item -ItemType Directory -Force "$env:USERPROFILE\dsh-lab" | Out-Null Set-Location "$env:USERPROFILE\dsh-lab" git clone https://github.com/deepseek-ai/deepseek-harness.git Set-Location .\deepseek-harness pnpm install pnpm run build
构建步骤来自 DSH 官方源码运行说明。源码更新后通常需要重新安装依赖并构建;平时启动只运行 pnpm dsh web,无需每次构建。本插件已验证 DSH 0.2.0-rc.2,仓库最新源码可能变化,升级前请核对 [兼容性说明](COMPATIBILITY.md)。
2. 在启动时单独指定环境变量
新开一个 PowerShell 窗口,在该窗口执行:
Set-Location "$env:USERPROFILE\dsh-lab\deepseek-harness" $env:DSH_HOME = "$env:USERPROFILE\.dsh-lab" $env:DSH_AGENTS_HOME = "$env:USERPROFILE\.agents-dsh-lab" pnpm dsh web --host 127.0.0.1 --port 8081
DSH_HOME 分开保存此实例的配置、凭据、会话和插件安装数据;DSH_AGENTS_HOME 分开默认的用户级 Skill 根目录,否则它可能仍使用共享的 ~/.agents。这些赋值只影响当前终端及其子进程,关闭窗口后不会改变系统环境变量。在这个窗口里运行插件安装等管理命令,也会使用同一份独立数据目录。
首次启动后,在新实例的页面配置模型与 API 凭据。终端会打印带 ?token=… 的启动链接,可交给调用方 Agent 配置连接;重启后以本次打印的链接为准。需要后台式使用、不自动打开浏览器时,在命令末尾加 --no-open;结束进程可在启动窗口按 Ctrl+C。
3. 做成双击启动的脚本
把下面内容保存为 start-dsh-lab.cmd(注意扩展名是 .cmd,不是 .txt),构建完成后双击即可启动;也可以直接复制本仓库的 [启动模板](examples/start-dsh-lab.cmd)。前三个变量分别控制源码目录、数据目录和端口:
@echo off setlocal set "DSH_SOURCE=%USERPROFILE%\dsh-lab\deepseek-harness" set "DSH_HOME=%USERPROFILE%\.dsh-lab" set "DSH_LAB_PORT=8081" set "DSH_AGENTS_HOME=%USERPROFILE%\.agents-dsh-lab" if not exist "%DSH_SOURCE%\package.json" ( echo Source directory not found. Edit DSH_SOURCE in this script. pause exit /b 1 ) cd /d "%DSH_SOURCE%" call pnpm dsh web --host 127.0.0.1 --port %DSH_LAB_PORT% set "DSH_LAB_EXIT=%ERRORLEVEL%" if not "%DSH_LAB_EXIT%"=="0" pause endlocal & exit /b %DSH_LAB_EXIT%
setlocal 让环境变量仅作用于脚本及其启动的进程,不需要 setx,也不用更改 Windows 的 HOME 或 USERPROFILE。源码实例用其目录中的 pnpm dsh 启动;全局 dsh web 仍由原安装提供。要再开第三个实例,使用另一份源码目录,并修改数据目录、Skill 目录和端口。
这是程序与 DSH 数据层面的分离,不是操作系统沙盒:两个实例仍以当前 Windows 用户的权限访问文件;手动选择相同项目目录、配置额外 Skill 路径或共享外部服务时,相应资源仍会共享。想让实验更独立,可以给它单独的项目目录。
4. 也可以把整套工作交给现有 Agent
如果现有 Agent 有终端与文件操作能力,可以把这一节直接交给它,或者这样说:
请按本教程建立一个新的独立源码 DSH:新建源码目录,使用单独的 DSH_HOME、DSH_AGENTS_HOME 和空闲端口,安装依赖并构建,生成一键启动脚本,启动后验证 Web 可访问,再帮我配置 DSH Remote Control 连接;保留我原有实例的配置和数据。
本插件安装在发起调用的实例;新建的目标实例无需安装配套插件。若新实例反过来也要控制其他 DSH,再在它自己的 DSH_HOME 下安装本插件。
手动连接配置(可选)
默认读取 $DSH_HOME/remote-control/connections.json:
{"targets":[{"id":"technical","url":"http://127.0.0.1:3080","authFile":"C:/path/your-dsh-home/remote-control/technical.auth.json"}]}
私有 authFile 内容:
{"origin":"http://127.0.0.1:3080","token":"目标启动链接中 token 参数的值"}
合法启动 token 换取 Cookie 并写回私有认证文件;失效时用最新 token 重新认证。也可用 tokenEnv 指定环境变量名。URL 不含 token,工具不会返回认证文件内容。多个目标通过 id 选择;仅一个目标时可省略 instance。
六个常驻工具
工具 · 用法
dsh_create · 创建会话或注册已有目录作为工作区,自动保存引用与用途/注释
dsh_refs · 分页查看、保存、更新或删除本地引用;get 查看完整注释
dsh_send · 使用 ref 或 instance/sessionId 发送,立即返回回执;可显式设置模型与权限
dsh_status · 默认只查状态;view=new 读取新增回复;view=final 预览最新回复
dsh_search · 默认搜已保存引用;scope=sessions/workspaces 搜远端简短元数据
dsh_other · 查询详细操作用法,或按明确操作名称执行
插件不注册额外 system prompt 正文。高级操作说明不提前加入基础工具 schema;通过 dsh_other 查询时才返回。无自动等待、自动读取全部回复、完成通知或唤醒主体。
发
…(truncated)
以上内容来自 npm 上的 README,我们只做格式化,不改内容。
版本
npm 上共发布:2,最后更新 2026-10-28