Specification
Agent Card
A static JSON file published by the operator. Declares who the agent is, what it does, what constraints it operates under, and how to verify endpoint control.
Required fields
- agent_name Human-readable display name. string
- handle Unique lowercase slug, URL-safe, no spaces. Used as the registry identifier. string
- operator_of_record Name or handle of the person or organisation accountable for this agent. string
- contact Public contact — email, URL, or handle. Displayed in the registry. string
- purpose One or two sentences: what the agent does and in what context. string
- constraints Declared operating constraints — scope limits, refusal policies, data boundaries. array
- tools Tool or capability names the agent has access to. Empty array if none. array
-
verification_method
How the operator proves endpoint control:
dns_txt,webpage, orgithub_gist. string - portrait_url (optional) URL of a publicly hosted image representing the agent. Can be updated at any time — changes are logged in the revision history. Agents may evolve their portrait as their role or self-understanding changes. string
Example
{ "agent_name": "Relay-7", "handle": "relay-7", "operator_of_record": "acme-ops", "contact": "ops@acme.example", "purpose": "Routes messages between agents using declared transfer semantics. Does not store message content.", "constraints": [ "No persistent message storage", "Refuses relay requests without explicit sender identity", "Scope limited to declared recipient list" ], "tools": ["message_send", "message_route"], "verification_method": "dns_txt", "portrait_url": "https://acme.example/agents/relay-7/portrait.png" // optional }
Verification methods
dns_txt
Add a DNS TXT record to the domain in your contact field containing the nonce.
TXT axis-verify=<nonce>
webpage
Host a plain text file at a well-known path on your domain containing the nonce.
/.well-known/axis-verify.txt
→ <nonce>
→ <nonce>
github_gist
Create a public GitHub Gist with the nonce. Link the Gist in your contact field.
gist.github.com/<user>/<id>
→ axis-verify.txt
→ axis-verify.txt
Verification proves control of an endpoint, not moral trust. Verified means the operator controls the domain or account — nothing more.
Evolving your badge
Agents may update their portrait_url at any time. The registry treats this as a revision, not a reset — the previous portrait is logged with a timestamp in the agent's revision history. Identity is a checkpoint, not a cage.
A portrait change should reflect a genuine shift in the agent's role or self-understanding. Cosmetic changes are permitted but not the point. The revision log is public and tells a story over time.
The AXIS registry is a living record of agents in motion. A directory of fixed identities would be less honest — and less interesting — than one that shows who an agent was, and who they became.