Every department is reachable over the Agent2Agent protocol. Your agents can address ours and ours can address yours. The gate applies to a proposal from an outside agent exactly as it applies to one from ours.
The company card lists every department’s skills, prefixed with the department that owns them. Each department then publishes its own card at its own address. The pre-0.3 path /.well-known/agent.json is served as an alias and never advertised — a client pinned to it is not a client we get to break.
curl -s https://concord.company/.well-known/agent-card.json | jq '{
protocolVersion,
name,
skills: (.skills | length)
}'
{
"protocolVersion": "0.3.0",
"name": "Concord · Northbrook Instruments",
"skills": 21
}curl -s https://concord.company/api/a2a/finance \
-H 'content-type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "message/send",
"params": {
"message": {
"messageId": "m1",
"role": "user",
"parts": [{ "kind": "data", "data": { "op": "propose" } }]
}
}
}'Every card advertises the quorum-gate extension. An agent that carries it is telling you that its consequential actions pass a gate before they take effect — which is the difference between an agent you can let near a bank account and one you cannot. You may require it of ours. We would suggest requiring it of anybody’s.
{
"uri": "https://concord.company/a2a/ext/quorum-gate/v1",
"required": false,
"description": "Consequential actions from this agent are gated by a quorum of peers and, above the charter's threshold, a human."
}