dsh-savvy-progress:多 Agent 实时进度与成本可视化

前言

在 DeepSeek Harness(dsh)里跑 AgentTeams、自定义编排或手动 spawn 子代理时,界面往往只有一个 spinner,看不到每个子代理在做什么、跑了多久、用了多少 token。Claude Code 生态里有 Savvy Progress 一类方案;dsh 侧需要按 Cordis 插件体系与事件/投影架构单独实现。dsh-savvy-progress 由社区维护者 caimc21069065-prog 发布,在 Web / Desktop 界面上提供顶部进度条和右侧「代理进度」面板,默认只读观察 runtime,无需改编排 skill。

这是什么

dsh-savvy-progress 是 dsh 的 Cordis 插件(当前版本 0.1.0,MIT 许可证),对标 JohnnyVizz/claude-kit · savvy-progress,针对 dsh 的事件面重新实现。适用宿主为 DeepSeek Harness ≥ 0.2.0-rc.2;README 写明在 0.2.1-rc.3 API 上开发验证。

插件目录页:skillhub.cn/plugins/caimc21069065-prog/dsh-savvy-progress。源码:github.com/caimc21069065-prog/dsh-savvy-progress。DSH 社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

只读观察(默认,零侵入)

插件从 dsh runtime 只读订阅事件,不依赖编排 skill 配合:

  • 子代理生命周期:agent/created、agent/status、agent/disposed、subagent/start、subagent/end
  • 发现与血缘:父会话的 subagent/catalog、子会话的 subagent/descriptor(label、一次性/可持续模式、模型)
  • 用量与路由:request/context(模型/上下文窗口)、assistant/message 的 usage(输入/输出/缓存 token)
  • 每个代理可汇总:轮数、工具调用数、累计 token、按模型单价表的 USD 成本估算、最近错误

AgentTeams、自定义编排、手动 spawn 等多代理任务下,面板均可工作。

界面

  1. Progress Band(顶部进度条):在输入框上方(conversation.input.dock),显示编排任务标题/阶段/任务数、运行中的子代理数、总耗时与预估成本;点击可打开代理面板。
  2. Agents 面板:右栏新标签页「代理进度」(sidebar.right.pane.tab),实时列出各子代理状态、模型、运行时长、token 用量与成本估算;支持按运行中/失败/已完成分组、过滤、展开详情、跳转子代理会话。

面板支持「仅显示运行中」、已完成分组可折叠;行点击可看轮数、工具调用、token 明细(含缓存读写)、step note、错误、会话 id。可持续(continuable)且已完成的子代理可一键「打开会话」。文案跟随 dsh 语言设置(中英双语)。

可选上报工具(已内置)

工具 调用者 作用
savvy_progress 仅主会话(编排者) 上报 flow:标题、阶段、任务列表、done/total、finished;子代理调用会被忽略
savvy_step 任意代理 上报步骤进度:done/total/note

上报写入各自会话的持久化 plugin record,重启/恢复后可回放。配置项 tools 默认为 true,可关闭工具注册。

架构要点

Host 侧 observer.ts 观察事件,store.ts 维护内存态并按节流间隔(默认 1s,内容变化时才写)把快照 plugin:savvy-progress/agents 追加到根会话日志;Client 侧通过 useProjection 读取 savvy-agents / savvy-flow / savvy-step 三个投影单元,客户端无额外领域逻辑。旧版宿主会安全跳过 ignorable plugin record。

安装与启用

插件以当前 dsh 进程权限运行;安装前请自行查看源码与 MIT 许可证。

方式一:profile patch(推荐)

在 dsh profile(例如 ~/.dsh/profiles/web/cordis.patch.yml 或 desktop 对应文件)追加:

- insert:
    - id: savvy-progress
      name: dsh-savvy-progress
      config:
        tools: true
        showCost: true
        snapshotIntervalMs: 1000
        maxFinishedAgents: 50
        costRates: {}

并在 profile 目录安装本包(将 /path/to/dsh-savvy-progress 换为本地包路径):

cd ~/.dsh/profiles/web
pnpm add /path/to/dsh-savvy-progress

重启 dsh(或热加载)后生效。

方式二:插件管理器

dsh plugin add /path/to/dsh-savvy-progress

配置项

键 类型 默认 说明
tools boolean true 注册 savvy_progress / savvy_step
showCost boolean true 显示并估算成本
snapshotIntervalMs number 1000 快照节流(200–10000ms)
maxFinishedAgents number 50 每个根会话保留的已完成行数
costRates object 内置表 按模型 id 前缀覆盖单价(USD/1M tokens)

内置单价覆盖 deepseek-chat、deepseek-reasoner、deepseek-v3、deepseek-r1;未匹配模型用保守默认值。成本为线性估算,未建模缓存折扣,界面均标注 ≈。

典型用法

默认安装后无需改 skill:多代理任务启动后,Band 与右栏面板会自动随事件更新。

若编排者需要显式上报整体 flow,主会话可调用工具 savvy_progress(标题、阶段、任务列表、done/total、finished)。各子代理可用 savvy_step 上报 done/total/note,Band 与面板中的步骤进度会与之对齐。

适用场景与注意

适合需要在 dsh Web/Desktop 上并行观察多个子代理、并对 token 与粗略成本有感知的多 Agent 工作流。不适合把界面上的 ≈ 成本当作账单:README 明确成本不含缓存命中折扣与阶梯计费;上下文占用百分比暂未展示(runtime 尚无对应事件)。

dsh 快速迭代中,插件针对 0.2.1-rc.3 事件面验证;宿主升级后若事件名变化,需维护者同步适配。

链接

  • 目录页:https://www.skillhub.cn/plugins/caimc21069065-prog/dsh-savvy-progress
  • GitHub:https://github.com/caimc21069065-prog/dsh-savvy-progress
羽毛球分组比赛记分
小程序二维码

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

Xiaoye