DSH 插件: session to session 让多个会话能互相喊话,不分 live 还是 idle 都能拉起

查看 14|回复 0
作者:ashuai   
DSH 插件: session to session 让多个会话能互相喊话,不分 live 还是 idle 都能拉起
发现 DeepSeek Harness(DSH)之后,我习惯开着好几个 session,各管一摊:一个做分析、一个写代码、一个管部署、一个做产品。它们各干各的挺爽,但总有要"接力"的时候——分析结论要交给部署,或者部署干到一半被中断了,后面还得把它喊回来接着干。
DSH 本身没有"会话互聊"的能力。于是我写了个小插件:dsh-s2s
它是什么
一个 cordis 插件,让同一台宿主上的多个 DSH session 互相按名字对话,并能把已结束(done/idle)的静止会话拉起来再投递。
定位是同宿主、单进程、零端口:不是跨机 mesh,不引入 hub / WebSocket / 网络层,就在进程内直接投递。有参照 @dpskh/a2a(跨机 mesh)的实现,但不是它的 fork——只借鉴了"空闲→followup 、忙碌→inject"的注入习语,没继承它的 hub/网络层。
怎么用
你不需要记任何工具命令——agent 之间就是自然对话,关键只是在话里带个名字:
  • 协调会话随手一句:"告诉'前端',接口改了,记得同步。" s2s 把"前端"解析成对应会话,把这句话投进去。
  • 或者:"把'部署'叫回来,继续把发布收尾。" s2s 发现"部署"已经静止(done),先把它拉起来,再把话带进去,它醒来接着干。
  • 对方活着就马上收到;对方**打瞌睡(静止)**就自动叫醒再投。名字每次现读最新标题,你改了口令它也立刻跟着变。

    背后就是几个小工具(s2s_message / s2s_resume 等)在干活,只是在你这边看起来,就是一句自然的话 + 一个名字。发送侧还带了跳数和限速,防止两个会话互相"喊来喊去"打转。
    一个场景

    把每个会话当成一位同事,各干各的专业活;s2s 就是"按名字喊一声"的协作方式。

    产品经理(协调会话)把活儿分给前端、后端、部署三位同事,每人一个会话,各管一段。部署干到一半——发布脚本刚起头,被一通电话打断了,他的会话进入静止(done)。产品经理对着名字喊了一声:"部署,继续。"
    s2s 找到名为"部署"的会话,发现它静止了,把它拉起来,并把交接消息投进去。部署醒来,看到上下文和下一步,继续把发布收尾——不用重新开一遍、也不用重新交代背景。
    过了一会儿前端要改接口,产品经理见"前端"正闲着,直接一条消息投进去,马上有响应。
    整个过程没人开第二个终端、没人跨机器,产品经理按名字点名即可。
    边界
  • 只适合同宿主单进程;跨机/跨进程、要标准 A2A 协议,请用 a2a 或网关类插件。
  • 精简:没有浏览器 UI / 命令面。
  • s2s_history 是进程作用域,不跨重启;要持久历史看信箱或会话日志本身。

    开源
    MIT,仓库在 github.com/ashuai/dsh-s2s
    求拍砖:这种"给 agent 之间搭条内部喊话通道"的路子,你们觉得实用吗?
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部