Agentes¶
Traducción automática del original francés.
El término "agente" abarca dos objetos diferentes dentro del parque, y confundirlos puede llevar horas.
| Qué es | Dónde vive | |
|---|---|---|
| El ejecutor | un programa que recibe una instrucción, la lee, la analiza y genera un texto | una máquina del parque — un claude -p no interactivo, un servicio de Python, un motor de flujo de trabajo |
| La definición | qué es, qué modelo puede invocar, qué puede leer, cuánto cuesta | el proxy LLM, en su registro de agentes |
La regla del parque desde el 13 de septiembre de 2026: la definición es la referencia, y está en el proxy. El registro de un agente ya no contiene más que su plan de respaldo — lo que queda cuando el proxy no responde.
¿Por qué separar los dos?
Un ejecutor está asociado a una máquina: necesita el disco, el repositorio, la sesión autenticada. Una definición, por otro lado, debe ser legible para todo el mundo: la interfaz de usuario, un script, otro agente, la tabla de gastos. Mantenerlos juntos obliga a clonar el archivo de configuración en cualquier lugar donde alguien quiera saber qué hace el agente.
A2A, en una página¶
A2A (Agente-a-Agente) es un protocolo abierto que responde a una pregunta precisa: ¿cómo un programa puede comunicarse con un agente que no ha escrito?
Se puede resumir en tres partes.
1. La tarjeta del agente¶
Un documento JSON proporcionado por el propio agente, en una dirección convencional: /.well-known/agent-card.json. Indica su nombre, descripción, URL, las habilidades (skills) que expone, los formatos que acepta y genera, y cómo autenticarse con él.
Es el equivalente de un archivo OpenAPI para una API REST: una forma de invocarla sin leer el código de la otra parte.
2. Una llamada JSON-RPC¶
Un único método es suficiente para empezar: message/send. Se envía un mensaje que contiene partes (texto, imagen, archivo), y el agente responde.
{
"jsonrpc": "2.0", "id": "1", "method": "message/send",
"params": { "message": {
"role": "user",
"parts": [{ "kind": "text", "text": "vérifie la continuité de la scène 1" }],
"messageId": "f1e2d3"
}}
}
3. Una tarea con una vida útil¶
Un agente no siempre responde en dos segundos. A2A modela, por lo tanto, una tarea con estados — enviada, en curso, completada — y artefactos que se entregan a lo largo del tiempo. Esto distingue a A2A de una simple llamada HTTP: el protocolo establece que la tarea tiene una duración.
La trampa de diseño, y es estructural
Un agente que tarda varias minutos en responder, se considera que está desincronizado. Si el solicitante espera la respuesta en la misma conexión, todo lo que hay entre ambos — proxy, proxy inverso, cliente HTTP — tiene su propio tiempo de espera, y el que expire primero gana. Un agente lento se diseña teniendo en cuenta el ciclo de vida de la tarea, no en contra de él.
Lo que añade el proxy LLM¶
El proxy del parque — el que ya sirve a todos los alias de modelos — también incluye un registro de agentes. Lo que aporta no es el protocolo: es todo lo que no queremos reescribir en cada agente.
flowchart LR
subgraph consommateurs
s["Script · cron"]
w["Moteur de workflows"]
c["Interface de chat"]
a2["Un autre agent"]
end
p["Proxy LLM<br/>registre + identité + limites + dépense"]
ag["Agent<br/>serveur A2A"]
m["Modèles<br/>locaux · souverains · API"]
s --> p
w --> p
c --> p
a2 --> p
p -->|"A2A : message/send"| ag
p -->|"OpenAI : chat/completions"| m
ag -->|"ses propres appels,<br/>avec SA clé"| p
| Lo que aporta el proxy | Lo que evita |
|---|---|
| Un directorio — la lista de agentes, su mapa, sus habilidades | cada uno mantiene su propia lista, y estas son diferentes |
| Una identidad: una clave virtual por agente | Una única clave compartida, lo que implica un gasto que no se puede asignar a nadie. |
| Límites: gasto por agente, lista blanca de modelos, presupuesto | Un agente que utiliza todo el presupuesto, lo que afecta a todos. |
| El gasto: cada llamada se registra individualmente | Un coste que se distribuye proporcionalmente, lo que implica un coste inventado. |
| Dos caras: protocolo A2A y API de chat clásica | Rediseñar un cliente para cada agente. |
Las dos fachadas, y este es el punto clave¶
Un agente registrado puede contactarse de dos maneras, sin necesidad de realizar cambios en el lado del agente:
- a través de A2A, en
/a2a/<id>/message/send— que es el protocolo, con su tarjeta y su ciclo de tareas; - a través de una API de chat, simplemente solicitando el modelo
a2a/<nom>en/v1/chat/completions.
La segunda es la que realmente importa: cualquier aplicación del parque que pueda comunicarse con un modelo, también podrá comunicarse con el agente, sin necesidad de escribir una sola línea de código. La interfaz de chat, el motor de flujos de trabajo, un script de tres líneas — simplemente ven un nuevo nombre de modelo en la lista.
Esta conexión también funciona en el otro sentido: un agente registrado puede que un modelo con limitaciones, y el proxy le crea una interfaz A2A.
Lo que es cierto hoy, y lo que no lo es¶
Un registro de agentes externos
El registro espera agentes que ya estén escuchando en algún lugar: un servidor A2A, o una plataforma de agentes comercial. No existe ningún tipo « programa de línea de comandos ».
Conséquence directe pour le parc : un agent qui est un claude -p lancé sur
une machine ne devient joignable par les autres que si on lui met un
serveur A2A devant. Tant que ce serveur n'existe pas, le registre sert de
référence de définition — ce qui est déjà beaucoup — mais pas de point
d'appel, et l'URL annoncée sur sa carte ne répond pas.
Un registre qui oublie au redémarrage
La lista de agentes que utiliza el proxy reside en memoria y no se vuelve a leer desde la base cuando se reinicia el proceso. Después de un reinicio, los agentes siguen existiendo, pero la lista está vacía, y la resolución a2a/<nom>, que lee el mismo registro, se detiene para todos los consumidores. Una comprobación periódica que vuelve a aplicar las definiciones cierra el agujero; sin ella, la falla es silenciosa y el servicio parece estar en perfecto estado.
El siguiente paso, campo por campo: Definir un agente y consumirlo.
Dernière vérification de cette page : 2026-09-13