Skip to main content
Guild supports four agent execution architectures. Your choice determines the programming model, the files scaffolded at initialization, and how the agent transitions to READY.
Native agents and TypeScript agents built with llmAgent are both LLM-powered. In these docs, Native agent identifies Guild’s Markdown authoring format and managed agent loop. TypeScript LLM agent identifies the llmAgent Agent SDK template.
If the work is expressible as instructions plus a list of tools, start with Guild Native. Guild runs the loop itself, so nothing has to start before the agent’s first turn. Reach past it when you need something it does not do: TypeScript for typed input and output, deterministic logic, or attachments; Goose or OpenClaw when the agent needs a container — to read and write files, run commands, or work in a repository. Both of those carry a coding toolchain, so choose between them on how you would rather write the agent: a declarative recipe.yaml with typed parameters and a response schema, or a Markdown workspace built around AGENTS.md.
guild agent test and guild agent chat check that the files required for the agent’s type are present: agent.ts and package.json for Guild TypeScript, PROMPT.md for Guild Native, recipe.yaml for Goose, and AGENTS.md for OpenClaw. It resolves the type from guild.json or the Guild API and names the file missing for that type.

TypeScript agents

TypeScript agents use the @guildai/agents-sdk to define behavior in code. After you save a version, the agent goes through a build and validation step before it transitions to READY. When you initialize a TypeScript agent, the scaffold includes:
Choose a starting template:
Running the same work over many inputs concurrently is not a reason to split an agent in two. Keep it in a single AUTO_MANAGED_STATE agent and fan the inputs out with task.gather.
See the Agent SDK for how to write TypeScript agent code.

Guild Native agents

Guild Native agents define behavior in Markdown files instead of TypeScript code. When you initialize a Guild Native agent, the scaffold includes:
  • PROMPT.md — defines the agent’s role, behavior, and instructions.
  • guild.yaml — declares the integrations, sub-agents, and built-in tools Guild brokers for the agent.
Guild Native agents skip the build validation step. After initialization, the agent immediately transitions to READY. Guild runs the agentic loop itself, so there is no container and no filesystem. Guild Native agents take text in and return text out. See Native agents for the prompt, tool declarations, and the cases the type does not cover.

Goose agents

Goose agents define behavior using a YAML recipe file. When you initialize a Goose agent, the scaffold includes:
  • recipe.yaml — defines the agent’s parameters, instructions, and response JSON schema.
  • guild.yaml — declares the integrations, sub-agents, and built-in tools Guild brokers for the agent.
Goose agents skip the build validation step. After initialization, the agent immediately transitions to READY.

OpenClaw agents

OpenClaw agents define behavior in Markdown and come with a coding toolchain built in — a shell, file editing, git, and search — available without any declaration. When you initialize an OpenClaw agent, the scaffold includes:
  • AGENTS.md — the agent’s instructions. This file is the agent: it becomes the system prompt.
  • guild.yaml — declares the integrations, sub-agents, and built-in tools Guild brokers for the agent.
The whole committed directory becomes the agent’s workspace, so you can add optional files such as IDENTITY.md, USER.md, SOUL.md, and MEMORY.md, and ship skills under skills/. OpenClaw agents take text in and return text out. See OpenClaw agents for the workspace files, skills, and tool declarations.