Install
openclaw skills install firm-a2a-bridgeAgent-to-Agent (A2A) Protocol RC v1.0 bridge for OpenClaw agents. Enables agent discovery, identity cards, task lifecycle management, push notification confi...
openclaw skills install firm-a2a-bridge⚠️ Contenu généré par IA — validation humaine requise avant déploiement en production.
Ce skill implémente le A2A Protocol RC v1.0 (Agent-to-Agent) pour OpenClaw, permettant aux agents de se découvrir mutuellement, d'échanger des tâches, et de recevoir des notifications push — tout cela via une interface MCP standardisée.
Gaps couverts :
| Gap | Sévérité | Outil |
|---|---|---|
| G1 — Pas de génération Agent Card | CRITICAL | openclaw_a2a_card_generate |
| G2 — Pas de validation Agent Card | CRITICAL | openclaw_a2a_card_validate |
| G3 — Pas d'envoi de tâches A2A | HIGH | openclaw_a2a_task_send |
| G4 — Pas de suivi de tâches A2A | HIGH | openclaw_a2a_task_status |
| G5 — Pas de push notifications A2A | MEDIUM | openclaw_a2a_push_config |
| G6 — Pas de découverte d'agents | HIGH | openclaw_a2a_discovery |
| G7 — Pas d'annulation de tâches | HIGH | openclaw_a2a_cancel_task |
| G8 — Pas de souscription SSE | HIGH | openclaw_a2a_subscribe_task |
openclaw_a2a_card_generateGénère un fichier .well-known/agent-card.json à partir d'un fichier SOUL.md.
Extrait automatiquement l'identité, les compétences, les capacités et les schémas
de sécurité depuis le frontmatter et le corps du SOUL.md.
Paramètres :
soul_path (str, required) — Chemin vers le fichier SOUL.mdbase_url (str, required) — URL de base où l'agent sera joignableoutput_path (str, optional) — Chemin de sortie pour le JSONcapabilities (dict, optional) — Capacités A2A (streaming, pushNotifications)security_schemes (dict, optional) — Schémas OAuth2/apiKey/httpextensions (list, optional) — Déclarations d'extensions A2Asign (bool, optional) — Signer la carte avec JCS+JWSsigning_key (str, optional) — Clé de signature (masquée dans l'output)default_input_modes (list, optional) — Types MIME d'entrée par défautdefault_output_modes (list, optional) — Types MIME de sortie par défautExemple :
{
"name": "openclaw_a2a_card_generate",
"arguments": {
"soul_path": "./souls/ceo/SOUL.md",
"base_url": "https://agents.example.com/ceo"
}
}
openclaw_a2a_card_validateValide un Agent Card contre la spécification A2A v1.0 RC. Vérifie les champs requis, le format des URLs, la structure des skills, les capabilities, et les schémas de sécurité.
Paramètres :
card_path (str, optional) — Chemin vers un fichier agent-card.jsoncard_json (dict, optional) — Agent Card inline (alternative à card_path)openclaw_a2a_task_sendEnvoie un message/tâche à un agent A2A distant. Crée un Task dans le lifecycle A2A (submitted → working → completed/failed). Inclut une protection SSRF contre les URLs localhost.
Paramètres :
agent_url (str, required) — URL de l'agent ciblemessage (str, required) — Message texte à envoyercontext_id (str, optional) — ID de contexte pour grouper les tâchesblocking (bool, optional) — Attendre la complétionmetadata (dict, optional) — Métadonnées additionnellesopenclaw_a2a_task_statusRécupère le statut d'une tâche ou liste les tâches. Mappe les opérations GetTask / ListTasks du protocole A2A.
Paramètres :
task_id (str, optional) — ID de tâche spécifique (GetTask)context_id (str, optional) — Filtre par contexte (ListTasks)include_history (bool, optional) — Inclure l'historique des messagesopenclaw_a2a_push_configCRUD pour les configurations de webhook push notification A2A. Supporte create, get, list, delete avec protection SSRF.
Paramètres :
task_id (str, required) — ID de la tâche concernéeaction (str) — create, get, list, deletewebhook_url (str, optional) — URL du webhook (requis pour create)auth_token (str, optional) — Token Bearer pour la livraisonconfig_id (str, optional) — ID de config (requis pour get/delete)openclaw_a2a_cancel_taskAnnule une tâche A2A en cours d'exécution (CancelTask RC v1.0). Erreur si la tâche est déjà en état terminal.
Paramètres :
task_id (str, required) — ID de la tâche à annuleropenclaw_a2a_subscribe_taskSouscrit aux mises à jour d'une tâche via SSE (SubscribeToTask RC v1.0). Diffuse TaskStatusUpdateEvent et TaskArtifactUpdateEvent.
Paramètres :
task_id (str, required) — ID de la tâche à surveillercallback_url (str, optional) — URL de callback pour les eventsopenclaw_a2a_discoveryDécouvre les agents A2A via leurs endpoints Agent Card ou scan local de SOUL.md.
Paramètres :
urls (list[str], optional) — URLs d'agents à scannersouls_dir (str, optional) — Répertoire local avec des fichiers SOUL.mdcheck_reachability (bool, optional) — Vérifier l'accessibilité des URLsSOUL.md files A2A Protocol v1.0 RC
│ │
├── card_generate ──► .well-known/agent-card.json
│ │
├── card_validate ◄── Spec validation (8 checks)
│ │
├── task_send ────────► SendMessage (submitted → working → completed)
│ │
├── task_status ──────► GetTask / ListTasks
│ │
├── cancel_task ──────► CancelTask (→ canceled)
│ │
├── subscribe_task ───► SubscribeToTask (SSE events)
│ │
├── push_config ──────► CRUD webhook configs (SSRF-safe)
│ │
└── discovery ────────► Agent Card endpoint probe + local SOUL.md scan
python -m pytest tests/test_smoke.py -k "TestA2aBridge" -v
17 tests couvrent :