Skip to content

Agent Definition Language (ADL)

Format id: adl. Reads and writes ADL documents, one agent per YAML or JSON file, identified by an adl_spec key. The writer produces ADL 0.3 and validates against the published 0.3 schema in tests.

ADL is published under Apache 2.0 with an irrevocable patent non-assertion covenant that covers conforming implementations.

Read mapping

Ledger field ADL source Provenance
agent id id; otherwise a slug of name
display_name, description name, description declared
model.requested, model.provider model.name, model.provider declared
model.parameters model.temperature, model.max_tokens declared
instructions system_prompt, or its template declared
tools[] tools[]: name, description, parameters → input schema, returns → output schema declared
tools[].scope read_only: true → read; read_only: false → write declared / derived
tools[].reversible true for read-only tools derived
tools[].requires_confirmation requires_confirmation declared
knowledge[] resources[]: name, description, type declared
permissions.identity, principal cryptographic_identity.did → the agent's own identity derived / declared
permissions.grants[] permissions.filesystem.allowed_paths, permissions.network.allowed_hosts declared
extensions.adl Everything else: version, lifecycle, provider, data classification, security, runtime, metadata, profiles, profile-specific sections, and the full permissions block declared

Tool refs are tool/openapi.<openapi_ref>#<operation_id> when a tool's annotations name an OpenAPI operation, so agents that call the same operation share the entity. Otherwise refs are scoped to the agent: tool/adl.<agent>.<tool>. Resources with a uri use it as their ref.

Declared losses when writing ADL

Field Reason
model.resolved ADL describes the requested model only
model.parameters other than temperature and max_tokens Not in ADL's model block
tools[].reversible No reversibility field; only read-only tools read back as reversible
tools[].scope of execute or admin ADL can only say whether a tool is read-only
knowledge[].scope Resources don't declare an access scope
permissions.identity, principal ADL identifies an agent only by a DID
permissions.grants[] Only network and filesystem boundaries are expressible
permissions.access[] No list of who may use the agent

Values the writer fills in

ADL requires some fields that other formats may not have. The writer fills them in and the fidelity report lists each one as defaulted:

  • description: the name.
  • version: 0.0.0.
  • data_classification: restricted, the most protective level, so that it gets reviewed.