前言¶
DeepSeek Harness(DSH)在 goal 模式下,round 驱动会持续开新轮次直到目标完成。官方文档也写明:round 上限「不是资源预算」——token、金额、耗时和供应商配额仍是各自独立的策略。长时间跑任务时,模型可能在不知不觉中把一轮会话的用量推高,既没有预警,goal 模式也会继续自动续跑。
dsh-session-budget(维护者 laiyouxing,GitHub:laiyouxing/dsh-session-budget)就是为 DSH 补这一层:按会话设置 token、费用和墙钟时间三类预算,任一触顶即停止本轮模型会话;并可选用 DeepSeek 公布的峰谷时段,在峰值窗口内暂停任务、谷段自动恢复。下面介绍它的定位、能力与用法。
这是什么¶
这是一款面向 DeepSeek Harness 的插件,分类上可归为模型推理相关的用量与成本控制。状态落在本机 ~/.dsh 下的 JSON,无额外联网遥测。
核心功能¶
三类独立预算¶
每个会话可任意组合配置:
| 维度 | 计入内容 | 说明 |
|---|---|---|
tokens |
每条 assistant/message 的 uncachedInput + cacheRead + cacheWrite + output |
同一步重试会覆盖采样,不重复计数 |
money |
上述四桶用量 × 设置页中的四个「每百万」单价 | 四个单价须全部配置,否则金额不累计;有钱上限但单价全为 0 时会提示 |
time |
自设定预算起的墙钟分钟数 | 与 token 无关,由插件定时器检查 |
字段留 0 表示该维度不限制。
触顶行为:硬停止,而非提示¶
触达任一上限时,插件会:
- 在
agent/pre-step返回{ kind: 'reject' },模型调用不会发生,回合以blocked结束。 - 阻塞或暂停会话的 goal(
budget-exhausted或onExceed: pause),goal 模式无法自动续跑。 - 对进行中的回合调用
agent.cancel({ kind: 'hook', reason }),界面显示为已中止。 - 在提高上限、
reset、或谷段开始后,由本插件造成的停止可被清除并恢复 goal;因round-limit、用户编辑等原因被阻塞的 goal 不会由此插件恢复。
会话中途改预算¶
在会话中途设置预算时,会从该会话已有日志回填已记录的用量,上限针对整段会话而非仅设置之后。
DeepSeek 峰谷时段¶
默认对齐 DeepSeek 定价文档 中的峰值定义:UTC 周一至周五 01:00–04:00、06:00–10:00(中国公休日除外);对应 Asia/Shanghai 为工作日 09:00–12:00、14:00–18:00。默认窗口可通过 peakWindows、peakTimezone、peakWeekdays、peakSkipDates 等调整;设置页可同步官方价表与节假日日历(holiday-cn 等)。
峰值窗口内会话暂停并取消当前回合;谷段开始时在满足条件时自动恢复 goal。会话级可用 /budget peak on|off|auto 覆盖插件默认。
三个入口¶
- 输入框上方一行摘要条(用量、峰值暂停提示、「设置上限」)。
- 聊天命令
/budget。 - 设置侧栏「会话用量预算」(插件包页、patch 行配置亦可进入同一设置页)。
环境与依赖¶
- 带 Web UI 的 DSH(
dsh web或 DSH Desktop)。 - Node.js 22+(仓库测试在纯 Node 上运行,无构建步骤、无额外依赖安装)。
@deepseek-ai/schemastery由宿主以 peer 方式提供。
许可证:MIT(package.json 当前版本 1.6.0)。
安装与启用¶
在应用内插件管理器中添加下列 spec(须使用 profile;勿与 Desktop 混用终端 profile):
dsh plugin --profile <profile> add github:laiyouxing/dsh-session-budget
- DSH Desktop: 在应用内 Settings → Plugins 粘贴
github:laiyouxing/dsh-session-budget,不要用针对webprofile 的终端命令。 - 纯
dsh web: 执行上述命令后重启dsh web。 - 本地目录:
dsh plugin --profile <profile> add /absolute/path/to/dsh-session-budget。
安装后刷新页面;输入框上方应出现摘要条,设置中出现「会话用量预算」。
典型用法¶
摘要条¶
一行示例(README 中的示意):
[dot] 预算 3.2M / 50M · ¥1.40 / ¥5 · 42m / 3h [峰值暂停 · 12 分钟后恢复] [设置上限]
已配置维度显示 已用 / 上限;触顶或峰值暂停会有对应标签;「设置上限」可内联编辑三项并 reset、clear。
/budget 命令¶
| 命令 | 作用 |
|---|---|
/budget 或 /budget status |
查看上限、用量、剩余与峰谷安排 |
/budget set tokens=500k money=5 time=120 |
设置子集;token 支持 200k、1.5m 后缀,money 为金额,time 为分钟 |
/budget peak on / off / auto |
本会话峰谷策略 |
/budget reset |
保留上限,用量从零重计 |
/budget off |
移除本会话预算并恢复因本插件停止的 goal |
设置页¶
可编辑插件默认值:各类上限、单价与货币、触顶动作、峰谷窗口与时区、工作日与节假日跳过、tick 间隔、数据文件等;保存写入插件自有存储,不重启宿主。可按 CNY/USD 从官方价表同步四个「每百万」单价。
适用场景与注意¶
适合在 DSH goal 模式或长会话里需要明确「最多花多少 token、多少钱、多少时间」的场景,以及希望在 DeepSeek 峰值单价时段自动暂停、谷段续跑的场景。
安装前建议自行查看仓库源码与 MIT 许可证。插件与当前 dsh 进程同权限运行,能读写 ~/.dsh 下状态;设置页同步价表与节假日时会发起网络请求,日常计账与拦截逻辑仍在本地完成。
结尾¶
dsh-session-budget 把 DSH 文档里仍独立的「资源策略」落成可操作的会话级上限与峰谷暂停,触顶即停 goal、拒掉后续 pre-step,避免静默烧穿一轮任务。目录与源码:
- 社区目录:https://www.skillhub.cn/plugins/laiyouxing/dsh-session-budget
- GitHub:https://github.com/laiyouxing/dsh-session-budget
DSH 生态以「一切皆插件」为方向;SkillHub 等目录为社区站点,与 DeepSeek / 幻方无官方从属关系。按需选用即可。