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, exactly as they are for Goose agents. 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.
The field rules and validation for
integrations, sub_agents, and builtins are the same as for Goose agents — see Integrations and sub-agents.
The
environment field is not supported for OpenClaw agents. An OpenClaw agent always runs in the standard guildai~lobsterpot image.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.