Introduction¶
The core capability of DeepSeek Harness (DSH) is interactive sessions and agent execution. When dealing with deployment-level scheduled tasks, or when running fixed operational workflows silently in the background, the existing interactive mode is not direct enough. The syncended/deepseek-harness-automations plugin is designed for this purpose, providing DSH with persistent, configurable Cron job scheduling capabilities.
Plugin Positioning¶
This is a DSH plugin maintained by syncended, aiming to provide standard Cron scheduling support for the DeepSeek Harness plugin ecosystem. Each task trigger starts a new, persistent Harness Agent and connects it to the specified workspace, model routing, agent preset, and permission preset.
Core Features¶
The plugin provides a complete set of scheduling and execution control mechanisms:
- Scheduling Support: Supports standard five-field Cron expressions, with UTC or IANA time zones.
- Fine-Grained Configuration: Each task can independently configure workspace, provider/model, reasoning effort, agent preset, and permission preset.
- Task Management: Supports enable/disable, run now, edit, delete, cancel, and viewing recent run history.
- Overlapping and Misfire Policies:
- Overlap Policy:
skip,queue,allowconcurrent execution. - Misfire Policy:
skip(mark as skipped),run-once(coalesce execution).
- Overlap Policy:
- State Management: Uses atomic operations to manage owner-private state files (default located at
$DSH_HOME/automations/state). - Execution Snapshots: Provides immutable execution snapshots and Occurrence Key, ensuring replay-safe admission control.
- Extensible Executors: Supports extensible executor registry (MVP version includes
agent).
Installation and Enablement¶
Before installation, ensure the following environment requirements are met:
* Node.js 22 or newer.
* DeepSeek Harness version 0.1.1-rc.2 or a compatible version, with a working dsh web profile.
Install using the official npm package:
dsh plugin --profile web add @syncended/dsh-automations
After installation or upgrade, restart the dsh web process, refresh the page, and then enter the management interface via Automations or Settings → Automations in the main sidebar.
Configuration and Usage¶
When creating a task, it is recommended to first create a small disabled task, save it, and then use the Run now feature to verify the selected model, workspace, and permission preset.
Scheduling Settings¶
- Simple Mode: Supports Minutes, Hourly, Daily, Weekdays, Weekly.
- Custom Mode: Select Custom to expose the raw five-field Cron expression (
minute hour day-of-month month day-of-week). - Time Zone: Supports UTC or IANA time zones (e.g.,
Europe/Berlin).
Task Configuration¶
- Workspace: Select an existing workspace or manually enter an absolute path. This path will serve as the Agent’s current working directory and the
workspace-writeroot. - Agent & Access: Configure Prompt (user message), model selection, reasoning effort, agent preset, and permission preset.
- Advanced Settings: In the collapsed Advanced section, you can configure timeout, overlap policy, and misfire policy.
Plugin Configuration¶
For a local Web profile, the default configuration is usually sufficient. If adjustments are needed, edit the automations configuration item in $DSH_HOME/profiles/web/cordis.patch.yml. Restart the Host after making changes.
- id: automations
config:
maxConcurrentRuns: 2
historyLimit: 1000
misfireGraceMs: 60000
maxOutputChars: 65536
allowedProjectRoots:
- /home/me/projects
# 可选:指定状态文件路径
# statePath: /absolute/private/path/state.json
Configuration Item Description:
* allowedProjectRoots: If left empty, any directory resolvable by the Harness host account is accepted. If the Web interface is exposed outside trusted machines, it is recommended to configure specific root directories. Paths are normalized via realpath.
* Value Ranges: maxConcurrentRuns 1-32, historyLimit 10-10,000, misfireGraceMs 0-86,400,000, maxOutputChars 1024-1,048,576.
Notes¶
- Version Compatibility: The MVP stage is compatible with
@deepseek-ai/dsh0.1.1-rc.2and0.1.2-rc.1. - Single-Host Limitation: The current Worker operates in single-host mode.
- Crash Handling: Cron entries and run history are persisted. If the host crashes during a run, an already-started run task will not be retried (it will be marked as
interrupted) to avoid silent duplicate side effects caused by network or file operations. - Exactly-once: This plugin does not provide Exactly-once execution semantics. External side effects that require Exactly-once semantics must implement idempotency within the task itself or the target system.
- Permission Control:
danger-full-accessis only available when the job author selects a preset that is configured with this permission. - API Access: The management API requires JSON-formatted data and a custom Same-Origin Mutation Header. It inherits the trust boundary of the DSH Web server and does not have an independent authentication layer.
Conclusion¶
syncended/deepseek-harness-automations provides a reliable scheduling infrastructure for DeepSeek Harness. It addresses the need to start new workspace tasks when no active session is present, and with fine-grained permission and state control, it is well suitable for building automated operations or data processing workflows.