dsh-auto-continue:DSH 的额度续跑与闲时任务插件

前言

DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在使用过程中,开发者常面临两个具体痛点:一是任务因 API 限流或配额耗尽而中断,需要手动干预;二是希望利用 DeepSeek 的峰谷价差,在低峰时段运行耗时任务以节省成本。dsh-auto-continue 是一个双面插件,旨在解决这两个问题。

插件概览

该插件由 Meowrium 维护,采用 MIT 许可证。它是一个单包结构,同时包含主机端逻辑(lib/index.js)和浏览器端交互(lib/client.js),通过 cordis.patch.yml 和 dsh.client 打包。

安装与启用

安装前请确保本地 DSH 版本满足要求(>= 0.1.5-alpha.1)。

  1. 执行安装命令:
dsh plugin --profile web add github:Meowrium/dsh-auto-continue
  1. 安装完成后,重启 dsh web 服务。

重启后,打开任意对话窗口。在输入栏会出现两个胶囊按钮:“闲时任务”和“自动续跑”。

核心功能

1. 自动续跑

当运行中的会话遇到 RATE_LIMIT 或 QUOTA 错误时,插件会自动恢复会话。

  • 重试机制:默认在 60 秒后重试,如果服务端返回 Retry-After 头,则使用该值;重试间隔上限为 24 小时。
  • 持久化开关:该功能通过 dsh settings 服务保存。开启后,状态行会显示当前是否开启自动续跑。

2. 闲时任务

该功能根据峰谷价格窗口自动暂停或恢复会话。

  • 时间基准:北京时间 (UTC+8),无夏令时。
  • 峰价时段:09:00 – 12:00 和 14:00 – 18:00。在此期间,所有正在运行的会话会被暂停。
  • 谷价时段:除峰价外的其他时间,会话自动恢复运行。
  • 交互与反馈:
    • 点击“闲时任务”按钮可切换开关。
    • 状态行会显示当前窗口(如“谷价”)以及距离下一个切换点(峰价)的倒计时。
    • 切换状态即时生效,暂停的会话在谷价时段会收到恢复信号。

技术细节

  • 设置存储:插件将用户配置存储在 DSH 的 auto-continue 命名空间下,包含 idleTaskEnabled 和 autoContinueEnabled 两个布尔值。
  • 插件结构:
    • cordis.patch.yml:定义主机端插件入口。
    • dsh.client:映射到 lib/client.js,负责浏览器端的 UI 渲染与事件注入。
    • lib/index.js:主机端逻辑,处理时间边界、会话状态管理和错误钩子。

注意事项

  • 依赖版本:由于 DSH 设置服务的 API 变更,插件不直接使用旧版 @deepseek-ai/dsh-settings 的命名导出,而是通过 ctx.inject(["settings"]) 获取服务实例,这与官方插件 dsh-agent-default-model 的实现方式一致。
  • 浏览器注册:浏览器端模块通过 slots.inject 注册到 conversation.input.left 和 conversation.composer.dock,确保 UI 元素正确渲染。
羽毛球分组比赛记分
小程序二维码

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

小夜