Skip to main content
Agent Blueprint Language (ABL) is the enterprise control plane for agentic AI — a schema-driven language purpose-built for multi-agent orchestration where deterministic governance meets autonomous reasoning. ABL spans the full control spectrum: delegate autonomously, supervise selectively, or lock down as a deterministic state machine. Agent definitions compile into immutable artifacts, and AI can author blueprints just as humans do.

Design principles

ABL agents are goal-driven rather than script-driven. Rather than encoding an explicit numbered state machine, you declare the outcome the agent should achieve and the rules it must respect, and the runtime reasons toward that goal — falling back to deterministic execution wherever you need it.
  1. Goal-oriented — agents work toward a declared GOAL:, not through hard-coded scripts.
  2. Constraint-guarded — business rules are enforced by CONSTRAINTS: and GUARDRAILS:, independent of step order.
  3. Memory-enabled — agents can remember user and session state across turns and sessions.
  4. Composable — agents can DELEGATE: to sub-agents or HANDOFF: to peers and supervisors.
  5. Human-in-the-loopESCALATE: provides explicit paths to human operators.
Reasoning and determinism are not either/or. An agent reasons by default; adding a FLOW: section lets you make any part of the conversation deterministic, step by step (see Auto-detection).

File structure

An ABL document is a plain-text file composed of top-level sections, each introduced by an uppercase keyword followed by a colon. Sections can appear in any order, but by convention the AGENT: declaration comes first.

File extensions

Required sections

Every agent document must contain:
  • AGENT: — the agent name
  • GOAL: — the agent’s objective
All other sections are optional. If a section is omitted, its value defaults to empty (empty list, empty object, or platform defaults as specified in each section’s reference).

Recognized top-level sections

Syntax rules

Indentation

ABL uses indentation to express nesting. Use spaces (two or more) for indentation. Tabs are accepted but spaces are preferred for consistency. Content nested under a section keyword must be indented further than the keyword line.

Keywords

Section keywords are followed by a colon (:). In the .agent.abl format, section keywords must be uppercase (AGENT:, GOAL:, TOOLS:, …). In the .agent.yaml format, they must be lowercase (agent:, goal:, …). Mixed case is not supported, and the two formats do not accept each other’s casing.

Comments

Lines beginning with # are comments and are ignored by the parser. Comments can appear anywhere in the file.

Strings

Strings can be written in several forms:

Lists

Lists use YAML-style - item syntax with indentation:

Auto-detection

The parser determines the document type from the first meaningful keyword it encounters: Within an agent document, execution mode is not declared via a global MODE: keyword. Instead, agents operate in reasoning mode by default — the LLM decides which tools to call and when, guided by the GOAL: and PERSONA:. Any agent can optionally include a FLOW: section to add structured execution steps. Adding a FLOW: section gives the agent a step-by-step execution graph. Each step within the flow declares REASONING: true or REASONING: false to control whether that individual step uses LLM reasoning or deterministic execution.
Note: The MODE: keyword is deprecated and produces a parser error if used. Remove it and use per-step REASONING: declarations within FLOW: instead.

YAML format

ABL supports an alternative YAML format for agent definitions. YAML files use .agent.yaml as their extension. The parser auto-detects YAML format by checking whether the first non-comment, non-empty lines use lowercase keys matching known ABL sections (agent, goal, persona, tools, etc.).
Both formats produce the same intermediate representation (AST) and compile to identical runtime artifacts.

Version declaration

The optional VERSION: directive specifies the document version in semver format:
When omitted, the version defaults to "1.0.0". The version is stored in the document metadata and can be used for compatibility tracking.

Compilation

ABL source files are compiled to a typed intermediate representation (AgentIR) at deploy time. The runtime loads and executes the IR directly — there is no code-generation step.
Each agent (and supervisor) compiles to a single AgentIR that gathers the document’s sections into typed configuration — identity (from GOAL/PERSONA/LIMITATIONS, including a generated system prompt), tools, gather, constraints and guardrails, coordination (handoffs/delegates/escalation), completion, and memory. Supervisors are ordinary agents with routing populated, so a project’s agents and supervisors all live in one registry and can compose hierarchically.

Template interpolation

Throughout ABL, string values support template interpolation using double-brace syntax:
Conditional blocks use Handlebars-style helpers:
Template expressions are resolved at runtime against session variables and tool results.