前言¶
在 DeepSeek Harness(DSH)上跑 agent 时,往往有多台机器都在同一办公室或家里网段。要把一段文本或协作上下文送到另一台 DSH,常见做法是手动记 IP、搭中转或依赖云端——对「就在隔壁机器」的场景偏重。dsh-lan-peers 是维护者 Myco-Lee 发布的工作流类插件:在局域网内用 UDP 自动发现对端,经一次性配对建立加密信道,再通过 agent 工具收发消息;实现上只依赖 Node.js 内置的 node:dgram、node:http、node:crypto,不接入外部服务。跨互联网场景文档建议使用姊妹插件 dsh-wan-peers,两者可并存、互不影响。
下面介绍插件定位、能力与安装用法,事实以 GitHub 仓库 README 为准;社区目录见 SkillHub 条目。
这是什么¶
dsh-lan-peers(npm 包名同名,当前资料版本 0.3.0)面向「同一广播域内多台 DSH」:每装一份插件的实例会周期性广播自身、维护对端表,并为 agent 注册 5 个工具(列对端、配对、发送、收件箱、主动探测)。默认 secure: true:发现层仍开放(他人可见节点名等元数据),但未配对对端不能发消息,旧版明文 HTTP 端点在安全模式下返回 426。
许可证:MIT。Node 引擎要求 >=18。
核心功能¶
发现与投递¶
- 发现:默认 UDP 端口
48901,约每 7 秒向各网卡广播地址及255.255.255.255发送 JSON announce;陌生对端会回 announce 做双向确认;约 30 秒无消息视为离线。 - 投递:本机另起 HTTP 服务监听
0.0.0.0:48902(因 DSH 自带 webServer 多仅绑127.0.0.1,局域网不可达)。v2 路径包括GET /lan/v2/hello、POST /lan/v2/pair/start、POST /lan/v2/message等;secure: false时才启用 v1 明文路径。
配对与加密(0.3.0)¶
未配对对端不能走加密消息接口。配对流程要点:
- 一侧
lan_pair action=show得到 6 位一次性码(默认 10 分钟有效,只存哈希,单次使用,每来源 IP 每分钟最多 5 次试错)。 - 另一侧
lan_pair action=import peer=… code=…(peer可为节点名、id 或局域网 IP)。 - 握手使用 X25519 ECDH 协商共享密钥(密钥不在线传输);之后消息 AES-256-GCM 加密,并带 HMAC-SHA256 签名(时间戳 ±60 秒与 nonce 防重放)。
配对信息落在 ~/.dsh/lan-peers/peers.d/<peerId>.json(权限 0600),重启后仍有效;对端换 IP 时发现会更新地址,密钥按节点 id 绑定。
Agent 工具¶
| 工具 | 作用 |
|---|---|
lan_peers |
列出局域网对端(在线/离线、名字、IP:端口、是否已配对) |
lan_pair |
show / import / list / forget / reset |
lan_send |
向已配对对端发加密文本 |
lan_inbox |
拉收件箱(limit、mark_read) |
lan_ping |
立即广播并探测对端(读 /lan/v2/hello,不入对方收件箱) |
状态目录¶
默认 ~/.dsh/lan-peers,可用环境变量 DSH_LAN_PEERS_HOME 覆盖。其中含 identity.json、peers.json、peers.d/*.json、inbox.jsonl、status.json、boot.log、lan-peers.log 等。
安装与启用¶
官方 README 给出的安装方式如下(以 desktop profile 为例):
dsh plugin --profile desktop add github:Myco-Lee/dsh-lan-peers
安装后需重启一次 DSH。可用下列方式粗查是否就绪(示例为 PowerShell):
Get-NetTCPConnection -State Listen -LocalPort 48902
Get-Content ~\.dsh\lan-peers\boot.log -Tail 5
Get-Content ~\.dsh\lan-peers\status.json
期望看到 0.0.0.0:48902 在监听,status.json 中 "secure": true 且 tools 已注册。
README 还提到本地 link 目录、npm pack 后 file: 安装等方式,适合改插件源码时热重载;日常从 GitHub 安装用上式即可。
典型用法¶
配对后发消息¶
- 在机器 B 的会话里让 agent 执行(或直接调工具):
lan_pair action=show
示例输出形态:pairing code 481920 (valid until …)。
- 在机器 A 上导入:
lan_pair action=import peer=LMM code=481920
成功后可用 lan_send peer=B text=... 走加密信道。
- 管理配对:
lan_pair action=list查看已配对;action=forget peer=X删单个;action=reset清空全部(需重新配对)。
跨机器只读探测(无需配对)¶
(Invoke-WebRequest http://<B的IP>:48902/lan/v2/hello -UseBasicParsing).Content
返回含 "ok":true 与 "secure":true 等字段时,说明 HTTP 通道可达。若 Windows 防火墙曾有名为 DeepSeek Harness 的入站阻止规则,可能挡掉 48902;README 给出禁用相关 Block 规则并为 TCP 48902、UDP 48901 新建 Allow 规则的 PowerShell 示例,排障时可对照执行。
可选配置¶
在 profile 补丁层为插件 id dsh-lan-peers 写 config:,例如:
- id: dsh-lan-peers
name: dsh-lan-peers
config:
discoveryPort: 48901
httpPort: 48902
intervalMs: 7000
ttlMs: 30000
name: LMM-1
maxTextChars: 8000
maxInbox: 500
secure: true
pairingCodeLength: 6
pairingCodeTtlMs: 600000
maxPairAttemptsPerMinute: 5
clockSkewMs: 60000
仅在完全可信内网且需与 0.2.x 行为对齐时,可设 secure: false;0.2.x 与 0.3.0 默认安全模式不互通,升级时需两台同时对齐版本或同时对齐 secure 配置。
适用场景与注意¶
适合谁:同一 Wi‑Fi/有线网段、多台 DSH desktop(或同类 profile)、希望 agent 能「看见邻居、配对一次、之后互发文本」的团队或个人;不想为局域网互通单独部署消息中间件。
安全边界(README 明示):
- 发现是开放的:同广播域内可见节点名、端口、是否展示配对码等。
- 传输中加密与请求认证有配对与签名机制保护;本机
inbox.jsonl存的是解密后明文;勿把~/.dsh/lan-peers同步到不可信位置;勿将 48902 暴露到公网。 - 插件随当前 DSH 进程权限运行;安装前宜自行审阅源码与 MIT 许可证,确认与内网合规要求一致。
兼容性:资料记载已在 DSH 0.2.2-rc.1(cordis 4.1.0)与 0.2.1-rc.5(cordis 4.0.5)上验证。
结尾¶
经过上面的步骤,dsh-lan-peers 把局域网内的 DSH 实例收成一张可发现、可配对、可加密互发消息的对端表,并把操作收敛到少量 agent 工具。需要目录浏览与 issue 跟踪时,可打开 SkillHub 插件页 与 GitHub:Myco-Lee/dsh-lan-peers。