前言¶
DSH(DeepSeek Harness)官方的 Agent Teams 已经支持具名队友、持久 mailbox 和共享任务板。但在原生 Web 面板里,wire 投影只输出 { members, tasks, failure },消息事件没有出现在界面上;任务板也是只读,无法在面板里直接改。若你希望在同一套 DSH 桌面 UI 里看到多 AI 协作的实时对话、管理成员展示信息,并在输入侧做 @ 派发,就需要额外接一层视图。
dsh-team-chat(维护者 MoYu-CN)是挂在 DSH 插件生态里的工作流类插件:不 fork 官方包,用公开 API 注册平行的 session projection,把 team/message/queued / team/message/delivered 攒成可渲染时间线,并扩展成员头像与派发能力。npm 包名 dsh-team-chat,当前版本 0.1.0,许可证 MIT。
这是什么¶
一句话:嵌在现有 DSH 界面里的多 AI 实时协作聊天室——为 Agent Teams 补上官方面板丢掉的 mailbox 时间线,并提供成员名册(含头像)与 @ 定向派发。
英文简介与目录页一致:Chat room for DSH agents: shared room timeline, member roster, and task dispatch across agent sessions.
核心功能¶
以下能力在仓库 README 与实现清单中已标明为可用或设计目标,安装后需在 DSH 内实际点一遍确认与你环境一致。
聊天室时间线¶
注册独立的 timeline 投影,监听与官方 Agent Teams 相同事件流里的消息事件,经 wire.view 交给前端渲染(SSE 兜底)。左侧为带成员信息的时间线,底部仍使用宿主官方的 composer。
成员面板与展示层覆写¶
成员面板显示人数、「添加 AI 成员」入口,以及每行的打开对话 / 编辑资料 / 移除。官方 team/member 里的 name / provider / context 为不可变身份;改显示名、职责、头像只写入插件本地 MemberStore(members.json),按 memberKey 覆写 UI,不写回 Team 协议层,避免触发 immutable identity fields 错误。
头像支持 emoji / text / image 三种;图片为 data URL,客户端与宿主各有一道约 60 KiB 上限,且宿主只接受 data:image/(png|jpeg|gif|webp|avif);base64,...。
@ 派发与工具¶
亮点包括:@ 派发到单个成员,以及面向模型的 chatroom_read / chatroom_send 工具(README 英文摘要中列出)。输入框工具栏左侧有「发送到团队」成员选择器(槽位 conversation.input.left)。
设置与语言¶
设置 →「聊天室」可配置发言人显示名与头像、AI 成员列表等。设置 UI 跟随宿主语言(内置中英字典);面向模型的 prompt 按设计保持中文。
添加 AI 成员¶
浏览器端无法直接持有宿主 Lead Agent 对象,插件提供宿主路由 POST /__teamchat/spawn,由宿主 findLiveAgent() 后调用官方 ctx.agentTeams.spawnTeammate。仅 Lead 可 spawn;name 须匹配 /^[a-z0-9]+(?:-[a-z0-9]+)*$/u 且不能为 lead,description 必填且 ≤200 字符。agentTeams 未进 inject,缺失时接口返回 503 TEAM_UNAVAILABLE,客户端会提示由 Lead 自行调用 spawn。
尚未完成或需人工确认的部分¶
README 明确列出未完成项,例如:左侧 sidebar.panellist 的「聊天室」按钮、右栏成员页签的真机 UI 时序、以及「从聊天室发言走完整 Team 协议」(当前主要写官方 draft)。使用前请以仓库 当前状态 章节为准。
安装与启用¶
推荐从 npm 安装(包名勿手抄 tarball):
dsh plugin add dsh-team-chat
装完后按提示重启 DSH(宿主侧);刷新页面后客户端脚本生效。
备选方式(摘自 README):
tarball:
dsh plugin add https://registry.npmjs.org/dsh-team-chat/-/dsh-team-chat-0.1.0.tgz
本地 link(改插件源码时即时生效,需自行 clone 到本机目录):
dsh plugin add "link:<你的目录>/dsh-team-chat"
运行环境:package.json 要求 Node ^22.19.0 || >=24.0.0。
典型用法¶
- 安装并重启 DSH、刷新 Web 客户端。
- 在 设置 → 聊天室 配置你的显示名、头像与 AI 成员列表;若使用官方 Team spawn,需保证当前会话 Lead 在线且满足命名规则。
- 在会话中切换到插件注入的聊天室视图(
conversation.view),查看左侧时间线;在底部官方输入框旁选择目标成员后发送,或使用@派发到单一成员。 - 通过会话头或侧栏入口打开成员管理,编辑展示层资料或添加 AI 成员(由 Lead 权限与 spawn 接口约束)。
- 若 Agent 需要读写聊天室上下文,在支持工具调用的流程中使用
chatroom_read/chatroom_send(以插件注册的工具为准)。
排查槽位与 Cordis 规范时,README 指向官方 @deepseek-ai/dsh-agent-preset/skills/cordis-plugin-development/ 及 client runner 中的 CLIENT_SLOT_API;本插件使用的槽包括 conversation.view、conversation.session.header.actions、conversation.input.left、settings.general.item 等。
原理简述¶
不修改官方包:通过 ctx.sessionProjections.register() 注册与官方 agentTeam 投影并行的 timeline 投影,在 apply 内用 ctx.effect 注册字典、槽位与清理逻辑;会话派生 UI 走 Host 投影的 wire.view,Client 端 client.js 仅依赖已种子化的 react / react-dom,不 require Harness Client 包。
适用场景与注意¶
适合谁: 已在 DSH 里使用 Agent Teams、需要同一界面内看到 mailbox 对话流、统一管理成员展示信息,并在多 session 间做任务/消息派发的开发者或小团队。
权限与安全: 插件以当前 DSH 进程权限运行;spawn、路由与成员存储均在宿主侧执行。安装前请阅读 GitHub 源码 与 MIT 许可证,自行评估是否纳入生产 profile。
生态说明: DSH 社区插件目录(如 SkillHub 上的 dsh-team-chat 页)为独立站点,与 DeepSeek / 幻方无官方从属关系;星标与维护节奏以仓库为准(目录页曾显示 0 star,不代表功能不可用)。
已知限制: 官方任务板只读问题本插件未声称解决;成员身份不可通过 UI 篡改协议层;部分 UI 路径 README 仍标为待实测。
链接¶
- 社区目录:https://www.skillhub.cn/plugins/MoYu-CN/dsh-team-chat
- 源码与详细安装说明:https://github.com/MoYu-CN/dsh-team-chat
若你的痛点是「Team 数据在、消息 UI 不在」,安装 dsh-team-chat 后按上述步骤重启与刷新,即可在现有 Harness 界面内接上 mailbox 时间线与成员协作入口;更完整的 Team 发言协议与侧栏入口以仓库后续版本为准。