com.publicdomainrelay.temp.agent.class

johnandersen777.bsky.social

Documentation

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.

main 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.

Record Key tid Timestamp-based ID

Properties

bootstrap string Optional

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 string datetime Required

ISO 8601 timestamp when this class record was created.

description string Required

Description of what agents instantiated from this class are for and what they can do.

entryTool string Optional

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.

name string Required

Human-readable name of the agent class, e.g. 'compute-requester'.

parent ref com.atproto.repo.strongRef Optional

Optional strongRef to a parent agent.class. Instantiated agents inherit the parent's skills as well as this class's skills.

skills array of ref com.atproto.repo.strongRef Required

Strong references to com.publicdomainrelay.temp.agent.skill records that compose this class.

spawnsSubAgent boolean Optional

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.

View raw schema
{
  "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."
}

Lexicon Garden

@