前言¶
在 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 等多代理任务下,面板均可工作。
界面¶
- Progress Band(顶部进度条):在输入框上方(
conversation.input.dock),显示编排任务标题/阶段/任务数、运行中的子代理数、总耗时与预估成本;点击可打开代理面板。 - 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