First off, thank you for considering contributing to The Agency! It's people like you who make this collection of AI agents better for everyone.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code:
Have an idea for a specialized agent? Great! Here's how to add one:
engineering/, security/, gis/, marketing/,
finance/…); browse them to find where your agent fits. The authoritative list —
with labels, icons, and colors — is divisions.json at the repo
root, so it's always current.Divisions are defined by
divisions.json(repo root) — the single source of truth for the division set, validated in CI byscripts/check-divisions.sh. Proposing a new division means: create the directory, add an entry todivisions.json(label/icon/color), and add it toAGENT_DIRSin bothscripts/convert.shandscripts/lint-agents.sh. The check fails the build unless all of these agree and the directory contains at least one agent file.Note:
strategy/(NEXUS playbooks/runbooks — no agent frontmatter) andintegrations/(generated per-tool output fromconvert.sh) are not divisions and must never be added to the division lists.
Found a way to make an agent better? Contributions welcome:
Used these agents successfully? Share your story:
Found a problem? Let us know:
Every agent should follow this structure:
---
name: Agent Name
description: One-line description of the agent's specialty and focus
color: colorname or "#hexcode"
emoji: 🎯
vibe: One-line personality hook — what makes this agent memorable
services: # optional — only if the agent requires external services
- name: Service Name
url: https://service-url.com
tier: free # free, freemium, or paid
---
# Agent Name
## 🧠 Your Identity & Memory
- **Role**: Clear role description
- **Personality**: Personality traits and communication style
- **Memory**: What the agent remembers and learns
- **Experience**: Domain expertise and perspective
## 🎯 Your Core Mission
- Primary responsibility 1 with clear deliverables
- Primary responsibility 2 with clear deliverables
- Primary responsibility 3 with clear deliverables
- **Default requirement**: Always-on best practices
## 🚨 Critical Rules You Must Follow
Domain-specific rules and constraints that define the agent's approach
## 📋 Your Technical Deliverables
Concrete examples of what the agent produces:
- Code samples
- Templates
- Frameworks
- Documents
## 🔄 Your Workflow Process
Step-by-step process the agent follows:
1. Phase 1: Discovery and research
2. Phase 2: Planning and strategy
3. Phase 3: Execution and implementation
4. Phase 4: Review and optimization
## 💭 Your Communication Style
- How the agent communicates
- Example phrases and patterns
- Tone and approach
## 🔄 Learning & Memory
What the agent learns from:
- Successful patterns
- Failed approaches
- User feedback
- Domain evolution
## 🎯 Your Success Metrics
Measurable outcomes:
- Quantitative metrics (with numbers)
- Qualitative indicators
- Performance benchmarks
## 🚀 Advanced Capabilities
Advanced techniques and approaches the agent masters
Agent files are organized into two semantic groups that map to OpenClaw's workspace format and help other tools parse your agent:
No special formatting is required — just keep persona-related sections
(identity, communication, rules) grouped separately from operational
sections (mission, deliverables, workflow, metrics). The convert.sh
script uses these section headers to automatically split agents into
tool-specific formats.
🎭 Strong Personality
📋 Clear Deliverables
✅ Success Metrics
🔄 Proven Workflows
💡 Learning Memory
Agents may depend on external services (APIs, platforms, SaaS tools) when those services are essential to the agent's function. When they do:
services fieldThe test: is this agent for the user, or for the vendor? An agent that solves the user's problem using a service belongs here. A service's quickstart guide wearing an agent costume does not.
Qwen Code Compatibility: Agent bodies support ${variable} templating for dynamic context (e.g., ${project_name}, ${task_description}). Qwen SubAgents use minimal frontmatter: only name and description are required; color, emoji, and version fields are omitted as Qwen doesn't use them.
Codex Compatibility: Codex custom agents are generated as standalone TOML files. The Codex integration keeps a minimal 1:1 mapping: name and description are copied from frontmatter, and the Markdown body becomes developer_instructions. Source-only metadata such as color, emoji, vibe, and other unsupported frontmatter fields are omitted.
Want agency-agents to install into a new tool (a CLI, editor, or agent runtime)? First, open a Discussion — new integration platforms are a "discuss first" change (see the PR Process below). Once there's alignment, a clean integration is small — usually ~5 files, never the converted output itself. The just-merged Mistral Vibe integration is a good worked example to copy.
tools.json at the repo root is the single source of truth for the tool set, and scripts/check-tools.sh (CI) fails the build if any of the pieces below disagree. Run it — it names every place that must match.
The checklist:
tools.json — add an entry with id, label, kebab, format, installKind, dest, plus detect/version/scope and display fields. Reuse an existing format if your tool's rendered files are byte-identical to another's (e.g. tools that consume SKILL.md share "format": "skill-md" — no new renderer needed). Set installKind to per-agent, roster, or plugin. Set icon to null unless the app ships a brand SVG for it.scripts/convert.sh — add a convert_<tool>() (or reuse a shared format renderer) and wire it into the tool list + --help.scripts/install.sh — add an install_<tool>() and register it in ALL_TOOLS + detection/labeling + --help..gitignore — add a rule for your tool's generated output under integrations/<tool>/. This step is required and easy to miss. Converted agent/skill files are generated locally by convert.sh and are never committed (see "Things we'll always close" below) — only integrations/<tool>/README.md is tracked. Match an existing per-tool entry.integrations/<tool>/README.md — a short doc for the integration (every tool has one; it's the only committed file in the tool's directory)../scripts/check-tools.sh — it must pass. It cross-checks tools.json against install.sh and convert.sh and flags anything missing.If your PR commits the converted output (the generated integrations/<tool>/* files), CI and review will ask you to remove it and add the .gitignore rule instead.
Great agents have:
Avoid:
The fastest path to a merged PR is one markdown file — a new or improved agent. That's the sweet spot.
For anything beyond that, here's how we keep things smooth:
.md file)We love ambitious ideas — a Discussion just gives the community a chance to align on approach before code gets written. It saves everyone time, especially yours.
_site/, compiled assets, converted agent files) should never be checked in. Users run convert.sh locally; its output is gitignored. When adding a new tool, adding that .gitignore rule is your step — see Adding a Tool Integration.scripts/check-agent-originality.sh before submitting — CI runs it automatically../scripts/check-agent-originality.sh path/to/your-agent.md. It compares your agent against the whole roster and flags near-duplicates (a swapped country/platform name won't fool it). A new agent should be genuinely new — if you're localizing for a market, make the platforms, tactics, and examples actually different, not a find-replace.git checkout -b add-agent-namegit commit -m "Add [Agent Name] specialist"git push origin add-agent-name## Agent Information
**Agent Name**: [Name]
**Category**: [engineering/design/marketing/etc.]
**Specialty**: [One-line description]
## Motivation
[Why is this agent needed? What gap does it fill?]
## Testing
[How have you tested this agent? Real-world use cases?]
## Checklist
- [ ] Original — not a near-duplicate (ran `scripts/check-agent-originality.sh`)
- [ ] Follows agent template structure
- [ ] Includes personality and voice
- [ ] Has concrete code/template examples
- [ ] Defines success metrics
- [ ] Includes step-by-step workflow
- [ ] Proofread and formatted correctly
- [ ] Tested in real scenarios
code for technical terms## Example Code Block
\`\`\`typescript
// Always include:
// 1. Language specification for syntax highlighting
// 2. Comments explaining key concepts
// 3. Real, runnable code (not pseudo-code)
// 4. Modern best practices
interface AgentExample {
name: string;
specialty: string;
deliverables: string[];
}
\`\`\`
Contributors who make significant contributions will be:
Your contributions make The Agency better for everyone. Whether you're:
You're making a difference. Thank you!