Version: 2.0.0
Status: Active
Last Updated: 2025-12-09
The category-based agent system organizes agents into logical categories, making it easier to discover, contribute, and maintain domain-specific agents.
Three-Tier Hierarchy:
.opencode/agent/
โโโ core/ # Core Agents (System-level)
โ โโโ openagent.md # Universal coordinator
โ โโโ opencoder.md # Development specialist
โ
โโโ meta/ # Meta-level Agents
โ โโโ system-builder.md # System architect
โ
โโโ development/ # Development Specialists
โ โโโ frontend-specialist.md
โ โโโ backend-specialist.md
โ โโโ devops-specialist.md
โ โโโ codebase-agent.md
โ
โโโ content/ # Content Creation
โ โโโ copywriter.md
โ โโโ technical-writer.md
โ
โโโ data/ # Data & Analysis
โ โโโ data-analyst.md
โ
โโโ product/ # Product & Strategy
โ โโโ (empty - ready for contributions)
โ
โโโ learning/ # Education & Coaching
โ โโโ (empty - ready for contributions)
โ
โโโ subagents/ # Delegated Specialists
โโโ code/ # Code-related
โโโ core/ # Core workflow
โโโ system-builder/ # System generation
โโโ utils/ # Utilities
# Install all development agents
./install.sh developer
# Install specific profile
./install.sh full
cd evals/framework
# Test core agent
npm run eval:sdk -- --agent=core/openagent
# Test category agent
npm run eval:sdk -- --agent=development/frontend-specialist
# Test subagent
npm run eval:sdk -- --agent=TestEngineer
Core Agents - Direct invocation:
opencode --agent core/openagent
opencode --agent core/opencoder
Category Agents - Direct invocation:
opencode --agent development/frontend-specialist
opencode --agent content/copywriter
Subagents - Via task delegation:
// From core or category agent
task(
subagent_type="TestEngineer",
description="Write tests",
prompt="Create comprehensive tests for the authentication module"
)
core/)Purpose: Essential system-level agents for daily development work
Agents:
core/openagent - Universal task coordinatorcore/opencoder - Development specialistWhen to use: Primary agents for general tasks and development
meta/)Purpose: Meta-level agents for system generation and architecture design
Agents:
meta/system-builder - System architect and generatorWhen to use: Building custom AI systems and agent architectures
development/)Purpose: Software development specialists
Agents:
development/frontend-specialist - React, Vue, modern CSSdevelopment/backend-specialist - APIs, databases, server-sidedevelopment/devops-specialist - CI/CD, infrastructuredevelopment/codebase-agent - Multi-language implementationWhen to use: Domain-specific development tasks
content/)Purpose: Writing and content creation
Agents:
content/copywriter - Marketing copy, brand messagingcontent/technical-writer - Documentation, API docsWhen to use: Content creation and documentation
data/)Purpose: Data analysis and research
Agents:
data/data-analyst - Data analysis, visualization, insightsWhen to use: Data-driven tasks
product/)Purpose: Product management and strategy
Status: Ready for contributions
Potential Agents:
learning/)Purpose: Education and coaching
Status: Ready for contributions
Potential Agents:
Characteristics:
Examples: core/openagent, core/opencoder
Characteristics:
Examples: development/frontend-specialist, content/copywriter
Characteristics:
Examples: TestEngineer, TaskManager
The old flat structure is still supported:
# Old format (still works)
npm run eval:sdk -- --agent=openagent
npm run eval:sdk -- --agent=opencoder
# New format (recommended)
npm run eval:sdk -- --agent=core/openagent
npm run eval:sdk -- --agent=core/opencoder
The eval framework automatically resolves old agent names:
openagent โ core/openagentopencoder โ core/opencodersystem-builder โ meta/system-builderSee ADDING_CATEGORY_AGENT.md for detailed instructions.
.opencode/agent/{category}/{agent-name}.mdevals/agents/{category}/{agent-name}/---
id: agent-name
name: Agent Name
description: Brief description
category: development
type: standard
version: 1.0.0
author: your-name
mode: primary
model: anthropic/claude-sonnet-4-5
temperature: 0.1
tools:
read: true
write: true
edit: true
bash: false
glob: true
grep: true
task: true
dependencies:
context:
- development/patterns
tools: []
tags:
- development
- specialist
---
# Agent Name
You are a specialist in...
## Your Role
[Define role and responsibilities]
## Workflow
1. **Analyze** - Understand the request
2. **Plan** - Create implementation plan
3. **Request Approval** - Present plan to user
4. **Implement** - Execute following patterns
5. **Validate** - Test and verify
# Install
./install.sh developer
# Test
cd evals/framework
npm run eval:sdk -- --agent=development/frontend-specialist
# Use
opencode --agent development/frontend-specialist
# Create agent file
vim .opencode/agent/product/product-manager.md
# Create test structure
mkdir -p evals/agents/product/product-manager/{config,tests}
# Create smoke test
vim evals/agents/product/product-manager/tests/smoke-test.yaml
# Validate
./scripts/registry/validate-agent-structure.sh
# Test
cd evals/framework
npm run eval:sdk -- --agent=product/product-manager
From a category agent:
// Delegate test creation to tester subagent
task(
subagent_type="TestEngineer",
description="Create tests",
prompt="Write comprehensive unit tests for the UserService class"
)
A: Yes! Old names like openagent and opencoder still work and will continue to work until v3.0.0.
A: Choose based on the agent's primary domain:
development/content/data/product/learning/A: No, each agent belongs to one category. If an agent spans multiple domains, choose the primary domain or create a more general agent in core/.
A:
A: Create a test suite in evals/agents/{category}/{agent-name}/ and run:
cd evals/framework
npm run eval:sdk -- --agent={category}/{agent-name}
Last Updated: 2025-12-09
Version: 2.0.0