前言¶
同时开多个 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. 建立连接¶
- 按住 Composer 左侧圆点(或会话行的
…),拖到会话列表中的目标行;未连接行上释放为 连接,已在连接的行上释放为 断开(悬停提示会说明)。 - 或在侧栏 Connections 面板中选择两个会话。
- 连接完成后两端各收到一条安静通知,不会打断当前工作。
需要更多细节时,打开侧栏 Connections,或让会话调用 connection_peer_work。
2. 挂载卡片并使用工具¶
- 在 Connections 面板打开某条连接,从候选列表选择卡片,并指定生效侧(A / B / 双侧)。
- 该侧会话通过
connection_card_tool发现并调用卡片提供的工具。 - 向对端发消息时选择
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