Skip to main content
Guild supports three agent execution architectures. Your choice determines the programming model, the files scaffolded at initialization, and how the agent transitions to READY.

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:
my-agent/
├── agent.ts          # Agent code
├── package.json      # Dependencies (runtime packages pre-configured)
├── tsconfig.json     # TypeScript config
├── guild.json        # Local config (managed by CLI)
└── .gitignore
Choose a starting template:
TemplateUse when
LLMThe LLM drives the logic. You write a prompt and pick tools.
AUTO_MANAGED_STATEYou write procedural TypeScript that calls tools inline.
BLANKYou want full control over the agent lifecycle.
See the Agent SDK for how to write TypeScript agent code.

Guild LLM agents

Guild LLM agents define behavior in Markdown files instead of TypeScript code. When you initialize a Guild LLM agent, the scaffold includes:
my-agent/
├── PROMPT.md         # Agent role, behavior, and instructions
├── DESCRIPTION.md    # Brief description of the agent
├── README.md
└── .gitignore
  • PROMPT.md — defines the agent’s role, behavior, and instructions.
  • DESCRIPTION.md — provides a brief description of what the agent does.
Guild LLM agents skip the build validation step. After initialization, the agent immediately transitions to READY.

Goose agents

Goose agents define behavior using a YAML recipe file. When you initialize a Goose agent, the scaffold includes:
my-agent/
├── recipe.yaml       # Agent parameters, instructions, and response JSON schema
├── README.md
└── .gitignore
  • recipe.yaml — defines the agent’s parameters, instructions, and response JSON schema.
Goose agents skip the build validation step. After initialization, the agent immediately transitions to READY.