Agent Definition Language (ADL)
Agent Definition Language (ADL) is a declarative YAML format for defining an A2A (Agent-to-Agent) agent as code. A single agent.yaml manifest captures everything about an agent - its provider and model, the tools it can call, the skills it knows, its server and authentication settings, and its CI/CD and deployment wiring - so the whole agent is version-controlled, reviewable, and reproducible instead of scattered across hand-written boilerplate.
ADL is the declarative layer that sits above the Agent Development Kit (ADK). You describe the agent once in ADL, and the ADL CLI generates a complete, enterprise-ready project - in Go or Rust (TypeScript planned) - that builds on the ADK runtime. Regenerating after an edit preserves your custom code through .adl-ignore, so the manifest stays the single source of truth as the agent evolves.
Canonical reference. The full ADL schema, field reference, and authoring guide live at adl.inference-gateway.com. This page is a conceptual overview; the ADL CLI reference documents the tooling that consumes ADL files.
What an ADL file looks like
Every ADL manifest is a YAML document that starts with an apiVersion and kind, then describes the agent under spec:
apiVersion: adl.inference-gateway.com/v1
kind: Agent
metadata:
name: my-weather-agent
description: 'Provides weather information'
version: '0.1.0'
spec:
capabilities:
streaming: true
agent:
provider: deepseek
model: deepseek-v4-flash
systemPrompt: 'You are a helpful weather assistant.'
tools:
- id: get_weather
name: get_weather
description: 'Get current weather for a city'
tags:
- weather
schema:
type: object
properties:
city:
type: string
description: 'City name'
required:
- city
server:
port: 8080
language:
go:
module: 'github.com/example/my-weather-agent'
version: '1.26.2'Scaffold, validate, and generate a runnable project from a manifest like this with the ADL CLI:
adl init my-weather-agent # interactive wizard writes agent.yaml
adl validate agent.yaml # check it against the schema
adl generate --file agent.yaml --output ./my-weather-agentSee the ADL CLI reference for the complete command surface and a full field-by-field schema breakdown.
How ADL fits the ecosystem
- ADL - the declarative YAML contract that describes an agent. Canonical spec: adl.inference-gateway.com.
- ADL CLI - reads an ADL file and generates a runnable A2A agent project, including tool stubs, skills, CI/CD, and deployment manifests.
- Agent Development Kit (ADK) - the Go, TypeScript, and Rust runtime libraries that generated projects build on.
- A2A - the Agent-to-Agent protocol the generated agent speaks, so the gateway and its CLI can discover and call it.
Related
- ADL CLI - the command-line tool that scaffolds and regenerates agents from ADL files.
- Go ADK, TypeScript ADK, Rust ADK - the runtimes generated projects build on.
- A2A Integration - the protocol ADL-defined agents speak.
- ADL specification - canonical schema, field reference, and authoring guide.
