Files
BMAD-METHOD/bmad-core/tasks/create-agent.md
2025-06-09 19:19:49 -05:00

4.1 KiB

Create Agent Task

This task helps you create a new BMAD agent for web platforms (Gemini, ChatGPT, etc.).

Note for User-Created Agents: If you're creating a custom agent for your own use (not part of the core BMAD system), prefix the agent ID with a period (e.g., .data-analyst) to ensure it's gitignored and won't conflict with repository updates.

Process

Follow these steps to create a new agent:

1. Gather Basic Information

Ask the user for:

  • Agent ID: A short, lowercase identifier (e.g., data-analyst, security-expert)
  • Agent Name: The character name (e.g., "Elena", "Marcus")
  • Title: Professional title (e.g., "Data Analyst", "Security Expert")
  • Description: A brief description of the agent's role and primary focus

2. Define Personality and Expertise

Ask about:

  • Personality traits: How should this agent behave? (professional, friendly, detail-oriented, etc.)
  • Communication style: How do they speak? (formal, casual, technical, empathetic)
  • Expertise areas: What are they exceptionally good at?
  • Years of experience: How senior are they in their role?
  • Motivations: What drives them to excel?

3. Identify Capabilities

Determine what the agent can do:

  • Existing tasks: Which existing tasks from /bmad-core/tasks/ should this agent know?
  • New tasks needed: Does this agent need any specialized tasks that don't exist yet?
  • Templates used: Which document templates will this agent work with?
  • Checklists: Which quality checklists apply to this agent's work?

4. Create the Persona File

Create /bmad-core/personas/{agent-id}.md with this structure: (For user-created agents, use /bmad-core/personas/.{agent-id}.md)

# {Agent Name} - {Title}

## Character Profile

**Name:** {Agent Name}
**Title:** {Title}
**Experience:** {Years} years in {field}

## Personality

{Describe personality traits, communication style, and approach to work}

## Core Expertise

{List main areas of expertise and specialization}

## Responsibilities

{List key responsibilities in bullet points}

## Working Style

{Describe how they approach problems, collaborate, and deliver results}

## Motivations

{What drives them to excel in their role}

## Catchphrases

{Optional: Any signature phrases or ways of speaking}

5. Create the Agent Configuration

Create /agents/{agent-id}.yml with this structure: (For user-created agents, use /agents/.{agent-id}.yml)

agent:
  id: { agent-id }
  name: { Agent Name }
  title: { Title }
  description: >-
    {Full description of the agent's role and value}
  persona: { agent-id }
  customize: >-
    {Any specific behavioral customizations}

dependencies:
  tasks:
    - { list of task IDs }
  templates:
    - { list of template IDs }
  checklists:
    - { list of checklist IDs }
  data:
    - { list of data file IDs }
  utils:
    - template-format

6. Create Any New Tasks

If new tasks were identified, create them in /bmad-core/tasks/{task-name}.md (For user-created tasks, use /bmad-core/tasks/.{task-name}.md)

7. Test and Validate

  1. Run npm run validate to check configuration
  2. Run npm run build:agent -a {agent-id} to build the agent
  3. Review the generated output in /dist/agents/{agent-id}.txt

Example Questions to Ask

  1. "What will this agent be called? (ID like 'data-analyst')"
  2. "What's their character name? (like 'Elena')"
  3. "What's their professional title?"
  4. "Describe their main role in 2-3 sentences."
  5. "What personality traits should they have?"
  6. "How many years of experience do they have?"
  7. "What existing tasks should they know? (e.g., create-doc-from-template, execute-checklist)"
  8. "Do they need any specialized tasks that don't exist yet?"
  9. "Which document templates will they use?"
  10. "What motivates them in their work?"

Important Notes

  • Keep personas engaging but professional
  • Ensure all referenced tasks, templates, and checklists exist
  • Web agents can be more detailed than IDE agents (no size constraints)
  • Consider how this agent will collaborate with existing team members
  • Run validation after creating to catch any issues