一键导入
agents
Dynamic agent composition. USE WHEN custom agents, agent personalities, traits, voices.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Dynamic agent composition. USE WHEN custom agents, agent personalities, traits, voices.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Personal AI Infrastructure core. The authoritative reference for how PAI works.
Life OS and project management. USE WHEN life goals, projects, dependencies, TELOS, books, movies, tracking.
Security assessment and intelligence. USE WHEN recon, reconnaissance, port scan, subdomain, DNS, WHOIS, web assessment, pentest, vulnerability, security scan, prompt injection, jailbreak, LLM security, security news, breaches, annual reports, threat landscape.
Web security assessment. USE WHEN web assessment, pentest, security testing, vulnerability scan. SkillSearch('webassessment') for docs.
PowerPoint processing. USE WHEN pptx, PowerPoint, slides. SkillSearch('pptx') for docs.
Utility and helper skills. USE WHEN aphorisms, quotes, browser automation, Cloudflare, create CLI, build CLI, create skill, process documents, PDF, Word, Excel, evaluations, evals, fabric patterns, PAI upgrade, parser, prompting, templates.
| name | Agents |
| description | Dynamic agent composition. USE WHEN custom agents, agent personalities, traits, voices. |
Auto-routes when user mentions custom agents, agent creation, or specialized personalities.
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.
The Agents skill is a complete agent composition and management system. It consolidates all agent-related infrastructure:
When executing a workflow, do BOTH:
Send voice notification:
curl -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...
Available Workflows:
Workflows/CreateCustomAgent.mdWorkflows/ListTraits.mdWorkflows/SpawnParallelAgents.mdExample 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
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 |
┌─────────────────────────────────────────────────────────────────────┐
│ 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" │
└─────────────────────────────────────────────────────────────────────┘
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:
Traits.yaml (Data/Traits.yaml)
DynamicAgent.hbs (Templates/DynamicAgent.hbs)
AgentFactory.ts (Tools/AgentFactory.ts)
# 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
AgentPersonalities.md (AgentPersonalities.md)
Named Agents:
Voice Server (~/.opencode/VoiceServer/)
PAI Skill (~/.opencode/PAI/)
Users talk naturally:
When user says "custom agents", the assistant:
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" })
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.