--- title: "Create a Custom Agent" --- Build your own AI agent with a unique personality, specialized commands, and optional persistent memory using the BMad Builder workflow. :::note[BMB Module] This tutorial uses the **BMad Builder (BMB)** module. Make sure you have BMAD installed with the BMB module enabled. ::: ## What You'll Learn - How to run the `create-agent` workflow - Choose between Simple, Expert, and Module agent types - Define your agent's persona (role, identity, communication style, principles) - Package and install your custom agent - Test and iterate on your agent's behavior :::note[Prerequisites] - BMAD installed with the BMB module - An idea for what you want your agent to do - About 15-30 minutes for your first agent ::: :::tip[Quick Path] Run `create-agent` workflow → Follow the guided steps → Install your agent module → Test and iterate. ::: ## Understanding Agent Types Before creating your agent, understand the three types available: | Type | Best For | Memory | Complexity | | ---------- | ------------------------------------- | ---------- | ---------- | | **Simple** | Focused tasks, quick setup | None | Low | | **Expert** | Specialized domains, ongoing projects | Persistent | Medium | | **Module** | Building other agents/workflows | Persistent | High | **Simple Agent** - Use when your task is well-defined and focused. Perfect for single-purpose assistants like commit message generators or code reviewers. **Expert Agent** - Use when your domain requires specialized knowledge or you need memory across sessions. Great for roles like Security Architect or Documentation Lead. **Module Agent** - Use when your agent builds other agents or needs deep integration with the module system. ## Step 1: Start the Workflow In your IDE (Claude Code, Cursor, etc.), invoke the create-agent workflow with the agent-builder agent. The workflow guides you through eight steps: | Step | What You'll Do | | --------------------------- | -------------------------------------------- | | **Brainstorm** *(optional)* | Explore ideas with creative techniques | | **Discovery** | Define the agent's purpose and goals | | **Type & Metadata** | Choose Simple or Expert, name your agent | | **Persona** | Craft the agent's personality and principles | | **Commands** | Define what the agent can do | | **Activation** | Set up autonomous behaviors *(optional)* | | **Build** | Generate the agent file | | **Validation** | Review and verify everything works | :::tip[Workflow Options] At each step, the workflow provides options: - **[A] Advanced** - Get deeper insights and reasoning - **[P] Party** - Get multiple agent perspectives - **[C] Continue** - Move to the next step ::: ## Step 2: Define the Persona Your agent's personality is defined by four fields: | Field | Purpose | Example | | ----------------------- | -------------- | ----------------------------------------------------------------- | | **Role** | What they do | "Senior code reviewer who catches bugs and suggests improvements" | | **Identity** | Who they are | "Friendly but exacting, believes clean code is a craft" | | **Communication Style** | How they speak | "Direct, constructive, explains the 'why' behind suggestions" | | **Principles** | Why they act | "Security first, clarity over cleverness, test what you fix" | Keep each field focused on its purpose. The role isn't personality; the identity isn't job description. :::note[Writing Great Principles] The first principle should "activate" the agent's expertise: - **Weak:** "Be helpful and accurate" - **Strong:** "Channel decades of security expertise: threat modeling begins with trust boundaries, never trust client input, defense in depth is non-negotiable" ::: ## Step 3: Install Your Agent Once created, package your agent for installation: ``` my-custom-stuff/ ├── module.yaml # Contains: unitary: true ├── agents/ │ └── {agent-name}/ │ ├── {agent-name}.agent.yaml │ └── _memory/ # Expert agents only │ └── {sidecar-folder}/ └── workflows/ # Optional: custom workflows ``` Install using the BMAD installer, then invoke your new agent in your IDE. ## What You've Accomplished You've created a custom AI agent with: - A defined purpose and role in your workflow - A unique persona with communication style and principles - Custom menu commands for your specific tasks - Optional persistent memory for ongoing context Your project now includes: ``` _bmad/ ├── _config/ │ └── agents/ │ └── {your-agent}/ # Your agent customizations └── {module}/ └── agents/ └── {your-agent}/ └── {your-agent}.agent.yaml ``` ## Quick Reference | Action | How | | ------------------- | ---------------------------------------------- | | Start workflow | `"Run the BMAD Builder create-agent workflow"` | | Edit agent directly | Modify `{agent-name}.agent.yaml` | | Edit customization | Modify `_bmad/_config/agents/{agent-name}` | | Rebuild agent | `npx bmad-method build ` | | Study examples | Check `src/modules/bmb/reference/agents/` | ## Common Questions **Should I start with Simple or Expert?** Start with Simple for your first agent. You can always upgrade to Expert later if you need persistent memory. **How do I add more commands later?** Edit the agent YAML directly or use the customization file in `_bmad/_config/agents/`. Then rebuild. **Can I share my agent with others?** Yes. Package your agent as a standalone module and share it with your team or the community. **Where can I see example agents?** Study the reference agents in `src/modules/bmb/reference/agents/`: - [commit-poet](https://github.com/bmad-code-org/BMAD-METHOD/tree/main/src/modules/bmb/reference/agents/simple-examples/commit-poet.agent.yaml) (Simple) - [journal-keeper](https://github.com/bmad-code-org/BMAD-METHOD/tree/main/src/modules/bmb/reference/agents/expert-examples/journal-keeper) (Expert) ## Getting Help - **[Discord Community](https://discord.gg/gk8jAdXWmj)** - Ask in #bmad-method-help or #report-bugs-and-issues - **[GitHub Issues](https://github.com/bmad-code-org/BMAD-METHOD/issues)** - Report bugs or request features ## Further Reading - **[What Are Agents](../../explanation/core-concepts/what-are-agents.md)** - Deep technical details on agent types - **[Agent Customization](../../how-to/customization/customize-agents.md)** - Modify agents without editing core files - **[Custom Content Installation](../../how-to/installation/install-custom-modules.md)** - Package and distribute your agents :::tip[Key Takeaways] - **Start small** - Your first agent should solve one problem well - **Persona matters** - Strong principles activate the agent's expertise - **Iterate often** - Test your agent and refine based on behavior - **Learn from examples** - Study reference agents before building your own :::