Personal_AI_Infrastructure Agents

Dynamic agent composition and management system. USE WHEN user says create custom agents, spin up custom agents, specialized agents, OR asks for agent personalities, available traits, agent voices. Handles custom agent creation, personality assignment, voice mapping, and parallel agent orchestration.

install
source · Clone the upstream repo
git clone https://github.com/danielmiessler/Personal_AI_Infrastructure
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/danielmiessler/Personal_AI_Infrastructure "$T" && mkdir -p ~/.claude/skills && cp -r "$T/Releases/v2.5/.claude/skills/Agents" ~/.claude/skills/danielmiessler-personal-ai-infrastructure-agents-7dc275 && rm -rf "$T"
manifest: Releases/v2.5/.claude/skills/Agents/SKILL.md
source content

🚨 MANDATORY: Voice Notification (REQUIRED BEFORE ANY ACTION)

You MUST send this notification BEFORE doing anything else when this skill is invoked.

  1. Send voice notification:

    curl -s -X POST http://localhost:8888/notify \
      -H "Content-Type: application/json" \
      -d '{"message": "Running the WORKFLOWNAME workflow in the Agents skill to ACTION"}' \
      > /dev/null 2>&1 &
    
  2. Output text notification:

    Running the **WorkflowName** workflow in the **Agents** skill to ACTION...
    

This is not optional. Execute this curl command immediately upon skill invocation.

Agents - Custom Agent Composition System

Auto-routes when user mentions custom agents, agent creation, or specialized personalities.

Configuration: Base + User Merge

The Agents skill uses the standard PAI SYSTEM/USER two-tier pattern:

LocationPurposeUpdates With PAI?
Data/Traits.yaml
Base traits, example voicesYes
USER/SKILLCUSTOMIZATIONS/Agents/Traits.yaml
Your voices, prosody, agentsNo

How it works: ComposeAgent.ts loads base traits, then merges user customizations over them. Your customizations are never overwritten by PAI updates.

User Customization Directory

Create your customizations at:

~/.claude/skills/PAI/USER/SKILLCUSTOMIZATIONS/Agents/
├── Traits.yaml       # Your traits, voices, prosody settings
├── NamedAgents.md    # Your named agent backstories (optional)
└── VoiceConfig.json  # Voice server configuration (optional)

Voice Prosody Settings

Each voice can have prosody settings that control how it sounds. These are passed to ElevenLabs API.

Prosody Parameters

ParameterRangeDefaultEffect
stability
0.0-1.00.5Low = expressive/varied, High = consistent/monotone
similarity_boost
0.0-1.00.75Voice identity preservation
style
0.0-1.00.0Style exaggeration (higher = more dramatic)
speed
0.7-1.21.0Speech rate
use_speaker_boost
booleantrueEnhanced clarity (adds latency)

Example Voice Configuration

In your

USER/SKILLCUSTOMIZATIONS/Agents/Traits.yaml
:

voice_mappings:
  voice_registry:
    # Add a new voice with full prosody settings
    MyCustomVoice:
      voice_id: "your-elevenlabs-voice-id"
      characteristics: ["energetic", "warm", "professional"]
      description: "Custom voice for enthusiastic agents"
      prosody:
        stability: 0.40
        similarity_boost: 0.75
        style: 0.30
        speed: 1.05
        use_speaker_boost: true

    # Override prosody for an existing base voice
    ExampleVoice:
      prosody:
        stability: 0.65
        style: 0.10
        speed: 0.92

Personality → Prosody Guidelines

PersonalitystabilitystylespeedRationale
Skeptical0.600.100.95Measured, precise
Enthusiastic0.350.401.10High energy
Analytical0.650.080.95Clear, structured
Bold0.450.351.05Confident, dynamic
Cautious0.700.050.90Careful, deliberate

Overview

The Agents skill is a complete agent composition and management system:

  • Dynamic agent composition from traits (expertise + personality + approach)
  • Voice mappings with full prosody control
  • Custom agent creation with unique voices
  • Parallel agent orchestration patterns

Workflow Routing

Available Workflows:

  • CREATECUSTOMAGENT - Create specialized custom agents →
    Workflows/CreateCustomAgent.md
  • LISTTRAITS - Show available agent traits →
    Workflows/ListTraits.md
  • SPAWNPARALLEL - Launch parallel agents →
    Workflows/SpawnParallelAgents.md

Route Triggers

CRITICAL: The word "custom" is the KEY trigger for unique agent identities:

User SaysWhat to UseWhy
"custom agents", "create custom agents"ComposeAgent +
general-purpose
Unique personalities, voices, colors
"agents", "launch agents", "bunch of agents"SpawnParallel workflowSame identity, parallel grunt work
"use [named agent]"Named agentPre-defined personality from USER config

NEVER use static agent types (Intern, Architect, Engineer, etc.) for custom agents.

Components

Data

Traits.yaml (

Data/Traits.yaml
) - Base configuration:

  • Core expertise areas: security, technical, research
  • Core personalities: skeptical, analytical, enthusiastic
  • Core approaches: thorough, rapid, systematic
  • Example voice mappings with prosody

Tools

ComposeAgent.ts (

Tools/ComposeAgent.ts
)

  • Dynamic agent composition engine
  • Merges base + user configurations
  • Outputs complete agent prompt with voice settings
# Usage examples
bun run ~/.claude/skills/Agents/Tools/ComposeAgent.ts --task "Review security"
bun run ~/.claude/skills/Agents/Tools/ComposeAgent.ts --traits "security,skeptical,thorough"
bun run ~/.claude/skills/Agents/Tools/ComposeAgent.ts --list
bun run ~/.claude/skills/Agents/Tools/ComposeAgent.ts --output json

JSON output includes:

{
  "name": "Security Expert Skeptical Thorough",
  "voice": "ExampleVoice",
  "voice_id": "YOUR_VOICE_ID_HERE",
  "voice_settings": {
    "stability": 0.70,
    "similarity_boost": 0.85,
    "style": 0.05,
    "speed": 0.95,
    "use_speaker_boost": true
  },
  "prompt": "..."
}

Templates

DynamicAgent.hbs (

Templates/DynamicAgent.hbs
)

  • Handlebars template for dynamic agent prompts
  • Composes: expertise + personality + approach + voice assignment
  • Includes operational guidelines and response format

Architecture

Hybrid Agent Model

TypeDefinitionBest For
Named AgentsPersistent identities defined in USER configRecurring work, relationships
Dynamic AgentsTask-specific specialists composed from traitsOne-off tasks, parallel work

The Agent Spectrum

┌─────────────────────────────────────────────────────────────────────┐
│   NAMED AGENTS          HYBRID USE          DYNAMIC AGENTS          │
│   (Relationship)        (Best of Both)      (Task-Specific)         │
├──────────────────────────────────────────────────────────────────────┤
│ Defined in USER     "Security expert       Ephemeral specialist     │
│ NamedAgents.md      with [named agent]'s   composed from traits     │
│                      skepticism"                                     │
└─────────────────────────────────────────────────────────────────────┘

Examples

Example 1: Create custom agents

User: "Spin up 3 custom security agents"
→ Invokes CREATECUSTOMAGENT workflow
→ Runs ComposeAgent 3 times with DIFFERENT trait combinations
→ Each agent gets unique personality + matched voice + prosody
→ Launches agents in parallel

Example 2: List available traits

User: "What agent personalities can you create?"
→ Invokes LISTTRAITS workflow
→ Shows merged base + user traits
→ Displays voices with prosody settings

Extending the Skill

Adding Your Own Traits

In

USER/SKILLCUSTOMIZATIONS/Agents/Traits.yaml
:

# Add new expertise areas
expertise:
  marketing:
    name: "Marketing Expert"
    description: "Brand strategy, campaigns, market positioning"
    keywords:
      - marketing
      - brand
      - campaign
      - positioning

# Add new personalities
personality:
  visionary:
    name: "Visionary"
    description: "Forward-thinking, sees the big picture"
    prompt_fragment: |
      You think in terms of future possibilities and long-term vision.
      Connect today's work to tomorrow's potential.

Adding Named Agents

In

USER/SKILLCUSTOMIZATIONS/Agents/NamedAgents.md
:

## Alex - The Strategist

**Voice ID:** your-voice-id
**Prosody:** stability: 0.55, style: 0.20, speed: 0.95

Alex is a strategic thinker who sees patterns others miss...

Model Selection

Task TypeModelSpeed
Grunt work, simple checks
haiku
10-20x faster
Standard analysis, research
sonnet
Balanced
Deep reasoning, architecture
opus
Maximum quality

Version History

  • v2.0.0 (2026-01): Restructured to base + user merge pattern, added prosody support
  • v1.0.0 (2025-12): Initial creation