← Back to home@lgtuusb

dsh-peer

???? AI ????????(??? DSH ??)

Stars
0
Language
JavaScript
Created
Oct 4, 2026
Updated
Oct 4, 2026

Introduction

DSH Peer — 两个对等 AI 实例的协作工具包

让两个独立安装的 AI 编码助手互相认识、互相派活、互相复验, 并且人类可以从一个窗口同时看到它们、跟它们说话。


它和别的多 agent 工具有什么不同

常见的多 agent 方案本项目
形态一个主实例,内部开多个分身两个对等的实例,各自独立
谁启动谁主实例生出子实例两个都是独立安装的,谁也不是谁生的
界面子实例没有界面,后台跑两个都有自己的完整界面
身份子实例没有独立履历各自独立的会话历史、设置、插件
隔离共享配置独立配置,甚至可以用不同的账号 / API key
单点故障主实例挂了全挂一个挂了另一个照常跑
关系主从对等 —— 任何一方都能主动发起

核心差异:常见方案解决的是"一个大脑指挥多只手";本项目解决的是"两个平等的个体怎么协作"。

后者更难,因为没有主从关系可以依赖 —— 所以这里有一整套"外交礼节":

  • 身份牌(新会话如何快速认出对方)
  • 署名信封([甲方→乙方] 意图:交付 | 编号:003)
  • 文件归属表与认领制(避免互相踩文件)
  • 实现者 / 复验者分离(不许自己顺手改对方的实现)

目录结构

peer-plugin/     给对方实例装的插件:暴露一个本地 JSON-RPC 端点
peer/            命令行客户端(状态 / 读时间线 / 发消息 / 等待)
app/             双栏对话程序(后端 + 前端 + 测试)
desktop/         Electron 打包壳(把 app 做成独立 exe)
IDENTITY.md         新会话开局读这一份就能接上协作
RULES.md         协作规矩
看板         共享看板模板(文件归属 + 认领 + 变更记录)
ROADMAP.md       路线

工作原理

实例 A(工作区 X)                实例 B(工作区 Y)
  DSH 进程                         DSH 进程
    └─ 桥插件 ←──── 本机回环 ────→ 桥插件
         ↑                              ↑
         └──────── app / peer ──────────┘
                      (人类界面)

每个实例的插件会在自己的 DSH_HOME 下写一个端点文件:

<DSH_HOME>/agents-anywhere/bridge/endpoint.peer.json
{ "version":1, "host":"127.0.0.1", "port": <随机>, "token": <随机>, "pid": <进程号> }

端口与 token 每次重启都变,所以客户端永远从文件读,不要写死。


配置(重要)

本仓库已做隐私清理,源码里的个人路径被替换成占位符:

占位符含义你要改成
%DSH_HOME%该实例的 DSH_HOME你的实际路径
%REPO%本仓库所在目录你的实际路径
%WORKSPACE_A% / %WORKSPACE_B%两个实例的工作区你的实际路径
session-<id>会话 id运行时从接口取

推荐用环境变量而不是改源码:代码里优先读 DSH_HOME,其次才是默认值。


已知限制

  • 延迟:一条消息要经过 HTTP → 后端 → 桥 → 注入目标会话 → 对方模型启动,比同进程内派活慢
  • 受制于官方桥的能力:官方桥只提供"对已有会话发消息"和"中断",不支持新建会话;本项目自带插件补齐了这块
  • 两边都要装插件:只装一边则那一侧功能不完整
  • 端点会变:重启后端口和 token 都换,必须重读端点文件

状态

早期版本,能跑通端到端,但不保证稳定。欢迎 issue / PR。

许可

待定(见仓库说明)


文件说明

文件内容
README.md本文件 —— 它和别的多 agent 方案有什么不同
INSTALL.md怎么装:两个实例、装插件、跑通链路
DEPLOYMENT.md一份实际跑通的配置样例 + 6 个实测坑
IDENTITY.md身份牌 —— 新会话开局读这一份就能认出对方

| RULES.md | 协作规矩 | | ROADMAP.md | 路线 | | peer-plugin/ | 核心:给对方实例装的桥插件(本地 JSON-RPC 端点) | | peer/ | 命令行客户端 + 协议规格 + 测试 | | app/ | 双栏对话界面(后端 + 前端 + 测试) | | desktop/ | Electron 打包壳(把 app 做成独立 exe) |