com.publicdomainrelay.temp.agent.class

johnandersen777.bsky.social

{
  "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."
          },
          "bootstrap": {
            "type": "string",
            "description": "How the spawned agent obtains its ATProto identity. 'atproto-password' = log in with $ATPROTO_PASSWORD and $AGENT_DID from spec.env (top-level pattern). 'welcome-mat-on-enroll' = no creds initially; an entry tool calls Welcome Mat to enroll and the WelcomeMatClient lives in the spawned process (sub-agent pattern). 'none' = no ATProto session, pure compute."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "ISO 8601 timestamp when this class record was created."
          },
          "entryTool": {
            "type": "string",
            "description": "Optional name of the entry tool (a tool defined by one of this class's skills) the universal runner invokes directly when an agent of this class is spawned. Setting this puts the class in deterministic mode: the runner calls `import('./tools/<entryTool>/main.ts').default({input, bridge, config})` and forwards its return value as the agent's result. Classes without `entryTool` run in LLM-driven mode: the runner builds a tool registry from skill examples + tools and drives an LLM loop."
          },
          "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
}

Validate Record

Validate a record against com.publicdomainrelay.temp.agent.class

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:5svqtrhheairglgiiyvutzik
CID
bafyreiakqsxqvjqi6r7hkyih5ztwcqf5yifafdldaece7kl4g7e3kk5n6y
Indexed At
2026-05-29 23:32 UTC
AT-URI
at://did:plc:5svqtrhheairglgiiyvutzik/com.atproto.lexicon.schema/com.publicdomainrelay.temp.agent.class

Lexicon Garden

@