Operating system set to macOS
Documentation jurisdiction set to United States
Sign inConnect Claude
API/schemas
Schema

ToolCallStepDefinition

Tool-call step — dispatches a single named V4 tool. Stuart 2026-05-19: the read-shape stored in ``workstreams.workstream.steps`` for V4 workstream templates uses ``type='tool_call'`` with ``tool_name``/``tool_params`` directly on the step. The write-side schema previously had no such variant, which caused every PATCH that included an existing tool_call step to 422 (`StepEditOverride` localStorage workaround in `apps/workstream-studio/src/lib/stepEditOverrides.ts`). This class closes that round-trip gap. Fields are intentionally permissive: ``tool_params`` is the same free-form ``dict`` the cycle launcher already passes through into ``task.step_definition``. The V4 executor reads ``tool_name`` + ``tool_params`` directly off the step blob.

FieldTypeDescription
idrequiredstring—
namerequiredstring—
typestring—
descriptionstring | null—
depends_onstring | object[]—
stagestring | null—
timeoutstring | null—
retry_policyRetryPolicy | null—
error_handlerStepErrorHandler | null—
impact_level"low" | "medium" | "high" | "critical"Impact classification for steps.
lowmediumhighcritical
run_mode"propose" | "auto_run"Execution mode for steps.
proposeauto_run
requires_approvalboolean—
metadataobject | null—
examplesStepExample[] | nullAttached 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.
tagsstring[] | nullCategorical labels on the step itself (e.g. 'pdf-read', 'coutts', 'fy25'). Free-form; recommended tag set is documented per workstream surface.
tool_namerequiredstringV4 tool identifier (e.g. 'read_pdf_document', 'generate_pdf').
tool_paramsobjectFree-form parameter bag forwarded to the V4 tool. May contain Jinja2 placeholders like '{{ inputs.* }}'.
show nested
Empty object.
expected_outputsobject[] | nullOptional output schema hints (name + type per entry).
instructionstring | nullOptional natural-language instruction the runtime can use to shape the tool dispatch (e.g. prompt preamble for LLM-style tools).
inputsobject | nullInput mappings — same Jinja2 surface as TaskStep.