dsh-peak-hours:DeepSeek Harness 运行窗口切换插件

在 DeepSeek Harness 中开发智能体时,模型调用成本是主要考量之一。插件 dsh-peak-hours 提供了运行窗口的切换能力,允许用户在非高峰时段自动运行或暂停任务,以优化成本。

插件简介

这是一个由 lion231226 维护的 DeepSeek Harness 工作流插件,基于 MIT 许可证。它允许在 Composer 工具栏添加控件,在“总是运行”和“仅非高峰时段运行”之间切换。在“仅非高峰时段运行”模式下,当北京时区的峰价窗口开始时,所有 dsh 任务(包括正在运行的任务)会自动暂停;窗口结束后自动恢复。

核心功能

  • 界面控件:在 composer 工具栏添加运行模式切换控件,支持“总是运行”和“仅非高峰时段运行”两种模式。
  • 自动调度:高峰时段自动暂停所有任务,非高峰时段自动恢复。
  • 时段判定:基于北京时区(UTC+8)的峰谷时段判定(周一至周五 09:00-12:00, 14:00-18:00)。
  • 节假日支持:支持法定节假日和补班日判定。
  • HTTP API:提供 API 接口用于状态查询、模式切换和时钟模拟。
  • 实现方式:无构建步骤,纯 JavaScript 实现。

安装与启用

使用 DeepSeek Harness 的 CLI 进行安装:

dsh plugin --profile web add github:lion231226/dsh-peak-hours

典型用法

界面操作

在 composer 界面中,点击工具栏中模式按钮右侧的控件即可选择运行策略。

API 操作

插件在宿主机的回环 Web 服务器上注册了以下接口:

  • 查询健康状态:
    GET /api/peak-hours/health
  • 查询当前状态:
    GET /api/peak-hours/state?session=<id>
不带 `?session=` 参数时,报告 `default` 模式。
  • 切换运行模式:
    POST /api/peak-hours/mode
    Content-Type: application/json

    {
      "mode": "always" | "idle-only" | null,
      "session": "<id>",
      "scope": "session" | "default"
    }
设置 `mode: null` 并指定 session 可清除该 session 的覆盖设置。
  • 时钟模拟:
    POST /api/peak-hours/clock
    Content-Type: application/json

    {
      "offsetMs": <int|null>,
      "ttlMs": <int>
    }
`ttlMs` 最大限制为 30 分钟。

技术细节与注意事项

  • 安装冲突:不要混用 dsh plugin add 和 install.ps1 两种安装方式。dsh plugin add 会注册包,而 install.ps1 会手动写入 patch 文件。混用会导致 patch 文件重复。
  • 补班日逻辑:补班日被视为空闲时段,不参与高峰时段判定。
  • 时钟覆盖:clockOverride 的 TTL 最大限制为 30 分钟。
  • 依赖项:依赖 @deepseek-ai/cordis(可选依赖)。
  • 拦截机制:主要通过 agent/pre-step 和 tools/pre-execute 拦截,llm/stream 接口未被阻挡,因为其返回类型与 agent loop 的调用路径有关。

适用场景

该插件适合需要在特定时间段控制任务运行、以降低模型调用成本的 DeepSeek Harness 用户。使用前请检查源码与许可证,插件以当前 dsh 进程权限运行。

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

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

小夜