dsh-agent-desk:在 DSH 里看见每个智能体的任务,并安全跨预设委派

前言

在 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)

它要解决的典型场景有两类:

  1. 看不见:多个自定义 agent 并行时,不知道运行中 / 等待确认的数量,也不方便按预设浏览任务。
  2. 跨 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 服务」。

安装与启用

前置条件

  1. DSH 版本满足 >=0.2.1-rc.1 <0.3.0。
  2. 至少有一个自定义 agent 预设(内置四个不会出现在值班台列表里)。
  3. 若要用委派,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 <本目录绝对路径>

装完怎么验证

  1. 重启 DSH。
  2. 新建一个会话(旧会话不会凭空多出工具)。
  3. 新会话工具表里应出现 delegate_agent 与 list_agent_presets。
  4. 左侧导航出现「智能体」,点开为主区整页。

若侧栏没有「智能体」,可查 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
羽毛球分组比赛记分
小程序二维码

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

小夜