YAML Schema

This section contains the complete YAML schema definitions for all available block types in Agent Forge. Each block type has specific configuration requirements and output formats.

Core Blocks

These are the essential building blocks for creating workflows:

Logic & Control Flow

Blocks for implementing conditional logic and control flow:

Integration Blocks

Blocks for connecting to external services and systems:

Advanced Blocks

Specialized blocks for complex workflow patterns:

Common Schema Elements

All blocks share these common elements:

Basic Structure

Connection Types

  • success: Target block for successful execution

  • error: Target block for error handling (optional)

  • conditions: Multiple paths for conditional blocks

Environment Variables

Use double curly braces for environment variables:

Block References

Reference other block outputs using the block name in lowercase:

Validation Rules

All YAML blocks are validated against their schemas:

  1. Required fields: Must be present

  2. Type validation: Values must match expected types

  3. Enum validation: String values must be from allowed lists

  4. Range validation: Numbers must be within specified ranges

  5. Pattern validation: Strings must match regex patterns (where applicable)

Quick Reference

Block Types and Properties

Block Type
Primary Output
Common Use Cases

starter

.input

Workflow entry point

agent

.content

AI processing, text generation

function

.output

Data transformation, calculations

api

.output

External service integration

condition

N/A (branching)

Conditional logic

router

N/A (branching)

Intelligent routing

response

N/A (terminal)

Final output formatting

loop

.results

Iterative processing

parallel

.results

Concurrent processing

webhook

.payload

External triggers

evaluator

.score

Output validation, quality assessment

workflow

.output

Sub-workflow execution, modularity

Required vs Optional

  • Always required: type, name

  • Usually required: inputs, connections

  • Context dependent: Specific input fields vary by block type

  • Always optional: error connections, UI-specific fields

Was this helpful?