git, and search — is available without any declaration. AGENTS.md is the agent: what you write there is what the model is told about who it is and how to behave.
Use this agent type when the work is best expressed as written instructions rather than code or a schema, and when the agent needs to read and edit files, run commands, or work in a repository as part of doing its job.
Create an OpenClaw agent
- CLI
- Web
AGENTS.md with your agent’s instructions, then save and run the agent like you would any other Guild agent.Workspace files
Every file you commit is placed in the agent’s workspace.AGENTS.md is the only required one; the rest are optional, and a committed file always wins — Guild fills a gap but never overrides what you ship.
Two consequences of the committed-file-wins rule are worth knowing, because both are useful rather than accidental:
- Committing a
USER.mdopts the agent out of workspace context injection. - Committing an
IDENTITY.mdthat differs from the agent’s Guild record is not an error. The record drives the Agent Hub listing and the session UI; the file drives what the model believes about itself.
Skills
A skill is a directory underskills/ containing a SKILL.md whose frontmatter carries a name and description:
A
skills/<name>/ directory with no SKILL.md is a build error. Without that file the skill is silently never discovered, so the build rejects it rather than letting the agent run as though the skill was never written.Tools
An OpenClaw agent has two separate sources of tools. The coding toolchain is built in. A shell, file editing,git, and search are always available and need no declaration.
Guild-brokered tools are declared in guild.yaml at the root of the agent’s version files, as described in the guild.yaml reference. Each integration operation, sub-agent, and built-in tool you declare becomes a tool the agent can call. Omit guild.yaml when the agent needs none of them.
See the
guild.yaml reference for the field rules and validation.
The
environment field is not supported for OpenClaw agents. An OpenClaw agent always runs in the standard guildai~lobsterpot image. Declaring it, or any other section an OpenClaw agent does not support, is a build error rather than being silently ignored.Input and output
OpenClaw agents have a fixed text contract: they take text in and return text out. Unlike a Goose recipe, there are no declared parameters and no response JSON schema — the input and output schemas are applied for you at build time.Build-time validation
Guild validates the agent when you save a version. The workspace is checked first, because an unrunnable workspace fails the build before any tool validation runs:- Validate agent workspace —
AGENTS.mdis present and non-empty, every committed path stays inside the workspace, and everyskills/<name>/directory has aSKILL.md. - Validate Guild integrations — each integration in
guild.yamlresolves to a published version, and any listed tools map to real operations on it. - Validate Guild subagents — each sub-agent resolves to a published version.
- Validate Guild builtins — each service is one of
console,ui, orguild, and each listed tool is permitted for that service. - Store Guild tools — the resolved tool manifest is recorded on the version. Tool names must be unique across integrations, sub-agents, and builtins; a duplicate is a build error.
Related pages
- guild.yaml reference for every section an OpenClaw agent can declare
- Agent skills for publishing skills your agent can load
- Workspace context for instructions shared by every agent in a workspace
- Agent types to compare all five agent types