dsh-analytics:DSH 的 Agent FinOps / token analytics 插件

前言

在 DSH(DeepSeek Harness)中运行智能体时,成本通常分散在多个 session、模型调用、工具调用和缓存结果里。只看总 token 很难判断哪次会话、哪个模型、哪个工具最贵,也很难处理价格表变更。

dsh-analytics 是一个本地分析插件:它从 session events 收集 usage,写入本地 SQLite ledger,再用 time-aware pricing table 计算成本,并通过 service、agent tool 和 JSON API 提供查询。

这是什么

dsh-analytics 的仓库所有者是 hccccc01333,GitHub 地址为:

https://github.com/hccccc01333/dsh-analytics

它的一句话定位是:Agent FinOps / token analytics for DeepSeek Harness。v1 scope 包括 Overview、Session drill-down、Cost Engine 和 Cache analytics。它面向已经发生的运行记录做本地分析,并提供工具成本归属和预算查看。

核心功能

本地用量台账

插件会把 session 事件中的 usage 收集到本地 SQLite ledger。

数据存储在本机,文档说明数据不出本机,并且插件不会调用 provider API。

时间感知成本引擎

价格表被当作数据,而不是硬编码在逻辑中。

dbPath 是必需配置。内置默认价格只是 seed data;当价格表为空时才会 seed,避免重启覆盖已有价格。

如需自定义价格,可使用 pricingpricingFile;二者互斥。

查询入口

ctx.analytics 提供以下 service 方法:

  • overview
  • session
  • sessions
  • models
  • tools
  • pricing
  • budget

Service 读取为分离快照,不触碰 session store 或 agent loop。

插件还提供 analytics_query agent tool,可用 range_hours 限制窗口。

ctx.webServer 存在时,还会注册只读 JSON 路由:

/api/analytics/overview
/api/analytics/sessions
/api/analytics/models
/api/analytics/tools
/api/analytics/pricing
/api/analytics/budget
/api/analytics/session/<sessionId>

部分路由支持 ?hours= 查询参数。

浏览器仪表盘

插件提供 self-contained dashboard,路径为:

/analytics

页面包括 Overview、Sessions、Reasoning、Agents、Insights、Context Inflation、Token Flow / Models / Cost / Pricing。

范围选择器支持 6h / 24h / 7d / 30d / all,并提供 EN / 中文 toggle。

预算与工具归属

预算支持 daily、monthly 和 currency 配置,并给出 month-end spend projection。

工具成本采用 step-level attribution:一次模型调用的成本会分摊到该 step 中调用的工具,避免重复计算。

安装与启用

在 web profile 下安装:

dsh plugin --profile web add dsh-analytics

如果已经拿到本地 checkout,也可以使用本地路径:

dsh plugin --profile web add /path/to/dsh-analytics

本地开发时,可以挂载 source overlay:

dsh --profile web --patch ./cordis.yml

典型用法

配置

至少需要提供 dbPath,指向 SQLite 数据库文件。

若要自定义价格表,选择 pricingpricingFile 其一,二者互斥。

Service 查询

下面示例展示基本读取方式:

await ctx.analytics.overview({ start, end })
await ctx.analytics.session(sessionId)
await ctx.analytics.budget()

按范围查询:

await ctx.analytics.sessions({ start, end })
await ctx.analytics.models({ start, end })
await ctx.analytics.tools({ start, end })
await ctx.analytics.pricing()

Agent tool 查询

可以这样调用:

analytics_query(query="overview", range_hours=24)

range_hours 限制以当前时间为结尾的窗口;0 表示 all time,默认是 24。

JSON API

当 web server 可用时,可直接读取上述 /api/analytics/* 路由。例如查看 overview 或某个 session:

/api/analytics/overview
/api/analytics/session/<sessionId>

仪表盘

打开:

/analytics

然后使用 6h / 24h / 7d / 30d / all 范围选择器查看不同页面。

适用场景与注意

适合以下使用:

  • 在 DSH 中运行多个 session 或 agent,需要查看成本、缓存、模型和工具占比。
  • 需要在代码中读取 overview、session、budget 等数据。
  • 需要在浏览器中做 session 钻取和成本查看。

注意:

  • 插件以当前 dsh 进程权限运行;安装前应检查源码、依赖和许可证。
  • 许可证信息未确认,安装前请自行核验。
  • Web JSON 路由只在 ctx.webServer 存在时注册。
  • harness client 中的 shell-nav 集成被描述为后续项,因为当前没有空闲的 plugin page slot。
  • DSH 插件目录是独立社区站点,与 DeepSeek / 幻方无官方从属关系,不应被理解为官方应用商店。

结尾

dsh-analytics 将 DSH 运行中的 token、成本、缓存和工具使用整理成本地可查询视图。若你要在智能体开发中做 Agent FinOps,可以从它的 service、agent tool 和 /analytics 仪表盘开始。

GitHub:https://github.com/hccccc01333/dsh-analytics

目录页:在 DSH 插件目录中按 dsh-analytics 查找;本文未附具体目录 URL,因为材料中没有确认的目录地址。

羽毛球分组比赛记分
小程序二维码

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

小夜