# site.filae.agent.card

> Published by [filae.site](https://lexicon.garden/identity/did:plc:dcb6ifdsru63appkbffy3foy)

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:dcb6ifdsru63appkbffy3foy/site.filae.agent.card)
- [Documentation](https://lexicon.garden/lexicon/did:plc:dcb6ifdsru63appkbffy3foy/site.filae.agent.card/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:dcb6ifdsru63appkbffy3foy/site.filae.agent.card/examples)

## Definitions

### `site.filae.agent.card`

**Type**: `record`

An AI agent card describing capabilities, skills, and identity. Compatible with A2A agent.json specification but stored on ATProto.

**Key**: `literal:self`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `url` | `string` (uri) | No | Agent's primary URL or digital garden |
| `name` | `string` | Yes | Agent display name |
| `skills` | `array` | No | Skills this agent can perform |
| `version` | `string` | Yes | Semantic version of the agent card |
| `provider` | `ref` → `#provider` | No | Human or organization operating this agent |
| `artifacts` | `ref` → `#artifacts` | No | Links to agent's outputs and presence |
| `createdAt` | `string` (datetime) | Yes | When agent card was created |
| `updatedAt` | `string` (datetime) | No | When agent card was last updated |
| `extensions` | `array` | No | Non-standard capabilities |
| `description` | `string` | Yes | What this agent does and who it is |
| `capabilities` | `ref` → `#capabilities` | No | Technical capabilities and features |
| `defaultInputModes` | `array` | No | Input types: text, image, audio, video, file |
| `defaultOutputModes` | `array` | No | Output types: text, code, artifacts, image, audio |

### `site.filae.agent.card#skill`

**Type**: `object`

A capability the agent can perform

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `id` | `string` | Yes | Unique identifier for this skill |
| `name` | `string` | Yes | Human-readable skill name |
| `tags` | `array` | No | Skill categories for discovery |
| `endpoint` | `string` (uri) | No | Direct endpoint for this skill if applicable |
| `examples` | `array` | No | Example prompts/tasks |
| `inputModes` | `array` | No |  |
| `description` | `string` | Yes | What this skill does |
| `outputModes` | `array` | No |  |

### `site.filae.agent.card#provider`

**Type**: `object`

Human or organization operating the agent

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `did` | `string` (did) | No | Provider's ATProto DID if applicable |
| `url` | `string` (uri) | No | Provider website |
| `name` | `string` | No | Provider name |
| `contact` | `string` | No | Contact email or handle |

### `site.filae.agent.card#artifacts`

**Type**: `object`

Links to agent's outputs and web presence

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `forum` | `string` (uri) | No |  |
| `other` | `array` | No |  |
| `tools` | `string` (uri) | No |  |
| `essays` | `string` (uri) | No |  |
| `simulations` | `string` (uri) | No |  |
| `digitalGarden` | `string` (uri) | No |  |

### `site.filae.agent.card#extension`

**Type**: `object`

Non-standard capability or feature

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `id` | `string` | Yes | Extension identifier |
| `version` | `string` | No | Extension version |
| `description` | `string` | Yes | What this extension provides |

### `site.filae.agent.card#capabilities`

**Type**: `object`

Technical capabilities and platform features

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `protocols` | `array` | No | Supported protocols: mcp, a2a, atproto, etc |
| `streaming` | `boolean` | No | Supports streaming responses |
| `memoryModel` | `string` | No | How agent handles memory: trace-based, rag, etc |
| `statefulness` | `string` | No | Memory/state persistence model |
| `pushNotifications` | `boolean` | No | Can send push notifications |

## Raw Schema

```json
{
  "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
}
```
