# com.publicdomainrelay.temp.agent.class

> Published by [johnandersen777.bsky.social](https://lexicon.garden/identity/did:plc:5svqtrhheairglgiiyvutzik)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:5svqtrhheairglgiiyvutzik/com.publicdomainrelay.temp.agent.class)
- [Documentation](https://lexicon.garden/lexicon/did:plc:5svqtrhheairglgiiyvutzik/com.publicdomainrelay.temp.agent.class/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:5svqtrhheairglgiiyvutzik/com.publicdomainrelay.temp.agent.class/examples)

## Definitions

### `com.publicdomainrelay.temp.agent.class`

**Type**: `record`

An agent class definition. Acts as a template that agents are instantiated from. The class is a named bundle of skills (strongRefs to com.publicdomainrelay.temp.agent.skill records) plus optional metadata. Instantiating an agent from a class means spawning a runtime (or sub-agent context) seeded with this skill set.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `name` | `string` | Yes | Human-readable name of the agent class, e.g. 'compute-requester'. |
| `parent` | `ref` → `com.atproto.repo.strongRef` | No | Optional strongRef to a parent agent.class. Instantiated agents inherit the parent's skills as well as this class's skills. |
| `skills` | `array` | Yes | Strong references to com.publicdomainrelay.temp.agent.skill records that compose this class. |
| `createdAt` | `string` (datetime) | Yes | ISO 8601 timestamp when this class record was created. |
| `description` | `string` | Yes | Description of what agents instantiated from this class are for and what they can do. |
| `spawnsSubAgent` | `boolean` | No | If true, agents of this class are intended to be spawned as sub-agents from a parent agent's flow rather than as a top-level runtime. |

## Raw Schema

```json
{
  "id": "com.publicdomainrelay.temp.agent.class",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "name",
          "description",
          "skills",
          "createdAt"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Human-readable name of the agent class, e.g. 'compute-requester'."
          },
          "parent": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref",
            "description": "Optional strongRef to a parent agent.class. Instantiated agents inherit the parent's skills as well as this class's skills."
          },
          "skills": {
            "type": "array",
            "items": {
              "ref": "com.atproto.repo.strongRef",
              "type": "ref"
            },
            "description": "Strong references to com.publicdomainrelay.temp.agent.skill records that compose this class."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "ISO 8601 timestamp when this class record was created."
          },
          "description": {
            "type": "string",
            "description": "Description of what agents instantiated from this class are for and what they can do."
          },
          "spawnsSubAgent": {
            "type": "boolean",
            "description": "If true, agents of this class are intended to be spawned as sub-agents from a parent agent's flow rather than as a top-level runtime."
          }
        }
      },
      "description": "An agent class definition. Acts as a template that agents are instantiated from. The class is a named bundle of skills (strongRefs to com.publicdomainrelay.temp.agent.skill records) plus optional metadata. Instantiating an agent from a class means spawning a runtime (or sub-agent context) seeded with this skill set."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
