前言¶
在 DeepSeek Harness(DSH)里配置多个自定义 agent 预设之后,会话会分散在不同预设下。单靠会话列表很难一眼看出:谁在运行、谁在等你确认、某个预设底下挂着哪些任务。跨预设协作时,又常常只能把需求复制到另一个会话里人工接力。
dsh-agent-desk(智能体值班台)是社区维护者 hzzzcyn 发布的 DSH 插件,当前版本为 0.2.3。它在桌面/Web 侧栏增加「智能体」整页视图,按自定义预设汇总最近任务与状态;同时在每个新 agent 的作用域里注册 delegate_agent 与 list_agent_presets,让当前 agent 在用户同意的前提下,把自包含任务交给另一预设的 agent 执行并取回最终文本。插件为零运行时依赖、无构建步骤,许可为 MIT。
下面介绍插件定位、能力、安装与典型用法,并说明版本边界与使用时的注意点。
这是什么¶
一句话:dsh-agent-desk 把「多预设 agent 的可视化值班台」和「跨预设委派工具」做成同一个 DSH bundle,分宿主半与浏览器半实现。
| 项目 | 说明 |
|---|---|
| 包名 | dsh-agent-desk |
| 仓库 | https://github.com/hzzzcyn/dsh-agent-desk |
| 目录页 | https://www.skillhub.cn/plugins/hzzzcyn/dsh-agent-desk |
| 维护者 | hzzzcyn |
| 适用 DSH | >=0.2.1-rc.1 <0.3.0(engines.dsh 声明;>=0.3.0 未验证且会被 engines 挡掉) |
| Node | >=20(开发与验证在 0.2.2-rc.1) |
它要解决的典型场景有两类:
- 看不见:多个自定义 agent 并行时,不知道运行中 / 等待确认的数量,也不方便按预设浏览任务。
- 跨 agent 协作难:例如私人助手需要开发预设帮忙时,原先只能人肉复制粘贴;委派工具在用户确认后把任务交给目标预设,前台等待子 agent 结束再拼接文本结果。
核心功能¶
资料中的能力一览如下,均来自仓库 README,未额外扩展。
侧栏「智能体」页(浏览器半)¶
- 导航级「智能体」项(收起侧栏时为机器人图标),
order: 20。 - 只列用户自定义预设;内置
standard/minimal/ptc/cordis自动排除。 - 每组显示
运行 N · 等待 M(有出错时额外显示)与任务数;任务仅包含最近 7 天有更新的会话(常量TASK_WINDOW_MS),页头统计同步过滤。 - 收起时一行一个预设;展开后逐行列出该预设的会话(状态点、标题、相对时间)。
- 委派产生的子会话缩进挂在父任务下,带「子」标记;父行可显示「含 N 个子任务」。点击普通任务打开会话;子任务用
parentSessionId+childSessionId打开子会话。 - 展开/收起状态保存在
localStorage["dsh-agent-desk:expanded"]。 - 若宿主拿不到
projectionValues.agentPreset,页面退化为平铺会话列表,并提示「当前宿主未暴露会话所属预设,暂按会话平铺」。
状态判定顺序(资料原文):
pendingInteraction 存在 → 等待确认
running === true → 运行中
error → 出错
其余 → 空闲
跨预设委派(宿主半)¶
| 工具 | 作用 |
|---|---|
delegate_agent |
向指定预设的 agent 委派自包含任务;preset、task 必填,cwd 可选 |
list_agent_presets |
只读返回 [{ id, name, builtin }],供模型核对目标预设 id |
要点:
- 工具在
agent/created时注册进每个新 agent 自己的作用域;已存在的会话不会自动补上这两个工具。 preset无默认值,插件不读全局默认、不写配置。- 工具描述要求:调用前必须先向用户说明目标 agent、任务、期望产出,得到同意后再调用。
- 委派链:
subagents.startActivation({ provider: 'spawn', delivery: 'caller', request }),前台等待run.result,只拼接type === 'text'的内容块;stopReason === 'completed'才算成功。 - 宿主组合里需要有
subagents服务,否则委派会报「当前组合没有可用的 subagents 服务」。
安装与启用¶
前置条件¶
- DSH 版本满足
>=0.2.1-rc.1 <0.3.0。 - 至少有一个自定义 agent 预设(内置四个不会出现在值班台列表里)。
- 若要用委派,profile 的宿主组合需启用
subagents。
安装命令¶
从 npm 或 GitHub(发布后):
dsh plugin --profile desktop add dsh-agent-desk
dsh plugin --profile desktop add github:hzzzcyn/dsh-agent-desk
从本地目录(开发):
dsh plugin --profile desktop add <本目录绝对路径>
装完怎么验证¶
- 重启 DSH。
- 新建一个会话(旧会话不会凭空多出工具)。
- 新会话工具表里应出现
delegate_agent与list_agent_presets。 - 左侧导航出现「智能体」,点开为主区整页。
若侧栏没有「智能体」,可查 dsh.profile.bundles 是否含 dsh-agent-desk。桌面版宿主日志目录:%APPDATA%\@deepseek-ai\dsh-desktop\logs\。
典型用法¶
用法一:在「智能体」页巡检任务¶
先点左侧栏「智能体」,在主区按预设浏览:
- 看每组头部的
运行 N · 等待 M与任务数,判断哪个预设需要处理。 - 展开某预设,点具体任务跳回对应会话;若有委派子任务,点缩进行的「子」任务进入子会话。
- 某预设 7 天内没有会话时,展开会显示「这个智能体还没有任务」。
这一步是只读浏览,不写配置、不发网络请求;除展开状态外不额外采集数据。
用法二:跨 agent 委派¶
不确定目标预设 id 时,先让模型调用 list_agent_presets,核对 id(内置项 builtin 为 true,但值班台页面本身不列内置预设)。
委派前应对用户说清楚:目标预设、完整任务、验收标准。用户同意后再调用 delegate_agent。参数含义如下:
| 参数 | 必填 | 说明 |
|---|---|---|
preset |
是 | 目标 agent 预设 id,例如 dev |
task |
是 | 完整、自包含的任务(子 agent 看不到当前会话上下文) |
cwd |
否 | 子 agent 初始目录;省略则继承调用方 |
可对模型使用的提示示例(README 原文精神):
把「给 desktop profile 加一个定时巡检脚本」交给开发预设做。先说清目标 agent、完整任务和验收标准,我点头后再调用。
注意:delegate_agent 前台阻塞,长任务会占住调用方这一轮;子 agent 权限由目标预设决定,不要把不该暴露的内容写进 task。
适用场景与注意¶
适合谁
- 在 DSH 桌面 profile 下配置了多个自定义 agent 预设,需要集中查看最近一周任务与状态的用户。
- 希望在同一轮对话里,经用户确认后把工单式任务交给另一预设(如「助手 → 开发」)的用户。
版本与形态限制(资料原文)
- 7 天任务窗口固定,无「显示全部」开关。
- 仅有 Web/桌面侧栏页面,无 CLI/TUI。
- 尚无 GUI 确认卡(计划在
0.3.0);确认依赖工具描述与模型遵守纪律。 - 无法通过公开 API 直达父会话头部的「N 个子智能体」下拉;本版以直达子会话为主。
安全与权限
插件以当前 DSH 进程权限运行,安装前建议查看仓库源码与 MIT 许可证。插件本身不写委派历史、不指定默认委派目标;委派内容会进入子 agent 会话并按宿主机制持久化。社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;「一切皆插件」是 DSH 的生态理念,本文介绍的是社区插件而非官方应用商店条目。
结尾¶
dsh-agent-desk 把多预设 agent 的「谁在工作、谁在等确认」收到侧栏一页,并用 delegate_agent 在用户同意下做跨预设委派。若你已在使用 DSH 0.2.1-rc.1 至 0.3.0 之前的桌面组合,可按上文命令安装、重启后新建会话验证。
- 插件目录:https://www.skillhub.cn/plugins/hzzzcyn/dsh-agent-desk
- 源码与完整说明:https://github.com/hzzzcyn/dsh-agent-desk