Skip to main content

Arazzo Workflows

The catalog builder can load Arazzo-like workflow documents and normalize them into workflow IDs plus step-to-tool bindings.

File format used by the current implementation

arazzo: 1.0.0
info:
title: Ticket workflows
version: 1.0.0
workflows:
- workflowId: triageTicket
steps:
- stepId: list-open
operationId: listTickets
- stepId: fetch
operationId: getTicket

Each step may reference a tool by either:

  • operationId
  • operationPath (for example DELETE /tickets)

Binding rules

During catalog build:

  1. OpenAPI operations are normalized into tool IDs
  2. each workflow step is matched to a tool by operationId or operationPath
  3. the stored workflow step becomes {stepId, toolId}

If no matching tool exists, build fails with a step-specific error.

Interaction with overlays

Overlays can change workflow outcomes indirectly:

  • renaming commands does not break workflow binding because binding uses operation identity, not CLI name
  • x-cli-ignore does break workflows if a step pointed at that operation

That behavior is covered by repository tests and is worth planning around when curating APIs.

What workflow run does with these files

The runtime does not execute Arazzo steps. Instead it:

  • confirms the workflow ID exists
  • checks that every bound tool is still present
  • evaluates policy and approval for every referenced tool
  • returns the ordered list of step IDs
  • prefer operationId over operationPath
  • keep workflowId values stable because the CLI refers to them directly
  • keep step IDs human-readable because they are what workflow run returns