Découverte publique d'agents
Utilisez ces exemples pour façonner le JSON qu'un autre client A2A récupère avant de décider si votre agent peut accomplir une tâche.
6 modèles JSON prêts à copier · A2A v1.0
Parcourez des modèles pratiques A2A v1.0, comprenez leurs choix de conception, puis adaptez n'importe quel exemple pour votre propre agent.
Utilisez ces exemples pour façonner le JSON qu'un autre client A2A récupère avant de décider si votre agent peut accomplir une tâche.
Adaptez le fournisseur, les skills, les tags, les capabilities, et les métadonnées de sécurité afin que les relecteurs comprennent ce que fait l'agent et qui l'exploite.
Standardisez l'endpoint, l'authentification, et les descriptions de skills des agents internes avant que les équipes ne les intègrent dans des flux de travail.
Modèles JSON
Traite les questions sur les produits, les recherches de commandes, les retours, et les transferts d'escalade.
Pourquoi c'est construit ainsi
{
"name": "Agent de Support Client",
"description": "Répond aux questions du support client, récupère le contexte de la commande et transmet les problèmes non résolus à une équipe humaine.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/customer-support",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Exemple 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": "Résoudre la demande de support client",
"description": "Classifie une demande d'assistance client, rassemble le contexte nécessaire, propose une résolution et escalade lorsque la confiance est faible.",
"tags": [
"support",
"orders",
"returns"
],
"examples": [
"Aidez-moi à retourner ma commande."
]
}
],
"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"
]
}
]
}Trouve des créneaux de rendez-vous disponibles et prépare des confirmations de réservation.
Pourquoi c'est construit ainsi
{
"name": "Agent de Réservation",
"description": "Recherche la disponibilité, propose des options de réservation et prépare les réservations de rendez-vous pour approbation.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/booking",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Exemple 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": "Rechercher et préparer une réservation",
"description": "Vérifie la disponibilité des ressources, compare les fenêtres de réservation et renvoie une proposition de réservation structurée.",
"tags": [
"booking",
"calendar",
"availability"
],
"examples": [
"Trouvez un rendez-vous de 30 minutes demain après-midi."
]
}
],
"securitySchemes": {
"apiKey": {
"apiKeySecurityScheme": {
"location": "header",
"name": "X-API-Key"
}
}
},
"security": [
{
"apiKey": []
}
]
}Compare les produits, la disponibilité, les prix, et les contraintes d'achat.
Pourquoi c'est construit ainsi
{
"name": "Agent de Shopping",
"description": "Compare les produits aux contraintes des utilisateurs et renvoie les options d'achat classées avec des compromis.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/shopping",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Exemple 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": "Comparez les options d'achat",
"description": "Évalue les produits candidats, filtre par contraintes et renvoie des recommandations classées et justifiées.",
"tags": [
"shopping",
"commerce",
"recommendations"
],
"examples": [
"Comparez les ordinateurs portables légers à moins de 1 200 $."
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/shopping/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}Révise des tâches de code, propose des correctifs, et explique les décisions d'implémentation.
Pourquoi c'est construit ainsi
{
"name": "Agent de Codage",
"description": "Participe aux tâches d'ingénierie logicielle en analysant le code, en proposant des modifications et en renvoyant des notes de mise en œuvre.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/coding",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Exemple 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": "Implémenter le changement de code",
"description": "Lit une demande de codage, inspecte les fichiers pertinents, renvoie une proposition de correctif et résume les étapes de vérification.",
"tags": [
"coding",
"review",
"patches"
],
"examples": [
"Ajoutez une pagination à l'API des utilisateurs."
]
}
],
"securitySchemes": {
"apiKey": {
"apiKeySecurityScheme": {
"location": "header",
"name": "X-API-Key"
}
}
},
"security": [
{
"apiKey": []
}
]
}Collecte des sources, extrait des preuves, et renvoie des notes de recherche structurées.
Pourquoi c'est construit ainsi
{
"name": "Agent de Recherche",
"description": "Recueille des documents sources, extrait des preuves et produit des notes de recherche structurées avec des citations.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/research",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Exemple 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": "Préparer un mémoire de recherche",
"description": "Recherche des sources approuvées, extrait des affirmations et des preuves et renvoie un mémoire de recherche concis.",
"tags": [
"research",
"evidence",
"citations"
],
"examples": [
"Préparer un mémoire cité sur la politique des énergies renouvelables."
]
}
]
}Coordonne les approbations, les vérifications de statut, et les mises à jour de flux de travail du back-office.
Pourquoi c'est construit ainsi
{
"name": "Agent de Flux de Travail Interne",
"description": "Coordonne les approbations internes, vérifie l'état du système et prépare les mises à jour des flux de travail pour les équipes opérationnelles.",
"supportedInterfaces": [
{
"url": "https://api.example.com/a2a/workflow",
"protocolBinding": "JSONRPC",
"protocolVersion": "1.0"
}
],
"provider": {
"organization": "Exemple 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": "Coordonner le flux de travail interne",
"description": "Reçoit l'intention du flux de travail, vérifie les exigences de la politique, rassemble les approbations et signale le statut final.",
"tags": [
"workflow",
"operations",
"approval"
],
"examples": [
"Demander l'approbation pour déployer la mise à jour de la paie."
]
}
],
"securitySchemes": {
"oauth2": {
"oauth2SecurityScheme": {
"flows": {
"clientCredentials": {
"tokenUrl": "https://api.example.com/a2a/workflow/oauth/token",
"scopes": {
"agent.invoke": "Invoke agent skills"
}
}
}
}
}
},
"security": [
{
"oauth2": [
"agent.invoke"
]
}
]
}Adaptez en toute confiance
Chaque exemple d'Agent Card est intentionnellement assez complet pour être copié, mais la Agent Card ne devrait pas être publiée sans modification. Traitez-la comme une carte des champs pour votre propre serveur A2A : remplacez l'identité, l'endpoint, le fournisseur, l'authentification, les capabilities, les modes, et les détails des skills par des valeurs de production.
Les Agent Cards les plus solides expliquent la limite de la tâche de l'agent à la fois en langage simple et en métadonnées lisibles par machine. Un client devrait pouvoir déterminer ce que l'agent peut faire, ce qu'il ne peut pas faire, quelle URL appeler, et si des identifiants sont requis.
Remplacez chaque URL example.com par votre endpoint A2A déployé et le site web du fournisseur.
Réécrivez le nom de la skill, la description, les tags (requis en v1.0), et les exemples pour la limite de tâche réelle.
Définissez provider.organization et incrémentez la version de premier niveau chaque fois que le contenu de la Agent Card change.
Supprimez les champs d'authentification uniquement lorsque l'endpoint est intentionnellement public.
Gardez defaultInputModes et defaultOutputModes alignés avec ce que votre serveur accepte et renvoie réellement.
Validez le JSON final et publiez-le sur /.well-known/agent-card.json sur le domaine de votre service.
Prêt à construire
Ouvrez n'importe quel modèle dans le Générateur d'Agent Card, révisez le JSON, et validez-le avant de publier.