证据快照复核于 2026-09-16GitHub 数据核对日期: 2026-08-21
证据已验证Plugin Bundle自动化与智能体Web Profile

DSH Subagent Monitor

用于实时监控直接子代理运行状态的 DSH Web 面板。

快速了解

它能做什么

用于实时监控直接子代理运行状态的 DSH Web 面板。

本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。

使用场景
自动化与智能体智能体UI可视化
适配技术
deepseek-harnessnode
兼容性

Web Profile
>=0.1.0-rc.0; declared compatible: 0.1.5-alpha.2, 0.1.5-rc.1, 0.1.5-rc.2

可信度与状态

证据已验证
核对日期 2026/9/14 UTC 13:54

有代码证据的贡献

它为 DSH 增加什么

子代理监视面板

为 DSH Web 添加侧栏入口和悬浮面板,用于查看直接子代理的状态、运行详情与汇总用量指标。

机制证据

选择前先看

这个 DSH Web 组合包会添加侧栏入口和可移动的悬浮面板。它列出当前会话直接派生的子代理,可打开其对话或返回父会话,并在提供方上报数据时显示状态、耗时、Token 用量、缓存命中率和上下文指标。

适合谁

需要编排子代理,并希望快速查看其直接子任务运行情况的 DeepSeek Harness Web 用户。

常见任务

  • 查看直接子代理的运行中、完成、失败、已打断、Token 达限或已拒绝状态。
  • 打开列表中的子代理对话,继续查看下一层子代理。
  • 在提供方上报用量时查看输入/输出 Token、缓存命中率和上下文信息。
  • 移动、调整高度或折叠监视面板;文档说明部分界面状态可跨会话保留。

权限与数据

该插件读取子代理会话状态和文档所述的 Token 用量信息,以渲染本地 Web 界面。

权限
  • 集成 DSH client runtime、session、subagent、sidebar、layout、slots、webserver 和 Cordis 等对等依赖。
数据处理
  • 文档说明:活跃会话从内存读取;冷会话的用量从持久化日志读取并缓存。
  • 文档说明面板位置和尺寸偏好会本地保存,部分状态以会话 ID 为键。
外部服务
  • 提供的 manifest 未声明外部服务集成。
  • 文档描述了本地快照端点 `/api/subagent-monitor/snapshot`。
凭据
  • 提供的证据未声明需要凭据。

局限

  • 它只显示当前会话直接派生的子代理;要查看更深层级,需要打开某个子会话。
  • 当提供方未上报用量时,用量和缓存字段不可用。
  • 文档说明仅在面板打开且浏览器标签页可见时轮询。
  • 文档提示其快照路由未鉴权,只适用于回环地址或内网等可信环境。
  • 文档说明在宽度不超过 768px 的视口中,面板默认不会自动弹出。

DSHub 已核对

  • 固定源码提交、包 manifest 和组合包 patch 已验证。
  • manifest 声明了 DSH Web 客户端注入、组合包 patch、Node.js 要求和所列 DSH 兼容性声明。
  • 该包已在 npm 注册表中识别,但其已发布包内容尚未审计。

DSHub 未核对

  • 本策展记录未独立执行安装、浏览器渲染、端点行为或运行时兼容性测试。
  • README 中关于逐版本测试和来源签名的声明尚未被独立验证。

固定版本安装

安装 DSH Subagent Monitor

这个Plugin Bundle没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。

访问源码项目

维护者原文

项目 README

查看 commit f8beee4 对应的 README
维护者编写的上游内容原文于 2026/9/14README.md 获取,正文和仓库相对媒体固定到 commit f8beee47f4de,内容哈希为 a38ac1af0bad。以下是未经 DSHub 翻译的上游原文,语言可能与当前页面不同;第三方托管的 badge 可能独立更新。
<h1 align="center">🤖 dsh-subagent-monitor</h1><p align="center"> DeepSeek Harness (DSH) Web 扩展插件 · 子代理实时运行监视面板 <br/> <a href="https://github.com/Mombrane/dsh-subagent-monitor/blob/master/LICENSE"><img alt="license" src="https://img.shields.io/badge/license-MIT-green"></a> <img alt="platform" src="https://img.shields.io/badge/platform-Web-8b5cf6"> <img alt="dsh" src="https://img.shields.io/badge/DSH-0.1.x-2563eb"> </p>

中文 | English


✨ 是什么

在 DSH Web 界面侧栏底部加一个「子代理」入口,并在屏幕右上角常驻一块卡片式面板,实时展示当前会话直接派生的子代理的运行状态。进入某个子代理会话后,面板随之显示该会话直接派生的下一层子代理。

面板顶部是一块总体监控看板:左侧三枚环形图展示主会话的上下文窗口当前占用、主会话与子代理聚合的缓存命中率;右侧一根状态柱状图展示当前层子代理的运行 / 完成 / 异常计数(按最大值等比缩放)。每张卡片下方另附一行用量明细(该 run 的输入 / 输出、缓存命中、上下文大小)。

面板支持两个方向的收起,互不干扰:

  • 纵向(两段式):标题栏「收起」第一次只收下方子代理卡片(顶部总览看板保留,按钮变「全部收起」);再点一次才收到只剩标题栏;「展开」一步恢复。
  • 横向(向左折叠为窄栏):标题栏 把面板折成 120px 窄栏 —— 右边缘钉住不动,所以是朝左折;保留上下文与主会话两枚环(原大小 48px),由左右一排改为从上到下一列,去掉子代理环,下部继续保留子代理运行框(紧凑卡片)。 向右展开回 340px。
┌─ ⤢ 子代理看板 ──────────── [◂] [收起 ▴] [✕] ┐
│  ◔ 上下文 ◔ 主会话 ◔ 子代理    █ 运行 1 · █ 完成 1 · █ 异常 0 │
│ ┌─────────────────────────────────────┐ │
│ │ 🔵 统计 ui 目录 TS 文件数   [打开对话] │ │
│ │    one-shot · 1a2b3c4d   运行中 · 00:42 │ │
│ │    ↑12.3k ↓4.5k · 缓存 78% · 上下文 45.6k │ │
│ └─────────────────────────────────────┘ │
│ ┌─────────────────────────────────────┐ │
│ │ 🟢 演示子代理:统计文件类型  [打开对话] │ │
│ │    spawn · 2b3c4d5e    完成 · 03:12  │ │
│ └─────────────────────────────────────┘ │
│  运行 1 · 完成 1 · 异常 0    [清空已完成] │
│ ════════════════════════════════════════ │ ← 拖动调整高度
└─────────────────────────────────────────┘

横向收起后的窄栏(120px,两枚环原大小竖排):

┌ ⤢ 1 [▸][▴][✕] ┐
│      ◔        │  ← 上下文
│    上下文      │
│      ◔        │  ← 主会话
│    主会话      │
│ ┌───────────┐ │
│ │ 🔵 统计 ui… │ │  ← 整张卡片可点,即「打开对话」
│ │     00:42 │ │
│ └───────────┘ │
│ ┌───────────┐ │
│ │ 🟢 演示子…  │ │
│ │     03:12 │ │
│ └───────────┘ │
│ 1/1/0   [⤢][⌫] │
│ ══════════════ │
└───────────────┘

标题左侧 四角箭头拖动柄移动面板位置,底部 拖动柄调整面板高度;两者均记忆,双击复位。

「收起」两段式(纵向):第一次只收起下方子代理卡片(顶部总览看板保留),按钮变「全部收起」;再点一次收起到只剩标题栏;「展开」一步恢复完整面板。

◂ / ▸(横向):向左折成 120px 窄栏 / 向右展开回 340px。窄栏保留**上下文与主会话两枚环(原大小)**竖排 + 子代理卡片;窄 / 宽选择跨会话记忆,刷新后保持。两个方向可叠加 —— 窄栏里照样能两级纵向收起。

运行中的子代理面板(运行中 / 已完成多状态同屏)

🎯 特性

特性 说明
🟢 实时状态 运行中(🔵 蓝色像素追逐动画,与 DSH 侧栏状态点同款 + 秒表)、完成(绿点 + 光晕)、失败、已打断、令牌上限、已拒绝
🃏 卡片化列表 每个子代理一张圆角卡片;「打开对话」在右侧,状态与耗时在第二行
🔽 逐层查看 只显示当前会话直接派生的子代理;打开其中一项后可继续查看下一层
🔙 一键返回 进入子代理会话后,面板出现「← 上一层」按钮,跳回直接父会话
🖐 自由摆放 标题左侧四角箭头拖动柄移动面板,位置自动记忆(跨会话保留);双击复位
📏 高度可调 底部拖动柄调整面板高度,高度按会话记忆;双击复位
🪗 两段式收起(纵向) 标题栏「收起」第一段只隐藏子代理卡片、顶部总览看板保留;再点「全部收起」才收起到只剩标题栏;「展开」一步恢复
↔️ 横向收起(向左) 把面板折成 120px 窄栏,右边缘钉住不动所以朝左折;保留上下文与主会话两枚环(原大小)竖排,去掉子代理环,下部保留子代理运行框(紧凑卡片,整张可点即打开对话);窄 / 宽跨会话记忆。与纵向两段式收起正交,可叠加
🔄 刷新自恢复 常驻组合,页面刷新 / 服务重启后自动恢复
💤 空闲不轮询 快照轮询只在面板打开且标签页可见时运行;关闭面板或切到后台即停表,重新打开 / 切回时先补一次请求再恢复 1 秒节奏
📊 总体看板 面板顶部汇总条:三枚环形图(主会话上下文窗口当前占用、主会话 / 子代理缓存命中率)+ 状态柱状图(运行 / 完成 / 异常计数,按最大值等比缩放)
⚡ 用量明细 每张卡片显示该 run 的输入 / 输出 token、缓存命中率、累计上下文与上下文窗口利用率(provider 上报时)
🎯 当前占用 主会话「上下文」环显示当前窗口占用(projectedTokens:最新 prompt 样本 + 表层启发式增减),随内容新增而上升、压缩后立即回落——而非随会话只增不减的累计量
🌐 中英文案 面板文案跟随宿主 UI 语言(设置 → 通用 → 语言);宿主未给出语言、或该语言无对应文案时回退中文
📱 移动端友好 ≤768px 视口默认不弹出,侧栏按钮仍可手动打开

📦 安装

方式 A · npm 安装(推荐,一行命令)

dsh plugin --profile <your-profile> add @leetoners/dsh-ui-subagent-monitor

✅ 已发布 v0.5.0(GitHub Actions 构建并签名,SLSA provenance 可验)。

方式 B · GitHub 直装

dsh plugin --profile <your-profile> add github:Mombrane/dsh-subagent-monitor
# 首次安装若提示允许构建脚本,按提示在 profile 的 pnpm-workspace.yaml 中确认即可

重启 dsh web 即生效。本仓库同时是 DSH 客户端插件dsh.client)与 组合 bundledsh.bundle + cordis.patch.yml),并随附预构建 lib/

方式 C · DSH 源码仓库内联(适合二次开发)

# 1. 复制本仓库 src/ 为 <dsh>/packages/client/ui-subagent-monitor/
# 2. <dsh>/packages/bundle/web-app/package.json 加依赖
"@leetoners/dsh-ui-subagent-monitor": "workspace:*"
# 3. <dsh>/packages/bundle/web-app/cordis.patch.yml(ui-subagent 行之后)
- id: ui-subagent-monitor
  name: '@leetoners/dsh-ui-subagent-monitor'
# 4. 构建 + 重启
pnpm install && pnpm --filter @leetoners/dsh-ui-subagent-monitor bundle
# 重启 dsh web

还需在 <dsh>/tsconfig.client.jsonreferences 中加入本包路径,并将本包 tsdown.config.ts 改为引用主仓预设(import { clientBundle } from '../tsdown.client.ts')。

🧩 兼容性

DSH STORE 的自动复查只认 package.json完整 SemVer 的逐版本记录,宽泛范围不算可安装证据。本插件声明:

声明
DSH 版本范围 >=0.1.0-rc.0
Node.js ^22.19.0>=24.0.0(与 DSH 自身一致)
0.1.5-alpha.2 · 0.1.5-rc.1 · 0.1.5-rc.2 compatible

上表的 compatible 不是推断,是 2026-09-14 在一次性 Profile 上逐版本实测的结果:每个版本建独立 DSH_HOMEdsh plugin --profile web add(bundle 层成功合成)→ dsh web 启动后浏览器内面板正常渲染、GET /api/subagent-monitor/snapshot 返回 200dsh plugin --profile web remove 后该路由回到 404、bundle 层归零。未列出的 DSH 版本即 unknown

🏷️ 状态图例

状态 含义
🔵 运行中 正在执行,蓝色像素追逐动画(与 DSH 侧栏 tab 进行态同款)+ 实时秒表
🟢 完成 面板实时见证其成功结束,显示耗时(绿点 + 光晕)
⚪ 已结束 历史回填行:服务重启前创建,结局未观测(成功/失败未知)
🔴 失败 错误结束(红点 + 光晕)
🟠 已打断 / 令牌上限 / 已拒绝 被中止 / 达到 token 上限 / 请求被拒绝(琥珀点 + 光晕)

❓ FAQ

刷新页面会消失吗? 不会。面板是组合中的常驻行,页面每次加载自动恢复。

「完成」和「已结束」有什么区别? 🟢 是面板实时观测到的成功结局;⚪ 是服务重启前的历史记录,结局未观测。

面板有多大的容量? 每个直接父会话最多保留 200 条,超出淘汰最旧的已结束行。

面板位置和高度会记住吗? 会,且两者记忆策略不同:位置跨会话保留(所有会话共用同一位置);高度按会话分别记忆(localStorage 键带会话 ID,切换会话互不影响);刷新页面 / 重启浏览器后恢复;双击拖动柄恢复默认。

用量 / 缓存数据从哪来? 从每个子代理自己的会话日志折叠 provider 上报的 TokenUsage(assistant/message 事件);活会话读内存,冷会话读持久化日志并缓存。只有适配器上报用量时才有数据,否则显示「—」。

安全吗? 轮询路由 /api/subagent-monitor/snapshot 面向回环地址、无鉴权,仅建议本地/内网使用。

🌐 生态收录

渠道 状态
GitHub topics dsh-plugindeepseek-harness(Oh-My-DSH 每 4 小时自动同步)
Oh-My-DSH 插件目录 PR #8 待维护者合并
awesome-dsh-plugin ✅ 已收录(commit c7ad36e9,PR #675 已合并)

📋 变更日志

完整变更历史见 CHANGELOG.md。当前版本 0.5.0(与 package.json 对齐)。

📖 架构文档

设计决策(为什么常驻、为什么自建轮询路由、事件归因模型)与数据流细节见 ARCHITECTURE.md

📄 License

MIT © Mombrane

有意识地管理

安装与管理

前置条件与目标 Profile

目标 Web Profile

交付方式 Git Bundle — Mombrane/dsh-subagent-monitor#f8beee47f4dea63096070c141a97f889181a590a

验证、更新与移除

显示生命周期命令
验证
dsh plugin --profile web list

兼容性与访问范围

Declared compatible with DSH 0.1.5 alpha/RC releases >=0.1.0-rc.0; declared compatible: 0.1.5-alpha.2, 0.1.5-rc.1, 0.1.5-rc.2

检查兼容性证据

风险事实

network-exposure

The documented snapshot route is unauthenticated and intended only for loopback or intranet use.

证据
lifecycle-script

The package declares a prepare lifecycle script that builds the package.

证据
证据与编辑审查Manifest、Bundle patch、分发与新鲜度

不可变证据

审查状态与源码活动

AI 已审查

这是带有已验证固定 Git 交付路径的 MIT 许可 DSH Web 组合包;如需在受信任的本机或内网之外使用,请先审查其未鉴权的本地快照端点。

AI 审查于 2026/9/14 UTC 13:55GitHub 事实核对日期: 2026/9/14 UTC 13:55

自当前证据基线以来,没有记录到重要源码变化。

下一步

按 Plugin 安装流程操作

订阅重要变化: DSH Subagent Monitor