Skip to content

ADL v1 ​

adl.inference-gateway.com/v1 is the current stable major version of the Agent Definition Language. A manifest opts in by setting:

yaml
apiVersion: adl.inference-gateway.com/v1
kind: Agent

The schema is JSON Schema Draft-07 and lives in the repository at schema/v1/schema.json. Its $id is https://adl.inference-gateway.com/schemas/agent/v1.

What's in v1 ​

SectionPurpose
metadataName, description, version, author, license, tags
spec.capabilitiesStreaming, push notifications, extended agent card
spec.cardAgent card surfaced to clients
spec.agentProvider, model, system prompt
spec.configRuntime configuration knobs
spec.servicesExternal services the agent talks to
spec.toolsFunction-call entrypoints (deterministic operations)
spec.skillsMarkdown playbooks discoverable at runtime (metadata at startup, body lazy-loaded)
spec.serverHTTP server settings
spec.languageTarget language (Go, Rust, TypeScript) and deps
spec.artifactsFiles emitted alongside the agent
spec.hooksLifecycle hooks
spec.scmSource-control metadata
spec.developmentSandbox (flox / devcontainer / dockerCompose) and AI tooling
spec.deploymentKubernetes / Cloud Run / Vercel / Cloudflare deployment targets
spec.documentationDocumentation pages the generated project owns and ships
spec.examplesCurated examples rendered into the generated README.md
spec.acronymsAcronyms the generator respects when producing identifiers
spec.telemetryOpenTelemetry traces and metrics instrumentation

See the full field-by-field Schema Reference.

Pinning v1 in downstream tools ​

Pin to a specific repository tag (vX.Y.Z, cut by semantic-release and currently on the 0.x line) rather than tracking main. Tag numbers are independent of the v1 in apiVersion - the v1 lives in the URL path, not in the tag. The schema file at any released tag is immutable, so a pin is a stable contract.

yaml
vars:
  ADL_SCHEMA_VERSION: v0.27.1
  ADL_SCHEMA_URL: https://raw.githubusercontent.com/inference-gateway/adl/{{.ADL_SCHEMA_VERSION}}/schema/v1/schema.json

New optional fields land inside v1 without changing the apiVersion; breaking changes wait for v2. See Versioning for the additive contract and the rules that govern what can change inside a major version.

Resources ​