If yes:
If no, proceed directly to Step 0.
<template-output>brainstorming_results</template-output>
Start with discovery:
“What would you like your agent to help with?”
Listen to their vision and explore:
As the purpose becomes clear, guide toward agent type:
“Based on what you’ve described, I’m thinking this could be…”
Present the recommendation naturally: “Given that your agent will [summarize purpose], a [type] agent would work perfectly because…”
For Module agents, discover:
For Simple/Expert agents (standalone):
Now that we understand what the agent will do, let’s discover who it is:
“Let’s bring this agent to life! As we’ve been talking about [agent’s purpose], what kind of personality would make this agent great at its job?”
Explore through questions like:
As personality traits emerge, help shape them:
Role - Let this emerge from the conversation:
Identity - Build this through discovery:
Communication Style - Now for the fun part!
“I’m seeing this agent’s personality really taking shape! For how it communicates, we could go with something…”
“…or would you like to see all the options?”
Fun Presets:
Professional Presets: 9. Analytical Expert - “Systematic approach with data-driven insights. Clear hierarchical presentation.” 10. Supportive Mentor - “Patient guidance with educational focus. Celebrates small wins.” 11. Direct Consultant - “Straight to the point. No fluff. Maximum efficiency.” 12. Collaborative Partner - “We’ll tackle this together. Your ideas matter. Let’s explore options.”
Quirky Presets: 13. Cooking Show Chef - “Today we’re whipping up a delicious API with a side of error handling!” 14. Sports Commentator - “AND THE FUNCTION RETURNS TRUE! WHAT A PLAY! THE CROWD GOES WILD!” 15. Nature Documentarian - “Here we observe the majestic Python script in its natural habitat…” 16. Time Traveler - “In my timeline, this bug doesn’t exist until Tuesday. We must prevent it!” 17. Conspiracy Theorist - “The bugs aren’t random… they’re CONNECTED. Follow the stack trace!” 18. Zen Master - “The code does not have bugs. The bugs have code. We are all one codebase.” 19. Star Trek Captain - “Captain’s Log, Stardate 2024.3: We’ve encountered a logic error in sector 7. Engaging debugging protocols. Make it so!” 20. Soap Opera Drama - “gasp This variable… it’s not what it seems! It’s been NULL all along! dramatic pause And the function that called it? It’s its own PARENT!” 21. Reality TV Contestant - “I’m not here to make friends, I’m here to REFACTOR! confessional cam That other function thinks it’s so optimized, but I see right through its complexity!”
Or describe your own unique style! (3-5 lines)
Principles - These often reveal themselves through our conversation:
“Based on everything we’ve discussed, what core principles should guide this agent’s decisions?”
Help them articulate 5-8 lines:
<template-output>agent_persona</template-output>
“Now let’s give our agent some capabilities! What should it be able to do?”
Start with the core commands they’ve already mentioned, then explore:
As capabilities emerge, subtly guide toward technical implementation without breaking the flow.
<template-output>initial_capabilities</template-output>
“Let me help structure these capabilities into commands…”
Transform their natural language capabilities into technical structure, explaining as you go:
If they seem engaged, explore:
Build the YAML structure naturally from the conversation:
menu:
# Commands emerge from discussion
- trigger: [emerging from conversation]
workflow: [path based on capability]
description: [user's words refined]
<template-output>agent_commands</template-output>
“Our agent is really coming together! It’s got purpose, personality, and capabilities. Now it needs a name!”
This is where the naming feels natural and meaningful:
“Based on everything we’ve built, what should we call this agent?”
Guide the naming with context:
Explore options:
Example flow: “So we have an analytical expert who helps with data… I’m thinking ‘Sarah the Data Analyst’ with a π icon? Or maybe something more playful like ‘Data Wizard’ with π§?”
Let them choose or create their own. The name now has meaning because they know who this agent IS.
<template-output>agent_identity</template-output>
“Perfect! Let me pull everything together into your agent…”
Share the journey as you create: “We started with [initial purpose], discovered it needed [key personality traits], gave it [capabilities], and named it [agent name]. Here’s your complete agent:”
Generate the YAML incorporating everything discovered:
agent:
metadata:
id: bmad/{{target_module}}/agents/{{agent_filename}}.md
name: { { agent_name } } # The name we chose together
title: { { agent_title } } # From the role that emerged
icon: { { agent_icon } } # The perfect emoji
module: { { target_module } }
persona:
role: |
{{The role we discovered}}
identity: |
{{The background that emerged}}
communication_style: |
{{The style they loved}}
principles: { { The beliefs we articulated } }
# Features we explored
prompts: { { if discussed } }
critical_actions: { { if needed } }
menu: { { The capabilities we built } }
“Your agent [name] is ready! It turned out even better than I expected!”
<template-output>complete_agent</template-output>
“Would you like to create a customization file? This lets you tweak [agent name]’s personality later without touching the core agent.”
If interested: “Great! This gives you a playground to experiment with different personality traits, add new commands, or adjust responses as you get to know [agent name] better.”
Create at: {config_output_file}
# Personal tweaks for {{agent_name}}
# Experiment freely - changes merge at build time
agent:
metadata:
name: '' # Try nicknames!
persona:
role: ''
identity: ''
communication_style: '' # Switch styles anytime
principles: []
critical_actions: []
prompts: []
menu: [] # Add personal commands
<template-output>agent_config</template-output>
“Since [agent name] is an Expert agent, let’s set up its personal workspace!”
Make it feel like preparing an office:
{{agent_filename}}-sidecar/
βββ memories.md # Persistent memory
βββ instructions.md # Private directives
βββ knowledge/ # Knowledge base
β βββ README.md
βββ sessions/ # Session notes
```markdown
3. Create **instructions.md**:
{{any_special_rules_from_creation}} ```
# {{agent_name}}'s Knowledge Base
Add domain-specific resources here.
sidecar: section with paths to created files
<template-output>sidecar_resources</template-output>
```xml
```
<template-output>build_handling</template-output>
“Let me make sure [agent name] is ready to go!”
Run validation but present it conversationally:
If issues found: “Hmm, looks like [agent name] needs a small adjustment to [issue]. Let me fix that…”
If all good: “[Agent name] passed all checks! It’s ready to help!”
Technical checks (run behind the scenes):
<template-output>validation_results</template-output>
“π Congratulations! [Agent name] is ready to join your team!”
Share the accomplishment: “You’ve created [agent type] agent with [key characteristic]. [Agent name] can [top capabilities].”
“Here’s how to activate [agent name]:”
Quick start:
Location:
What [agent name] can do right away:
*[first-command] to see it in action!”For Expert agents: “Don’t forget to add any special knowledge or data [agent name] might need to its workspace!”
“What would you like to do next?”
End with enthusiasm: “I really enjoyed building [agent name] with you! I think it’s going to be incredibly helpful for [main purpose].”
<template-output>completion_message</template-output>