Create a task
POST /v1/tasks. It requires title, description, and assignTo; optional fields include draft, loop, expectations, expectedOutcomes, dependsOn, group, maxDuration, retryPolicy, notifications, sideEffects, executionMode, sandbox, and user.
user is opaque attribution metadata. Polpo persists and propagates it but does not authenticate it.
Use sandbox.isolation to choose whether a run can reuse a warm sandbox or must start fresh:
Persisted task
The runtime adds fields such asid, status, retries, maxRetries, timestamps, phase, result, outcomes, deadline, and priority. result contains process output and the current assessment; older assessments are retained in assessmentHistory.
expectedOutcomes declare artifacts the agent should produce. Each entry requires type and label, with optional description, path, mimeType, required, and tags. Actual outcomes are registered at runtime as file, text, url, json, or media artifacts.
Dependencies
For a standalone persisted task,dependsOn contains task IDs. Inside a mission document, dependsOn contains unique task titles because IDs do not exist until mission execution.
Status and phase
Task statuses are:phase is separate from status and can be execution, review, fix, or clarification.
Tasks without expectations or metrics do not enter an LLM quality review merely because they completed; successful execution can transition directly to done. See Assessment.
Retries and side effects
fallbackAgent and escalateModel apply to escalation retries. They belong to the task or mission task, not the agent config.
When sideEffects is true, automatic fix and retry paths are blocked before repeating irreversible work. The task moves to awaiting_approval so a human can decide how to continue. It does not imply approval before the first execution.
Local deployment
Standalone task files live under.polpo/tasks/*.json. They are opt-in during deployment:
polpo deploy --all also includes them. Mission tasks should normally be authored inside the mission’s data document instead.
See the Tasks API for update, retry, kill, reassess, queue, force-fail, and activity endpoints.