证据快照复核于 2026-09-16GitHub 数据核对日期: 2026-08-21
证据已验证Plugin Bundle搜索、视觉与数据Web Profile

DSH Token Usage Ledger

为 DeepSeek Harness Web 提供持久化的提供方、模型和 token 用量账本与仪表盘。

快速了解

它能做什么

为 DeepSeek Harness Web 提供持久化的提供方、模型和 token 用量账本与仪表盘。

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

使用场景
搜索、视觉与数据数据可视化性能
适配技术
deepseek-harnessweb-profileSQLite
兼容性

Web Profile
Not declared in supplied evidence

可信度与状态

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

有代码证据的贡献

它为 DSH 增加什么

用量仪表盘

在“设置 → 用量”中提供时间范围、提供方/模型筛选、汇总指标和每日图表。

机制证据
持久化用量账本

将提供方调度尝试和 token 用量写入 SQLite 账本,包括失败、中断、重试及缓存 token 字段。

机制证据

选择前先看

这个 Web profile bundle 将每次提供方调度(包括失败、中断和重试)写入 SQLite 账本。在“设置 → 用量”中可按提供方或模型筛选并查看近期或完整历史汇总;筛选后的 CSV 会流式导出到本地仅所有者可访问的文件。

适合谁

希望跨保留会话持续、可筛选地了解模型请求和 token 用量的 DeepSeek Harness Web 用户。

常见任务

  • 按提供方或模型查看 token 汇总。
  • 查看最近 7 天、30 天或全部保留历史的用量。
  • 导出与当前仪表盘筛选条件匹配的完整记录。
  • 将失败、中断、重试和未计量的提供方尝试与成功调用一并追踪。

权限与数据

该 bundle 会在本地持久化用量账本数据,并在 Web profile 中展示。

权限
  • 读取保留的 session 日志以进行历史回填。
  • 在 profile 存储路径下写入 SQLite 账本。
  • 将 CSV 导出写入仅所有者可访问的本地文件。
数据处理
  • 记录提供方调度,以及已报告时的输入、输出和缓存 token 值。
  • 已完成调用保留在 SQLite 中,而非内存中的调用账本。
  • README 声称主 DSH 进程不保留历史 assistant 内容或完整调用账本。
外部服务
  • 提供的证据未声明需要外部服务。
凭据
  • 提供的证据未声明需要额外凭据。

局限

  • 未找到 0.3.0 版本的 NPM registry 分发;请使用固定的 Git bundle 路径。
  • 未明确声明 Harness 版本兼容范围。
  • 历史回填可能因电池供电、内存使用过高或事件循环繁忙而暂停。
  • 若 persistence 不提供 isolated reader,插件可能仅记录实时用量,并暂停历史回填。
  • 不会读取、删除或迁移旧版用量账本文件。

DSHub 已核对

  • Git 源已固定到 commit 96ad85d344d19abd8a4c82d012011e71bc1fd75b。
  • Bundle 结构及其 Cordis patch 已验证。
  • manifest 声明 Node ^22.19.0 或 >=24.0.0,并配置了 Web client。

DSHub 未核对

  • 未执行安装或运行时行为验证。
  • 本记录未运行仓库的 typecheck、test 或包检查。
  • 未独立验证仪表盘统计准确性、导出行为或性能。

固定版本安装

安装 DSH Token Usage Ledger

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

访问源码项目

维护者原文

项目 README

查看 commit 96ad85d 对应的 README
维护者编写的上游内容原文于 2026/9/14README.md 获取,正文和仓库相对媒体固定到 commit 96ad85d344d1,内容哈希为 e7b567551a11。以下是未经 DSHub 翻译的上游原文,语言可能与当前页面不同;第三方托管的 badge 可能独立更新。

dsh Usage Ledger Plugin

dsh-plugin-usage-ledger 为 DeepSeek Harness Web profile 提供持久化的模型用量账本和 Usage 仪表盘。它记录每次 provider dispatch,包括失败和重试,保存输入、输出和缓存 token。

账本不会进入当前 session 的 flush barrier。模型请求、session durability 和页面打开都不等待历史统计完成。

运行方式

插件使用独立低优先级 worker。worker 以单 session 串行方式读取日志,并在每个小批次后让出执行权。主 dsh 进程只发送压缩后的 live 事件,读取小批量 SQLite 查询结果;它不保留历史 assistant 内容或完整 call 账本。

SQLite 是唯一账本存储:

  • 使用 profile 中 storages/usage-ledger-v4.sqlite;
  • 每个 session 只在 worker 内加载当前 replay cursor 和仍然活跃的 request;
  • 已完成 call 永远留在 SQLite,不会进入常驻 Map;
  • Snapshot 使用分页数据库扫描和事件循环让出,聚合值完整,逐条 events 有固定上限;
  • 旧 usage_ledger.json、usage-ledger-v2.sqlite 和 usage-ledger-v3.sqlite 不读取、不删除、不迁移。v4 从 retained session 日志重新统计。

这让历史规模主要增加磁盘占用和后台耗时,不会线性增加当前 dsh 任务的内存。

自适应历史回填

默认策略是完整历史,最近 30 天优先。最近窗口完成后,worker 自动继续较早的 retained sessions;进程重启后根据 SQLite cursor 断点恢复。

主进程每隔一段时间观测自身的事件循环延迟、事件循环利用率、RSS 和电源状态:

  • Mac 未确认接通电源时暂停历史扫描;
  • dsh 响应变慢或 RSS 过高时立即暂停;
  • 中度繁忙时快速增加 worker slice 间隔;
  • 连续多个空闲采样后逐步缩短间隔;
  • live usage 事件始终优先于历史扫描。

Usage 页面会显示后台统计进度;当它因资源或电源暂停时,已有统计仍可阅读和刷新。

JSONL persistence 提供 provider-owned 流式 session header lister,因此主进程不会先创建全量 session 列表。自定义 persistence 若仅支持 reader、未提供 lister,会采用一次兼容性 listing;完全没有 isolated reader 时仅启用 live ledger,并在状态中说明历史回填暂停。

安装与启动

从 Git 安装到 Web profile;生产环境固定到 commit SHA:

dsh plugin --profile web add github:xie-tj/dsh-token-usage-ledger#<commit-sha>
pnpm dsh web

安装包已包含 Host、Client、Typert 和 worker 的编译产物,不依赖安装时构建。

打开 Settings → Usage 查看最近 7 天或 30 天的数据。筛选提供方或模型时,页面向 Host 请求该筛选的数据库聚合,而不是把全部 request 明细传入浏览器。

页面默认显示全部历史的汇总。Export CSV 会把当前筛选的完整 call 记录按 SQLite 页流式写入 owner-only 文件,完成后显示保存路径;导出不会把整份 CSV 或整本账本装入浏览器内存。

配置

bundle patch 默认提供 databasePath,通常不需要手动配置。需要调整部署策略时,可在 usage-ledger-plugin 的 Cordis config 中设置:

字段 默认值 含义
databasePath profile patch 私有 v4 SQLite 文件
backfillMode process process 启用 worker;off 停止历史回填
backfillScope all all 为全历史;recent 只处理优先窗口
backfillDays 30 优先处理的最近天数
workerMaxHeapMiB 512 worker V8 堆上限
workerMaxActiveAttempts 256 单个 session 可保留的未完成 request 上限
workerBatchEvents 256 每次解析的最大事件数
workerSliceMs 25 处理后主动让出的最长时间片
backfillPowerMode ac-only ac-only 仅接电回填;always 忽略电源状态
loadSampleIntervalMs 2000 主进程负载采样间隔
backfillMinDelayMs 25 空闲时的最小 slice 间隔
backfillMaxDelayMs 60000 暂停或强退让的最长间隔
backfillPauseRssMiB 1024 暂停回填的 dsh RSS 阈值
snapshotEventLimit 256 单次 Snapshot 返回的明细行上限
snapshotScanBatchRows 256 Snapshot 每个 event-loop 回合读取的行数

高级阈值也可配置:backfillRecoverySamples、backfillBusyEventLoopUtilization、backfillPauseEventLoopUtilization、backfillBusyEventLoopDelayMs、backfillPauseEventLoopDelayMs 和 backfillPauseAvailableMemoryMiB。

Snapshot API

Remote 方法为 usageLedgerPlugin/snapshot:

interface UsageLedgerSnapshotRequest {
  workspace?: string | null
  provider?: string | null
  model?: string | null
  days?: number
  all?: boolean
  timeZone?: string
}

返回值保留 events、models 和 daily。all 为 true 时,models 与 daily 覆盖最早匹配 call 至今天的完整历史;页面只把最近 30 个 daily bucket 画成图表,指标和模型表仍是全历史。eventsTruncated 表示逐条明细达到 snapshotEventLimit;models 和 daily 始终基于完整匹配范围计算。days 的范围是 1 到 366,timeZone 决定日边界和 daily 分组。

usageLedgerPlugin/status 返回 idle、running、paused 或 failed,以及处理进度、最近错误和当前 pace。pace 的 reason 为 battery、event-loop 或 memory 时,说明历史扫描正退让;live 记录仍会继续进入 worker。

统计语义

  • 一个 provider dispatch 计为一次 request;success、failure、aborted 与 retry attempt 分别计数。
  • retryRequests 标记随后被 retry 的失败或中断 attempt,不额外生成 request。
  • provider 和 model 从 request/header 或 request/context 恢复;无法恢复时为 unknown。
  • final assistant-message usage 优先于最后一个 provisional usage chunk。
  • 未报告 usage 的 attempt 仍计入 request,token 为 0,并标记为 unmetered。
  • inputTokens 为 provider 报告的非缓存输入;outputTokens 包含 provider 报告的 reasoning token;cache read/write 分别保存。

构建与验证

pnpm install
pnpm run typecheck
pnpm run test
pnpm run pack:check

License

MIT

有意识地管理

安装与管理

前置条件与目标 Profile

目标 Web Profile

交付方式 Git Bundle — xie-tj/dsh-token-usage-ledger#96ad85d344d19abd8a4c82d012011e71bc1fd75b

验证、更新与移除

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

兼容性与访问范围

DeepSeek Harness Web bundle; Node 22.19+ or 24+ required Not declared in supplied evidence

检查兼容性证据

风险事实

local-data-storage

Stores usage history in a profile-local SQLite database.

证据
export

CSV export writes complete records for the current filter to an owner-only file.

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

不可变证据

审查状态与源码活动

AI 已审查

建议使用固定 Git 源进行审阅或安装;未找到声明的 NPM 包版本。

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

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

下一步

按 Plugin 安装流程操作

订阅重要变化: DSH Token Usage Ledger