설치
npm install dsh-budget-guard이 명령은 GitHub 저장소 주소에서 생성됩니다. 실행 전에 업스트림 README와 소스를 검토하고 재현성이 필요하면 release 또는 commit을 고정하세요.
README
유지 관리자가 작성한 문서 스냅샷입니다.
dsh-budget-guard
DeepSeek Harness 插件:LLM 成本计量 + 预算执行(超预算硬拦截),支持 DeepSeek 峰谷定价。
与其他「只显示数字」的成本插件不同,本插件在
llm/stream调用层执行预算: 超出日/月/总预算时直接拦截模型调用,而不只是弹一个红条。
功能
- 用量计量:包装
llm/streamwaterfall,观察 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);未挂载时进程内存累计
安装
# 方式一: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() ← 计量
src/index.ts:插件入口(拦截 + 工具注册)src/prices.ts:价格表 + 峰谷逻辑 + 费用计算(纯函数,独立可测)src/budget.ts:预算状态与持久化(storage KV / 内存降级)
测试
pnpm test # vitest,8 个用例覆盖计量/deny/warn/峰谷/时区
限制
- 价格为静态配置,不实时同步官方调价
- 内存降级模式下重启后累计清零
- 费用为估算值(基于 provider usage),与账单可能存在差异
프로젝트 파일 및 신호
표시된 항목은 디렉터리 스냅샷에서 감지된 공개 저장소 신호입니다.
저장소 정보
- 언어
- TypeScript
- 라이선스
- 보고되지 않음
- 마지막 업데이트
- 2026. 8. 17. AM 2:25
신중하게 설치하기
소스 코드, 권한, 수명 주기 스크립트, 의존성 및 네트워크 접근을 검토하고 신뢰하지 않는 플러그인은 격리 환경에서 테스트하세요.