Agent Templates System
Use this skill when working on OpenClaw's built-in Agent Templates feature.
What this system does
The Agent Templates system lets OpenClaw store reusable agent blueprints in SQLite, edit them in the Control UI, and materialize real agents from those blueprints.
A template can define:
- identity defaults
- included skills
- partial agent config
- workspace files
- memory seeds
From the UI, a user can:
- list templates
- create templates
- edit templates
- delete templates
- create a real agent from a selected template
Core workflow
- Read
references/implementation.mdfirst. - If UI work is involved, also read
references/ui-design.md. - If you need payload examples, read
references/template-schema.mdand inspectassets/examples/. - When changing behavior, keep storage, gateway methods, and UI state in sync.
- When validating a bug or feature, test both:
- template CRUD
- agent creation from template
Source of truth files
Read these files in the OpenClaw repo when making code changes:
src/agents/templates.tssrc/gateway/server-methods/agent-templates.tsui/src/ui/controllers/templates.tsui/src/ui/views/templates.ts
Important behaviors
- Templates are stored in SQLite under the OpenClaw state dir.
- Template definitions are normalized before storage/use.
- Creating an agent from a template updates OpenClaw config, creates a workspace, writes identity/workspace files, and seeds memory.
- Included skills are merged with template config and create-time overrides.
- Workspace file paths are constrained to stay inside the target workspace.
Practical guidance
- Prefer small, composable template definitions.
- Put durable persona/role setup in
workspace.files. - Put starter memory in
workspace.memorySeeds. - Use
definition.skillsfor reusable attached skills. - Keep UI wording aligned with the underlying JSON schema.
- If the UI allows raw JSON editing, make parser errors user-legible.
Debugging checklist
- Can
agentTemplates.listreturn the template? - Does
agentTemplates.getreturn the expected normalized definition? - Does the UI render the selected template and preserve edits?
- Does
agents.createFromTemplatecreate a non-conflicting agent id? - Were
SOUL.md,IDENTITY.md,AGENTS.md, and any seeded files written as expected? - Did config get updated with workspace, identity, and merged skills?
References in this skill
references/implementation.md— architecture and code mapreferences/template-schema.md— practical schema notes and field behaviorreferences/ui-design.md— Control UI layout and UX notesassets/examples/agent-template-definition.json— example template payload