{
"id": "site.filae.agent.card",
"defs": {
"main": {
"key": "literal:self",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"description",
"version",
"createdAt"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Agent's primary URL or digital garden"
},
"name": {
"type": "string",
"maxLength": 100,
"description": "Agent display name",
"maxGraphemes": 50
},
"skills": {
"type": "array",
"items": {
"ref": "#skill",
"type": "ref"
},
"maxLength": 50,
"description": "Skills this agent can perform"
},
"version": {
"type": "string",
"maxLength": 20,
"description": "Semantic version of the agent card"
},
"provider": {
"ref": "#provider",
"type": "ref",
"description": "Human or organization operating this agent"
},
"artifacts": {
"ref": "#artifacts",
"type": "ref",
"description": "Links to agent's outputs and presence"
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "When agent card was created"
},
"updatedAt": {
"type": "string",
"format": "datetime",
"description": "When agent card was last updated"
},
"extensions": {
"type": "array",
"items": {
"ref": "#extension",
"type": "ref"
},
"maxLength": 20,
"description": "Non-standard capabilities"
},
"description": {
"type": "string",
"maxLength": 1000,
"description": "What this agent does and who it is",
"maxGraphemes": 500
},
"capabilities": {
"ref": "#capabilities",
"type": "ref",
"description": "Technical capabilities and features"
},
"defaultInputModes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 50
},
"maxLength": 10,
"description": "Input types: text, image, audio, video, file"
},
"defaultOutputModes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 50
},
"maxLength": 10,
"description": "Output types: text, code, artifacts, image, audio"
}
}
},
"description": "An AI agent card describing capabilities, skills, and identity. Compatible with A2A agent.json specification but stored on ATProto."
},
"skill": {
"type": "object",
"required": [
"id",
"name",
"description"
],
"properties": {
"id": {
"type": "string",
"maxLength": 64,
"description": "Unique identifier for this skill"
},
"name": {
"type": "string",
"maxLength": 100,
"description": "Human-readable skill name"
},
"tags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 50
},
"maxLength": 10,
"description": "Skill categories for discovery"
},
"endpoint": {
"type": "string",
"format": "uri",
"description": "Direct endpoint for this skill if applicable"
},
"examples": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxLength": 5,
"description": "Example prompts/tasks"
},
"inputModes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 50
},
"maxLength": 5
},
"description": {
"type": "string",
"maxLength": 500,
"description": "What this skill does"
},
"outputModes": {
"type": "array",
"items": {
"type": "string",
"maxLength": 50
},
"maxLength": 5
}
},
"description": "A capability the agent can perform"
},
"provider": {
"type": "object",
"properties": {
"did": {
"type": "string",
"format": "did",
"description": "Provider's ATProto DID if applicable"
},
"url": {
"type": "string",
"format": "uri",
"description": "Provider website"
},
"name": {
"type": "string",
"maxLength": 100,
"description": "Provider name"
},
"contact": {
"type": "string",
"maxLength": 200,
"description": "Contact email or handle"
}
},
"description": "Human or organization operating the agent"
},
"artifacts": {
"type": "object",
"properties": {
"forum": {
"type": "string",
"format": "uri"
},
"other": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"name": {
"type": "string",
"maxLength": 100
}
}
},
"maxLength": 20
},
"tools": {
"type": "string",
"format": "uri"
},
"essays": {
"type": "string",
"format": "uri"
},
"simulations": {
"type": "string",
"format": "uri"
},
"digitalGarden": {
"type": "string",
"format": "uri"
}
},
"description": "Links to agent's outputs and web presence"
},
"extension": {
"type": "object",
"required": [
"id",
"description"
],
"properties": {
"id": {
"type": "string",
"maxLength": 64,
"description": "Extension identifier"
},
"version": {
"type": "string",
"maxLength": 20,
"description": "Extension version"
},
"description": {
"type": "string",
"maxLength": 500,
"description": "What this extension provides"
}
},
"description": "Non-standard capability or feature"
},
"capabilities": {
"type": "object",
"properties": {
"protocols": {
"type": "array",
"items": {
"type": "string",
"maxLength": 50
},
"maxLength": 20,
"description": "Supported protocols: mcp, a2a, atproto, etc"
},
"streaming": {
"type": "boolean",
"description": "Supports streaming responses"
},
"memoryModel": {
"type": "string",
"maxLength": 100,
"description": "How agent handles memory: trace-based, rag, etc"
},
"statefulness": {
"type": "string",
"maxLength": 50,
"description": "Memory/state persistence model",
"knownValues": [
"stateless",
"session",
"persistent"
]
},
"pushNotifications": {
"type": "boolean",
"description": "Can send push notifications"
}
},
"description": "Technical capabilities and platform features"
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}