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.
You MUST send this notification BEFORE doing anything else when this skill is invoked.
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 &
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.
Auto-routes when user mentions custom agents, agent creation, or specialized personalities.
The Agents skill uses the standard PAI SYSTEM/USER two-tier pattern:
| Location | Purpose | Updates With PAI? |
|----------|---------|-------------------|
| Data/Traits.yaml | Base traits, example voices | Yes |
| USER/SKILLCUSTOMIZATIONS/Agents/Traits.yaml | Your voices, prosody, agents | No |
How it works: ComposeAgent.ts loads base traits, then merges user customizations over them. Your customizations are never overwritten by PAI updates.
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)
Each voice can have prosody settings that control how it sounds. These are passed to ElevenLabs API.
| Parameter | Range | Default | Effect |
|-----------|-------|---------|--------|
| stability | 0.0-1.0 | 0.5 | Low = expressive/varied, High = consistent/monotone |
| similarity_boost | 0.0-1.0 | 0.75 | Voice identity preservation |
| style | 0.0-1.0 | 0.0 | Style exaggeration (higher = more dramatic) |
| speed | 0.7-1.2 | 1.0 | Speech rate |
| use_speaker_boost | boolean | true | Enhanced clarity (adds latency) |
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 | stability | style | speed | Rationale | |-------------|-----------|-------|-------|-----------| | Skeptical | 0.60 | 0.10 | 0.95 | Measured, precise | | Enthusiastic | 0.35 | 0.40 | 1.10 | High energy | | Analytical | 0.65 | 0.08 | 0.95 | Clear, structured | | Bold | 0.45 | 0.35 | 1.05 | Confident, dynamic | | Cautious | 0.70 | 0.05 | 0.90 | Careful, deliberate |
The Agents skill is a complete agent composition and management system:
Available Workflows:
Workflows/CreateCustomAgent.mdWorkflows/ListTraits.mdWorkflows/SpawnParallelAgents.mdCRITICAL: The word "custom" is the KEY trigger for unique agent identities:
| User Says | What to Use | Why |
|-----------|-------------|-----|
| "custom agents", "create custom agents" | ComposeAgent + general-purpose | Unique personalities, voices, colors |
| "agents", "launch agents", "bunch of agents" | SpawnParallel workflow | Same identity, parallel grunt work |
| "use [named agent]" | Named agent | Pre-defined personality from USER config |
NEVER use static agent types (Intern, Architect, Engineer, etc.) for custom agents.
Traits.yaml (Data/Traits.yaml) - Base configuration:
ComposeAgent.ts (Tools/ComposeAgent.ts)
# 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": "..."
}
DynamicAgent.hbs (Templates/DynamicAgent.hbs)
| Type | Definition | Best For | |------|------------|----------| | Named Agents | Persistent identities defined in USER config | Recurring work, relationships | | Dynamic Agents | Task-specific specialists composed from traits | One-off tasks, parallel work |
┌─────────────────────────────────────────────────────────────────────┐
│ 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" │
└─────────────────────────────────────────────────────────────────────┘
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
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.
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...
| Task Type | Model | Speed |
|-----------|-------|-------|
| Grunt work, simple checks | haiku | 10-20x faster |
| Standard analysis, research | sonnet | Balanced |
| Deep reasoning, architecture | opus | Maximum quality |
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer