dsh-analytics

DSH PLUGIN工具与能力

仓库 hccccc01333/dsh-analytics · npm dsh-analytics

工具与能力 L4 · 沙盒安装通过 安全审查:低风险 可信度:银 可安装插件
安装这个插件

dsh-analytics 是 DeepSeek Harness 的 Agent FinOps 插件,将会话 token 用量存入本地 SQLite 账本,按时段定价表核算成本,并通过服务、工具与 JSON API 查询。

一句话选型结论

按资料字段整理

dsh-analytics 是工具与能力类的 DSH 可安装插件,验证等级 L4 · 沙盒安装通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类工具与能力 收录类型可安装插件 验证等级L4 · 沙盒安装通过 安全审查低风险
验证等级 L4 L4 · 沙盒安装通过
GitHub 星标 1 复刻 0 · 未关闭 issue 0
最近更新 2026-08-14 创建于 2026-08-14
README 8.7 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add dsh-analytics@0.4.0
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.1.1-rc.2;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.1.1-rc.2版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-analytics可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-analytics:DeepSeek Harness 的 Agent FinOps 与 token 用量分析插件

  • 用量采集与去重
  • 时段感知定价
  • 成本预算控制
  • 缓存命中分析
  • JSON API 查询

适用场景

数据库

上游标签

deepseek-harnessdsh-plugin

验证等级与安全审查

L4 · 沙盒安装通过
自动化流程结论,不是人工审核
验证等级L4 · 沙盒安装通过安装命令在隔离沙盒内真实执行成功,无依赖错误
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度银综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✕ 未通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 插件目录树加载失败
  • L5.3_HTTP_SERVED HTTP 服务响应

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L4:在沙盒里真实装过,依赖能装上,不是纸面声明。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.1.1-rc.2),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在工具与能力场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-analytics当前 L4 · 沙盒安装通过 低风险 1 0.1.1-rc.2 有
huashu-design 未做沙盒验证 未标注 3.0 万 未标注 有
loopx 未做沙盒验证 未标注 6,233 未标注 无
agy-staff 未做沙盒验证 未标注 870 未标注 有
dsh-startup-screen 未做沙盒验证 未标注 633 未标注 有
minara-skills L4 · 沙盒安装通过 中风险 360 未标注 有

仓库档案

工具与能力
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方hccccc01333仓库 dsh-analytics · 默认分支 main
分类工具与能力tools
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue1 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-14 · 2026-08-14最后推送 2026-08-14
本站收录2026-08-21首次进入本站目录的时间

README 全文

8.7 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-analytics

English | 中文

Agent FinOps / token analytics for DeepSeek Harness: collect usage from session
events into a local SQLite ledger, price it with a time-aware pricing table
(never hardcoded in logic), and query it through a service, an agent tool, and
JSON API routes.

This is the v1 scope from the design: Overview + Session drill-down + Cost
Engine + Cache analytics
, packaged the way the dsh-plugin ecosystem ships
bundles (npm package with dsh.bundle → cordis.patch.yml).

Install

dsh plugin --profile web add dsh-analytics

From git (requires the prepare build allowance):

dsh plugin --profile web add github:you/dsh-analytics#

From a local checkout:

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

For local development, mount the source overlay:

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

Configuration

The plugin row's config (see cordis.yml for the shape):

Key Type Default Description
dbPath string — (required) SQLite database file; missing directories are created.
currency string — Preferred currency sorted first in summaries (rows carry their own currency).
peakHours [startHour, endHour][] [[1,4],[6,10]] UTC half-open peak windows; all other hours are off-peak.
pricing PricingRow[] shipped DeepSeek V4 table Pricing rows that replace the shipped defaults.
pricingFile string (absolute) — JSON file of PricingRow[]; mutually exclusive with pricing.
budget.daily number — Daily spending limit in budget.currency (UTC day).
budget.monthly number — Monthly limit; the overview also projects month-end spend.
budget.currency string currency or USD Currency the limits are measured in.
tools boolean true Register the analytics_query agent tool.
web boolean true Register the /api/analytics/* JSON routes when ctx.webServer exists.

Pricing: the table is data, not code

Costs are computed by matching each request against pricing rows:

interface PricingRow {
provider: string          // request/header config provider
model: string             // request/header config model
region?: string           // optional discriminator
priceType: 'peak' | 'off-peak' | 'flat'
inputType: 'cache_hit' | 'cache_miss' | 'cache_write' | 'output'
pricePerMillion: number   // per 1M tokens, in `currency`
currency: string
effectiveFrom: string     // ISO 8601, inclusive
effectiveTo?: string      // ISO 8601, exclusive
}

The match uses model + timestamp + cache hit/miss + input/output, so a
request at time T is always billed with the rows in force at T — later
repricing never rewrites history. cache_write falls back to cache_miss
when no dedicated row exists. Among matching rows the one with the latest
effectiveFrom wins.

The shipped defaults follow DeepSeek's V4 announcement: flat rates until
2026-08-16T16:00:00Z, then peak/off-peak rates (off-peak = 50% of peak).
They are seed data only — supply pricing or pricingFile to own the table.
Without configuration, defaults are seeded only when the table is empty, so a
restart without a pricing config never overwrites recorded prices.

What is collected

The plugin listens to session/event and replays persisted sessions through
ctx.sessionQuery on startup (live-only when the seam is absent):

  • assistant/message usage → one request row per (session, seq)
    (deduplicated, replay-safe)
  • request/header → provider / model / reasoning effort for pricing
  • tool/call + tool/result → tool call rows with error flags
  • session headers → created-at, cwd, parent for grouping

Storage is a local SQLite database (dsh_analytics_requests,
dsh_analytics_tool_calls, dsh_analytics_sessions,
dsh_analytics_pricing). Nothing leaves the machine; the plugin never calls
the provider API.

Service: ctx.analytics

All reads are detached snapshots; the service never touches the session store
or the agent loop:

await ctx.analytics.overview({ start, end })   // totals, cost, cache, reasoning, trend, byModel, bySession, budget
await ctx.analytics.session(sessionId)          // request rows, turn waterfall, tools, cache
await ctx.analytics.sessions({ start, end })    // per-session summaries
await ctx.analytics.models({ start, end })      // per-provider/model summaries
await ctx.analytics.tools({ start, end })       // per-tool calls/errors + step-attributed cost
await ctx.analytics.pricing()                   // the pricing table in force
await ctx.analytics.budget()                    // spend vs configured limits + projection

Tool cost is step-level attribution: a model call's cost is distributed
evenly across the tools called in that step, so a step with several tools
shares its cost (never double counted).

Agent tool: analytics_query

The model can ask for the same numbers:

analytics_query(query="overview", range_hours=24)
analytics_query(query="session", session_id="session-1")
analytics_query(query="models" | "sessions" | "tools" | "reasoning" | "agents" | "insights" | "inflation" | "pricing" | "budget", range_hours=24)

range_hours bounds the window ending now (0 = all time, default 24).

Web API

When ctx.webServer is mounted, read-only JSON routes register at
/api/analytics/overview|sessions|models|tools|pricing|budget (with an
optional ?hours= query) and /api/analytics/session/. These are
the data source for a future dashboard page.

Browser dashboard

The same routes power a self-contained dashboard served by the plugin at
/analytics (open the harness web server URL in any browser, or
http://127.0.0.1:/analytics in a headless profile that mounts
ctx.webServer). It is a zero-build vanilla JS app shipped inside the
package (web/):

  • Overview — KPI cards (cost, tokens, cache hit rate, reasoning share),
    token/cost trend, composition donut, cache hit-rate trend, cost by model, sessions, budget
  • Sessions — list with drill-down: turn waterfall with duration/outcome,
    cumulative context chart, per-turn cost bars, tools, cache
  • Reasoning — low/high/max efficiency: calls, success rate, avg duration,
    cost, and cost per success
  • Agents — parent/child subagent cost tree with per-node cost bars and a
    top-level cost donut (click any node to drill down)
  • Insights — rule-generated optimization suggestions (reasoning effort,
    cache, tool concentration, budget, subagent share, context growth)
  • Context Inflation — tool results re-sent in later requests: duplicated
    tokens, avoidable cost, and per-tool share
  • Token Flow / Models / Cost / Pricing — per-bucket trend, per-model
    aggregates, per-tool step attribution, latest-rate price comparison, and the pricing table

The range selector (6h/24h/7d/30d/all) applies to every page; the shell-nav
integration inside the harness client is a follow-up (the harness client has
no free plugin page slot today). The top bar also has an EN / 中文 toggle
(persisted across visits; ?lang=zh forces Chinese).

In-shell entry (web profile)

The package also ships a browser client bundle (dsh.client →
exports["./client"], built to the harness module-loader contract). In a web
profile it registers three entries:

  • a Token Analytics action beside Settings at the sidebar foot, opening a
    full-screen in-app panel with the same six pages as /analytics
    (Overview / Sessions / Token Flow / Models / Cost / Pricing, with a range
    selector and refresh);
  • a per-session Analytics action in the conversation header, opening the
    task-cost overlay (cost, tokens, cache hit rate, turn waterfall, tool
    attribution, and a link to the full dashboard);
  • a per-turn cost line under each closed turn's final chat message
    ("tokens · cost · duration"), rendered by the conversation.chat.turnTail entry.

Both read the same read-only JSON routes, so they need the plugin's host half
(and its web routes) mounted. No harness client shell change is required:
the sidebar entry uses the shell's existing sidebar.footer.action hole.

Development

pnpm install
pnpm test
pnpm lint
pnpm build
pnpm doctor

Visual QA: run pnpm preview in one terminal, then
node scripts/visual-qa.mjs — it drives headless Edge over the dashboard and
reports element overlaps, SVG chart-label collisions, text overflow, and the
font-size scale.

Roadmap

  • Analytics entry inside the harness client shell (left-nav integration; the
    client has no free plugin page slot today, so the dashboard currently lives
    at /analytics)
  • Skill / sub-agent ROI and reasoning-effort efficiency
  • Cost anomaly alerts from the budget signals

License

MIT

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-analytics 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add dsh-analytics@0.4.0` 即可。对应的 npm 包名是 `dsh-analytics`。

dsh-analytics 的验证等级是什么意思?

L4 · 沙盒安装通过。安装命令在隔离沙盒内真实执行成功,无依赖错误

dsh-analytics 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-analytics 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-analytics 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.1.1-rc.2。

dsh-analytics 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-analytics 有哪些功能?

用量采集与去重、时段感知定价、成本预算控制、缓存命中分析、JSON API 查询。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

工具与能力
按星标排序,可作替代方案

huashu-design

huashu-design

在 DeepSeek Harness 里说一句话,就能拿回可交付的设计:网页、App 原型、可编辑 PPTX、动画与信息图,自带 84 种风

未标注验证等级 3.0 万 星

loopx

loopx

LoopX 是面向长周期 Agent 的本地优先控制平面,作为 DSH plugin 为 DeepSeek Harness 提供持久目标、证

未标注验证等级 6,233 星

agy-staff

agy-staff

把 Google Antigravity CLI 作为快速 Gemini 员工接入 DSH,提供子代理侧边栏、编排模式与多种角色技能。

未标注验证等级 870 星

dsh-startup-screen

dsh-startup-screen

DeepSeek Harness 的启动界面与启动动画插件。

未标注验证等级 633 星

dsh-blender-plugin

dsh-blender-plugin

让 AI 模型通过直连 TCP 通道实时驱动 Blender 的 DSH plugin:15 个工具覆盖视口取帧、任意角度渲染、内循环搜索、

未标注验证等级 211 星

hccccc01333 的其它插件

5 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。