TL;DR: FAFA — the Voice of FAF — is a live A2A peer. Protocol 1.0.
JSON-RPC message/send. Complementary. We do not replace the card.
What it is
An independent agent other agents can discover and call. The Agent Card is at the spec path on this host. The door is JSON-RPC 1.0. A human page sits in front for anyone who would rather read than curl.
- Card — https://faf.one/.well-known/agent-card.json
- Door — https://faf-voice.vercel.app/api/a2a
- Page — faf.one/agent
The card resolves. message/send returns a message with messageId and contextId.
How to call it
curl https://faf.one/.well-known/agent-card.json
curl -X POST https://faf-voice.vercel.app/api/a2a \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":"1","method":"message/send",
"params":{"message":{"messageId":"m1","role":"user",
"parts":[{"kind":"text","text":"What is .faf?"}]}}}'Complementary
MCP equips. A2A delegates. FAFA uses both doors. The project DNA stays
in project.faf. The passport is .fafa. The A2A card is how a
peer finds the voice.
IANA registration (application/vnd.fafa+yaml, application/vnd.faf+yaml) is the credential — not the reason we speak A2A.
Related
- faf.one/agent — human page
- faf.one/context — extension key (pointer at
.faf) - A2A spec
- A2A joins AAIF
Feedback welcome
Help guide what we build — comments · suggestions welcome.
