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

Token 分项统计 Minggle/dsh-token-breakdown-stats

DeepSeek Harness
Minggle20 天前有提交已提供中文文档扫描:含敏感能力

汇总主与子 Agent 用量,点击查看分项明细

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/11/03·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 20 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 6 处,展示前 6 条)
  • 读取本地文件
    build.mjs:101
    if (!existsSync(LOCALE_DIR)) return null
  • 读取本地文件
    build.mjs:103
    for (const file of readdirSync(LOCALE_DIR).filter(name => name.endsWith('.json')).sort()) {
  • 读取本地文件
    build.mjs:104
    payload[file.replace(/ json$/, '')] = JSON.parse(readFileSync(join(LOCALE_DIR, file), 'utf8'))
  • 读取本地文件
    build.mjs:114
    const srcNames = readdirSync(SRC)
  • 读取本地文件
    build.mjs:126
    : readFileSync(join(SRC, name.replace('./', '')), 'utf8')
  • 写入本地文件
    build.mjs:170
    writeFileSync(OUT, artifact)
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

dsh 插件:替换 composer-dock 统计胶囊,让会话的 token 总量覆盖主智能体加它调用的每个子代理,点击可展开按桶、按子代理、按模型的明细。

README

由 DeepSeek 最新模型翻译生成
dsh-token-breakdown-stats 一个 dsh 插件(dsh-plugin topic):替换输入框下方的统计胶囊,让会话 token 总量覆盖主 Agent 及其调用的全部子 Agent,点击弹出按计费桶、按子 Agent、按模型三个维度的分项统计。 简介 dsh 会话输入框下方的统计胶囊只统计主 Agent 的 token 用量。当主 Agent 调用子 Agent 时,子 Agent 消耗的 token 在会话底部完全看不到。 本插件替换该胶囊,让底部显示会话总量(主 Agent + 它调用的全部子 Agent),点击后弹出的对话框按计费桶、按子 Agent、按模型三个维度分项统计。 变化点 | | 原生胶囊 | 本插件 | | 胶囊文字 | 主 Agent 总量 + 缓存命中 | 会话总量(主 + 子)+ 缓存命中 + 子 Agent 个数 | | 对话框 | 四个计费桶 | 计费桶、主/子占比、子 Agent 汇总、按模型一行 | | 时间/活动胶囊 | 轮次、步骤、速度、耗时 | 与原有一致(原样还原) | 子 Agent 一律以汇总呈现:胶囊显示个数,对话框折叠成一块(个数、其中几个仍在运行、占会话总量比例、以及折叠后的四个桶)。不逐个列出行——一个会话可能调起几十个子 Agent,而逐个明细本来就在会话头部的子 Agent 目录里。
展开完整文档(README 剩余 1 节)
dsh-token-breakdown-stats

一个 dsh 插件(dsh-plugin topic):替换输入框下方的统计胶囊,让会话 token 总量覆盖主 Agent 及其调用的全部子 Agent,点击弹出按计费桶、按子 Agent、按模型三个维度的分项统计。

简介

dsh 会话输入框下方的统计胶囊只统计主 Agent 的 token 用量。当主 Agent 调用子
Agent 时,子 Agent 消耗的 token 在会话底部完全看不到。

本插件替换该胶囊,让底部显示会话总量(主 Agent + 它调用的全部子 Agent),点击后弹出的对话框按计费桶、按子 Agent、按模型三个维度分项统计。

变化点

| | 原生胶囊 | 本插件 |
| 胶囊文字 | 主 Agent 总量 + 缓存命中 | 会话总量(主 + 子)+ 缓存命中 + 子 Agent 个数 |
| 对话框 | 四个计费桶 | 计费桶、主/子占比、子 Agent 汇总、按模型一行 |
| 时间/活动胶囊 | 轮次、步骤、速度、耗时 | 与原有一致(原样还原) |

子 Agent 一律以汇总呈现:胶囊显示个数,对话框折叠成一块(个数、其中几个仍在运行、占会话总量比例、以及折叠后的四个桶)。不逐个列出行——一个会话可能调起几十个子 Agent,而逐个明细本来就在会话头部的子 Agent 目录里。

对话框内容:

- 总用量 —— 四个互斥计费桶(未缓存输入、缓存读取、缓存写入、输出)与缓存命中率,覆盖整棵会话树。
- 主 Agent —— 已载入轮次观测到的 提供方/模型,以及该会话自身的四个桶。
- 子 Agent(N) —— 汇总块:共几个、其中几个仍在运行、占会话总量比例,以及折叠后的四个桶。
- 按模型 —— 由已载入轮次折叠出的每个 提供方/模型 用量。
- 会话尚未调用子 Agent 时显示友好提示。

实现方式

插件注册与原生 ui-chat 完全相同的 dock 单元 —— conversation.composer.dock、 id stats、order 0 —— 因此是替换内置胶囊,而不是新增一个。list slot 拒绝同 id 同 priority 的第二次注册,所以这里显式传 priority: -1(低于原生行的 0,lowest renders)。

所有数字都来自持久投影,分页与压缩都不会改变它们:

- tokenUsage —— 每个会话四个互斥的提供方计费桶。
- subagentCatalog —— 会话的直属子级,按父会话事件顺序,带模式与可选标签。
- SessionSummary.projectionValues —— 同一批投影外加子 Agent 身份(label)与计时,按会话 id 寻址。
- ChatSnapshot.nodes.values() —— keyed store 里所有已物化的 Chat Node。
turn-tail 行故意不进 legacy.nodes,所以逐轮次的 routes(提供方/模型)只能从这里读;legacy 切片仍然用于步骤数折叠。

compact / detailed 偏好读取与原生胶囊相同的 ui-chat 配置域;compact 只保留速度与缓存命中的纯文本展示,不弹对话框。

已知限制

- 拿不到每个子 Agent 的模型名。 客户端的 tokenUsage 投影只有四个桶,没有路由信息,因此子 Agent 行只显示用量,不显示模型。模型归属覆盖主会话已载入的轮次。
- 后代发现是 best-effort。 subagentCatalog 只是直属子级;孙 Agent 在其自身目录被加载后才会出现(与原生子 Agent 目录同一规则)。未加载的层级不会凭空生成。
- 模型归属只覆盖已载入轮次。 turn-tail 行只对已载入窗口内已关闭的轮次存在,因此在很长、分页的会话上,模型行与按模型一节可能落后于持久总量。这一版里 chat 目标的 assistant 节点不带 providerMetadata,没有第二个来源可退——至少要载入一个已关闭轮次,模型行才会显示会话用过的模型。
- compact 模式 保持原生行为(仅速度与缓存命中)。

安装

bundle 就是一个普通目录,client.js 已提交,无需构建。先从本地克隆安装:

git clone https://github.com/Minggle/dsh-token-breakdown-stats.git

然后在 dsh 会话里用 plugin_manager 把 bundle 装进 profile:

plugin_manager action: install_bundle
target: <克隆目录的绝对路径>

补丁行 id 为 token-breakdown-stats。重启应用(或等 live patch 重载生效),输入框下方的胶囊即被替换。

改完源码后重新生成 client.js:

node build.mjs

验证

node src/smoke.test.cjs

冒烟测试通过 mock 的 window.__ModuleLoader__ 和一个最小 React 运行时加载构建产物 client.js,断言汇总数学、胶囊文字、对话框各节、Escape 关闭、compact 模式以及中英语言键对齐。

文件

- index.js —— Host 半边(不需要 Host 行)。
- client.js —— 生成的浏览器产物(请勿手改)。
- src/entry.js —— slot 注册与 mode hook。
- src/stats-pills.js —— 两个胶囊与分项统计对话框。
- src/token-aggregator.cjs —— 纯聚合与路由折叠。
- src/smoke.test.cjs —— Node 冒烟测试。
- locale/{en,zh}.json —— 语言字典(唯一数据源)。
- icon.svg —— 原创图标。
- build.mjs —— 把 src/ 内联成单个 client.js。

环境要求

- DeepSeek Harness >= 0.2.0-rc.2(插件读取 ChatSnapshot.nodes、 SessionSummary.projectionValues,并依赖 conversation.composer.dock 的 list cell priority 规则)。
- desktop 或 web profile;Web GUI 渲染胶囊。

安装事故记录(2026-10-15)

早期版本曾让桌面版 web boot 失败:1 entry did not activate: @deepseek-ai/dsh-client-ui-chat: failed。当时移除了 bundle,并从应用自己写的备份(cordis.patch.yml.bak-*)恢复了 profile,用户数据无损。

两个根因记录在此,因为它们都很容易再次引入:

1. list slot 拒绝同 id 同 priority 的第二次注册。 原生 ui-chat 行以 priority 0 占着 conversation.composer.dock 的 id stats,替换者必须传严格更低的 priority(本插件用 -1)。slot 的 register 会抛 already has an entry with id "stats" at priority 0 … register at a different priority to shadow it (lowest renders);而插件的 inject 回调是在 dock 属主的 fiber 里执行的,所以失败记在属主头上而不是插件头上。
2. 受限 Client 上下文访问未声明 service 会抛错。 未在 entry 的 inject 里声明 configForms 就读 ctx.configForms,会抛 cannot get property "configForms" without inject。现在插件只声明 ['slots', 'locale'],其余一律防御式读取。

冒烟测试里有两个 mock 分别复现这两种失败模式,所以回归会先让测试红,而不是让 boot 崩。

许可证

MIT
预览分享卡片长什么样 ↓Minggle/dsh-token-breakdown-stats
分享 · DeepSeek Harness Hub
Minggle/dsh-token-breakdown-stats

汇总主与子 Agent 用量,点击查看分项明细

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部