dsh-offpeak:在 DeepSeek 高峰时段暂停模型调用

前言

DeepSeek Harness(DSH)里,智能体一旦跑起来,模型调用会按任务节奏连续发出。DeepSeek 官方路由在部分时段按高峰定价计费;若你在这些时段仍照常调用,费用会按高峰价结算。手动掐表、改 cron 或在外层包一层调度,都能错开高峰,但都要自己维护时间表,且很难保证「请求在发出前就被拦住、窗口结束后再自动继续」。

下面介绍社区插件 dsh-offpeak(维护者 TetraSsky,分类:工作流)。它在 DSH web profile 下,按你配置的暂停窗口拦截模型调用,窗口内请求不发送到适配器、不产生计费;窗口结束后由插件自行恢复。可选能力还包括读取账户余额与近期 spend 图表。插件为独立包,只读写自身相关文件,不依赖其他 DSH 插件。

这是什么

dsh-offpeak 是 DeepSeek Harness 插件:在高峰定价时段 hold DeepSeek 模型调用,待非高峰再发送,以便按 off-peak 费率计费。窗口打开期间,请求不会被发出,智能体等待,窗口结束后自动继续。

DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

「暂停」由三部分共同构成

机制 作用
Request gate 所有模型调用经 llm/stream 瀑布流;窗口内调用在到达 adapter 前被 park,不发送、不计费。
Goal freeze 处于 active 阶段的 goal 被暂停,不再推进,界面显示为 paused 而非 busy;用户自行暂停的 goal 不会被改动。
Status tool 提供只读工具 offpeak_status,供模型说明为何在等待;不能改时间表。

没有按请求的 override,也没有按窗口的 skip;时间表是何时 hold 的唯一依据。若要提前结束暂停,需改时间表或关闭插件。

被 hold 的请求会在窗口结束、请求被 abort、时间表变更使其不再被 hold、或插件卸载时释放。重启后,插件会按 $DSH_HOME/offpeak-paused.json 中的记录,仅恢复由本插件暂停过的 goal。

时间表与时区

高峰定价以 北京时间 定义。插件区分:

  • Schedule time zone:写入暂停窗口的时区,属于时间表身份的一部分。
  • Show times in:仅用于展示的时区;修改只会重标时间,不会改变窗口本身。

状态机在 schedule 时区下求值,浏览器与 host 对状态一致。

设置页提供 Apply DeepSeek peak hours:将北京时间工作日 09:00–12:00、14:00–18:00(含两分钟余量)换算到你选的 schedule 时区并追加,不改动你的时区、不丢弃已有窗口。若 schedule 时区有夏令时,换算窗口相对北京高峰每年会漂移两次;设置页说明可用北京时间表达 schedule 以避免漂移。

余额与 spend 图表(可选)

开启 Show API balance 且已在 Models 页保存 DEEPSEEK_API_KEY 时,host 读取 DeepSeek 账户余额并在 header 展示;悬停可看 spend 分解,点击可看近八小时、十分钟粒度的柱状图。仅暂停窗口不依赖 API Key。

  • Key 不离开 host;浏览器经认证路由获取衍生数字。
  • Spend 为余额 下降 之和,充值不会抵消真实 spend。
  • 插件 enabled 时每五分钟采样一次(不限于展示余额时),写入 $DSH_HOME/offpeak-history.json(288 条样本,约 24 小时)。
  • 历史从插件启用后开始,无法还原安装前的用量。

余额 API 返回账户本币(可能 USD 或 CNY)。Balance currency 可覆盖符号,并在选定固定符号时配置 CNY per USD 做换算。

界面提示

窗口即将或正在打开时,header 会显示通知及 Dismiss。Dismiss 仅在本页会话内静音该次窗口;换聊天不会再次出现,刷新页面会重新提示。不同窗口视为不同 occurrence,都会公告。

安装与启用

要求:带 web profile 的 DeepSeek Harness。余额与 spend 图需要 Models 页配置 DEEPSEEK_API_KEY;暂停本身不需要。

从 GitHub 安装:

dsh plugin --profile web add github:TetraSsky/dsh-offpeak

本地 checkout 安装:

dsh plugin --profile web add <path-to-this-package>

然后在 $DSH_HOME/profiles/web/package.json 的 dsh.profile.bundles 中加入 dsh-offpeak,并重启。包的 cordis.patch.yml 会插入对应行。

配置落在 $DSH_HOME/settings.yaml 的 offpeak 命名空间下。插件还会在 $DSH_HOME 写入 offpeak-history.json(余额采样)与 offpeak-paused.json(本插件暂停的 goal 记录)。

典型用法

  1. 安装并加入 bundle,重启 DSH web profile。
  2. 在插件设置中打开 Enable off-peak pause。
  3. 选择 Schedule time zone,配置 Pause windows(pauseAt–resumeAt 及各自 weekdays)与 Days that pause(周末默认 off-peak,通常不纳入)。
  4. 需要对齐官方高峰时,使用 Apply DeepSeek peak hours 追加窗口,再按需微调。
  5. Applies to 默认仅 DeepSeek official routes(高峰定价仅存在于官方路由);也可选全部调用。
  6. 可选:开启 Show API balance、配置 Balance currency;用 Warn before pause 控制提前多久出现 header 通知。

语言随 Harness 的 zh / en 切换,插件无单独语言项。

适用场景与注意

适合:长期用 DSH web profile 跑智能体、主要走 DeepSeek 官方路由、希望在已知高峰段自动停发请求以按 off-peak 计费的用户。

注意:

  • 窗口内任务会等待,不适合对延迟极度敏感且无法错开高峰的在线交互。
  • 无 per-request 跳过;临时要发请求需改时间表或关插件。
  • 插件以当前 DSH 进程权限运行,安装前请自行查看 源码 与 MIT 许可证,确认可接受其行为与文件读写范围。
  • 夏令时时区下,若用「Apply DeepSeek peak hours」换算窗口,相对北京高峰可能漂移;可按 README 改用北京时间作 schedule 时区。

结尾

dsh-offpeak 把「高峰不发出、低峰自动续」做成 DSH 内建工作流:request gate、goal freeze 与 offpeak_status 一起定义暂停语义,时间表以 schedule 时区为准,并可一键追加 DeepSeek 官方高峰段。需要成本可见性时,可叠加余额与 spend 图表。

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

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

小夜