dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Link DeepSeek Harness (DSH) instances on the LAN: delegate subagents to another machine's DSH, continue its sessions, with signed auto-discovery and a visual settings page
把局域网里另一台电脑上的 DeepSeek Harness 当作子代理使用。对端会话是一个完整的 agent,有它那台机器自己的 shell、文件和工具。
| 能力 | 说明 |
|---|---|
subagent_peer 工具 | 标准委派工具(dsh-tool-subagent),挂在 peer provider 上。任务在对端 DSH 新开会话执行,完成后以通常的子代理完成通知把最终回复送回来。子代理可以续接:用 send_message 继续追问、补充指示或回答对端的提问,见下文。 |
peer_dsh 工具 | peers 列出对端及在线状态;pair 用配对码配对;unpair 删除对端;run 新开或续接对端会话并等待回复(对端有待回答的提问时,内容作为回答交给它);sessions 列出对端会话;read 读最近消息;cancel 中止对端当前回合。 |
peer-link 模型通道 | subagent_peer 子代理专用的模型通道,把子代理的每一轮交给对端会话执行。模型 auto 用默认对端,也可以直接选某个对端名。 |
| 局域网端点 | HTTP 监听随机空闲端口(优先沿用上次的端口),对端通过下面的发现协议自动找到,不会和其他程序抢端口。只接受带 HMAC 签名的请求,响应也带签名;密钥不在网络上传输。带时间戳和一次性随机串,防重放;有 IP 白名单和失败限流。 |
| 打开对端网页 | 侧边栏底部的「对端设备」按钮、设置页里每个对端的「打开网页」、子代理会话标题栏的「在 <对端> 上查看」,一键在浏览器里打开对端 DSH 的完整网页界面,直接看和操作那台机器上的会话。见下文。 |
对端会话的标题以 [发起方名称] 开头,在对端界面里一眼能看出是谁派的任务。
subagent_peer 的子代理是本机的普通可续接子代理,只是它的"模型"是对端 DSH:
send_message 发消息,子代理会被唤醒,消息发到同一个对端会话继续处理,回复照常以完成通知送回。ask_user_question 而无人回答时,回复里会列出问题;下一条 send_message 会作为回答交给对端,对端随即继续。~/.dsh/peer-link/links.json,重启后仍能续接。同一局域网里,可以直接打开另一台机器的 DSH 网页,看它的全部会话,也可以在里面直接对话:
subagent_peer 子代理的会话里出现,打开对端网页并直接定位到这个子代理对应的那个对端会话,能看到对端的工具调用和完整过程。浏览器版里在新标签页打开;桌面版交给系统默认浏览器打开。
工作方式,与 FRP 插件的端口映射类似,但只在局域网内、只对已配对的设备开放:
webTicket),60 秒内有效,用一次就作废。http://<对端局域网地址>:<对端 peer-link 端口>/__peer-link/enter?ticket=…。对端核对票据后,在服务端用自己 DSH 的启动令牌登录,给浏览器发两个 Cookie:DSH 自己的登录 Cookie,和 peer-link 的门禁 Cookie。Host/Origin/Referer 改成回环地址,所以不用改 DSH 的监听地址或 trustedHosts。安全上:
Origin 不是这个地址)会被拒绝。allowCidrs 限制。shareWeb)。关掉后不再发票据,已经打开的页面也立即失效。两台都要装 0.4.0 或更高版本:打开网页的一方需要新版按钮,被打开的一方需要新版才能发票据和转发页面。
skills/dsh-peer-link/SKILL.md 教 agent 什么时候、怎么用这两个工具:选哪个工具,怎么写委派任务,怎么续接、回答对端提问,以及常见错误怎么处理。插件本身不加载它;把整个 dsh-peer-link 目录放进 skill 目录即可,例如 ~/.agents/skills/(多个 agent 共用)或 ~/.dsh/skills/(只给 DSH 用)。
mkdir -p ~/.agents/skills
cp -R skills/dsh-peer-link ~/.agents/skills/
HTTP 端口每次启动都可能变化,所以对端地址只是缓存。调用对端时依次尝试:
47788 上发查询,用组播(239.255.77.88)、各网卡广播,再向对端已知 IP 单播。查询里只带由密钥派生的短 ID 和 HMAC,只有持有同一密钥的对端会回复自己当前的端口,回复同样带签名。UDP 端口用共享方式绑定(SO_REUSEADDR),不会独占,也不会因为被占用而启动失败。此外,对端启动时和每 60 秒会广播一次签名公告,已配对的一方收到后直接更新缓存。
两台机器只要在同一局域网里,换端口、换 IP(DHCP)、重启后都能自动重新找到对方。跨网段时组播和广播不通,就靠向已知 IP 单播。
启用插件后,界面会弹窗询问:是否允许对端会话完全访问本机。
对端发来的任务在本机新开会话、无人值守地执行。默认沙箱下,需要审批的操作会让任务卡住;在 Windows 上,默认沙箱甚至无法启动 PowerShell(退出码 0xC0000142)。
permissionPreset 设为 danger-full-access。这些会话不受沙箱限制、不经审批,可以读写任意文件、执行任意命令,所以只与自己信任的设备配对。无论选哪个,选择都会记在 ~/.dsh/peer-link/state.json,不会再弹窗。之后可以在设置页的「对端会话的权限预设」里修改。只影响对端发来的新会话,不影响本机自己的会话。
~/.dsh/peer-link/pairing-code.txt(Windows:%USERPROFILE%\.dsh\peer-link\pairing-code.txt)。密钥和对端列表保存在 ~/.dsh/peer-link/state.json(权限 0600),不进 profile 的 cordis.patch.yml。
安装 DSH:https://download.deepseek.com/dsh-desk/bin/win-x64/deepseek-harness-0.2.1-rc.2-win-x64.exe。
把本目录拷到 Windows,例如 C:\dsh-plugins\dsh-peer-link。在 DSH 里让 agent 用 plugin_manager install_bundle 安装,target 填这个绝对路径。
放行防火墙。端口是随机的,所以按程序放行,不按端口。在 DSH 运行时打开管理员 PowerShell:
$exe = (Get-Process | Where-Object { $_.Path -like '*DeepSeek Harness*' } | Select-Object -First 1).Path
$exe # 确认路径
New-NetFirewallRule -DisplayName "DSH peer-link" -Direction Inbound -Program $exe -RemoteAddress LocalSubnet -Action Allow
这条规则同时覆盖 TCP(随机端口)和 UDP 47788(发现)。如果 Windows 首次监听时弹出了「允许访问」对话框,勾选「专用网络」也行。
在弹出的授权窗口里选择「允许完全访问」(见「安装后的授权」)。
按上面的步骤配对。
设置 → 插件 → DSH 互联 → 配置 打开设置页。页面分为以下几块:
页面的实时数据走本插件注册的 POST /peer-link/rpc。这个接口受 Web 连接的鉴权和 Origin 校验保护,执行的操作与 peer_dsh 工具相同。配置本身通过 DSH 的设置服务写入 profile。
| 字段 | 默认 | 说明 |
|---|---|---|
displayName | 主机名 | 本机在对端显示的名称 |
listen | true | 是否接收对端请求 |
host | 0.0.0.0 | 监听地址 |
port | 0 | HTTP 端口;0 表示随机空闲端口,优先沿用上次的。填固定值时,如果被占用会自动退回随机端口 |
discoveryPort | 47788 | 发现用的 UDP 端口(共享绑定)。两侧必须一致 |
allowCidrs | 私网地址段 | 允许连入的地址 |
allowedRoots | 空 | 对端可用的工作目录根;空为不限制 |
remoteCwd | 空 | 委派到对端时的默认目录(对端路径)。为空时,若本机当前目录在对端也存在就用它,否则用对端默认目录 |
subagentPeer | 空 | 有多个对端时 subagent_peer 用哪一个 |
permissionPreset | 空 | 对端发来的新会话用的权限预设,例如 danger-full-access。无人值守时审批弹窗会让任务卡住 |
delegationNote | true | 在委派任务前加一段"无人值守、自行决策、最后汇报"的说明 |
shareWeb | true | 允许已配对的设备在局域网内打开本机的 DSH 网页界面 |
peer_dsh action=read 查看。