dsh-lan-room:局域网内的 DeepSeek Harness 联机房间

前言

在本地用 DeepSeek Harness 跑 agent 时,常见问题是如何让同网段同事各自的 Harness 互相协作,而不是反复截图、复制粘贴上下文。远程桌面或共享文档能传话,但难以让对方的 agent 在自己的工程环境里只读查代码、搜资料并给出答案。

下面介绍社区插件 dsh-lan-room(维护者 zzw980709):在同一局域网内,一台机器开房、其他人用一次性邀请码加入,双方的 agent 可以互相提问、在本地会话里回答,且远端不能写文件或执行命令。

这是什么

dsh-lan-room 是 DeepSeek Harness 的工作流类插件,在 SkillHub 目录中的定位为局域网联机房间。它解决的是「多机同网、各跑各的 Harness,但 agent 能定向问答」的需求。

  • 主机(Host):开房的机器,插件在局域网监听房间服务,默认地址为 0.0.0.0:8787。
  • 访客(Guest):持邀请码加入,主动连接主机,本机不监听房间端口。
  • 交互边界:远端只能提问;本地 agent 使用受限制的只读工具作答,不允许远端写文件或跑命令。

当前包版本为 0.1.0,许可证 MIT,要求 DeepSeek Harness 0.2.2-rc.1 或更新(engines.dsh 会在不兼容时拦截安装)。GitHub 仓库:https://github.com/zzw980709/dsh-lan-room ;社区目录页:https://www.skillhub.cn/plugins/zzw980709/dsh-lan-room 。

核心功能

房间与成员

主机通过面板或 agent 工具创建房间,可指定端口(默认 8787,冲突时自动顺延)。加入后双方成员列表与消息流同步。房间仅在 Harness 进程运行期间存在,退出应用即解散,无离线消息。

邀请码

每张邀请码 8 位、一次性使用,24 小时过期,可单独撤销;主机可再生成 1–5 张新码。加入请求在网络中不传输邀请码明文,仅携带 inviteId 与证明。

Agent 问答

提问方可在面板选择目标成员与「提问」模式,或对 agent 说「问一下某某:……」,由模型调用 lan_ask。被问方在本机专用会话(标题形如 联机 · <对方名字>)里跑一轮 agent,将答案回传;本地用户可见全过程。默认等待 300 秒,最长 600 秒;超时返回 timeout,但对方仍可能稍后补发「迟到的回答」。

安全与工具集

握手后帧级使用 per-member 的 AES-256-GCM 加密。房间 agent 仅可使用 read、read_image、glob、grep、lsp、web_search、web_fetch;远端文本视为不可信输入,系统提示中硬禁 .env、密钥、SSH 私钥等。插件不承诺抗同网段主动 MITM,也不保证跨网段或公网可用。

安装与启用

安装前请确认 Harness 版本满足 >=0.2.2-rc.1。插件在 DSH 进程权限下运行,安装前宜浏览源码与许可证。

官方 README 提供三种安装方式(desktop profile):

# 1. 从 npm(推荐,发布后可用)
dsh plugin --profile desktop add dsh-lan-room

# 2. 直接从 GitHub 安装(无需 npm 发布)
dsh plugin --profile desktop add git+https://github.com/zzw980709/dsh-lan-room.git

# 3. 本地目录(开发调试)
dsh plugin --profile desktop add /path/to/dsh-lan-room

也可在 Harness「插件」页面安装本地 bundle(选择插件目录)。装完后需要重启 Harness:Host 半实现会被进程内模块缓存,重启后才会生效;之后仅改面板可刷新页面。发布与市场相关说明见仓库内 docs/PUBLISHING.md。

典型用法

开房

  1. 侧边栏底部「联机」→「创建房间」,填写房间名与端口(默认 8787)。
  2. 进入房间后点「邀请成员」,获得 8 位一次性邀请码与房间地址(例如 192.168.1.23:8787)。
  3. 将邀请码发给同事;每张码仅用一次。

也可直接对 agent 说:「帮我开一个局域网房间」。

加入

  1. 「联机」→「加入房间」,填写邀请码、房间地址、本机显示名。
  2. 加入成功后,主机成员列表会出现本机,双方消息流同步。

提问

  • 面板:输入框选择目标成员(如「发给 zzw-air」)→ 模式「提问」→ 回车;处理中显示状态,完成后展示答案、耗时与步数。
  • agent:例如「问一下 zzw-air:这个报错怎么修?」,由模型调用 lan_ask。

Agent 工具一览

工具 作用
lan_room_create 开房,返回房间号、地址、首张邀请码
lan_room_invite 再生成邀请码(1–5 张)
lan_room_join 用邀请码加入房间
lan_room_status 房间、成员、在线状态、邀请码、最近消息与提问
lan_ask 向某个成员提问并等待回答(默认 300s,最长 600s)
lan_send 发一条普通消息
lan_room_leave 离开房间 / 关闭自己主持的房间

面板控制面走 Harness loopback 的 /lan-room/*,不占房间端口。协议上 Host 使用 node:http 监听,提供 POST /join、GET /events(SSE)、POST /rpc;Guest 用 fetch 与 SSE 解析,并支持指数退避重连。

适用场景与注意

适合:同一办公网或家庭局域网内,多名开发者各自在本机 Harness 上跑 agent,需要让对方 agent 在自己的仓库环境里只读排查问题、查文档,又不想开放 shell 或写权限。

务必注意:

  • 首次监听时 macOS/Windows 可能弹出「允许传入连接」,拒绝会导致局域网不可达。
  • 同网段 AP 隔离或公司网络策略可能导致互不可达,面板会提示换网或手填地址。
  • 面板 v1 不渲染二维码,需复制邀请码与地址;房间会话会出现在侧边栏(联机 · xxx),便于审计。
  • 审计记录目录为 ~/.dsh/lan-room/(README 标注部分能力在后续版本完善)。

DeepSeek Harness 生态遵循「一切皆插件」;SkillHub 等为社区目录,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-lan-room 把「开房—邀请—定向提问—本地只读作答」收敛进 Harness 插件与工作流工具,适合同网多机协作调试 agent,而不牺牲本机写权限与命令执行边界。

  • 目录页:https://www.skillhub.cn/plugins/zzw980709/dsh-lan-room
  • 源码与文档:https://github.com/zzw980709/dsh-lan-room
羽毛球分组比赛记分
小程序二维码

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

Xiaoye