ArgentOS Business — This feature is part of ArgentOS Business. The architecture is documented here for all users, but full functionality requires a Business license. Learn more about Business
Overview
The Execution Worker is ArgentOS’s autonomous task processor. It runs on configurable intervals (default 20 minutes), selects the next runnable task by priority and dependency order, executes it through the full agent toolchain, validates evidence of completion, and auto-blocks tasks that make no progress after repeated attempts.
This is the system that lets Argent work independently on a backlog of tasks — research, content creation, code generation, data processing — without requiring a human to trigger each one.
Configuration
{
"agents": {
"defaults": {
"executionWorker": {
"enabled": true,
"every": "20m",
"model": "anthropic/claude-sonnet-4-20250514",
"maxRunMinutes": 12,
"maxTasksPerCycle": 24,
"scope": "assigned",
"requireEvidence": true,
"maxNoProgressAttempts": 2
}
}
}
}
| Parameter | Type | Default | Description |
|---|
enabled | boolean | false | Enable the execution worker |
every | string | "20m" | Interval between cycles (duration string) |
model | string | — | Optional model override (provider/model) |
maxRunMinutes | number | 12 | Maximum minutes per single task execution |
maxTasksPerCycle | number | 24 | Maximum tasks to attempt per cycle |
scope | string | "assigned" | Which tasks to consider (see Scope below) |
requireEvidence | boolean | true | Require evidence of completion |
maxNoProgressAttempts | number | 2 | Block task after N no-progress attempts |
sessionMainKey | string | "worker-execution" | Session key for worker runs |
Task Selection
Priority Ordering
Tasks are selected based on a weighted priority system:
| Priority | Weight |
|---|
urgent | 5 |
high | 4 |
normal | 3 |
low | 2 |
Within the same priority, tasks are ordered by creation time (oldest first).
Dependency Resolution
Before selecting a task, the worker checks its dependsOn array. A task is only runnable if all its dependencies are in completed status. Tasks with unresolved dependencies are skipped.
Scope Filtering
| Scope | Behavior |
|---|
"assigned" | Only tasks explicitly assigned to this agent (via assignee field) |
"unassigned" | Only tasks with no assignee |
"all" | All pending tasks regardless of assignment |
The worker resolves agent aliases so that main, argent, agent:main, and agent:argent all match the main agent.
Evidence Validation
When requireEvidence is true (the default), the worker validates that the agent actually accomplished something during execution:
- Tool claim validation: Did the agent claim to use tools? Did it actually execute them?
- External artifacts: Were external artifacts produced (files, messages, API calls)?
- Progress indicators: Did the task status change? Were subtasks completed?
If evidence is insufficient, the attempt is marked as no-progress.
No-Progress Blocking
When a task accumulates maxNoProgressAttempts (default: 2) consecutive attempts without measurable progress, it is automatically blocked. This prevents the worker from burning tokens on tasks it cannot make progress on.
Blocked tasks are excluded from future selection until manually unblocked.
Pre-flight Checks
Before each cycle, the worker performs several checks:
- Enabled: Is the worker enabled in config?
- Not paused: Is the worker paused (globally or per-agent)?
- Not running: Is another cycle already in progress?
- Queue empty: No pending user messages that should take priority
- No active runs: No embedded agent sessions currently executing
- Active hours: Is the current time within configured active hours?
If any check fails, the cycle is skipped with a reason code.
Dashboard Controls
Available Actions
| Action | Description |
|---|
| Pause | Stop the worker (globally or per-agent). Preserves state. |
| Resume | Resume a paused worker. |
| Dispatch Now | Trigger an immediate execution cycle outside the normal interval. |
| Reset Metrics | Zero out all counters (globally or per-agent). |
Metrics Tracked
| Metric | Description |
|---|
totalRuns | Total execution cycles completed |
totalSkips | Cycles skipped (busy, paused, no tasks, etc.) |
totalAttempted | Tasks attempted across all cycles |
totalProgressed | Tasks that showed measurable progress |
totalCompleted | Tasks completed to done status |
totalBlocked | Tasks blocked due to no-progress |
lastStatus | Result of most recent cycle ("ran" or "skipped") |
lastReason | Reason for skip (if applicable) |
Multi-Agent Support
The worker maintains independent state per agent. Each agent has its own configuration, timer, no-progress tracking, and metrics counters.
This allows different agents to have different execution profiles — for example, a research agent might run every 10 minutes with a broad scope, while a support agent runs every 30 minutes on assigned tasks only.