Descubrimiento público de agentes
Usa estos ejemplos para dar forma al JSON que otro cliente A2A obtiene antes de decidir si tu agente puede completar una tarea.
6 plantillas JSON listas para copiar · A2A v1.0
Explora plantillas prácticas de A2A v1.0, comprende sus decisiones de diseño, y luego adapta cualquier ejemplo para tu propio agente.
Usa estos ejemplos para dar forma al JSON que otro cliente A2A obtiene antes de decidir si tu agente puede completar una tarea.
Adapta el proveedor, skills, tags, capabilities, y metadatos de seguridad para que los revisores entiendan qué hace el agente y quién lo opera.
Estandariza el endpoint, autenticación, y descripciones de skills entre agentes internos antes de que los equipos los integren en flujos de trabajo.
Plantillas JSON
Maneja preguntas sobre productos, consultas de pedidos, devoluciones, y traspasos de escalación.
Por qué está construido así
{
"name": "Agente de Soporte al Cliente",
"description": "Responde preguntas de atención al cliente, recupera el contexto del pedido y deriva los problemas no resueltos a un equipo humano.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/customer-support",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Ejemplo Inc.",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "resolve-customer-support-request",
"name": "Resolver solicitud de atención al cliente",
"description": "Clasifica una solicitud de atención al cliente, recopila el contexto necesario, propone una resolución y escala cuando la confianza es baja.",
"tags": [
"support",
"orders",
"returns"
],
"examples": [
"Ayúdame a devolver mi pedido."
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/customer-support/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}Encuentra horarios de citas disponibles y prepara confirmaciones de reserva.
Por qué está construido así
{
"name": "Agente de Reservas",
"description": "Busca disponibilidad, propone opciones de reserva y prepara reservas de citas para su aprobación.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/booking",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Ejemplo Inc.",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": false,
"pushNotifications": true,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "find-and-prepare-booking",
"name": "Encuentra y prepara la reserva",
"description": "Comprueba la disponibilidad de recursos, compara ventanas de reserva y devuelve una propuesta de reserva estructurada.",
"tags": [
"booking",
"calendar",
"availability"
],
"examples": [
"Encuentre una cita de 30 minutos mañana por la tarde."
]
}
],
"securitySchemes": {
"apiKey": {
"apiKeySecurityScheme": {
"location": "header",
"name": "X-API-Key"
}
}
},
"security": [
{
"apiKey": []
}
]
}Compara productos, disponibilidad, precios, y restricciones de compra.
Por qué está construido así
{
"name": "Agente de Compras",
"description": "Compara productos con las limitaciones del usuario y devuelve opciones de compra clasificadas con compensaciones.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/shopping",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Ejemplo Inc.",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "compare-shopping-options",
"name": "Compara opciones de compra",
"description": "Evalúa productos candidatos, filtra por restricciones y devuelve recomendaciones clasificadas con fundamento.",
"tags": [
"shopping",
"commerce",
"recommendations"
],
"examples": [
"Compare portátiles ligeros de menos de $1200."
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/shopping/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}Revisa tareas de código, propone parches, y explica decisiones de implementación.
Por qué está construido así
{
"name": "Agente de Programación",
"description": "Ayuda con tareas de ingeniería de software analizando código, proponiendo cambios y devolviendo notas de implementación.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/coding",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Ejemplo Inc.",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": true,
"extendedAgentCard": true
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "implement-code-change",
"name": "Implementar cambio de código",
"description": "Lee una solicitud de codificación, inspecciona archivos relevantes, devuelve una propuesta de parche y resume los pasos de verificación.",
"tags": [
"coding",
"review",
"patches"
],
"examples": [
"Agregue paginación a la API de los usuarios."
]
}
],
"securitySchemes": {
"apiKey": {
"apiKeySecurityScheme": {
"location": "header",
"name": "X-API-Key"
}
}
},
"security": [
{
"apiKey": []
}
]
}Recopila fuentes, extrae evidencia, y devuelve notas de investigación estructuradas.
Por qué está construido así
{
"name": "Agente de Investigación",
"description": "Recopila material fuente, extrae evidencia y produce notas de investigación estructuradas con citas.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/research",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Ejemplo Inc.",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": true,
"pushNotifications": false,
"extendedAgentCard": false
},
"defaultInputModes": [
"text/plain"
],
"defaultOutputModes": [
"text/plain",
"application/json"
],
"skills": [
{
"id": "prepare-research-brief",
"name": "Preparar resumen de investigación",
"description": "Busca fuentes aprobadas, extrae afirmaciones y pruebas y devuelve un resumen de investigación conciso.",
"tags": [
"research",
"evidence",
"citations"
],
"examples": [
"Prepare un informe citado sobre la política de energías renovables."
]
}
]
}Coordina aprobaciones, comprobaciones de estado, y actualizaciones de flujo de trabajo de back-office.
Por qué está construido así
{
"name": "Agente de Flujo de Trabajo Interno",
"description": "Coordina aprobaciones internas, verifica el estado del sistema y prepara actualizaciones del flujo de trabajo para los equipos de operaciones.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/workflow",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Ejemplo Inc.",
"url": "https://example.com"
},
"version": "1.0.0",
"capabilities": {
"streaming": false,
"pushNotifications": true,
"extendedAgentCard": true
},
"defaultInputModes": [
"application/json"
],
"defaultOutputModes": [
"application/json"
],
"skills": [
{
"id": "coordinate-internal-workflow",
"name": "Coordinar el flujo de trabajo interno.",
"description": "Recibe la intención del flujo de trabajo, verifica los requisitos de las políticas, recopila aprobaciones e informa el estado final.",
"tags": [
"workflow",
"operations",
"approval"
],
"examples": [
"Solicite aprobación para implementar la actualización de nómina."
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/workflow/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}Adapta con confianza
Cada ejemplo de Agent Card está intencionalmente completo lo suficiente como para copiarlo, pero la Agent Card no debería publicarse sin cambios. Trátala como un mapa de campos para tu propio servidor A2A: reemplaza la identidad, endpoint, proveedor, autenticación, capabilities, modos, y detalles de skills con valores de producción.
Los Agent Cards más fuertes explican el límite de la tarea del agente tanto en lenguaje simple como en metadatos legibles por máquina. Un cliente debería poder saber qué puede hacer el agente, qué no puede hacer, qué URL llamar, y si se requieren credenciales.
Reemplaza cada URL example.com con tu endpoint A2A desplegado y el sitio web del proveedor.
Reescribe el nombre de la skill, descripción, tags (requeridos en v1.0), y ejemplos para el límite de tarea real.
Establece provider.organization e incrementa la version de nivel superior cada vez que cambie el contenido de la Agent Card.
Elimina los campos de autenticación solo cuando el endpoint sea intencionalmente público.
Mantén defaultInputModes y defaultOutputModes alineados con lo que tu servidor realmente acepta y devuelve.
Valida el JSON final y publícalo en /.well-known/agent-card.json en el dominio de tu servicio.
Listo para construir
Abre cualquier patrón en el Generador de Agent Card, revisa el JSON, y valídalo antes de publicar.