Un modelo de lenguaje puede comportarse como el asistente que necesitas con solo darle las instrucciones adecuadas. El problema es que esas instrucciones suelen ser texto suelto: difícil de mantener, compartir o validar. ADL propone describir el asistente con rigor —como se describe el software— sin dejar de ser legible por cualquiera. A language model can behave as the assistant you need if you simply give it the right instructions. The problem is that those instructions are usually loose text: hard to maintain, share or validate. ADL proposes describing the assistant rigorously —the way software is described— while remaining readable by anyone.
ADL 2.0 es un lenguaje de especificación declarativo, minimalista y agnóstico de dominio para describir asistentes basados en LLM. Define qué es un asistente, qué hace y cómo se comporta, con independencia de cómo lo ejecute un modelo o una plataforma concretos. ADL 2.0 is a minimal, domain-agnostic, declarative specification language for describing LLM-based assistants. It defines what an assistant is, what it does and how it behaves, independently of how it is executed by any particular model or platform.
Los LLM se moldean mediante prompts de sistema, pero esos prompts son habitualmente texto sin estructura: costoso de mantener, compartir, validar y hacer evolucionar de forma sistemática. ADL responde con un vocabulario YAML estructurado que captura las propiedades esenciales del asistente: identidad, rol, estilo de colaboración, fuentes de conocimiento, capacidades operativas, límites de comportamiento y extensiones de dominio. LLMs are shaped through system prompts, but those prompts are typically unstructured text: difficult to maintain, share, validate and evolve systematically. ADL responds with a structured YAML vocabulary that captures the assistant's essential properties: identity, role, collaboration style, knowledge sources, operational capabilities, behavioral boundaries and domain extensions.
No hay paso de compilación, ni preprocesado, ni herramientas propietarias. Un archivo ADL puede usarse directamente como prompt de sistema en cualquier LLM que lo admita —ChatGPT, Claude, OpenWebUI o integraciones propias—. En una frase: el YAML es el prompt de sistema. There is no compilation step, no preprocessing and no proprietary tooling. An ADL file can be used directly as a system prompt in any LLM that accepts one —ChatGPT, Claude, OpenWebUI or custom integrations—. In one sentence: the YAML is the system prompt.
Una especificación ADL 2.0 se organiza en diez secciones de primer nivel. Las cinco secciones estructurales requeridas —manifest, metadata, identity, role y boundaries—, junto con la declaración adl_version, constituyen la descripción mínima viable de un asistente.
An ADL 2.0 specification is organized into ten top-level sections. The five required structural sections —manifest, metadata, identity, role and boundaries—, together with the adl_version declaration, constitute the minimum viable description of an assistant.
| SecciónSection | Req.Req. | PropósitoPurpose |
|---|---|---|
adl_version | síyes | Versión del lenguaje — debe ser "2.0".Language version — must be "2.0". |
manifest | síyes | Estructura autodescriptiva: identidad, versión, procedencia.Self-describing structure: identity, version, provenance. |
metadata | síyes | Catalogación: nombre, descripción, autoría, licencia.Cataloging: name, description, authorship, licensing. |
identity | síyes | Lo que el asistente es — tipo, estilo cognitivo.What the assistant is — type, cognitive style. |
role | síyes | Lo que el asistente hace — función, responsabilidades, pericia.What the assistant does — function, responsibilities, expertise. |
collaboration | nono | Cómo interactúa — estilo, protocolos, manejadores de eventos.How it interacts — style, protocols, event handlers. |
knowledge | nono | Lo que sabe — referencias externas a fuentes de conocimiento.What it knows — external references to knowledge sources. |
tools | nono | Lo que puede hacer — comandos, capacidades, restricciones.What it can do — commands, capabilities, restrictions. |
boundaries | síyes | Lo que no debe hacer — límites, autoridad, guías éticas.What it must not do — constraints, authority limits, ethical guidelines. |
extensions | nono | Válvula de escape para lo que no encaja en ninguna sección del núcleo.Escape valve for content that fits no core section. |
ADL 2.0 es el núcleo de la familia: define el AssistantSpec, el vocabulario estructural de cualquier asistente basado en LLM. Sobre él se construyen perfiles de dominio. Un perfil ligero usa las secciones del núcleo para expresar sus necesidades —la mayoría de asistentes encajan aquí—; un perfil completo extiende el vocabulario con su propio esquema. ADL 2.0 is the core of the family: it defines the AssistantSpec, the structural vocabulary of any LLM-based assistant. Domain profiles build on top of it. A lightweight profile uses the core sections to express its needs —most assistants fit here—; a full profile extends the vocabulary with its own schema.
Hasta ahora existen dos perfiles completos: TMDL (categoría KnowledgeSpec), que añade ciclo de vida del conocimiento, contexto de equipo y protocolos de contribución; y TDL (categoría FlowSpec), que añade una arquitectura de paquete en seis capas y reglas de validación pedagógica. Two full profiles exist so far: TMDL (KnowledgeSpec category), which adds knowledge lifecycle, team context and contribution protocols; and TDL (FlowSpec category), which adds a six-layer package architecture and pedagogical validation rules.
Principios de diseño, los tres niveles de la familia y TMDL en detalle.Design principles, the three family levels and TMDL in detail.
Leer sobre ADL →Read about ADL →La arquitectura de seis capas, la validación pedagógica y cómo usarlo.The six-layer architecture, pedagogical validation and how to use it.
Leer sobre TDL →Read about TDL →Captura las propiedades comunes a cualquier asistente basado en LLM, sea cual sea el dominio de aplicación.Captures the properties common to any LLM-based assistant, regardless of application domain.
Identidad, roles y límites se declaran como componentes estructurales distintos, no implícitos en el texto del comportamiento.Identity, roles and boundaries are declared as distinct structural components, not left implicit in behavioral text.
Las especificaciones se autodescriben mediante un manifest, y lo específico de cada dominio se acomoda en la sección extensions.Specifications are self-describing through a manifest, and domain-specific additions are accommodated in the extensions section.
Las especificaciones se validan contra los esquemas provistos con pykwalify, y existe un JSON Schema para validación en tiempo real en editores compatibles (por ejemplo, VS Code con la extensión YAML). En despliegue, el YAML se usa directamente como prompt de sistema.
Specifications are validated against the provided schemas with pykwalify, and a JSON Schema enables real-time validation in compatible editors (e.g., VS Code with the YAML extension). At deployment, the YAML is used directly as the system prompt.
pip install pykwalify pyyaml
pykwalify -d my_assistant.yaml -s spec/schemas/adl2_schema.yaml