AI Engineer World's Fair 2026
Preferences Over Benchmarks: Model Routing — Archana Kamath & Tyler Gillam, DigitalOcean
Read the talk
Preferences Over Benchmarks: Routing Models Around the Request
Archana Kamath and Tyler Gillam explain how task definitions, model pools, failover policies, and workload evaluations turn model selection into an adjustable engineering decision—and demonstrate the cost tradeoff in a coding agent.
From a talk by Archana Kamath and Tyler Gillam
At a glance
Ideas worth remembering
Select models against the request’s task, prompts, tools, budget, latency needs, and user preferences. A leaderboard does not represent that full operating context.
Task matching and model-pool selection are separate controls. Manual ranking expresses a preferred model with failover; the fastest policy selects using approximately 30 minutes of recent performance.
The reported evaluation trades 90% correctness for the router against 95% for Opus, with fewer tokens and faster responses. Missing judging and sample details prevent treating the scores as statistically equivalent.
The coding demo reports 8 versus 25 cents after app generation and 14 versus 44 cents after tests and documentation. Those are session-specific savings; output quality was assessed subjectively, and the Opus-configured baseline sometimes used Haiku.
Routing becomes an improvement process when builders evaluate their own workloads and adjust the configuration. Caching and personalization are proposed additional layers for reducing repeated spending and adapting to team preferences.
Why the one-model habit breaks
Archana Kamath opens with a challenge to a familiar selection strategy: choosing the model at the top of a benchmark. At DigitalOcean, she and Tyler Gillam work on managed agent orchestration and inference, and the router sits within the inference engine. Their argument is that choosing a model once for an entire application leaves important decisions unresolved at the level of individual requests.
She gives three reasons to reconsider that habit: cost, fit, and risk. Paying frontier-model rates for work a smaller model can handle wastes budget. Depending on one model also makes its availability a product dependency: when it goes down or degrades, an application without an alternative has no failover. Routing therefore addresses both the economics of ordinary requests and the resilience of production traffic.
Kamath calls model orchestration the new FinOps. In her comparison, cloud cost optimization took about 15 years to mature into a discipline, while the pressure to manage inference spending is arriving in months. The operational question is how to allocate expensive capabilities where they justify their cost.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Define what makes a model right for this request
Kamath illustrates request-level fit with a spectrum of tasks. Classification and labeling may work well on a small open model. Inline code completion places particular pressure on speed. Code generation and bug fixing may be suitable for a mid-sized open-weight model, while accuracy-critical code review and security work may justify a frontier model. These are conditional examples of allocating capability, rather than a fixed ranking that settles every workload.
The selection criteria extend beyond the task label. A model operates with system prompts and tools that shape how it completes the work. The application also has a spending limit, a tolerance for latency, and end users with particular expectations. A public leaderboard cannot encode that entire combination for a developer. The useful selection question is therefore which model meets this request’s requirements within this application’s constraints.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Make routing adjustable and evaluable
Gillam begins with a problem in automatic routing: a router can feel like a black box when it selects poorly and the builder has no way to improve that choice. He describes an architecture in which requests pass through an open proxy planner and a purpose-built routing model, both presented as open source. The builder supplies context about cost, latency, quality, preferred models, or hardware, and the router uses that context to select a model for each request.
The routing model performs a specialized selection task before the chosen model answers. Gillam reports routing decisions in under 200 milliseconds, with no extra charge to customers. He also says internal evaluations found it better at routing tasks than GPT-5 series models at a fraction of their latency. That claim concerns routing decisions themselves; it does not establish superiority at the downstream tasks being assigned.
Customization starts with natural-language task descriptions and preferences for cost and latency. Builders can add decision-tree rules, begin with presets, and change the configuration. Gillam makes evaluation part of the operating loop: route requests, evaluate them on the builder’s own workload, adjust the routing setup, and feed those changes back in. The value of customization is the ability to act on measured failures or tradeoffs.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Separate task matching from model selection
In the DigitalOcean cloud console, Gillam opens a customized software-engineering preset. Its tasks include bug fixing, code generation, and test writing. A task can have more than one model assigned to it, which separates two decisions: identifying the kind of request and selecting a model from the pool configured for that task.
For code generation, he describes a manually ranked pool containing GLM 5.2 and GPT 5.2. His preference is to use GLM 5.2 whenever it is available and fail over to GPT 5.2 if it fails. Manual ranking expresses a preferred provider order while retaining an alternative for failure.
Bug fixing uses a different selection policy: fastest. Once a request matches that task, the router chooses whichever model in its pool has been fastest over approximately the last 30 minutes. This policy adapts selection to recent observed performance. It is a different commitment from manual ranking: recent speed determines the choice rather than a fixed first preference.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Move from plausible choices to measured tradeoffs
The playground compares direct Opus requests with the software-engineering router. A request for a basic Fibonacci function matches the code-snippets task and uses its configured model. Asking to optimize the function matches code performance optimization and selects GPT-5.2. Asking for unit tests matches test writing and code verification. The sequence illustrates how closely related requests in one coding conversation can require different task assignments.
Gillam describes the routed responses as faster and cheaper, but explicitly distinguishes that impression from proof of quality. He then presents a previously run evaluation: the router scores 90% correctness and Opus scores 95%. The router also uses significantly fewer tokens and returns faster, although he does not give numerical token counts or response times in this comparison.
The reported correctness difference is five percentage points. Gillam characterizes it as roughly within the judge’s margin of error, but does not supply the sample size, judging procedure, or uncertainty calculation needed to assess that assertion. The result supports examining a quality–efficiency tradeoff on this evaluation; it does not establish equivalent correctness or a general performance guarantee.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Route a coding agent’s individual requests
Gillam next runs two coding-agent terminals with the same request: build a spinning wheel app. The left terminal is configured with Opus; the right sends requests to the software-engineering router. A custom observability panel reports token usage, selected models, task assignments, and accumulating cost in real time. This makes the routing decisions visible across the agent’s work rather than only at the initial user prompt.
The routed run begins matching requests to code generation. Gillam contrasts that task-based selection with sending requests to a premium model throughout the baseline run, but qualifies the comparison: the coding tool sometimes routes to Haiku on its own. The baseline is therefore an Opus-configured workflow with some tool-level routing, rather than a demonstrated case in which every underlying call uses exactly one model.
The router finishes after using two models, and Opus finishes at a similar time. Gillam opens both applications and prefers the routed result, while calling the comparison a subjective check. His inspection does not establish equivalent functional correctness. The concrete accounting result is clearer: the routed session has spent 8 cents, compared with 25 cents for the Opus session—approximately a threefold cost difference at that point.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Follow the cost through tests and documentation
The next request asks both agents to write unit tests. On the routed side, it matches test writing and code verification and selects the model configured for that task. Gillam then asks for documentation in a README. The demonstration now spans several stages of a software task, showing how a router can change model assignments as the requested work changes.
After the README is created, total session cost is 14 cents for the router and 44 cents for Opus. Gillam describes quality as still similar and latency as optimized per step. These totals demonstrate lower accumulated spending in this run; the accompanying quality claim remains his assessment, without a reported functional test score for the completed applications, tests, or documentation.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Build evaluation, caching, and personalization above routing
Returning to the architecture, Kamath identifies the routing model as a custom mixture of experts built specifically for routing. She reiterates the under-200-millisecond decision time and describes adoption as requiring zero application code changes, with routing included at no extra charge and the routing model open sourced. The latency figure refers to selecting a model per request, rather than the total time needed for that model to finish an answer.
Routing is the foundation for three further capabilities. Evaluations test whether the selected models work for the application’s use case. Caching avoids paying repeatedly for the same answer. Personalization is intended to let the router learn what works for a team over time. Each addresses a different source of inefficiency or mismatch: unsuitable selection, repeated computation, or preferences that a generic configuration does not capture.
Kamath frames these layers as a continuous improvement loop: route and evaluate more of the workload, then improve how the router serves it. She does not describe a concrete personalization training procedure or cache policy here. The closing principle is that benchmarks provide only part of the selection evidence; application preferences supply the rest, and an open routing layer should preserve the ability to choose across models and stacks.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Read the complete timestamped transcript
- 0:01
[music]
- 0:12
>> Hello everyone.
- 0:14
So, preferences over benchmarks.
- 0:17
The talk today is about model routing
- 0:20
and specifically why the way most people
- 0:23
think about picking a model, which
- 0:25
usually is chasing, you know, to the top
- 0:26
of a benchmark, is actually the wrong
- 0:29
instinct.
- 0:32
I'm Archana, VP of engineering for
- 0:34
inference engine and AI infrastructure
- 0:36
at DigitalOcean. And I'll be joined by
- 0:38
Tyler, who built parts of the router and
- 0:41
will actually do a live demo for us
- 0:42
today.
- 0:44
We both work on the managed agent
- 0:45
orchestration and inference engine
- 0:47
products at DigitalOcean.
- 0:52
So, you may know DigitalOcean as
- 0:54
droplets, databases, and app platform.
- 0:57
All of that is true. We are also the AI
- 0:59
native cloud.
- 1:01
This is five integrated layers, starting
- 1:04
from infrastructure all the way up to
- 1:06
the managed agents, with the inference
- 1:08
engine right in the middle.
- 1:10
And that's why we are here talking about
- 1:12
inference router. The routing lives in
- 1:14
the inference engine, and if you want to
- 1:16
know more about our stack and the full
- 1:17
story, please come find us at the booth.
- 1:24
So, everybody is reaching out for the
- 1:25
model routing. And let's look at three
- 1:28
reasons why the three reasons that are
- 1:30
breaking the one model habit for most
- 1:32
users.
- 1:33
The first one I want to talk about is
- 1:35
cost.
- 1:36
Spend is exploding, and even companies
- 1:38
like Walmart, Uber, Microsoft, they're
- 1:41
actively capping usage to control the
- 1:43
inference bills.
- 1:46
Second one is fit.
- 1:48
One model for every task is likely an
- 1:50
overkill.
- 1:51
You're essentially paying frontier rates
- 1:53
for a work that a much smaller model
- 1:55
will be able to handle really well.
- 1:58
And the third one, which for me is the
- 1:59
most important one, is the risk.
- 2:02
The risk associated with one single
- 2:04
model.
- 2:05
Models can go down, and if you bet your
- 2:07
entire product and production on one
- 2:10
model, you have no failover when
- 2:12
something degrades.
- 2:16
And model orchestration is actually the
- 2:18
new FinOps.
- 2:20
As you all know, cloud cost optimization
- 2:23
took us about 15 years for it to
- 2:25
actually become a real good discipline
- 2:27
and for companies to get it right.
- 2:29
This one actually is arriving in months
- 2:31
and not years. And here's the premise
- 2:33
that I think everybody gets wrong about
- 2:35
this.
- 2:37
We all think of like what is the best
- 2:39
model for a job. Here's the thing. There
- 2:42
is no single best model.
- 2:45
The right one depends on the actual
- 2:47
request.
- 2:48
For example, if you're doing
- 2:50
classification and labeling,
- 2:52
a small open model may very well work
- 2:54
really well for you and will give you
- 2:56
really good cost optimizations.
- 2:58
However, if you're running code
- 3:00
completion in line, you will likely need
- 3:03
really fast routing, and that is where a
- 3:05
faster, larger routing model comes into
- 3:08
picture.
- 3:09
Think about code generation and bug
- 3:11
fixing. You're likely good with an mid
- 3:13
open weight model, uh and again, it'll
- 3:16
bring you like really good cost
- 3:17
optimizations over using a frontier for
- 3:19
something that is likely an overkill in
- 3:21
this situation.
- 3:23
But then you're looking at like really
- 3:24
accuracy-critical tasks, like code
- 3:27
review and security, you're likely going
- 3:29
to lean towards a frontier model.
- 3:33
So, essentially, what makes a model
- 3:35
right for a request?
- 3:37
It's a mix that no public leaderboard
- 3:40
can actually encode for you.
- 3:42
Because it's the task itself. What are
- 3:44
you actually trying to achieve? What is
- 3:45
your model trying to achieve?
- 3:47
The system prompts and tools around it,
- 3:49
that is the methodology by which you're
- 3:51
getting something done using a model.
- 3:54
The cost you're willing to spend, this
- 3:55
is a very, very important aspect.
- 3:58
And latency the use case needs, not all
- 4:01
use cases need the same amount of
- 4:03
latency. So, depending on what you're
- 4:04
trying to do, this can vary widely. And
- 4:07
finally, the end user preference. All of
- 4:08
this is driven by what the end user
- 4:10
really wants out of your application.
- 4:13
So, I'm going to welcome Tyler onto
- 4:15
stage so that he can actually show you
- 4:17
the Inference Light Router live in
- 4:19
action and show you how it can really
- 4:21
help with all of these key aspects that
- 4:24
I'm calling out here.
- 4:31
>> Testing. All right. Thank you, Archana.
- 4:35
Okay. So, many builders
- 4:38
have tried auto routing before.
- 4:40
But the problem was that it feels like a
- 4:42
black box.
- 4:44
The router makes a choice, and if that
- 4:45
choice results in poor performance, you
- 4:47
really have no way of improving it.
- 4:49
We built ours differently.
- 4:51
At the architecture level, which is what
- 4:53
you can see on the screen,
- 4:54
a request runs through our open proxy
- 4:56
planner
- 4:57
and our purpose-built routing model,
- 4:59
both open source.
- 5:01
There's no vendor lock-in, which is a
- 5:03
key DigitalOcean value.
- 5:06
You describe what matters for your
- 5:07
workflow,
- 5:09
costs, latency, quality, preferred
- 5:12
models,
- 5:14
or hardware. Then the router uses that
- 5:16
context to pick the right model per
- 5:19
request.
- 5:20
Because the routing model is specialized
- 5:22
for this job, it's super fast, under 200
- 5:24
milliseconds, and it costs customers
- 5:26
nothing extra. In our evaluations, it
- 5:29
actually has beaten frontier models like
- 5:30
the GPT-5 series models at routing tasks
- 5:33
itself with a fraction of the latency.
- 5:37
So, the difference is simple.
- 5:39
This is routing you can customize,
- 5:40
evaluate, and improve without vendor
- 5:43
lock-in.
- 5:48
So, you bring your preferences and we
- 5:50
honor them. You describe a task in
- 5:52
natural language and set what matters,
- 5:54
cost, latency, and task description. You
- 5:57
bring your rules and we execute them
- 5:59
intelligently.
- 6:01
Layer decision tree rules on top, start
- 6:03
from presets, change anything you want
- 6:06
in a single line of code.
- 6:08
And you validate with your own
- 6:09
evaluations, not someone else's
- 6:10
leaderboard. Route, evaluate, adjust,
- 6:15
then feed that back in. That loop is
- 6:17
key.
- 6:19
Okay, we're going to switch gears here.
- 6:21
We're going to do a live demo.
- 6:25
Bear with me here.
- 6:29
All right, I'm going to show you a
- 6:30
couple of things. First, I'll show you
- 6:31
router configuration in the UI, how to
- 6:34
use it, and then how you can use
- 6:35
evaluations to measure and improve your
- 6:38
router's performance.
- 6:39
And then I'll show you a real router
- 6:41
that I created inside a coding agent
- 6:43
workflow.
- 6:45
So I'm here in the cloud console, the
- 6:47
DigitalOcean cloud console. And you can
- 6:49
see my routers. We have several presets.
- 6:51
You can see software engineering in
- 6:52
general writing,
- 6:54
knowledge bases and document
- 6:55
intelligence. In this case, I've
- 6:57
actually created my own. So I I
- 6:59
customized our preset software
- 7:00
engineering. Uh if we click into this,
- 7:03
we can see that I have several several
- 7:05
different tasks here.
- 7:06
I have bug fixing, code generation, test
- 7:09
writing, and a few others.
- 7:11
This also shows that you can specify
- 7:13
more than one model per task
- 7:15
in the bug fixing case and code
- 7:16
generation case.
- 7:18
Um in the code generation, I have GLM
- 7:20
5.2 and GPT 5.2.
- 7:22
And because I really want to always
- 7:24
route to GLM 5.2 unless it's down, I use
- 7:27
this manual ranking option. So it'll
- 7:28
always go to GLM 5.2. If GLM fails,
- 7:31
it'll fail over to GPT 5.2.
- 7:35
In the bug fixing one, you can see a
- 7:36
little bit of a different one. In this
- 7:37
case, I have selection policy fastest.
- 7:40
So out of this model pool, if it matches
- 7:43
to bug fixing, it'll pick whichever
- 7:44
one's been fastest in about the last 30
- 7:46
minutes.
- 7:48
Okay, let's do this in action a little
- 7:49
bit. Here's our playground. We're all
- 7:51
show a couple of examples side by side.
- 7:54
First, I'll start with this is a simple
- 7:56
prompt, write a basic Fibonacci
- 7:57
function.
- 8:01
And as this runs, we can see on the left
- 8:03
we're writing to Opus.
- 8:05
On the right we're using our software
- 8:06
engineering router that I just showed
- 8:07
you.
- 8:08
And you're going to see that it picks
- 8:09
different models on the right. So, in
- 8:11
this case, it matched to the code
- 8:12
snippets task and just used the llama
- 8:15
format router model that I had
- 8:16
configured for that one. And if we
- 8:18
scroll down, I mean this is this is
- 8:19
obvious, right? But this model is
- 8:21
extremely fast and extremely cheap
- 8:23
compared to Opus.
- 8:27
Now, let's say optimize my function.
- 8:30
And we'll see the same thing happen. In
- 8:32
this case, it matched to the code
- 8:33
performance optimization task using
- 8:35
GPT-5.2.
- 8:36
And again, it's obviously significantly
- 8:38
faster. If we scroll down here, we can
- 8:40
also see that it's significantly
- 8:42
cheaper.
- 8:44
We'll do one more, write some unit
- 8:45
tests.
- 8:50
Okay, and in this case it matched to
- 8:52
Claude 5 Summit on the test writing and
- 8:53
code verification.
- 8:56
And again, we're going to see faster and
- 8:57
cheaper.
- 8:58
So, it's a pattern. It matches my, you
- 9:00
know, vibe check, right? It still vibes
- 9:02
though. How you actually prove it is
- 9:04
working it through evaluations.
- 9:07
So, I have an evaluation that I ran
- 9:09
here.
- 9:10
Comparing Opus on the left or actually
- 9:13
on the right hand side to my router on
- 9:15
the left hand side.
- 9:17
You can see that the scores, 90% for my
- 9:19
router, 95% correctness for Opus, are
- 9:22
very, very close. In fact, that's pretty
- 9:24
much within oh, it was a judge uh margin
- 9:27
of error.
- 9:29
But we what's really interesting is if
- 9:30
we scroll down here,
- 9:32
we can see that the router used
- 9:34
significantly less tokens and was
- 9:37
significantly faster than Opus.
- 9:41
Okay, let's jump into a real workflow
- 9:43
here. This is where the inference router
- 9:45
really becomes impactful.
- 9:47
Here I have two terminals running open
- 9:49
code.
- 9:50
On the left, I have a single model
- 9:51
approach using quad Opus. So, I have
- 9:53
Opus set up or open code set up with
- 9:55
Opus.
- 9:56
On the right, I've configured open code
- 9:58
to send requests to our software
- 9:59
engineering router
- 10:00
that I just showed you configure.
- 10:03
Um below, I kind of have this custom
- 10:04
built open code where you'll be able to
- 10:06
see live uh
- 10:08
observability essentially.
- 10:09
So, let's go go ahead and get these
- 10:10
started. It's just a simple
- 10:12
feature request preloaded into here.
- 10:14
Build me a spinning wheel app.
- 10:16
I'll run the same prompt in both.
- 10:18
And as this runs, we can focus on the
- 10:20
bottom panel. So, it'll start to show up
- 10:22
here. Hopefully, you can see that on the
- 10:23
screen.
- 10:24
Uh you'll be able to see token usage in
- 10:25
real time, which models are being
- 10:27
selected,
- 10:28
what task those map to, and the cost
- 10:30
accumulating live.
- 10:32
So, on the right, we can already see
- 10:33
that we're starting to route to Gemini
- 10:35
5.2 because our requests are starting to
- 10:38
match the code generation.
- 10:40
And on the left, of course, we're just
- 10:41
routing to quad Opus. I think open code
- 10:43
sometimes routes to to Haiku by itself.
- 10:45
So, that's what you see there.
- 10:48
And we'll notice the latency, too, how
- 10:49
quickly things start to come back. In
- 10:51
this case, it wants me to
- 10:54
create a temporary directory.
- 10:58
So, the key difference here is that on
- 10:59
the left, we'll see every single request
- 11:01
that I write goes to the same premium
- 11:03
model. Cost and latency are going to
- 11:05
stay high for pretty much every single
- 11:06
task. On the right, the router is
- 11:09
selecting models based on the task.
- 11:13
>> [snorts]
- 11:13
>> So, we're optimizing both cost and
- 11:15
speed.
- 11:16
And we can see that uh our software
- 11:17
engineering router already finished. And
- 11:19
if we look here, it actually matched to
- 11:21
two models throughout. So, let's go
- 11:22
ahead and open this app and see how it
- 11:23
looks.
- 11:25
Okay, this actually looks really solid
- 11:26
to me. And Opus 4.7 finished at a
- 11:29
similar time. Let's take a look at that.
- 11:32
We can compare them. I mean, it's This
- 11:33
is a vibe check, right? But honestly, I
- 11:35
would say the software engineer router
- 11:36
did better cuz this is an interesting
- 11:38
approach that you
- 11:39
I'm not even sure it works too well. So,
- 11:41
in this case,
- 11:42
the router did a little bit better.
- 11:45
So, now that last step is done, you
- 11:46
know, we get similar outputs, but if we
- 11:48
look here,
- 11:50
the software engineer router has only
- 11:52
spent 8 cents on the session,
- 11:54
while Opus directly has spent 25 cents.
- 11:56
So, we have a about a 3x in cost and
- 11:59
very, very similar quality so far.
- 12:03
Let's try another another prompt here.
- 12:05
What What comes next in a software
- 12:06
engineering life cycle? Probably writing
- 12:08
some unit tests, right?
- 12:12
So, we'll write this in both.
- 12:16
Start with this first. On
- 12:17
[clears throat] the right, we have the
- 12:19
router again. And we can see that it got
- 12:21
matched to the test writing and code
- 12:23
verification, which picked the Claude 5
- 12:25
Sonnet
- 12:27
model because that's what I configured
- 12:28
earlier.
- 12:29
And we'll see the same pattern. It's
- 12:30
going to be significantly cheaper
- 12:32
overall across the entire session than
- 12:34
going straight to Opus.
- 12:37
So, we'll let this finish here.
- 12:42
Okay, and that one finished. Let's just
- 12:44
queue up one more. Write some
- 12:46
documentation in a read me.
- 12:54
And then we'll compare
- 12:56
the total session cost.
- 13:03
Okay, and as this runs, we'll wait and
- 13:05
see what it does.
- 13:09
Okay, it created the read me. And well,
- 13:11
if we look here, we can see that the
- 13:13
total session cost
- 13:14
for the router was 14 cents, while the
- 13:17
total session cost for Opus was 44
- 13:19
cents.
- 13:21
So, at this point, we can see the cost
- 13:22
is significantly lower,
- 13:24
latency is optimized per step,
- 13:26
and the quality remains pretty similar
- 13:28
across. So, you can see as you scale
- 13:30
this, the cost
- 13:32
performance really add up.
- 13:35
Okay. Archana, thank you.
- 13:41
>> [applause]
- 13:44
>> Thank you so much, Tyler. And that was
- 13:47
actually a live demo that we ran here.
- 13:49
So, thanks to Tyler for setting it up
- 13:51
and taking us through that.
- 13:53
So,
- 13:54
now that you've seen it work, let's look
- 13:56
at some quick facts.
- 13:58
Routing decision in under 200
- 14:00
milliseconds per request.
- 14:03
It runs on a custom mixture of experts
- 14:05
model purpose-built for routing.
- 14:08
Zero application code changes needed
- 14:10
from you to get it to adopt.
- 14:12
And it's free and included, so you do
- 14:13
not have to roll out your own router.
- 14:16
And we open source the whole routing
- 14:18
model via plain old, so you can actually
- 14:20
check how that looks as well.
- 14:24
The last thing I wanted to talk about
- 14:26
was a bit about
- 14:27
routing is the foundation layer. It's
- 14:29
not really the destination.
- 14:31
And there are three things that we
- 14:32
usually build on top of it.
- 14:34
The first one is evals to prove that the
- 14:37
right model works with your use case and
- 14:39
your test well.
- 14:41
Caching, so that you can stop paying
- 14:43
twice or more for the same answer each
- 14:46
time.
- 14:47
And personalization, so that the router
- 14:49
learns what works for your team over
- 14:52
time.
- 14:53
This is a continuous improvement loop
- 14:55
maturing over time. That means that the
- 14:57
more you route and evaluate, the better
- 15:00
the router does for your workload.
- 15:04
So, to summarize, where does this leave
- 15:06
you?
- 15:07
There is no single best model. There's
- 15:09
only the right model for the request.
- 15:12
And benchmarks will only tell you part
- 15:14
of the story. Your preferences will tell
- 15:16
you the rest.
- 15:17
And we built the router to honor your
- 15:19
preferences and stay open, so that
- 15:21
you're never locked into a single stack.
- 15:24
And that's how teams actually built.
- 15:27
We are DigitalOcean, any i-native cloud.
- 15:30
Come find us at the booth and route your
- 15:32
next workload with us. Thank you so much
- 15:33
for being here.
- 15:36
>> [applause]