Lavern ships with 67 specialists. Sometimes the engagement needs a sixty-eighth. The Agent Builder is an NBA2K-style wizard that lets a user forge a custom agent — identity, face, stats — and dispatch them into workflows alongside the roster.
| Identity | Name, role, jurisdiction, specialisations, voice. The prompt-shaping inputs. |
| Face | DiceBear avatar configurator — picks the visual representation that shows up on agent cards and the team room. |
| Stats | Skill ratings across rubric axes. Drives the same routing logic as the built-in roster profiles. |
The layout is 60/40: wizard steps on the left, persistent live card preview on the right. Every change to identity, face, or stats updates the card in real time, so the user is editing what they will see when the agent dispatches.
calculateOVR() rolls the stats into a single overall
rating. ovrToCostTier() maps OVR to a budget tier — a
higher-rated custom agent costs more to run, the same way roster
seniority drives cost in standard staffing.
On submit, a full-screen card reveal animation plays —
CardRevealOverlay — and the agent is persisted into the
user's custom roster via useCustomAgents. From that
point it appears in team selection the same way native agents do,
with full provenance recorded.
Two share surfaces exist next to the builder:
PublicAgentShareView renders a single custom agent for
a public link, and PublicTeamShareView renders a whole
saved team. Useful for portfolio-style demos and for teams that
want to show their lineup publicly.