🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

跨会话通信 lileikeji/dsh-crosstalk

DeepSeek Harness
lileikeji69 天前有提交已提供中文文档扫描:含敏感能力

让本机多个会话互相发现并收发消息

29.1/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add lileikeji/dsh-crosstalk
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · tool
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 69 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@dsh-crosstalk/bundle(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/23 05:50:59

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 11 处,展示前 11 条)
  • 写入本地文件
    src/atomic.ts:14
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    src/atomic.ts:26
    writeFileSync(tmp, data)
  • 写入本地文件
    src/atomic.ts:27
    renameSync(tmp, path)
  • 读取本地文件
    src/atomic.ts:44
    raw = readFileSync(path, 'utf8')
  • 删除本地文件
    src/atomic.ts:58
    unlinkSync(path)
  • 读取本地文件
    src/deliver.ts:164
    files = readdirSync(this.inboxDir)
  • 写入本地文件
    src/deliver.ts:183
    renameSync(path, `${path}.corrupt`)
  • 读取本地文件
    src/registry.ts:97
    files = readdirSync(this.registryDir())
  • 读取本地文件
    src/registry.ts:141
    files = readdirSync(this.registryDir())
  • 读取本地文件
    src/registry.ts:163
    refs = readdirSync(join(this.homeDir, 'inbox'))
  • 删除本地文件递归
    src/registry.ts:170
    rmSync(join(this.homeDir, 'inbox', ref), { recursive: true, force: true })
扫描于 2026/11/2(1 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-timer@deepseek-ai/dsh-agent@deepseek-ai/dsh-llm@deepseek-ai/dsh-scope@deepseek-ai/dsh-session@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 跨会话消息传递
  • 会话互相发现
  • 事件驱动自动协作调度

dsh-crosstalk — 给 DSH 做跨会话消息传递,风格像 Claude Code,还带事件驱动的自动协作调度

README

由 DeepSeek 最新模型翻译生成
dsh-crosstalk DSH 跨会话消息。 机器上的任意会话都能列出并给其他会话发消息 —— 类 Claude Code 的水平消息机制,无需守护进程。 dsh-crosstalk 是一个 DeepSeek Harness bundle。每个运行该 bundle 的会话都会向本地注册表(~/.dsh/crosstalk/,文件 + 原子重命名,无守护进程 —— 只要两个会话能看到同一个 home 目录,它们就能互发消息)发布心跳。每个会话获得稳定名称(-,例如 dsh-cowork-amber)和一个持久 ref id;任何会话都可以列出在线会话,并向目标发送一条清晰标记的 turn —— [message from session dsh-cowork-amber (/Users/me/projects/dsh-cowork)],发送者名称随消息携带,因此回复只需 send_message 回去。 工作原理 1. 身份:启动时根据工作目录派生出 - 名称,加上进程唯一的 ref(ct-…)。同一目录的两个会话会得到不同的形容词与名称;ref 用于消歧,也是收件箱路径。
展开完整文档(README 剩余 1 节)
dsh-crosstalk

DSH 跨会话消息。 机器上的任意会话都能列出并给其他会话发消息 —— 类 Claude Code 的水平消息机制,无需守护进程。

dsh-crosstalk 是一个 DeepSeek Harness bundle。每个运行该 bundle 的会话都会向本地注册表(~/.dsh/crosstalk/,文件 + 原子重命名,无守护进程 —— 只要两个会话能看到同一个 home 目录,它们就能互发消息)发布心跳。每个会话获得稳定名称(-,例如 dsh-cowork-amber)和一个持久 ref id;任何会话都可以列出在线会话,并向目标发送一条清晰标记的 turn —— [message from session dsh-cowork-amber (/Users/me/projects/dsh-cowork)],发送者名称随消息携带,因此回复只需 send_message 回去。

工作原理

1. 身份:启动时根据工作目录派生出 - 名称,加上进程唯一的 ref(ct-…)。同一目录的两个会话会得到不同的形容词与名称;ref 用于消歧,也是收件箱路径。
2. 注册表:每个在线会话一个心跳 JSON 文件,位于 /registry/.json(name、ref、pid、cwd、status、startedAt、heartbeatAt、uid、inbox)。定时刷新;超过 2× 间隔没有心跳的条目视为死亡并被垃圾回收。
3. 工具 —— 扩展而非复制:
- list_agents 新增 scope: peers(本机其他在线会话:名称、状态、cwd、最后活动)与 scope: all(后代 + peers)。原有 children/descendants 作用域委托给捕获的原始定义。
- send_message 的 to 除子代理 id 外,还接受 peer 名称或 ref,并支持可选 summary(5–10 字摘要,显示在目标 UI 中)。
- 原始工具保持注册;本 bundle 按 agent 作用域遮蔽它们(可逆的 Cordis 效果),卸载后精确恢复原行为。
4. 投递:消息是追加到目标收件箱(/inbox//)的一个 JSON 文件,原子写入(临时文件 + 重命名),崩溃中断不会产生半条消息。目标端的 watcher 轮询收件箱,并通过 followup 注入在线会话:空闲目标会被唤醒处理一个 turn;忙碌目标在下一个 turn 边界收到。投递是尽力而为 —— list_agents 状态不是投递承诺。
5. 注入:turn 带有 [message from session ()] 标签和 crosstalk 来源(form: relay),因此 append-only 日志天然记录来源,DSH UI 会渲染为带标签的 relay 卡片 —— 绝不会渲染成用户文本。系统提示会告知模型:这些是来自同级 agent 的请求,而非用户的指令。

安装

从仓库检出安装:

git clone https://github.com/lileikeji/dsh-crosstalk
cd dsh-crosstalk && pnpm install && pnpm build
dsh plugin --profile web add /path/to/dsh-crosstalk
dsh plugin --profile add /path/to/dsh-crosstalk

(发布到 npm 后,dsh plugin add @dsh-crosstalk/bundle 同样可用。)

配置

添加 bundle 会自动挂载插件(其 cordis.patch.yml 会插入 crosstalk 条目)。如需覆盖字段,在 profile 的 cordis.patch.yml 中按 id 定位该条目 —— 不要再插入第二个 crosstalk 行(会报重复条目错误):

位于 /profiles//cordis.patch.yml
- id: crosstalk
config:
homeDir: ~/.dsh/crosstalk # 注册表根目录(默认 $DSH_HOME/crosstalk 或 ~/.dsh/crosstalk) cwd: /path/to/repo # 对外公布的目录(默认进程 cwd) name: my-custom-name # 显式名称覆盖(须匹配 [a-z0-9][a-z0-9-]) accept: same-user # v0.1 固定:仅同 OS 用户 mode: open # open | allowlist
allowlist: [] # allowlist 模式:精确会话名或 cwd glob
notifyUser: true # 在 UI 中以 relay 卡片显示入站消息 heartbeatIntervalMs: 10000 inboxPollMs: 1000 staleAfterMs: 20000 maxInboxAttempts: 30

(未设置的字段回退到默认值;loader 会整体替换 config,所以只列出要改的字段即可。)

自动协作(事件驱动的自主协调)

默认情况下,本插件还会运行一个事件驱动协调器:无需模型参与、无需手动 send_message*,当兄弟会话结束或失败时自动发送跨会话消息:

- onAgentStatus(默认 true)——当同目录 peer 的状态翻转为 idle (其任务完成)时,向同一目录下正在运行的其他会话发送提示:兄弟任务已结束(空闲/就绪的 peer 不打扰——唤醒它们反而会降低其自身任务质量)。
- onToolFailure(默认 true)——当本进程任一会话的某个工具调用失败时,向同目录正在运行的 peer 广播一条精简提示(工具名 + 错误码),让它们避免重复失败的工作或协调重试。
- cooldownMs(默认 30000)——在窗口期内抑制对同一 peer 的重复通知,避免事件突发造成刷屏。
- sameCwdOnly(默认 true)——仅与本会话工作目录相同的 peer 协作(交叉模块闸门:没有共享目录就没有交叉通信)。
- notifyRunningOnly(默认 true)——只通知正在运行的 peer;空闲/就绪的 peer 从不被打断。

在 profile 的 cordis.patch.yml 中定位插件条目即可关闭任一触发器:

- id: crosstalk
config:
autoCollab:
onAgentStatus: false # 或 onToolFailure / sameCwdOnly cooldownMs: 60000 # 对同一 peer 每隔 1 分钟最多一次

协调器只通过 crosstalk 服务(send)通信——与手动消息相同的信任模型:仅同 OS 用户,peer 请求绝不是用户指令。

投递:排队 vs 直接进记忆

每条跨会话消息都带一个 mode:
- queue(默认,手动 send_message)——追加到目标 next-turn 收件箱并唤醒:消息成为它自己的一轮带标签对话(Claude Code 风格)。
- memory(auto-collab 通知)——直接写入目标的持久对话记忆(带 crosstalk 来源的 user/message),不唤醒、不排队。忙碌的 agent 绝不被中途打断;模型在下一个自然轮次边界看到这条更新。

信任模型

来自其他会话的消息不是用户的指令。注入的 turn 被标记为 peer 请求,系统提示指示 agent 仅在用户既有指令范围内处理,并把有副作用的事项上报给用户。v0.1 仅接受同 OS 用户(发送与接收两侧都会比对 uid),并可用名称/cwd allowlist 进一步过滤入站。v0.1 无网络传输:同一台机器、同一个用户。

开发

pnpm install
pnpm typecheck && pnpm build
pnpm test # 49 个测试:身份、注册表、消息编解码、收件箱 watcher、
工具遮蔽(真实 Cordis 作用域)、双会话往返

路线图

- v0.3:远程/云端会话(网络传输 —— 不是加一个配置项就能实现的)。
- 协调者「驱动 worker 会话」的能力(例如结构化任务回复)。
预览分享卡片长什么样 ↓lileikeji/dsh-crosstalk
分享 · DeepSeek Harness Hub
lileikeji/dsh-crosstalk

让本机多个会话互相发现并收发消息

这是你的仓库?认领条目

回到顶部