Primary agents
Primary agents are the agents you select for normal OpenCode collaboration. They share the same core safety and configuration blocks, but each one is tuned for a different style of work.
Inventory
| Professional name | Mythic role name | Stable routing key | Model handler | Best for |
|---|---|---|---|---|
alpha |
atlas |
primary/alpha |
primary |
First-line development help, architecture discussion, debugging, security review, and practical consultation. |
architect |
daedalus |
primary/architect |
primary |
Architecture, RFCs, decomposition, system design, and solution shaping. |
developer |
hephaestus |
primary/developer |
primary |
Focused implementation with verification discipline. |
orchestrator |
sisyphus |
primary/orchestrator |
coordinator |
Longer-running coordination, decomposition, and execution planning. |
Persona and display names
The primary.persona setting changes the role framing used in primary-agent prompts:
"professional"usesalpha,architect,developer, andorchestratorframing."mythic"usesatlas,daedalus,hephaestus, andsisyphusframing.
The primary.useRoleName setting controls whether display names follow the persona. Keep it false if you want stable visible names in the UI.
See Primary-agent configuration for the full set of primary.* fields.
Model routing
For model routing, prefer stable routing keys in models.agents:
{
"models": {
"agents": {
"primary/alpha": "@provider/main",
"primary/orchestrator": "@provider/coordinator"
}
}
}
Most users should route primary agents through handlers instead:
{
"models": {
"handlers": {
"primary": "@provider/main",
"coordinator": "@provider/main"
}
}
}
Use per-agent overrides only when one primary agent needs a different model from the others.
What is not a primary agent
beta runs in primary mode internally so /beta can inspect the current session, but it is not a selectable primary agent. It is a hidden slash-command agent with its own routing behavior. See Slash-command agents.