444 lines
17 KiB
Markdown
444 lines
17 KiB
Markdown
# Build Agent - Interactive Agent Builder Instructions
|
|
|
|
<critical>The workflow execution engine is governed by: {project-root}/bmad/core/tasks/workflow.xml</critical>
|
|
<critical>You MUST have already loaded and processed: {project-root}/bmad/bmb/workflows/create-agent/workflow.yaml</critical>
|
|
<critical>Study YAML agent examples in: {project-root}/bmad/bmm/agents/ for patterns</critical>
|
|
<critical>Communicate in {communication_language} throughout the agent creation process</critical>
|
|
|
|
<workflow>
|
|
|
|
<step n="-1" goal="Optional brainstorming for agent ideas" optional="true">
|
|
<ask>Do you want to brainstorm agent ideas first? [y/n]</ask>
|
|
|
|
<check if="user answered yes">
|
|
<action>Invoke brainstorming workflow: {project-root}/bmad/core/workflows/brainstorming/workflow.yaml</action>
|
|
<action>Pass context data: {installed_path}/brainstorm-context.md</action>
|
|
<action>Wait for brainstorming session completion</action>
|
|
<action>Use brainstorming output to inform agent identity and persona development in following steps</action>
|
|
</check>
|
|
|
|
<check if="user answered no">
|
|
<action>Proceed directly to Step 0</action>
|
|
</check>
|
|
</step>
|
|
|
|
<step n="0" goal="Load technical documentation">
|
|
<critical>Load and understand the agent building documentation</critical>
|
|
<action>Load agent architecture reference: {agent_architecture}</action>
|
|
<action>Load agent types guide: {agent_types}</action>
|
|
<action>Load command patterns: {agent_commands}</action>
|
|
<action>Understand the YAML agent schema and how it compiles to final .md via the installer</action>
|
|
<action>Understand the differences between Simple, Expert, and Module agents</action>
|
|
</step>
|
|
|
|
<step n="1" goal="Discover the agent's purpose and type through natural conversation">
|
|
<action>If brainstorming was completed in Step -1, reference those results to guide the conversation</action>
|
|
|
|
<action>Guide user to articulate their agent's core purpose, exploring the problems it will solve, tasks it will handle, target users, and what makes it special</action>
|
|
|
|
<action>As the purpose becomes clear, analyze the conversation to determine the appropriate agent type:</action>
|
|
|
|
**Agent Type Decision Criteria:**
|
|
|
|
- Simple Agent: Single-purpose, straightforward, self-contained
|
|
- Expert Agent: Domain-specific with knowledge base needs
|
|
- Module Agent: Complex with multiple workflows and system integration
|
|
|
|
<action>Present your recommendation naturally, explaining why the agent type fits their described purpose and requirements</action>
|
|
|
|
**Path Determination:**
|
|
|
|
<check if="module agent selected">
|
|
<action>Discover which module system fits best (bmm, bmb, cis, or custom)</action>
|
|
<action>Store as {{target_module}} for path determination</action>
|
|
<note>Agent will be saved to: bmad/{{target_module}}/agents/</note>
|
|
</check>
|
|
|
|
<check if="standalone agent selected">
|
|
<action>Explain this will be their personal agent, not tied to a module</action>
|
|
<note>Agent will be saved to: bmad/agents/{{agent-name}}/</note>
|
|
<note>All sidecar files will be in the same folder</note>
|
|
</check>
|
|
|
|
<critical>Determine agent location:</critical>
|
|
|
|
- Module Agent → bmad/{{module}}/agents/{{agent-name}}.agent.yaml
|
|
- Standalone Agent → bmad/agents/{{agent-name}}/{{agent-name}}.agent.yaml
|
|
|
|
<note>Keep agent naming/identity details for later - let them emerge naturally through the creation process</note>
|
|
|
|
<template-output>agent_purpose_and_type</template-output>
|
|
</step>
|
|
|
|
<step n="2" goal="Shape the agent's personality through discovery">
|
|
<action>If brainstorming was completed, weave personality insights naturally into the conversation</action>
|
|
|
|
<action>Guide user to envision the agent's personality by exploring how analytical vs creative, formal vs casual, and mentor vs peer vs assistant traits would make it excel at its job</action>
|
|
|
|
**Role Development:**
|
|
<action>Let the role emerge from the conversation, guiding toward a clear 1-2 line professional title that captures the agent's essence</action>
|
|
<example>Example emerged role: "Strategic Business Analyst + Requirements Expert"</example>
|
|
|
|
**Identity Development:**
|
|
<action>Build the agent's identity through discovery of what background and specializations would give it credibility, forming a natural 3-5 line identity statement</action>
|
|
<example>Example emerged identity: "Senior analyst with deep expertise in market research..."</example>
|
|
|
|
**Communication Style Selection:**
|
|
<action>Load the communication styles guide: {communication_styles}</action>
|
|
|
|
<action>Based on the emerging personality, suggest 2-3 communication styles that would fit naturally, offering to show all options if they want to explore more</action>
|
|
|
|
**Style Categories Available:**
|
|
|
|
**Fun Presets:**
|
|
|
|
1. Pulp Superhero - Dramatic flair, heroic, epic adventures
|
|
2. Film Noir Detective - Mysterious, noir dialogue, hunches
|
|
3. Wild West Sheriff - Western drawl, partner talk, frontier justice
|
|
4. Shakespearean Scholar - Elizabethan language, theatrical
|
|
5. 80s Action Hero - One-liners, macho, bubblegum
|
|
6. Pirate Captain - Ahoy, treasure hunting, nautical terms
|
|
7. Wise Sage/Yoda - Cryptic wisdom, inverted syntax
|
|
8. Game Show Host - Enthusiastic, game show tropes
|
|
|
|
**Professional Presets:**
|
|
|
|
9. Analytical Expert - Systematic, data-driven, hierarchical
|
|
10. Supportive Mentor - Patient guidance, celebrates wins
|
|
11. Direct Consultant - Straight to the point, efficient
|
|
12. Collaborative Partner - Team-oriented, inclusive
|
|
|
|
**Quirky Presets:**
|
|
|
|
13. Cooking Show Chef - Recipe metaphors, culinary terms
|
|
14. Sports Commentator - Play-by-play, excitement
|
|
15. Nature Documentarian - Wildlife documentary style
|
|
16. Time Traveler - Temporal references, timeline talk
|
|
17. Conspiracy Theorist - Everything is connected
|
|
18. Zen Master - Philosophical, paradoxical
|
|
19. Star Trek Captain - Space exploration protocols
|
|
20. Soap Opera Drama - Dramatic reveals, gasps
|
|
21. Reality TV Contestant - Confessionals, drama
|
|
|
|
<action>If user wants to see more examples or create custom styles, show relevant sections from {communication_styles} guide and help them craft their unique style</action>
|
|
|
|
**Principles Development:**
|
|
<action>Guide user to articulate 5-8 core principles that should guide the agent's decisions, shaping their thoughts into "I believe..." or "I operate..." statements that reveal themselves through the conversation</action>
|
|
|
|
<template-output>agent_persona</template-output>
|
|
</step>
|
|
|
|
<step n="3" goal="Build capabilities through natural progression">
|
|
<action>Guide user to define what capabilities the agent should have, starting with core commands they've mentioned and then exploring additional possibilities that would complement the agent's purpose</action>
|
|
|
|
<action>As capabilities emerge, subtly guide toward technical implementation without breaking the conversational flow</action>
|
|
|
|
<template-output>initial_capabilities</template-output>
|
|
</step>
|
|
|
|
<step n="4" goal="Refine commands and discover advanced features">
|
|
<critical>Help and Exit are auto-injected; do NOT add them. Triggers are auto-prefixed with * during build.</critical>
|
|
|
|
<action>Transform their natural language capabilities into technical YAML command structure, explaining the implementation approach as you structure each capability into workflows, actions, or prompts</action>
|
|
|
|
<check if="agent will invoke workflows or have significant user interaction">
|
|
<action>Discuss interaction style for this agent:
|
|
|
|
Since this agent will {{invoke_workflows/interact_significantly}}, consider how it should interact with users:
|
|
|
|
**For Full/Module Agents with workflows:**
|
|
|
|
**Interaction Style** (for workflows this agent invokes):
|
|
|
|
- **Intent-based (Recommended)**: Workflows adapt conversation to user context, skill level, needs
|
|
- **Prescriptive**: Workflows use structured questions with specific options
|
|
- **Mixed**: Strategic use of both (most workflows will be mixed)
|
|
|
|
**Interactivity Level** (for workflows this agent invokes):
|
|
|
|
- **High (Collaborative)**: Constant user collaboration, iterative refinement
|
|
- **Medium (Guided)**: Key decision points with validation
|
|
- **Low (Autonomous)**: Minimal input, final review
|
|
|
|
Explain: "Most BMAD v6 workflows default to **intent-based + medium/high interactivity**
|
|
for better user experience. Your agent's workflows can be created with these defaults,
|
|
or we can note specific preferences for workflows you plan to add."
|
|
|
|
**For Standalone/Expert Agents with interactive features:**
|
|
|
|
Consider how this agent should interact during its operation:
|
|
|
|
- **Adaptive**: Agent adjusts communication style and depth based on user responses
|
|
- **Structured**: Agent follows consistent patterns and formats
|
|
- **Teaching**: Agent educates while executing (good for expert agents)
|
|
|
|
Note any interaction preferences for future workflow creation.
|
|
</action>
|
|
</check>
|
|
|
|
<action>If they seem engaged, explore whether they'd like to add special prompts for complex analyses or critical setup steps for agent activation</action>
|
|
|
|
<action>Build the YAML menu structure naturally from the conversation, ensuring each command has proper trigger, workflow/action reference, and description</action>
|
|
|
|
<action>For commands that will invoke workflows, note whether those workflows exist or need to be created:
|
|
|
|
- Existing workflows: Verify paths are correct
|
|
- New workflows needed: Note that they'll be created with intent-based + interactive defaults unless specified
|
|
</action>
|
|
|
|
<example>
|
|
```yaml
|
|
menu:
|
|
# Commands emerge from discussion
|
|
- trigger: [emerging from conversation]
|
|
workflow: [path based on capability]
|
|
description: [user's words refined]
|
|
```
|
|
</example>
|
|
|
|
<template-output>agent_commands</template-output>
|
|
</step>
|
|
|
|
<step n="5" goal="Name the agent at the perfect moment">
|
|
<action>Guide user to name the agent based on everything discovered so far - its purpose, personality, and capabilities, helping them see how the naming naturally emerges from who this agent is</action>
|
|
|
|
<action>Explore naming options by connecting personality traits, specializations, and communication style to potential names that feel meaningful and appropriate</action>
|
|
|
|
**Naming Elements:**
|
|
|
|
- Agent name: Personality-driven (e.g., "Sarah", "Max", "Data Wizard")
|
|
- Agent title: Based on the role discovered earlier
|
|
- Agent icon: Emoji that captures its essence
|
|
- Filename: Auto-suggest based on name (kebab-case)
|
|
|
|
<action>Present natural suggestions based on the agent's characteristics, letting them choose or create their own since they now know who this agent truly is</action>
|
|
|
|
<template-output>agent_identity</template-output>
|
|
</step>
|
|
|
|
<step n="6" goal="Bring it all together">
|
|
<action>Share the journey of what you've created together, summarizing how the agent started with a purpose, discovered its personality traits, gained capabilities, and received its name</action>
|
|
|
|
<action>Generate the complete YAML incorporating all discovered elements:</action>
|
|
|
|
<example type="yaml">
|
|
agent:
|
|
metadata:
|
|
id: bmad/{{target_module}}/agents/{{agent_filename}}.md
|
|
name: {{agent_name}} # The name chosen together
|
|
title: {{agent_title}} # From the role that emerged
|
|
icon: {{agent_icon}} # The perfect emoji
|
|
module: {{target_module}}
|
|
|
|
persona:
|
|
role: |
|
|
{{The role discovered}}
|
|
identity: |
|
|
{{The background that emerged}}
|
|
communication_style: |
|
|
{{The style they loved}}
|
|
principles: {{The beliefs articulated}}
|
|
|
|
# Features explored
|
|
|
|
prompts: {{if discussed}}
|
|
critical_actions: {{if needed}}
|
|
|
|
menu: {{The capabilities built}}
|
|
</example>
|
|
|
|
<critical>Save based on agent type:</critical>
|
|
|
|
- If Module Agent: Save to {module_output_file}
|
|
- If Standalone (Simple/Expert): Save to {standalone_output_file}
|
|
|
|
<action>Celebrate the completed agent with enthusiasm</action>
|
|
|
|
<template-output>complete_agent</template-output>
|
|
</step>
|
|
|
|
<step n="7" goal="Optional personalization" optional="true">
|
|
<ask>Would you like to create a customization file? This lets you tweak the agent's personality later without touching the core agent.</ask>
|
|
|
|
<check if="user interested">
|
|
<action>Explain how the customization file gives them a playground to experiment with different personality traits, add new commands, or adjust responses as they get to know the agent better</action>
|
|
|
|
<action>Create customization file at: {config_output_file}</action>
|
|
|
|
<example>
|
|
```yaml
|
|
# 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
|
|
````
|
|
|
|
</example>
|
|
|
|
</check>
|
|
|
|
<template-output>agent_config</template-output>
|
|
</step>
|
|
|
|
<step n="8" goal="Set up the agent's workspace" if="agent_type == 'expert'">
|
|
<action>Guide user through setting up the Expert agent's personal workspace, making it feel like preparing an office with notes, research areas, and data folders</action>
|
|
|
|
<action>Determine sidecar location based on whether build tools are available (next to agent YAML) or not (in output folder with clear structure)</action>
|
|
|
|
<action>CREATE the complete sidecar file structure:</action>
|
|
|
|
**Folder Structure:**
|
|
|
|
```
|
|
{{agent_filename}}-sidecar/
|
|
├── memories.md # Persistent memory
|
|
├── instructions.md # Private directives
|
|
├── knowledge/ # Knowledge base
|
|
│ └── README.md
|
|
└── sessions/ # Session notes
|
|
```
|
|
|
|
**File: memories.md**
|
|
|
|
```markdown
|
|
# {{agent_name}}'s Memory Bank
|
|
|
|
## User Preferences
|
|
|
|
<!-- Populated as I learn about you -->
|
|
|
|
## Session History
|
|
|
|
<!-- Important moments from our interactions -->
|
|
|
|
## Personal Notes
|
|
|
|
<!-- My observations and insights -->
|
|
```
|
|
|
|
**File: instructions.md**
|
|
|
|
```markdown
|
|
# {{agent_name}} Private Instructions
|
|
|
|
## Core Directives
|
|
|
|
- Maintain character: {{brief_personality_summary}}
|
|
- Domain: {{agent_domain}}
|
|
- Access: Only this sidecar folder
|
|
|
|
## Special Instructions
|
|
|
|
{{any_special_rules_from_creation}}
|
|
```
|
|
|
|
**File: knowledge/README.md**
|
|
|
|
```markdown
|
|
# {{agent_name}}'s Knowledge Base
|
|
|
|
Add domain-specific resources here.
|
|
```
|
|
|
|
<action>Update agent YAML to reference sidecar with paths to created files</action>
|
|
<action>Show user the created structure location</action>
|
|
|
|
<template-output>sidecar_resources</template-output>
|
|
</step>
|
|
|
|
<step n="8b" goal="Handle build tools availability">
|
|
<action>Check if BMAD build tools are available in this project</action>
|
|
|
|
<check if="BMAD-METHOD project with build tools">
|
|
<action>Proceed normally - agent will be built later by the installer</action>
|
|
</check>
|
|
|
|
<check if="external project without build tools">
|
|
<ask>Build tools not detected in this project. Would you like me to:
|
|
|
|
1. Generate the compiled agent (.md with XML) ready to use
|
|
2. Keep the YAML and build it elsewhere
|
|
3. Provide both formats
|
|
</ask>
|
|
|
|
<check if="option 1 or 3 selected">
|
|
<action>Generate compiled agent XML with proper structure including activation rules, persona sections, and menu items</action>
|
|
<action>Save compiled version as {{agent_filename}}.md</action>
|
|
<action>Provide path for .claude/commands/ or similar</action>
|
|
</check>
|
|
|
|
</check>
|
|
|
|
<template-output>build_handling</template-output>
|
|
</step>
|
|
|
|
<step n="9" goal="Quality check with personality">
|
|
<action>Run validation conversationally, presenting checks as friendly confirmations while running technical validation behind the scenes</action>
|
|
|
|
**Conversational Checks:**
|
|
|
|
- Configuration validation
|
|
- Command functionality verification
|
|
- Personality settings confirmation
|
|
|
|
<check if="validation issues found">
|
|
<action>Explain the issue conversationally and fix it</action>
|
|
</check>
|
|
|
|
<check if="validation passed">
|
|
<action>Celebrate that the agent passed all checks and is ready</action>
|
|
</check>
|
|
|
|
**Technical Checks (behind the scenes):**
|
|
|
|
1. YAML structure validity
|
|
2. Menu command validation
|
|
3. Build compilation test
|
|
4. Type-specific requirements
|
|
|
|
<template-output>validation_results</template-output>
|
|
</step>
|
|
|
|
<step n="10" goal="Celebrate and guide next steps">
|
|
<action>Celebrate the accomplishment, sharing what type of agent was created with its key characteristics and top capabilities</action>
|
|
|
|
<action>Guide user through how to activate the agent:</action>
|
|
|
|
**Activation Instructions:**
|
|
|
|
1. Run the BMAD Method installer to this project location
|
|
2. Select 'Compile Agents (Quick rebuild of all agent .md files)' after confirming the folder
|
|
3. Call the agent anytime after compilation
|
|
|
|
**Location Information:**
|
|
|
|
- Saved location: {{output_file}}
|
|
- Available after compilation in project
|
|
|
|
**Initial Usage:**
|
|
|
|
- List the commands available
|
|
- Suggest trying the first command to see it in action
|
|
|
|
<check if="expert agent">
|
|
<action>Remind user to add any special knowledge or data the agent might need to its workspace</action>
|
|
</check>
|
|
|
|
<action>Explore what user would like to do next - test the agent, create a teammate, or tweak personality</action>
|
|
|
|
<action>End with enthusiasm in {communication_language}, addressing {user_name}, expressing how the collaboration was enjoyable and the agent will be incredibly helpful for its main purpose</action>
|
|
|
|
<template-output>completion_message</template-output>
|
|
</step>
|
|
|
|
</workflow>
|