๐Ÿšง Working Draft โ€” agentrc v0.1 is an evolving specification draft, not a finished standard. Expect breaking changes. Changelog โ†’
View Markdown

Workflow Draft

Status: Non-normative sketch
Version: 0.1.0-draft.4

Purpose

The Agentfile describes one agent. Multi-agent workflows should be specified separately.

This draft sketches an ASL-inspired YAML format for orchestrating multiple packaged agents. It is intentionally not part of the core Agentfile specification.

Design principles

  1. Workflows reference packaged agents; they do not embed Agentfiles.
  2. Workflow state machines should handle retry, catch, timeout, branching, and parallelism.
  3. Workflow engines are runners/orchestrators, not part of the Agentfile core.
  4. Security ceilings should compose across workflow boundaries.

Example

apiVersion: agentrc.workflow/v0.1
kind: AgentWorkflow
metadata:
  name: claims-review-flow
spec:
  startAt: Triage
  states:
    Triage:
      type: Task
      agent: ghcr.io/bank/claims-triage@sha256:...
      inputPath: $.claim
      resultPath: $.triage
      timeoutSeconds: 120
      retry:
        - errorEquals: [Runner.Timeout, Tool.TemporaryFailure]
          intervalSeconds: 2
          maxAttempts: 3
          backoffRate: 2.0
      catch:
        - errorEquals: [States.ALL]
          resultPath: $.error
          next: HumanReview
      next: RiskChoice

    RiskChoice:
      type: Choice
      choices:
        - variable: $.triage.risk
          stringEquals: high
          next: HumanReview
        - variable: $.triage.risk
          stringEquals: low
          next: AutoApprove
      default: HumanReview

    HumanReview:
      type: Task
      agent: ghcr.io/bank/human-review-assistant@sha256:...
      end: true

    AutoApprove:
      type: Task
      agent: ghcr.io/bank/approval-agent@sha256:...
      end: true

Open questions

  1. Should this align closely with Amazon States Language or define a smaller portable subset?
  2. How should workflow-level policy ceilings compose with each agent package policy?
  3. Should workflow engines pass credentials to agents or should agents resolve credentials independently?
  4. How should human-in-the-loop tasks be represented?
  5. Should A2A be used for live agent delegation or should the workflow engine invoke packages directly?