计量模型调用花费,超预算直接拦截调用
23.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add haoku123/dsh-budget-guard该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · model
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 73 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求lib/client.js:403
const res = await fetch(`${basePath}/status`, { cache: "no-store" });
扫描于 2026/10/31(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-code-runtime@deepseek-ai/dsh-invariants@deepseek-ai/dsh-llm@deepseek-ai/dsh-scope@deepseek-ai/dsh-session@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-timeout@deepseek-ai/dsh-tools@deepseek-ai/dsh-user-approval@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 插件:LLM 成本计量,带预算管控(拒绝/警告)和峰谷定价。成本计量加超预算硬拦截,支持 DeepSeek 峰谷定价。
README
由 DeepSeek 最新模型翻译生成dsh-budget-guard
DeepSeek Harness 插件:LLM 成本计量 + 预算执行(超预算硬拦截),支持 DeepSeek 峰谷定价。
与其他「只显示数字」的成本插件不同,本插件在 llm/stream 调用层执行预算:超出日/月/总预算时直接拦截模型调用,而不只是弹一个红条。
功能
- 用量计量:包装 llm/stream waterfall,观察 provider usage(input / output / cache),跨会话累计
- 费用计算:内置 DeepSeek 价格表,按模型计费(USD)
- 峰谷定价:感知 DeepSeek 峰谷时段(北京时间 9:00–12:00、14:00–18:00 为高峰,其余半价),按调用时刻计价
- 预算执行:
- deny(默认):超预算硬拦截 agent-loop 调用,抛 BUDGET_EXCEEDED(LlmError),loop 走 request-error 流程
- warn:只记录不拦截
- 内部调用(compaction、标题生成等,无 sessionId)永不拦截,避免死锁
- budget_status 工具:模型/用户可查询当前用量与剩余预算
- 持久化:可选接入 storage 服务(json KV);未挂载时进程内存累计
展开完整文档(README 剩余 1 节)
dsh-budget-guard
DeepSeek Harness 插件:LLM 成本计量 + 预算执行(超预算硬拦截),支持 DeepSeek 峰谷定价。
与其他「只显示数字」的成本插件不同,本插件在 llm/stream 调用层执行预算:超出日/月/总预算时直接拦截模型调用,而不只是弹一个红条。
功能
- 用量计量:包装 llm/stream waterfall,观察 provider usage(input / output / cache),跨会话累计
- 费用计算:内置 DeepSeek 价格表,按模型计费(USD)
- 峰谷定价:感知 DeepSeek 峰谷时段(北京时间 9:00–12:00、14:00–18:00 为高峰,其余半价),按调用时刻计价
- 预算执行:
- deny(默认):超预算硬拦截 agent-loop 调用,抛 BUDGET_EXCEEDED(LlmError),loop 走 request-error 流程
- warn:只记录不拦截
- 内部调用(compaction、标题生成等,无 sessionId)永不拦截,避免死锁
- budget_status 工具:模型/用户可查询当前用量与剩余预算
- 持久化:可选接入 storage 服务(json KV);未挂载时进程内存累计
- 仪表盘:shell.overlay 角落常驻面板(5s 轮询),见下
仪表盘
面板把已经在记的数据变成可判断的信息,而不只是三个累计数字:
| 区块 | 内容 |
| 主视觉 | 今日消耗环形进度(占日预算百分比)+ 大号金额 + 剩余额度 |
| 24h 趋势 | 每小时花费柱状图,高峰时段着黄色,当前小时描边 |
| 其他周期 | 本月 / 总计进度条,80% 处有警戒刻度,无限额显示虚线轨道 |
| 洞察 | 消耗速率($/h)、触限预测、缓存命中率与省下金额、当前时段单价与折扣 |
几个刻意的设计:
- 消耗速率只统计已走完的整小时。当前小时还在累积,算进去会让数字每次轮询都跳。
- 被拦截时不显示花费预测。deny 模式下调用已经发不出去了,今日预计 $12.81 描述的是不可能发生的开销;这时显示的是「明日 00:00(12.6 小时后)」这类恢复时间。总预算耗尽则明说需要调高上限——等到明天也不会自动恢复。
- 峰谷时段由 host 返回的两组单价比值推导,不由浏览器时钟计算。计价窗口是北京时间,用本地时钟判断会让 UTC+8 以外的用户看到错误时段。
- 任何非零消耗都保证有可见填充(下限 1.5%)。$0.03 / $5 是 0.6%,按真实比例渲染会得到 0 像素宽的条——面板退化成几行文字,看起来像坏了。百分比数字仍按真实值显示。
- 缓存节省是估算:按 list price 的 input/cachedInput 差价反推,而非逐次调用的实际计费,所以只保留两位小数。
安装
方式一:npm(推荐)
npm install dsh-budget-guard
方式二:dsh 插件命令
dsh plugin --profile web add "github:haoku123/dsh-budget-guard#main"
方式三:本地开发
git clone https://github.com/haoku123/dsh-budget-guard.git
cd dsh-budget-guard
npm install --legacy-peer-deps
npm run build
pnpm dsh web --patch ./cordis.patch.yml
配置
见 cordis.patch.yml 示例。默认价格基于 DeepSeek 官方公告(峰价,USD/1M tokens),可通过 prices.models 覆盖。
架构
llm/stream waterfall
├── store.check() → deny? → 抛 LlmError(BUDGET_EXCEEDED) ← 预算执行 └── meterStream() → 观察 usage chunk → store.record() ← 计量
GET /dsh-budget-api/status → { status, history, budget, prices, pricing }
│ └ list + effective 单价 └ 近 24 个小时桶(含空桶)
- src/index.ts:插件入口(拦截 + 工具注册 + status 路由)
- src/prices.ts:价格表 + 峰谷逻辑 + 费用计算(纯函数,独立可测)
- src/budget.ts:预算状态与持久化(storage KV / 内存降级)+ 小时桶趋势
- src/client.tsx:仪表盘组件
记账分四个 scope:d: 日、m: 月、t:total 总计、h: 小时。前三个永久累计;小时桶只为趋势图存在,保留 48 小时后裁剪——每天 24 条,不设上限会无限增长。deleteRecord 在 storage 后端是可选的,所以内存里一定裁剪,落盘行删不掉也无所谓:connect 加载时会用同一个窗口过滤,过期桶不会复活。
测试
npm test # vitest:host 17 用例(计量/deny/warn/峰谷/时区/小时桶/status 契约)
+ client 18 用例(渲染/趋势/洞察/拦截态/低占用可见性)
限制
- 价格为静态配置,不实时同步官方调价
- 内存降级模式下重启后累计清零(趋势图同样清零)
- 费用为估算值(基于 provider usage),与账单可能存在差异
- 触限预测按近 3 小时均速线性外推,不预测使用模式变化预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
haoku123/dsh-budget-guard
计量模型调用花费,超预算直接拦截调用
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1