前言¶
在 DeepSeek Harness(DSH)里并行开多个对话做同一件事时,常见做法是人工在侧边栏之间切换、复制粘贴上下文。官方 dsh-superagent 面向的是仓库层自主工人(GitHub / 飞书触发、工单与 PR 体系),并不直接接管你桌面上已有的聊天窗口。若目标是让多个侧边栏对话按角色分工、在 step 边界互发消息、worker 遇阻回问「队长」而不是反复打扰用户,就需要在对话层做跨会话投递与只读盯进度。下面介绍社区插件 dsh-cross-session(维护者 cao123-2024,分类:工作流)。
这是什么¶
dsh-cross-session 是 DSH 持久化插件:不依赖第三方包,以本地目录作为 bundle 安装。一句话定位:让 Harness 里多个独立对话在 step 边界互相喊话、worker 用 ask_master 回问创建它的主 Agent,并用 get_chat_info 只读查看对方进度——目标会话对只读窥视完全无感知。
生态上,DSH 奉行「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。源码与说明见 GitHub:cao123-2024/dsh-cross-session(MIT,package 版本 1.1.0)。
与官方 Super-agent 的分工(摘自 README 对比表):
| 官方 dsh-superagent | 本插件 | |
|---|---|---|
| 工作层级 | 仓库层自主工人 | 桌面上的对话层协作 |
| 是否接管侧边栏对话 | 否 | 是,在已有对话之间通信 |
| 是否替代对方 | — | 不替代;可叠加使用 |
团队层级与角色¶
标题前缀即角色,侧边栏会在名字前显示图标。新建对话可自动带前缀;已有对话用 assign_agent_role 补角色,刷新页面后客户端图标生效。
| 角色 | 标题前缀 | 职责 |
|---|---|---|
| 队长 leader | 队长| |
接需求、拆分、派活、汇总 |
| 总监 director | 总监| |
四层模式;管经理 |
| 经理 manager | 经理| |
管 3+ worker |
| worker | worker| |
执行;问题回问上级 |
默认 2 层:队长直管 3–4 个 worker。3 层为队长 → 经理 → worker;每个经理建议带不少于 3 个 worker,经理不够时不要硬开三层。4 层需配置 allowFourTier: true 且任务规模足够。完整规则见仓库内 docs/HIERARCHY.md,AI skill 见 skills/multi-agent-shout/SKILL.md。
协作关系可概括为:
队长对话 ── new_conversation ──▶ worker 对话 A
│ ◀──── shout / ask_master ────┘
│
└────── get_chat_info(只读看上下文与进度)
核心工具与行为¶
README 中列出的主要工具如下。
| 工具 | 作用 |
|---|---|
new_conversation |
新建独立对话,支持 role / reports_to;自动写角色标题前缀 |
assign_agent_role |
给已有对话改角色 |
get_agent_team |
读当前层级、allow_four_tier 与各 agent 角色 |
list_conversations |
列出 root 对话:标题、工作区、运行状态(已归档不显示) |
shout |
向另一对话投递消息:运行中在最近 step 边界收到,空闲时唤醒新 turn |
ask_master |
worker 专用:把问题交给创建它的主 Agent,而非直接问用户 |
get_chat_info |
只读查看状态、turn/step、最近消息与工具调用 |
rename_conversation |
改侧边栏显示名(保留角色前缀) |
interrupt_conversation |
停止目标当前 turn,保留待处理输入 |
archive_conversation |
归档已完成的 worker |
list_permission_presets / list_models |
查看可选权限预设与模型 |
configure_conversation |
调整目标对话的权限预设 / 模型 / 思考强度 |
设计要点(便于理解边界):
- 投递通过
sessionController.resolveAgent拿到 live Agent(冷会话自动 resume),再以agent-messagerelay 形式steer用户消息。 - UI 侧来源显示为「来自会话 AI「标题」」;
get_chat_info仅注册在非 worker 的 Agent scope。 new_conversation默认把队长的权限预设复制给新对话(inheritPermissions)。- 安全护栏包括:创建上限、每分钟限流、消息体积上限、同一对会话交替喊话上限(防 AI 乒乓)、拒绝 subagent 会话。
安装与启用¶
要求:DSH 0.2.1-rc.x(desktop 或其他 profile 均可),无额外依赖。
方式一:Plugin Manager(推荐)¶
在 DSH 中把仓库目录作为本地 bundle 安装:
plugin_manager install_bundle
target = <本仓库绝对路径>
方式二:CLI¶
dsh plugin --profile desktop add "<本仓库绝对路径>"
安装后在对应 profile 的 bundle 列表中启用 @local/dsh-cross-session,必要时刷新页面。插件以当前 DSH 进程权限运行,安装前应自行查看源码与 MIT 许可证。
配置¶
插件通过 cordis.patch.yml 注入 bundle,默认配置示例:
- insert:
- id: cross-session-shout
name: '@local/dsh-cross-session'
config:
maxCreatedConversations: 12
rateLimitPerMinute: 20
maxMessageBytes: 32768
maxShoutChain: 6
inheritPermissions: true
allowFourTier: false
可按需调整创建数量、限流、消息大小、喊话链深度、权限继承与是否允许四层模式。
典型用法思路¶
- 在队长对话中明确任务书(层级与 worker 数量为建议,模型也可自行决定)。
- 用
new_conversation创建 worker,设置role与reports_to;或对用户已有对话执行assign_agent_role。 - 用
get_agent_team/list_conversations确认团队结构与运行状态。 - 队长用
shout派工或插话;worker 阻塞时用ask_master,避免把细节问题抛给用户。 - 队长用
get_chat_info只读盯各对话进度,必要时interrupt_conversation或configure_conversation调整模型与权限。 - 完成后对 worker 调用
archive_conversation收尾。
仓库提供 1080p 预告片(约 67s,3D 工作台与真实演示),可从 Release v1.1.0 资源 下载对照操作流程。
适用场景与已知限制¶
适合:同一项目在桌面上并行多个对话,需要队长调度、step 边界可靠投递、worker 向上澄清且用户少被打断的场景。与 Super-agent 叠用时,可让前者管「活从哪来」,本插件管「活如何在几个对话之间流动」。
限制(README 明示):
agent-message不会触发自动标题/活跃度,插件会显式rename。- 进程重启后 pending inbox 不会自唤醒;无跨重启离线投递。
- 喊话目标仅支持 root 会话;subagent 会话会被拒绝。
- DSH 创建时绑定对话工作区,已有对话不能原地迁移;
adopt_workspace会改为在新工作区创建项目对话。
结尾¶
dsh-cross-session 把多 Agent 协作落在 DSH 侧边栏的真实对话上:角色层级、shout / ask_master 与只读 get_chat_info 构成一条可复现的工作流。查阅与安装入口:SkillHub 目录、GitHub 仓库。