hoziron workflow
Manage multi-agent workflows — define pipelines, run them, and track execution.
Synopsis
hoziron workflow <subcommand> [options]
Subcommands
| Subcommand | Description |
|---|---|
list | List all registered workflows |
create <file> | Create a workflow from a JSON definition |
get <id> | Get workflow details by ID |
update <id> <file> | Update a workflow definition |
delete <id> | Delete a workflow |
run <id> <input> | Run a workflow with input text |
runs <id> | List runs for a workflow |
status <run-id> | Show status of a specific run |
Workflow Definition Format (JSON)
{
"name": "claims-pipeline",
"description": "End-to-end claims processing pipeline",
"steps": [
{
"name": "intake",
"agent": { "ByName": "claims-intake-agent" },
"prompt_template": "Process this claim: {{input}}",
"mode": "Sequential",
"timeout_secs": 120,
"error_mode": "Fail",
"output_var": "claim_data"
},
{
"name": "validation",
"agent": { "ByName": "policy-validator" },
"prompt_template": "Validate coverage for: {{claim_data}}",
"mode": "Sequential",
"timeout_secs": 60,
"error_mode": { "Retry": { "max_retries": 2 } },
"output_var": "validation_result"
},
{
"name": "routing",
"agent": { "ByName": "claims-router" },
"prompt_template": "Route this claim based on validation: {{validation_result}}",
"mode": "Sequential",
"timeout_secs": 30,
"error_mode": "Skip"
}
]
}
Step Modes
| Mode | Description |
|---|---|
Sequential | Execute after previous step completes |
FanOut | Execute in parallel with other FanOut steps |
Collect | Wait for all preceding FanOut steps to complete |
Conditional | Execute only if condition evaluates to true |
Loop | Repeat until condition or max iterations |
Error Modes
| Mode | Description |
|---|---|
Fail | Abort the entire workflow on step failure |
Skip | Skip this step on failure, continue with next |
Retry | Retry the step up to max_retries times before failing |
Agent References
Steps reference agents by name or ID:
{ "ByName": "claims-intake-agent" }
{ "ById": "550e8400-e29b-41d4-a716-446655440000" }
Template Variables
{{input}}— the workflow's initial input (first step) or previous step's output (subsequent steps){{var_name}}— any variable stored viaoutput_varin a previous step
hoziron workflow list
$ hoziron workflow list
ID NAME STEPS CREATED
a1b2c3d4-e5f6-7890-abcd-ef1234567890 claims-pipeline 3 2026-06-01
b2c3d4e5-f6a7-8901-bcde-f12345678901 onboarding-flow 5 2026-05-28
hoziron workflow create
hoziron workflow create <file>
Example
$ hoziron workflow create ./workflows/claims-pipeline.json
✓ Workflow 'claims-pipeline' created (id: a1b2c3d4-e5f6-7890-abcd-ef1234567890)
hoziron workflow get
$ hoziron workflow get a1b2c3d4-e5f6-7890-abcd-ef1234567890
Workflow: claims-pipeline
ID: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Description: End-to-end claims processing pipeline
Created: 2026-06-01T10:00:00Z
Steps:
1. intake (→ claims-intake-agent) [Sequential, timeout: 120s]
2. validation (→ policy-validator) [Sequential, timeout: 60s, retry: 2]
3. routing (→ claims-router) [Sequential, timeout: 30s, skip on error]
hoziron workflow update
hoziron workflow update <id> <file>
Example
$ hoziron workflow update a1b2c3d4 ./workflows/claims-pipeline-v2.json
✓ Workflow updated
hoziron workflow delete
$ hoziron workflow delete a1b2c3d4-e5f6-7890-abcd-ef1234567890
✓ Workflow deleted
hoziron workflow run
Execute a workflow with input text.
hoziron workflow run <id> <input>
Example
$ hoziron workflow run a1b2c3d4 "New auto claim: rear-end collision on I-95, policy POL-2024-200"
Run started: run-id c3d4e5f6-a7b8-9012-cdef-123456789012
Step 1/3: intake ... ✓ (2.3s)
Step 2/3: validation ... ✓ (1.1s)
Step 3/3: routing ... ✓ (0.8s)
Workflow completed in 4.2s
Output: Claim #CLM-2026-042 created. Routed to adjuster queue: auto-collision-moderate.
hoziron workflow runs
List all runs for a workflow.
$ hoziron workflow runs a1b2c3d4
RUN ID STATE STARTED DURATION
c3d4e5f6-a7b8-9012-cdef-123456789012 Completed 2026-06-04T10:15:00 4.2s
d4e5f6a7-b8c9-0123-def0-234567890123 Failed 2026-06-04T09:30:00 62.1s
hoziron workflow status
Show detailed status of a specific run.
$ hoziron workflow status c3d4e5f6-a7b8-9012-cdef-123456789012
Run: c3d4e5f6-a7b8-9012-cdef-123456789012
Workflow: claims-pipeline
State: Completed
Input: "New auto claim: rear-end collision on I-95..."
Steps:
1. intake ✓ 2.3s output_var: claim_data
2. validation ✓ 1.1s output_var: validation_result
3. routing ✓ 0.8s
Output: Claim #CLM-2026-042 created. Routed to adjuster queue: auto-collision-moderate.
Started: 2026-06-04T10:15:00Z
Completed: 2026-06-04T10:15:04Z
Failed run
$ hoziron workflow status d4e5f6a7-b8c9-0123-def0-234567890123
Run: d4e5f6a7-b8c9-0123-def0-234567890123
Workflow: claims-pipeline
State: Failed
Input: "Process claim for expired policy..."
Steps:
1. intake ✓ 2.1s
2. validation ✗ 60.0s ERROR: Step timed out
Error: Step 'validation' timed out after 60 seconds
Key Concepts
PII Boundary
Data flowing between workflow steps passes through PII tokenization. Each agent only sees tokenized versions of sensitive data from other agents. This is automatic and transparent.
Memory Isolation
Each agent in a workflow maintains its own separate memory scope. Agent A cannot read Agent B's memory, even within the same workflow. Data passes between agents only through step outputs.
Default Timeout
Steps default to 30 seconds if timeout_secs is not specified. For LLM operations, 60–300 seconds is typical.
See Also
- agent.md — Agents referenced by workflows
- trigger.md — Triggering workflows via events