# Roles explained

A role is the function an agent performs — and a routing tag, never a model name. Foxora resolves role × tier into a concrete model for you, with provider fallback, so you design with functions and let the platform pick the brains.

## A role is a tag, not a model

You never write gpt-4 or claude-x on an agent. You pick a role — what the agent is for — and Foxora maps that role, at the crew’s tier, to the best available model with a fallback chain behind it. When a better model ships, your agents get it without an edit. Models change in the gateway; your agent design doesn’t.

> Why this mattersPinning a raw model name freezes an agent to one vendor’s current offering. Routing by role keeps the agent on the best brain for its job over time, and lets the same agent run cheaper or stronger just by changing its tier. See Models & tiers.

## The built-in roles

Every agent picks exactly one role. Foxora ships a core set, each tuned for a distinct function:

- Workhorse — the generalist orchestrator loop; the agent at the center of your workspace that plans, acts, and delegates.
- Coding — reads the real code, makes the smallest correct change, and runs to verify.
- Reasoner — hard architecture, trade-offs, and deep debugging; the agent you want for the genuinely hard calls.
- Research — searches the live web, reads primary sources, synthesizes, and cites.
- Scout — a fast, strictly read-only reader that answers where / what / how-it’s-wired for the loop.
- Web search — live web search and page fetch for current facts, docs, prices, and news.
- Vision — analyzes images, screenshots, mockups, diagrams, and charts.
- Utility — cheap, fast triage: summarize, extract, classify, reformat.

## Roles carry doctrine, instructions layer on top

A role gives the agent more than a model. It carries Foxora’s managed doctrine — the operating habits for that function (a Scout never writes; a Reasoner shows its trade-offs). The editor shows that doctrine read-only; your instructions are an addendum that personalizes the agent without rewriting the function.

## Custom roles

Beyond the core set, your workspace can define its own roles in the Roles registry — same idea, a named function that resolves to a managed model per tier. Any agent can adopt one from the Role picker.

> Override only when you mustYou can pin a specific model on an individual agent — managed or your own via BYOK — which overrides the role’s managed routing. Reach for it sparingly; the whole point of roles is that you don’t have to.
