1
List the model calls on one path
Pick your highest-volume path and write down every call it makes. Most teams
find more than they expected, because retries, guardrails and formatting
passes are easy to forget.For a support reply: classify the intent, fetch the account, draft the reply,
check the tone.
2
Name each one
One name per job. A name that survives a prompt rewrite.
Resist the urge to encode the tenant or the model. Tenants go in
user.3
Label them
model as it was if you want zero behaviour change; the labels work
either way. Only auto lets a task get cheaper later.4
Wait, then read the split
Give it enough traffic to be representative, usually a week. We report spend
per task.The result is almost always lopsided. A guardrail call that nobody thought
about turns out to be a third of the bill, because it runs on every turn while
the expensive-looking reasoning call runs on one turn in twenty.
What good looks like
One task dominates the bill
One task dominates the bill
Ideal. Take it to Write an eval contract
and route it down.
Spend is spread evenly across tasks
Spend is spread evenly across tasks
Usually a sign the split is too fine. Merge tasks that share an input shape
and a definition of correct.
One task has huge cost variance per call
One task has huge cost variance per call
Still too broad. Something inside it branches into genuinely different jobs.
Split again.
Next: write an eval contract
Nothing can be routed until correct is defined.