Agent skill
Agents
Dynamic agent composition. USE WHEN custom agents, agent personalities, traits, voices.
Install this agent skill to your Project
npx add-skill https://github.com/Steffen025/pai-opencode/tree/main/.opencode/skills/Agents
SKILL.md
Agents - Custom Agent Composition System
Auto-routes when user mentions custom agents, agent creation, or specialized personalities.
Customization
Before executing, check for user customizations at:
~/.opencode/PAI/USER/SKILLCUSTOMIZATIONS/Agents/
If this directory exists, load and apply:
PREFERENCES.md- Named agent roster summaryVoiceConfig.json- Voice server configuration with ElevenLabs voice IDsNamedAgents.md- Full agent backstories and character definitions (optional)
These define user-specific named agents with persistent identities. If the directory does not exist, use only dynamic agent composition from traits.
Overview
The Agents skill is a complete agent composition and management system. It consolidates all agent-related infrastructure:
- Dynamic agent composition from traits (expertise + personality + approach)
- Personality definitions and voice mappings
- Custom agent creation with unique voices
- Parallel agent orchestration patterns
Voice Notification
When executing a workflow, do BOTH:
-
Send voice notification:
bashcurl -s -X POST http://localhost:8888/notify \ -H "Content-Type: application/json" \ -d '{"message": "Running the WORKFLOWNAME workflow from the Agents skill"}' \ > /dev/null 2>&1 & -
Output text notification:
Running the **WorkflowName** workflow from the **Agents** skill...
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
Examples
Example 1: Create custom agents for analysis
User: "Spin up 5 custom science agents to analyze this data"
→ Invokes CREATECUSTOMAGENT workflow
→ Runs AgentFactory 5 times with DIFFERENT trait combinations
→ Each agent gets unique personality + matched voice
→ Launches agents in parallel with model: "sonnet"
Example 2: List available traits
User: "What agent personalities can you create?"
→ Invokes LISTTRAITS workflow
→ Displays expertise (security, legal, finance, etc.)
→ Shows personality types (skeptical, enthusiastic, analytical, etc.)
→ Lists approach styles (thorough, rapid, systematic, etc.)
Example 3: Spawn parallel researchers
User: "Launch 10 agents to research these companies"
→ Invokes SPAWNPARALLEL workflow
→ Creates 10 Intern agents (generic, same voice)
→ Uses model: "haiku" for speed
→ Launches spotcheck agent after completion
Architecture
Hybrid Agent Model
The system uses two types of agents:
| Type | Definition | Best For |
|---|---|---|
| Named Agents | Persistent identities with backstories (Remy, Ava, Marcus) | Recurring work, voice output, relationships |
| Dynamic Agents | Task-specific specialists composed from traits | One-off tasks, novel combinations, parallel work |
The Agent Spectrum
┌─────────────────────────────────────────────────────────────────────┐
│ NAMED AGENTS HYBRID USE DYNAMIC AGENTS │
│ (Relationship) (Best of Both) (Task-Specific) │
├──────────────────────────────────────────────────────────────────────┤
│ Remy, Ava, Marcus "Security expert Ephemeral specialist │
│ with Johannes's composed from traits │
│ skepticism" │
└─────────────────────────────────────────────────────────────────────┘
Route Triggers
CRITICAL: The word "custom" is the KEY trigger:
| User Says | What to Use | Why |
|---|---|---|
| "custom agents", "create custom agents" | AgentFactory | Unique prompts + unique voices |
| "agents", "launch agents", "bunch of agents" | Generic Interns | Same voice, parallel grunt work |
| "use Remy", "get Ava to" | Named agent | Pre-defined personality |
Other triggers:
- "agent personalities", "available traits" → LISTTRAITS workflow
- "specialized agents", "expert in X" → CREATECUSTOMAGENT workflow
- "parallel agents", "spawn 5 agents" → SPAWNPARALLEL workflow
Components
Data
Traits.yaml (Data/Traits.yaml)
- Expertise areas: security, legal, finance, medical, technical, research, creative, business, data, communications
- Personality dimensions: skeptical, enthusiastic, cautious, bold, analytical, creative, empathetic, contrarian, pragmatic, meticulous
- Approach styles: thorough, rapid, systematic, exploratory, comparative, synthesizing, adversarial, consultative
- Voice mappings: Trait combinations → ElevenLabs voices
- Voice registry: 45+ voices with characteristics
Templates
DynamicAgent.hbs (Templates/DynamicAgent.hbs)
- Handlebars template for dynamic agent prompts
- Composes: expertise + personality + approach + voice assignment
- Includes operational guidelines and response format
Tools
AgentFactory.ts (Tools/AgentFactory.ts)
- Dynamic agent composition engine
- Infers traits from task description
- Maps trait combinations to appropriate voices
- Outputs complete agent prompt ready for Task tool
# Usage examples
bun run ~/.opencode/skills/Agents/Tools/AgentFactory.ts --task "Review security architecture"
bun run ~/.opencode/skills/Agents/Tools/AgentFactory.ts --traits "legal,skeptical,meticulous"
bun run ~/.opencode/skills/Agents/Tools/AgentFactory.ts --list
Personalities
AgentPersonalities.md (AgentPersonalities.md)
- Named agent definitions with full backstories
- Voice settings and personality traits
- Character development and communication styles
- JSON configuration for voice server
Named Agents:
- Jamie - Expressive eager buddy
- Rook Blackburn (Pentester) - Reformed grey hat
- Priya Desai (Artist) - Aesthetic anarchist
- Aditi Sharma (Designer) - Design school perfectionist
- Dev Patel (Intern) - Brilliant overachiever
- Ava Chen (Perplexity) - Investigative analyst
- Ava Sterling (Claude) - Strategic sophisticate
- Alex Rivera (Gemini) - Multi-perspective analyst
- Marcus Webb (Engineer) - Battle-scarred leader
- Serena Blackwood (Architect) - Academic visionary
- Emma Hartley (Writer) - Technical storyteller
Integration Points
Voice Server (~/.opencode/VoiceServer/)
- Reads agent personality configuration from AgentPersonalities.md
- Maps agent names to ElevenLabs voice IDs
- Delivers personality-driven voice notifications
PAI Skill (~/.opencode/PAI/)
- References Agents skill for custom agent creation
- Documents the custom vs generic distinction
- Includes agent creation in delegation patterns
Usage Patterns
For Users (Natural Language)
Users talk naturally:
- "I need a legal expert to review this contract" → System composes legal + analytical + thorough agent
- "Spin up 5 custom science agents" → System uses AgentFactory 5 times with different traits
- "Launch agents to research these companies" → System spawns generic Intern agents
- "Get me someone skeptical about security" → System composes security + skeptical + adversarial agent
Internal Process
When user says "custom agents", the assistant:
- Invokes CREATECUSTOMAGENT workflow
- Runs AgentFactory for EACH agent with DIFFERENT trait combinations
- Gets unique prompt + voice ID for each
- Launches agents using Task tool with the composed prompt
- Each agent has a distinct personality-matched voice
Example internal execution:
# User: "Create 3 custom research agents"
# Agent 1
bun run AgentFactory.ts --traits "research,enthusiastic,exploratory"
# Output: Prompt with voice "Jeremy" (energetic)
# Agent 2
bun run AgentFactory.ts --traits "research,skeptical,thorough"
# Output: Prompt with voice "George" (intellectual)
# Agent 3
bun run AgentFactory.ts --traits "research,analytical,systematic"
# Output: Prompt with voice "Drew" (professional)
# Launch all 3 with Task tool
Task({ prompt: <agent1_prompt>, subagent_type: "Intern", model: "sonnet" })
Task({ prompt: <agent2_prompt>, subagent_type: "Intern", model: "sonnet" })
Task({ prompt: <agent3_prompt>, subagent_type: "Intern", model: "sonnet" })
Model Selection
Always specify the appropriate model:
| Task Type | Model | Speed Multiplier |
|---|---|---|
| Grunt work, simple checks | haiku |
10-20x faster |
| Standard analysis, research | sonnet |
Balanced |
| Deep reasoning, architecture | opus |
Maximum intelligence |
Rule: Parallel agents especially benefit from haiku for speed.
Related Skills
- CORE - Main system identity and delegation patterns
- VoiceNarration - Voice output for content (separate from agent notifications)
- Development - Uses Engineer and Architect agents
Version History
- v1.0.0 (2025-12-16): Initial creation - consolidated all agent infrastructure into discrete skill
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
PAI
USMetrics
US metrics, economic indicators and data tracking. USE WHEN US metrics, American data, statistics, demographics, GDP, inflation, unemployment, economic metrics, gas prices.
Research
Comprehensive research and content extraction. USE WHEN research, investigate, extract wisdom, analyze content. For OSINT use OSINT skill.
Investigation
Investigation and research skills. USE WHEN investigate, research person, company intel, due diligence, OSINT, background check.
OSINT
Open source intelligence gathering. USE WHEN OSINT, due diligence, background check, research person, company intel, investigate. SkillSearch('osint') for docs.
PrivateInvestigator
Ethical people-finding. USE WHEN find person, locate, reconnect, people search, skip trace. SkillSearch('privateinvestigator') for docs.
Didn't find tool you were looking for?