前言¶
DeepSeek Harness (DSH) 的核心能力在于交互式的会话与智能体运行。当需要处理部署级别的定时任务,或者在后台静默执行固定的操作流程时,现有的交互模式显得不够直接。syncended/deepseek-harness-automations 插件正是为此设计的,它为 DSH 提供了持久化、可配置的 Cron 任务调度能力。
插件定位¶
这是一个由 syncended 维护的 DSH 插件,旨在为 DeepSeek Harness 插件生态提供标准的 Cron 调度支持。每个任务的触发都会启动一个新的、持久化的 Harness Agent,并连接到指定的工作区、模型路由、智能体预设和权限预设。
核心功能¶
该插件提供了一套完整的调度与执行控制机制:
- 调度支持:支持标准的五字段 Cron 表达式,并支持 UTC 或 IANA 时区。
- 精细化配置:每个任务可独立配置工作区、提供商/模型、推理力度、智能体预设和权限预设。
- 任务管理:支持启用/禁用、立即运行、编辑、删除、取消,以及查看最近的运行历史。
- 重叠与误触发策略:
- 重叠策略:
skip(跳过)、queue(排队)、allow(允许并发)。 - 误触发策略:
skip(标记为跳过)、run-once(合并执行)。
- 重叠策略:
- 状态管理:使用原子操作管理所有者私有的状态文件(默认位于
$DSH_HOME/automations/state)。 - 执行快照:提供不可变的执行快照和 Occurrence Key,确保重放安全的准入控制。
- 可扩展执行器:支持扩展执行器注册表(MVP 版本包含
agent)。
安装与启用¶
安装前请确保满足以下环境要求:
* Node.js 22 或更新版本。
* DeepSeek Harness 版本 0.1.1-rc.2 或兼容版本,且 dsh web profile 可正常工作。
使用官方 npm 包安装:
dsh plugin --profile web add @syncended/dsh-automations
安装或升级后,请重启 dsh web 进程,刷新页面,然后通过主侧边栏的 Automations 或 Settings → Automations 进入管理界面。
配置与使用¶
在创建任务时,建议先创建一个小型的禁用任务,保存后使用 Run now 功能验证选定的模型、工作区和权限预设。
调度设置¶
- 简单模式:支持 Minutes、Hourly、Daily、Weekdays、Weekly。
- 自定义模式:选择 Custom 可暴露原始的五字段 Cron 表达式(
minute hour day-of-month month day-of-week)。 - 时区:支持 UTC 或 IANA 时区(如
Europe/Berlin)。
任务配置¶
- Workspace:选择现有工作区或手动输入绝对路径,该路径将作为 Agent 的当前工作目录和
workspace-write根目录。 - Agent & Access:配置 Prompt(用户消息)、模型选择、推理力度、智能体预设和权限预设。
- 高级设置:在折叠的 Advanced 区域可配置超时时间、重叠策略和误触发策略。
插件配置¶
对于本地 Web profile,默认配置通常足够。如需调整,请编辑 $DSH_HOME/profiles/web/cordis.patch.yml 中的 automations 配置项。修改后需重启 Host。
- id: automations
config:
maxConcurrentRuns: 2
historyLimit: 1000
misfireGraceMs: 60000
maxOutputChars: 65536
allowedProjectRoots:
- /home/me/projects
# 可选:指定状态文件路径
# statePath: /absolute/private/path/state.json
配置项说明:
* allowedProjectRoots:留空表示接受 Harness 主机账户可解析的任何目录。若 Web 界面暴露在受信任机器之外,建议配置具体根目录。路径通过 realpath 规范化处理。
* 数值范围:maxConcurrentRuns 1-32,historyLimit 10-10,000,misfireGraceMs 0-86,400,000,maxOutputChars 1024-1,048,576。
注意事项¶
- 版本兼容:MVP 阶段兼容
@deepseek-ai/dsh0.1.1-rc.2和0.1.2-rc.1。 - 单主机限制:当前 Worker 为单主机模式。
- 崩溃处理:Cron 入口和运行历史是持久化的。如果主机在运行过程中崩溃,已启动的运行任务不会被重试(会被标记为
interrupted),这是为了避免在网络或文件操作中产生静默的重复副作用。 - Exactly-once:该插件不提供 Exactly-once 执行语义。需要 Exactly-once 的外部副作用必须在任务本身或目标系统中实现幂等性。
- 权限控制:
danger-full-access仅在作业作者选择配置了该权限的预设时可用。 - API 访问:管理 API 需要 JSON 格式数据及自定义的 Same-Origin Mutation Header。它继承 DSH Web 服务器的信任边界,无独立的认证层。
结语¶
syncended/deepseek-harness-automations 为 DeepSeek Harness 提供了可靠的调度基础设施。它解决了在无活跃会话时启动新工作区任务的需求,通过精细的权限和状态控制,适合构建自动化的运维或数据处理流程。