前言¶
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)。
- 执行安装命令:
dsh plugin --profile web add github:Meowrium/dsh-auto-continue
- 安装完成后,重启
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 元素正确渲染。