Skip to content

v0.9.0 Release Notes

Release Date: 2026-06-28

Highlights

  • REAL/VEAL autonomous loop patterns for agent orchestration
  • Loop schema and Go SDK types for defining bounded execution loops
  • Workflow steps can now reference loops instead of agents

What's New

REAL/VEAL Loop Patterns

This release introduces autonomous loop patterns inspired by the REPL (Read-Eval-Print-Loop) concept from interactive programming:

  • REAL (Read Eval Act Loop) - Mission-driven loops for open-ended tasks
  • VEAL (Validate Eval Act Loop) - State-driven validation loops that converge toward valid state

Loops are bounded execution patterns that run autonomously until completion or escalation, enabling patterns like:

  • QA fix loops (validate → fix → revalidate)
  • Documentation loops (review → create → re-review)
  • Security scanning loops (scan → remediate → rescan)

Loop Schema

New schema at schema/orchestration/loop.schema.json:

name: qa-fix
type: VEAL
description: QA validation and fix loop
validator: qa
actor: code-fixer
max_attempts: 3
escalation: human
checks:
  - id: build
    type: command
    command: go build ./...
  - id: lint
    type: command
    command: golangci-lint run

Loop in Workflow Steps

Workflow steps can now reference loops instead of agents:

{
  "workflow": {
    "type": "chain",
    "steps": [
      { "name": "validate-scope", "agent": "pm" },
      { "name": "qa-fix", "loop": "qa-fix" },
      { "name": "docs-fix", "loop": "docs-fix" }
    ]
  }
}

Go SDK Additions

New types and functions in the Go SDK:

import mas "github.com/plexusone/multi-agent-spec/sdk/go"

// Create a VEAL loop
qaLoop := mas.NewVEALLoop("qa-fix", "qa", "code-fixer").
    WithMaxAttempts(3).
    AddCheck(mas.LoopCheck{
        ID:      "build",
        Type:    mas.CheckTypeCommand,
        Command: "go build ./...",
    })

// Create a REAL loop
featureLoop := mas.NewREALLoop(
    "feature-impl",
    "developer",
    "Implement user authentication",
)

// Load loops from files
loops, err := mas.LoadLoopsFromDir("specs/loops")

Breaking Changes

None.

Migration Guide

No migration required. This release is fully backward compatible with v0.8.0.

Full Changelog

Added

  • Loop schema (schema/orchestration/loop.schema.json) for REAL/VEAL patterns
  • LoopType enum: REAL (mission-driven) and VEAL (state-driven validation)
  • Loop struct with validator, actor, checks, max_attempts, escalation
  • LoopCheck for defining validation checks within loops
  • EscalationPolicy enum: human, abort, continue, fallback
  • LoopResult, IterationResult, CheckResult for execution tracking
  • Loop loading functions: LoadLoopFromFile, LoadLoopsFromDir
  • Loop field on workflow Step (mutually exclusive with Agent)
  • Step helper methods: IsLoopStep(), IsAgentStep()
  • Builder pattern: NewLoop, NewVEALLoop, NewREALLoop

Documentation

  • REAL/VEAL loop pattern guide (docs/guides/loops.md)

Dependencies

  • Go module dependencies updated