dsh-connection-card-host:让多个 DSH 会话建立有状态连接并挂载连接级卡片

前言

同时开多个 DSH 会话很常见:一个查资料、一个写代码、一个跑实验。默认情况下这些会话彼此隔离——看不到对方在改哪些文件、计划走到哪一步,也很难把结论稳妥地交给另一条会话继续。

DeepSeek Harness 的生态习惯用插件扩展能力。维护者 Noob-stupid 提供的 dsh-connection-card-host(社区目录条目为 preview 线仓库 Noob-stupid/dsh-connection-card-host-preview)把 连接(connection) 做成一等对象:会话是节点,连接是容器,卡片(card) 是挂在连接上的插件。分类为工作流;GitHub 上该 preview 仓库当前约 1 star。插件以 MIT 许可证发布,package.json 中版本为 1.0.82,要求 Node >=20 <25,并声明对 @deepseek-ai/dsh 等 peer 的版本区间(安装时 DSH 会按版本门禁,不满足会明确拒绝)。

下面介绍它做什么、如何安装,以及典型用法与注意事项。

这是什么

一句话:DSH 会话连接卡片宿主——在会话之间建立有状态连接,并在连接上挂载仅对该连接可见的卡片插件。

与「每个会话各干各的、靠复制粘贴或人工同步上下文」相比,该插件提供侧栏 Connections 面板、拖拽连线 UI,以及分层的能力模型:工作状态与约定盒以 pull 为主(对方不主动问则几乎不占对方上下文);消息以 push 进入对方收件箱,并会迫使对方会话跑一轮(DSH 里没有「看到了但忽略」的状态)。

核心功能

看见彼此(工作状态,自动采集)

对方会话可通过 pull 机制了解:正在编辑的文件、计划进度、最近使用的工具等。README 说明这些数据来自运行时事件收集,不要求对方模型额外配合。Awareness 是 pull-based——对方不询问时成本为 0。

约定盒(Convention box)

连接上可维护双方 agreed 的内容:接口签名、单位、命名、职责归属等。可在面板编辑;会话通过 connection_conventions / connection_declare 读写。同样为 pull,避免把大量未必用到的内容推满对方上下文。

会话间消息(三种紧急程度)

发送方可选紧急程度(README 工具描述里强调:打断有成本,默认宜用 normal,仅在必须立刻改变行为时用 urgent):

紧急程度 机制 对方侧表现
quiet inject 写入上下文但不唤醒;下次工作时可见
normal followup 排队;当前任务结束后再看到
urgent steer 插入正在执行的 turn,立即读到

对空闲对端,urgent 会自动降级为排队行为。

连接级卡片与工具共享

卡片 是挂在 一条连接 上的插件,生命周期随连接挂载/卸载;可见性可按 A 侧、B 侧或双侧配置。卡片内用 api.registerTool 注册的工具,连接上的会话通过常驻桥接工具 connection_card_tool 列出并调用(无 tool 参数时列出可见卡片与工具,带 tool 时调用)。

连接建立后,会话行旁会出现 rail,两端彩色圆点表示 该方向 的权限(只读 / 可建议 / 可写等,详见 README 示意图)。

适配层与社区卡片(可选)

配置里 Adapter layer 默认关闭;开启后才允许把普通 DSH 插件作为卡片挂载。社区维护卡片与适配器清单见仓库 awesome/README.md;任意普通 DSH 插件也可按贡献指南申请收录为 card。

随插件附带的 Agent Skill

安装后会通过 DSH skill-provider 注册 connection-card skill,会话目录中可见连接工具的使用说明,源文件为 skills/connection-card.md;卸载插件后注册随插件生命周期消失。也可将该文件复制到 ~/.dsh/skills/connection-card.md 作本地 skill 使用。

安装与启用

README 明确:未发布到 npm(公共 registry 上 DSH peer 不可用,npm install 会失败)。应从 GitHub 安装。

对应当前介绍的 preview 开发线:

dsh plugin --profile web add github:Noob-stupid/dsh-connection-card-host-preview

若使用 README 所称的稳定线(公开 facade,发布时同步):

dsh plugin --profile web add github:Noob-stupid/dsh-connection-card-host

也可使用 Releases 页上的 tarball URL 固定版本(README 示例格式为 dsh plugin --profile web add https://github.com/…/releases/download/v1.0.0/noob-stupid-dsh-connection-card-host-1.0.0.tgz,需替换为实际 asset 地址)。

README 还注明:裸名 dsh-connection-card-host 与 @noob-stupid/dsh-connection-card-host 在 npm 上会 404,勿用于安装。

安装前建议阅读仓库源码与 MIT 许可证。插件以当前 DSH 进程的权限运行;连接与卡片可能暴露会话状态、文件路径与跨会话消息,安装前应确认信任来源与能力边界。

典型用法

1. 建立连接

  1. 按住 Composer 左侧圆点(或会话行的 …),拖到会话列表中的目标行;未连接行上释放为 连接,已在连接的行上释放为 断开(悬停提示会说明)。
  2. 或在侧栏 Connections 面板中选择两个会话。
  3. 连接完成后两端各收到一条安静通知,不会打断当前工作。

需要更多细节时,打开侧栏 Connections,或让会话调用 connection_peer_work。

2. 挂载卡片并使用工具

  1. 在 Connections 面板打开某条连接,从候选列表选择卡片,并指定生效侧(A / B / 双侧)。
  2. 该侧会话通过 connection_card_tool 发现并调用卡片提供的工具。
  3. 向对端发消息时选择 quiet / normal / urgent(及 README Use 节提到的 preempt 等等级,以 skill 与文档为准)。

3. 卸载

  • 单张卡片:候选列表中的 Uninstall;会提示当前挂载在多少条连接上。内置卡片随插件升级保留,不提供卸载入口。
  • 整个插件:从 DSH profile 移除插件。$DSH_HOME/connection-cards/ 下的卡片与连接数据 README 说明会 保留不动。

配置项

设置 默认 作用
Adapter layer 关 允许普通 DSH 插件作为卡片挂载;关闭时不改动任何挂载行为
Automatic mirroring 关 自动转发会话内容到对端;默认关闭(README 称多数为噪声)
View preferences 按连接 连接轨道上显示的 lane 数量

适用场景与注意

适合:长期并行多条会话、需要在会话间传递工作状态与约定、希望在 连接范围 内共享重型依赖或专用工具(卡片可带较大依赖),又不想全局安装一堆 profile 级插件的场景。

注意:

  • 消息层(尤其 urgent)会打断对端思路;协作规范应默认 normal 或 quiet,工作状态与约定用 pull 层解决「知道」而非「立刻行动」。
  • FAQ 说明:卡片安装在插件自有目录,不会在 profile 里跑 pnpm;挂载卡片 不会 改写 DSH 或 profile,可随时撤销。
  • 社区插件目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 本身仍是「一切皆插件」的扩展思路。

结尾

dsh-connection-card-host 把多会话协作从「人工拷贝上下文」推进到「连接 + 分层感知/约定/消息 + 连接级卡片工具」。若你要在 preview 线跟进最新构建,可从目录页或 GitHub 仓库阅读完整 README(含架构、写 card 指南与维护说明)。

  • 目录页:https://www.skillhub.cn/plugins/Noob-stupid/dsh-connection-card-host-preview
  • GitHub(preview):https://github.com/Noob-stupid/dsh-connection-card-host-preview
  • GitHub(稳定 facade):https://github.com/Noob-stupid/dsh-connection-card-host
羽毛球分组比赛记分
小程序二维码

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

小夜