dsh-s2s — DeepSeek Harness 同宿主会话互联插件

前言

在 DeepSeek Harness (DSH) 的开发实践中,我们通常会在同一台宿主上运行多个独立的 Agent 会话。当这些会话需要协同工作,例如“产品”会话向“开发”会话派发任务,或者不同角色会话之间进行多轮对话时,直接的网络通信往往会带来不必要的复杂性。

dsh-s2s 是一个用于解决这一问题的插件。它不依赖跨主机的网络层,而是采用同宿主/单进程路径,通过进程内的 Broker 实现会话之间的直接投递。

核心定位

这是一个 DeepSeek Harness 插件,用于在同一台机器上连接 AI Agent 会话。它由 ashuai 维护,专注于解决同一进程内多会话的协作问题,支持会话生命周期管理、静止会话拉起以及防止回环的预算机制。

设计思路

本插件的设计思路受 a2a 启发,但并非其 fork。

  • 拓扑结构:a2a 依赖 Hub 和 WebSocket,构建跨进程/跨机的 Mesh 网络;s2s 则采用同宿主单进程路径。
  • 传输方式:s2s 使用进程内 Broker 进行直接投递,具备零端口、零 WebSocket、零重连的特性。
  • 实现机制:借鉴了 a2a 的注入习语(空闲调用 followup,忙碌调用 inject),但移除了所有网络依赖,仅保留内存通信能力。

核心功能

  1. 进程内投递:利用 S2sBroker 在内存中直接传递消息,跳过序列化和网络 IO。
  2. Name 主寻址:通过会话标题进行点名。标题读取自宿主的零 I/O 投影缓存。
  3. 拉起静止会话:支持唤醒已结束的会话,且拉起的会话保留 live-idle 状态(不自动归眠)。
  4. 6 个模型工具:
    • s2s_peers:列出当前活跃的 peers。
    • s2s_sessions:列出会话列表(可设置 all=true 获取全量)。
    • s2s_message:向指定会话发送消息或唤醒会话。
    • s2s_resume:显式拉起指定会话。
    • s2s_history:获取进程作用域的历史记录。
    • s2s_schedule:支持会话内的定时注入。
  5. 持久信箱:消息持久化存储在 ~/.dsh/s2s/mailboxes/<sessionId>/* 目录下,支持原子写入和损坏自愈。
  6. 防回环与限流:通过配置 budget 限制消息跳数(maxHops)和发送速率(ratePerMinute)。

安装与启用

安装新插件必须使用 - insert: 形式,name 指向可解析的 ESM 入口。以下配置启用了 autoResume(允许自动拉起静止会话)和基本的预算限制:

- insert:
    - id: dsh-s2s
      name: ./dsh-s2s/lib/index.js
      config:
        lifecycle:
          autoResume: allow       # 允许通过 s2s_resume 点名拉起
        budget:
          maxHops: 6              # 限制消息最大跳数
          ratePerMinute: 10       # 限制每分钟发送次数

典型用法

在代码或工具调用中,使用 name 参数进行寻址:

// 显式唤醒名为“开发”的会话
s2s_resume(name: "开发", ...)

// 向名为“产品”的会话发送消息
s2s_message(name: "产品", ...)

// 查看所有 peers
s2s_peers

// 查看所有会话(包含静止)
s2s_sessions(all=true)

注意事项

  • 改名生效时机:由于标题读取自宿主缓存,修改会话标题不会在操作瞬间生效,需等待下一个标题检查点。
  • 同名消歧:若遇到同名会话,系统会提示 ambiguous,需使用 session_id 进行消歧。若查无会话,会显示 not-found 并列出候选。
  • 配置挂载:若 YAML 中缺失 lifecycle 或 budget 配置块,相关功能将不挂载(即不启用)。
  • 持久化路径:持久信箱路径为 ~/.dsh/s2s/mailboxes。

结语

dsh-s2s 提供了一套轻量级的同宿主会话协作方案。对于不需要跨机通信的场景,它比引入 a2a 更为轻便,且消除了网络层的复杂性。

  • GitHub: https://github.com/ashuai/dsh-s2s
  • 目录: https://www.skillhub.cn/plugins/ashuai/dsh-s2s
羽毛球分组比赛记分
小程序二维码

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

小夜