🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

子智能体花费 Synapse-ACh/dsh-subagent-cost

DeepSeek Harness
Synapse-ACh7 天前有提交已提供中文文档扫描:未发现敏感能力

按轮次统计子智能体的 token 用量与人民币花费

30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Synapse-ACh/dsh-subagent-cost
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · model
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
  • 发起网络请求
    lib/client.js:130
    const response = await fetch(url, { headers: { accept: 'application/json' } });
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 网页插件:在输入框工具条上显示子智能体 token 用量与人民币花费,按父级轮次分组

README

由 DeepSeek 最新模型翻译生成
dsh-subagent-cost 一个 DSH(DeepSeek Harness)网页插件:统计本会话派出的子智能体会话,汇总它们的 token 与人民币花费,并按父会话的 turn 分组展示。 Screenshots / 截图 输入框工具条上的药丸: Dock pill: 37 subagents · ¥1.30 点开后的面板,按 turn 分组、逐个列出 token 与花费: Per-turn summary panel: 37 subagents, 514.4k tokens, ¥1.2981 ● 3 subagents · ¥0.42 点开药丸得到这样的面板: Subagent usage ¥0.4213 3 subagents · 546.0k tokens · 1 running [refresh] ────────────────────────────────────────────────────────── Turn 2 · 15:20 · 2 subagents 405.9k tokens · ¥0.9735 [study-worker] Study bceacfbf · Part 1/9 · Rev… 63.3k ¥0.2102 [standard] another child …
展开完整文档(README 剩余 1 节)
dsh-subagent-cost

一个 DSH(DeepSeek Harness)网页插件:统计本会话派出的子智能体会话,汇总它们的 token 与人民币花费,并按父会话的 turn 分组展示。

Screenshots / 截图

输入框工具条上的药丸:

Dock pill: 37 subagents · ¥1.30

点开后的面板,按 turn 分组、逐个列出 token 与花费:

Per-turn summary panel: 37 subagents, 514.4k tokens, ¥1.2981

● 3 subagents · ¥0.42

点开药丸得到这样的面板:

Subagent usage ¥0.4213
3 subagents · 546.0k tokens · 1 running [refresh] ────────────────────────────────────────────────────────── Turn 2 · 15:20 · 2 subagents 405.9k tokens · ¥0.9735 [study-worker] Study bceacfbf · Part 1/9 · Rev… 63.3k ¥0.2102 [standard] another child … 27.9k ¥0.0897 ────────────────────────────────────────────────────────── Estimated with DeepSeek V4.1 peak/off-peak pricing (CNY / 1M tokens)

药丸上的圆点:蓝=有子智能体在运行,绿=全部结束,灰=本会话没派发过,红=读取失败。

Install / 安装

从 npm 安装(推荐):

cli / web profiles
dsh plugin --profile <profile> add dsh-subagent-cost

想跟 main 最新代码,直接从 GitHub 装:

dsh plugin --profile <profile> add github:Synapse-ACh/dsh-subagent-cost

在 DSH 对话里,这两个 spec 都能通过插件管理器安装:

plugin_manager action:install_bundle target:dsh-subagent-cost
plugin_manager action:install_bundle target:github:Synapse-ACh/dsh-subagent-cost

Desktop profile 由 Electron 应用托管,dsh plugin --profile … 命令行会拒绝它——请用应用内的插件管理器(把 dsh-subagent-cost 粘进安装框),或者用上面的工具调用。

想用本地仓库?git clone 之后,把该目录的绝对路径当作 spec 传进去。

装完刷新一次浏览器页面:宿主半会自己重启,但客户端半(药丸)由 Web UI 加载,需要 reload。

How "one task" is decided / 「一次任务」怎么切

宿主侧只注册一个只读端点:

GET /api/subagent-cost/summary?session=<parent session id>

并做回环校验:对端 socket 必须是 127.0.0.1/::1,Host 头必须是本地,否则一律返回 403。

- 父会话:ctx.sessionQuery.readSession(parentId)(优先读实时会话,回落到持久化数据)。只读一次,用来取 catalog 事件和 turn 边界。
- 子会话:直接从磁盘读取,路径是 $DSH_HOME/sessions/<workspace>/<sessionId>/session.v4.jsonl.zstd,按 zstd 帧魔数(28 B5 2F FD)切开,逐帧解压。这正是本插件要绕开的坑:Node 的 zstdDecompressSync / createZstdDecompress() 只解第一帧就停(53 KB 的日志只出 279 字节),不逐帧解码的话,所有统计结果都是 0。
- 三种情况回落到 sessionQuery.readSession:日志文件缺失、解不开、或 fork 出来的子会话(isSeeded,需要 inheritedEventCount 跳过 seed)。重放会持久化并串行执行,约 130 ms/会话——38 个子会话约 5 s——所以只做兜底。
- 实测:父会话有 38 个子智能体、546k token,走磁盘 0.19 s,走 sessionQuery 9.7 s;两条路径结果逐位一致(545,792 tokens / ¥1.32122364)。
- 增量:每个子会话保留 fold 状态(state.consumed),只处理新事件;日志以 turn/end 结尾的子会话会被冻结,每 5 分钟重新校验一次。所以 30 秒轮询不会反复重扫整份日志。

宿主半只注册一个只读端点 GET /api/subagent-cost/summary?session=<父会话 id>,带 loopback 校验(对端 socket 必须是 127.0.0.1/::1,且 Host 头是本机)——其余一律 403。

- 父会话:ctx.sessionQuery.readSession(parentId)(活会话优先,否则读持久化),只读一次,用于取 catalog 事件和 turn 边界。
- 子会话:直接读磁盘,$DSH_HOME/sessions/<workspace>/<sessionId>/session.v4.jsonl.zstd,按 zstd 帧魔数(28 B5 2F FD)切开逐帧解压。这正是本插件要绕开的坑:Node 自带的 zstdDecompressSync / createZstdDecompress() 只解第一帧(53 KB 的日志只出 279 字节),不逐帧解压统计会全是 0。
- 三种情况回落到 sessionQuery.readSession:日志文件缺失、解不开、或 fork 出来的子会话(isSeeded,需要 inheritedEventCount 跳过 seed)。重放是持久化且串行的,约 130 ms/会话——38 个子会话约 5 s——所以只做兜底。
- 实测:38 个子智能体、54.6 万 token 的父会话,走磁盘 0.19 s,走 sessionQuery 9.7 s,两边结果逐位一致(545,792 tokens / ¥1.32122364)。
- 增量:每个子会话保留 fold 状态(state.consumed),只处理新事件;日志以 turn/end 结尾的子会话会被冻结,每 5 分钟才重新校验。所以 30 秒轮询不会反复重扫整份日志。

目录结构

lib/index.js host half: registers /api/subagent-cost/summary
lib/client.js client half: a hand-written __ModuleLoader__ bundle (dock pill + panel)
lib/aggregate.js pure functions: turn/catalog scan, child folding, summary
lib/cost.js vendored pricing module (from @kidli1412/dsh-session-cost, MIT)
test/local-summary.mjs offline check: aggregates $DSH_HOME/sessions directly

- lib/index.js — 宿主半:注册 /api/subagent-cost/summary。
- lib/client.js — 客户端半:手写的 __ModuleLoader__ bundle(药丸 + 面板)。
- lib/aggregate.js — 纯函数:turn/catalog 扫描、子会话折叠、汇总。
- lib/cost.js — vendored 计价模块(来自 @kidli1412/dsh-session-cost,MIT)。
- test/local-summary.mjs — 离线校验:直接聚合 $DSH_HOME/sessions。

离线校验

不需要启动 harness:

node test/local-summary.mjs # picks the parent with the most subagents / 选子智能体最多的父会话
node test/local-summary.mjs <parent-session-id> # explicit parent / 指定父会话

致谢

计价与用量归属口径来自 @kidli1412/dsh-session-cost(MIT),它本身对齐 dsh-token-meter 的 tokenUsage 投影,并参考了 dsh-usage-stats(MIT © Ychris12138);父子关系依赖 harness 自带的 subagent/catalog 会话事件。

License / 许可

MIT — see LICENSE / 见 LICENSE。
预览分享卡片长什么样 ↓Synapse-ACh/dsh-subagent-cost
分享 · DeepSeek Harness Hub
Synapse-ACh/dsh-subagent-cost

按轮次统计子智能体的 token 用量与人民币花费

回到顶部