# Send Firm A2a Bridge to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "firm-a2a-bridge",
    "name": "Firm A2a Bridge",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/romainsantoli-web/firm-a2a-bridge",
    "canonicalUrl": "https://clawhub.ai/romainsantoli-web/firm-a2a-bridge",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/firm-a2a-bridge",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=firm-a2a-bridge",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "firm-a2a-bridge",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T12:24:54.658Z",
      "expiresAt": "2026-05-08T12:24:54.658Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=firm-a2a-bridge",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=firm-a2a-bridge",
        "contentDisposition": "attachment; filename=\"firm-a2a-bridge-2.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "firm-a2a-bridge"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/firm-a2a-bridge"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/firm-a2a-bridge",
    "downloadUrl": "https://openagent3.xyz/downloads/firm-a2a-bridge",
    "agentUrl": "https://openagent3.xyz/skills/firm-a2a-bridge/agent",
    "manifestUrl": "https://openagent3.xyz/skills/firm-a2a-bridge/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/firm-a2a-bridge/agent.md"
  }
}
```
## Documentation

### firm-a2a-bridge

⚠️ Contenu généré par IA — validation humaine requise avant déploiement en production.

### Purpose

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 :

GapSévéritéOutilG1 — Pas de génération Agent CardCRITICALopenclaw_a2a_card_generateG2 — Pas de validation Agent CardCRITICALopenclaw_a2a_card_validateG3 — Pas d'envoi de tâches A2AHIGHopenclaw_a2a_task_sendG4 — Pas de suivi de tâches A2AHIGHopenclaw_a2a_task_statusG5 — Pas de push notifications A2AMEDIUMopenclaw_a2a_push_configG6 — Pas de découverte d'agentsHIGHopenclaw_a2a_discoveryG7 — Pas d'annulation de tâchesHIGHopenclaw_a2a_cancel_taskG8 — Pas de souscription SSEHIGHopenclaw_a2a_subscribe_task

### openclaw_a2a_card_generate

Gé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.md
base_url (str, required) — URL de base où l'agent sera joignable
output_path (str, optional) — Chemin de sortie pour le JSON
capabilities (dict, optional) — Capacités A2A (streaming, pushNotifications)
security_schemes (dict, optional) — Schémas OAuth2/apiKey/http
extensions (list, optional) — Déclarations d'extensions A2A
sign (bool, optional) — Signer la carte avec JCS+JWS
signing_key (str, optional) — Clé de signature (masquée dans l'output)
default_input_modes (list, optional) — Types MIME d'entrée par défaut
default_output_modes (list, optional) — Types MIME de sortie par défaut

Exemple :

{
  "name": "openclaw_a2a_card_generate",
  "arguments": {
    "soul_path": "./souls/ceo/SOUL.md",
    "base_url": "https://agents.example.com/ceo"
  }
}

### openclaw_a2a_card_validate

Valide 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.json
card_json (dict, optional) — Agent Card inline (alternative à card_path)

### openclaw_a2a_task_send

Envoie 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 cible
message (str, required) — Message texte à envoyer
context_id (str, optional) — ID de contexte pour grouper les tâches
blocking (bool, optional) — Attendre la complétion
metadata (dict, optional) — Métadonnées additionnelles

### openclaw_a2a_task_status

Ré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 messages

### openclaw_a2a_push_config

CRUD 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ée
action (str) — create, get, list, delete
webhook_url (str, optional) — URL du webhook (requis pour create)
auth_token (str, optional) — Token Bearer pour la livraison
config_id (str, optional) — ID de config (requis pour get/delete)

### openclaw_a2a_cancel_task

Annule 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 à annuler

### openclaw_a2a_subscribe_task

Souscrit 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 à surveiller
callback_url (str, optional) — URL de callback pour les events

### openclaw_a2a_discovery

Découvre les agents A2A via leurs endpoints Agent Card ou scan local de SOUL.md.

Paramètres :

urls (list[str], optional) — URLs d'agents à scanner
souls_dir (str, optional) — Répertoire local avec des fichiers SOUL.md
check_reachability (bool, optional) — Vérifier l'accessibilité des URLs

### Architecture

SOUL.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

### Security

Path traversal protection : tous les chemins de fichiers validés par Pydantic
SSRF protection : URLs localhost/127.0.0.1/0.0.0.0/::1 bloquées pour task_send et push_config
URL scheme validation : seuls http/https acceptés
Token masking : les auth_token sont masqués (4 derniers chars visibles)
Input validation : tous les paramètres validés par Pydantic v2 avec contraintes strictes

### Testing

python -m pytest tests/test_smoke.py -k "TestA2aBridge" -v

17 tests couvrent :

Génération de carte depuis un SOUL.md valide (avec signature JCS+JWS)
Gestion des fichiers manquants
Protection path traversal
Validation de cartes valides/invalides (détection patterns v0.4.0 dépréciés)
Envoi de tâches avec SSRF protection
Annulation de tâches (CancelTask)
Souscription SSE (SubscribeToTask)
Statut de tâches (GetTask/ListTasks)
Configuration push notifications (CRUD + SSRF)
Découverte locale d'agents
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: romainsantoli-web
- Version: 2.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-01T12:24:54.658Z
- Expires at: 2026-05-08T12:24:54.658Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/firm-a2a-bridge)
- [Send to Agent page](https://openagent3.xyz/skills/firm-a2a-bridge/agent)
- [JSON manifest](https://openagent3.xyz/skills/firm-a2a-bridge/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/firm-a2a-bridge/agent.md)
- [Download page](https://openagent3.xyz/downloads/firm-a2a-bridge)