Schema
AgentRunStepDefinition
Agent-run step — runs the FULL agentic loop (``WorkstreamV4Executor``) as one node in the declarative WDL step-DAG ("Autopilot"). Distinct from ``archie_query`` (a single orchestrator query that bypasses the verifier): an ``agent_run`` step works MULTI-TURN with a tool allowlist + declared deliverables until it is done or a budget cap is hit. Runs ``RunMode.AUTO_RUN`` by default (no per-step approval); interruptible via the cycle's pause/resume/cancel signals BETWEEN steps + the budget caps WITHIN the step (the workflow cannot pause mid-activity). The DB ``step_kind`` enum already carries ``agent_run`` (migration 20260601_0220).
| Field | Type | Description |
|---|---|---|
idrequired | string | — |
namerequired | string | — |
type | string | — |
description | string | null | — |
depends_on | string | object[] | — |
stage | string | null | — |
timeout | string | null | — |
retry_policy | RetryPolicy | null | — |
error_handler | StepErrorHandler | null | — |
impact_level | "low" | "medium" | "high" | "critical" | Impact classification for steps.lowmediumhighcritical |
run_mode | "propose" | "auto_run" | Execution mode for steps.proposeauto_run |
requires_approval | boolean | — |
metadata | object | null | — |
examples | StepExample[] | null | Attached example files for this step. Each entry pairs a platform.file_uploads.file_id with a role + tags + notes so the runtime can shape its instruction. Bounded at 20 to keep a reasonable upper limit on the prompt preamble. |
tags | string[] | null | Categorical labels on the step itself (e.g. 'pdf-read', 'coutts', 'fy25'). Free-form; recommended tag set is documented per workstream surface. |
goalrequired | string | Natural-language objective for the agentic loop (Jinja2-templated). |
tools | string[] | null | Tool allowlist for the agent, passed to build_tool_router(allowed_tools=…). None = all cycle tools. |
deliverables | object[] | null | Declared deliverables (name + type [+ description/schema]) the agent must produce. |
max_turns | integer | Tool-loop turn cap — the in-step interruptibility bound. |
max_cost_usd | number | Cost budget cap in USD. |
max_duration_minutes | integer | Wall-clock cap in minutes. |
inputs | object | null | Optional Jinja2 input bindings ({{ inputs.* }} / {{ outputs.* }}). |
expected_outputs | object[] | null | Output schema hints for DAG threading (name + type per entry). |