← All AI Engineer talks

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.

0:140:17
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

0:01 · section reference included

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.

2:372:42
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

2:37 · section reference included

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.

4:354:38
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

4:31 · section reference included

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.

6:456:47
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

6:45 · section reference included

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.

7:487:49
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

7:48 · section reference included

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.

9:419:47
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

9:41 · section reference included

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.

12:0312:05
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

12:03 · section reference included

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.

13:5413:56
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

13:44 · section reference included

Read the complete timestamped transcript
  1. 0:01

    [music]

  2. 0:12

    >> Hello everyone.

  3. 0:14

    So, preferences over benchmarks.

  4. 0:17

    The talk today is about model routing

  5. 0:20

    and specifically why the way most people

  6. 0:23

    think about picking a model, which

  7. 0:25

    usually is chasing, you know, to the top

  8. 0:26

    of a benchmark, is actually the wrong

  9. 0:29

    instinct.

  10. 0:32

    I'm Archana, VP of engineering for

  11. 0:34

    inference engine and AI infrastructure

  12. 0:36

    at DigitalOcean. And I'll be joined by

  13. 0:38

    Tyler, who built parts of the router and

  14. 0:41

    will actually do a live demo for us

  15. 0:42

    today.

  16. 0:44

    We both work on the managed agent

  17. 0:45

    orchestration and inference engine

  18. 0:47

    products at DigitalOcean.

  19. 0:52

    So, you may know DigitalOcean as

  20. 0:54

    droplets, databases, and app platform.

  21. 0:57

    All of that is true. We are also the AI

  22. 0:59

    native cloud.

  23. 1:01

    This is five integrated layers, starting

  24. 1:04

    from infrastructure all the way up to

  25. 1:06

    the managed agents, with the inference

  26. 1:08

    engine right in the middle.

  27. 1:10

    And that's why we are here talking about

  28. 1:12

    inference router. The routing lives in

  29. 1:14

    the inference engine, and if you want to

  30. 1:16

    know more about our stack and the full

  31. 1:17

    story, please come find us at the booth.

  32. 1:24

    So, everybody is reaching out for the

  33. 1:25

    model routing. And let's look at three

  34. 1:28

    reasons why the three reasons that are

  35. 1:30

    breaking the one model habit for most

  36. 1:32

    users.

  37. 1:33

    The first one I want to talk about is

  38. 1:35

    cost.

  39. 1:36

    Spend is exploding, and even companies

  40. 1:38

    like Walmart, Uber, Microsoft, they're

  41. 1:41

    actively capping usage to control the

  42. 1:43

    inference bills.

  43. 1:46

    Second one is fit.

  44. 1:48

    One model for every task is likely an

  45. 1:50

    overkill.

  46. 1:51

    You're essentially paying frontier rates

  47. 1:53

    for a work that a much smaller model

  48. 1:55

    will be able to handle really well.

  49. 1:58

    And the third one, which for me is the

  50. 1:59

    most important one, is the risk.

  51. 2:02

    The risk associated with one single

  52. 2:04

    model.

  53. 2:05

    Models can go down, and if you bet your

  54. 2:07

    entire product and production on one

  55. 2:10

    model, you have no failover when

  56. 2:12

    something degrades.

  57. 2:16

    And model orchestration is actually the

  58. 2:18

    new FinOps.

  59. 2:20

    As you all know, cloud cost optimization

  60. 2:23

    took us about 15 years for it to

  61. 2:25

    actually become a real good discipline

  62. 2:27

    and for companies to get it right.

  63. 2:29

    This one actually is arriving in months

  64. 2:31

    and not years. And here's the premise

  65. 2:33

    that I think everybody gets wrong about

  66. 2:35

    this.

  67. 2:37

    We all think of like what is the best

  68. 2:39

    model for a job. Here's the thing. There

  69. 2:42

    is no single best model.

  70. 2:45

    The right one depends on the actual

  71. 2:47

    request.

  72. 2:48

    For example, if you're doing

  73. 2:50

    classification and labeling,

  74. 2:52

    a small open model may very well work

  75. 2:54

    really well for you and will give you

  76. 2:56

    really good cost optimizations.

  77. 2:58

    However, if you're running code

  78. 3:00

    completion in line, you will likely need

  79. 3:03

    really fast routing, and that is where a

  80. 3:05

    faster, larger routing model comes into

  81. 3:08

    picture.

  82. 3:09

    Think about code generation and bug

  83. 3:11

    fixing. You're likely good with an mid

  84. 3:13

    open weight model, uh and again, it'll

  85. 3:16

    bring you like really good cost

  86. 3:17

    optimizations over using a frontier for

  87. 3:19

    something that is likely an overkill in

  88. 3:21

    this situation.

  89. 3:23

    But then you're looking at like really

  90. 3:24

    accuracy-critical tasks, like code

  91. 3:27

    review and security, you're likely going

  92. 3:29

    to lean towards a frontier model.

  93. 3:33

    So, essentially, what makes a model

  94. 3:35

    right for a request?

  95. 3:37

    It's a mix that no public leaderboard

  96. 3:40

    can actually encode for you.

  97. 3:42

    Because it's the task itself. What are

  98. 3:44

    you actually trying to achieve? What is

  99. 3:45

    your model trying to achieve?

  100. 3:47

    The system prompts and tools around it,

  101. 3:49

    that is the methodology by which you're

  102. 3:51

    getting something done using a model.

  103. 3:54

    The cost you're willing to spend, this

  104. 3:55

    is a very, very important aspect.

  105. 3:58

    And latency the use case needs, not all

  106. 4:01

    use cases need the same amount of

  107. 4:03

    latency. So, depending on what you're

  108. 4:04

    trying to do, this can vary widely. And

  109. 4:07

    finally, the end user preference. All of

  110. 4:08

    this is driven by what the end user

  111. 4:10

    really wants out of your application.

  112. 4:13

    So, I'm going to welcome Tyler onto

  113. 4:15

    stage so that he can actually show you

  114. 4:17

    the Inference Light Router live in

  115. 4:19

    action and show you how it can really

  116. 4:21

    help with all of these key aspects that

  117. 4:24

    I'm calling out here.

  118. 4:31

    >> Testing. All right. Thank you, Archana.

  119. 4:35

    Okay. So, many builders

  120. 4:38

    have tried auto routing before.

  121. 4:40

    But the problem was that it feels like a

  122. 4:42

    black box.

  123. 4:44

    The router makes a choice, and if that

  124. 4:45

    choice results in poor performance, you

  125. 4:47

    really have no way of improving it.

  126. 4:49

    We built ours differently.

  127. 4:51

    At the architecture level, which is what

  128. 4:53

    you can see on the screen,

  129. 4:54

    a request runs through our open proxy

  130. 4:56

    planner

  131. 4:57

    and our purpose-built routing model,

  132. 4:59

    both open source.

  133. 5:01

    There's no vendor lock-in, which is a

  134. 5:03

    key DigitalOcean value.

  135. 5:06

    You describe what matters for your

  136. 5:07

    workflow,

  137. 5:09

    costs, latency, quality, preferred

  138. 5:12

    models,

  139. 5:14

    or hardware. Then the router uses that

  140. 5:16

    context to pick the right model per

  141. 5:19

    request.

  142. 5:20

    Because the routing model is specialized

  143. 5:22

    for this job, it's super fast, under 200

  144. 5:24

    milliseconds, and it costs customers

  145. 5:26

    nothing extra. In our evaluations, it

  146. 5:29

    actually has beaten frontier models like

  147. 5:30

    the GPT-5 series models at routing tasks

  148. 5:33

    itself with a fraction of the latency.

  149. 5:37

    So, the difference is simple.

  150. 5:39

    This is routing you can customize,

  151. 5:40

    evaluate, and improve without vendor

  152. 5:43

    lock-in.

  153. 5:48

    So, you bring your preferences and we

  154. 5:50

    honor them. You describe a task in

  155. 5:52

    natural language and set what matters,

  156. 5:54

    cost, latency, and task description. You

  157. 5:57

    bring your rules and we execute them

  158. 5:59

    intelligently.

  159. 6:01

    Layer decision tree rules on top, start

  160. 6:03

    from presets, change anything you want

  161. 6:06

    in a single line of code.

  162. 6:08

    And you validate with your own

  163. 6:09

    evaluations, not someone else's

  164. 6:10

    leaderboard. Route, evaluate, adjust,

  165. 6:15

    then feed that back in. That loop is

  166. 6:17

    key.

  167. 6:19

    Okay, we're going to switch gears here.

  168. 6:21

    We're going to do a live demo.

  169. 6:25

    Bear with me here.

  170. 6:29

    All right, I'm going to show you a

  171. 6:30

    couple of things. First, I'll show you

  172. 6:31

    router configuration in the UI, how to

  173. 6:34

    use it, and then how you can use

  174. 6:35

    evaluations to measure and improve your

  175. 6:38

    router's performance.

  176. 6:39

    And then I'll show you a real router

  177. 6:41

    that I created inside a coding agent

  178. 6:43

    workflow.

  179. 6:45

    So I'm here in the cloud console, the

  180. 6:47

    DigitalOcean cloud console. And you can

  181. 6:49

    see my routers. We have several presets.

  182. 6:51

    You can see software engineering in

  183. 6:52

    general writing,

  184. 6:54

    knowledge bases and document

  185. 6:55

    intelligence. In this case, I've

  186. 6:57

    actually created my own. So I I

  187. 6:59

    customized our preset software

  188. 7:00

    engineering. Uh if we click into this,

  189. 7:03

    we can see that I have several several

  190. 7:05

    different tasks here.

  191. 7:06

    I have bug fixing, code generation, test

  192. 7:09

    writing, and a few others.

  193. 7:11

    This also shows that you can specify

  194. 7:13

    more than one model per task

  195. 7:15

    in the bug fixing case and code

  196. 7:16

    generation case.

  197. 7:18

    Um in the code generation, I have GLM

  198. 7:20

    5.2 and GPT 5.2.

  199. 7:22

    And because I really want to always

  200. 7:24

    route to GLM 5.2 unless it's down, I use

  201. 7:27

    this manual ranking option. So it'll

  202. 7:28

    always go to GLM 5.2. If GLM fails,

  203. 7:31

    it'll fail over to GPT 5.2.

  204. 7:35

    In the bug fixing one, you can see a

  205. 7:36

    little bit of a different one. In this

  206. 7:37

    case, I have selection policy fastest.

  207. 7:40

    So out of this model pool, if it matches

  208. 7:43

    to bug fixing, it'll pick whichever

  209. 7:44

    one's been fastest in about the last 30

  210. 7:46

    minutes.

  211. 7:48

    Okay, let's do this in action a little

  212. 7:49

    bit. Here's our playground. We're all

  213. 7:51

    show a couple of examples side by side.

  214. 7:54

    First, I'll start with this is a simple

  215. 7:56

    prompt, write a basic Fibonacci

  216. 7:57

    function.

  217. 8:01

    And as this runs, we can see on the left

  218. 8:03

    we're writing to Opus.

  219. 8:05

    On the right we're using our software

  220. 8:06

    engineering router that I just showed

  221. 8:07

    you.

  222. 8:08

    And you're going to see that it picks

  223. 8:09

    different models on the right. So, in

  224. 8:11

    this case, it matched to the code

  225. 8:12

    snippets task and just used the llama

  226. 8:15

    format router model that I had

  227. 8:16

    configured for that one. And if we

  228. 8:18

    scroll down, I mean this is this is

  229. 8:19

    obvious, right? But this model is

  230. 8:21

    extremely fast and extremely cheap

  231. 8:23

    compared to Opus.

  232. 8:27

    Now, let's say optimize my function.

  233. 8:30

    And we'll see the same thing happen. In

  234. 8:32

    this case, it matched to the code

  235. 8:33

    performance optimization task using

  236. 8:35

    GPT-5.2.

  237. 8:36

    And again, it's obviously significantly

  238. 8:38

    faster. If we scroll down here, we can

  239. 8:40

    also see that it's significantly

  240. 8:42

    cheaper.

  241. 8:44

    We'll do one more, write some unit

  242. 8:45

    tests.

  243. 8:50

    Okay, and in this case it matched to

  244. 8:52

    Claude 5 Summit on the test writing and

  245. 8:53

    code verification.

  246. 8:56

    And again, we're going to see faster and

  247. 8:57

    cheaper.

  248. 8:58

    So, it's a pattern. It matches my, you

  249. 9:00

    know, vibe check, right? It still vibes

  250. 9:02

    though. How you actually prove it is

  251. 9:04

    working it through evaluations.

  252. 9:07

    So, I have an evaluation that I ran

  253. 9:09

    here.

  254. 9:10

    Comparing Opus on the left or actually

  255. 9:13

    on the right hand side to my router on

  256. 9:15

    the left hand side.

  257. 9:17

    You can see that the scores, 90% for my

  258. 9:19

    router, 95% correctness for Opus, are

  259. 9:22

    very, very close. In fact, that's pretty

  260. 9:24

    much within oh, it was a judge uh margin

  261. 9:27

    of error.

  262. 9:29

    But we what's really interesting is if

  263. 9:30

    we scroll down here,

  264. 9:32

    we can see that the router used

  265. 9:34

    significantly less tokens and was

  266. 9:37

    significantly faster than Opus.

  267. 9:41

    Okay, let's jump into a real workflow

  268. 9:43

    here. This is where the inference router

  269. 9:45

    really becomes impactful.

  270. 9:47

    Here I have two terminals running open

  271. 9:49

    code.

  272. 9:50

    On the left, I have a single model

  273. 9:51

    approach using quad Opus. So, I have

  274. 9:53

    Opus set up or open code set up with

  275. 9:55

    Opus.

  276. 9:56

    On the right, I've configured open code

  277. 9:58

    to send requests to our software

  278. 9:59

    engineering router

  279. 10:00

    that I just showed you configure.

  280. 10:03

    Um below, I kind of have this custom

  281. 10:04

    built open code where you'll be able to

  282. 10:06

    see live uh

  283. 10:08

    observability essentially.

  284. 10:09

    So, let's go go ahead and get these

  285. 10:10

    started. It's just a simple

  286. 10:12

    feature request preloaded into here.

  287. 10:14

    Build me a spinning wheel app.

  288. 10:16

    I'll run the same prompt in both.

  289. 10:18

    And as this runs, we can focus on the

  290. 10:20

    bottom panel. So, it'll start to show up

  291. 10:22

    here. Hopefully, you can see that on the

  292. 10:23

    screen.

  293. 10:24

    Uh you'll be able to see token usage in

  294. 10:25

    real time, which models are being

  295. 10:27

    selected,

  296. 10:28

    what task those map to, and the cost

  297. 10:30

    accumulating live.

  298. 10:32

    So, on the right, we can already see

  299. 10:33

    that we're starting to route to Gemini

  300. 10:35

    5.2 because our requests are starting to

  301. 10:38

    match the code generation.

  302. 10:40

    And on the left, of course, we're just

  303. 10:41

    routing to quad Opus. I think open code

  304. 10:43

    sometimes routes to to Haiku by itself.

  305. 10:45

    So, that's what you see there.

  306. 10:48

    And we'll notice the latency, too, how

  307. 10:49

    quickly things start to come back. In

  308. 10:51

    this case, it wants me to

  309. 10:54

    create a temporary directory.

  310. 10:58

    So, the key difference here is that on

  311. 10:59

    the left, we'll see every single request

  312. 11:01

    that I write goes to the same premium

  313. 11:03

    model. Cost and latency are going to

  314. 11:05

    stay high for pretty much every single

  315. 11:06

    task. On the right, the router is

  316. 11:09

    selecting models based on the task.

  317. 11:13

    >> [snorts]

  318. 11:13

    >> So, we're optimizing both cost and

  319. 11:15

    speed.

  320. 11:16

    And we can see that uh our software

  321. 11:17

    engineering router already finished. And

  322. 11:19

    if we look here, it actually matched to

  323. 11:21

    two models throughout. So, let's go

  324. 11:22

    ahead and open this app and see how it

  325. 11:23

    looks.

  326. 11:25

    Okay, this actually looks really solid

  327. 11:26

    to me. And Opus 4.7 finished at a

  328. 11:29

    similar time. Let's take a look at that.

  329. 11:32

    We can compare them. I mean, it's This

  330. 11:33

    is a vibe check, right? But honestly, I

  331. 11:35

    would say the software engineer router

  332. 11:36

    did better cuz this is an interesting

  333. 11:38

    approach that you

  334. 11:39

    I'm not even sure it works too well. So,

  335. 11:41

    in this case,

  336. 11:42

    the router did a little bit better.

  337. 11:45

    So, now that last step is done, you

  338. 11:46

    know, we get similar outputs, but if we

  339. 11:48

    look here,

  340. 11:50

    the software engineer router has only

  341. 11:52

    spent 8 cents on the session,

  342. 11:54

    while Opus directly has spent 25 cents.

  343. 11:56

    So, we have a about a 3x in cost and

  344. 11:59

    very, very similar quality so far.

  345. 12:03

    Let's try another another prompt here.

  346. 12:05

    What What comes next in a software

  347. 12:06

    engineering life cycle? Probably writing

  348. 12:08

    some unit tests, right?

  349. 12:12

    So, we'll write this in both.

  350. 12:16

    Start with this first. On

  351. 12:17

    [clears throat] the right, we have the

  352. 12:19

    router again. And we can see that it got

  353. 12:21

    matched to the test writing and code

  354. 12:23

    verification, which picked the Claude 5

  355. 12:25

    Sonnet

  356. 12:27

    model because that's what I configured

  357. 12:28

    earlier.

  358. 12:29

    And we'll see the same pattern. It's

  359. 12:30

    going to be significantly cheaper

  360. 12:32

    overall across the entire session than

  361. 12:34

    going straight to Opus.

  362. 12:37

    So, we'll let this finish here.

  363. 12:42

    Okay, and that one finished. Let's just

  364. 12:44

    queue up one more. Write some

  365. 12:46

    documentation in a read me.

  366. 12:54

    And then we'll compare

  367. 12:56

    the total session cost.

  368. 13:03

    Okay, and as this runs, we'll wait and

  369. 13:05

    see what it does.

  370. 13:09

    Okay, it created the read me. And well,

  371. 13:11

    if we look here, we can see that the

  372. 13:13

    total session cost

  373. 13:14

    for the router was 14 cents, while the

  374. 13:17

    total session cost for Opus was 44

  375. 13:19

    cents.

  376. 13:21

    So, at this point, we can see the cost

  377. 13:22

    is significantly lower,

  378. 13:24

    latency is optimized per step,

  379. 13:26

    and the quality remains pretty similar

  380. 13:28

    across. So, you can see as you scale

  381. 13:30

    this, the cost

  382. 13:32

    performance really add up.

  383. 13:35

    Okay. Archana, thank you.

  384. 13:41

    >> [applause]

  385. 13:44

    >> Thank you so much, Tyler. And that was

  386. 13:47

    actually a live demo that we ran here.

  387. 13:49

    So, thanks to Tyler for setting it up

  388. 13:51

    and taking us through that.

  389. 13:53

    So,

  390. 13:54

    now that you've seen it work, let's look

  391. 13:56

    at some quick facts.

  392. 13:58

    Routing decision in under 200

  393. 14:00

    milliseconds per request.

  394. 14:03

    It runs on a custom mixture of experts

  395. 14:05

    model purpose-built for routing.

  396. 14:08

    Zero application code changes needed

  397. 14:10

    from you to get it to adopt.

  398. 14:12

    And it's free and included, so you do

  399. 14:13

    not have to roll out your own router.

  400. 14:16

    And we open source the whole routing

  401. 14:18

    model via plain old, so you can actually

  402. 14:20

    check how that looks as well.

  403. 14:24

    The last thing I wanted to talk about

  404. 14:26

    was a bit about

  405. 14:27

    routing is the foundation layer. It's

  406. 14:29

    not really the destination.

  407. 14:31

    And there are three things that we

  408. 14:32

    usually build on top of it.

  409. 14:34

    The first one is evals to prove that the

  410. 14:37

    right model works with your use case and

  411. 14:39

    your test well.

  412. 14:41

    Caching, so that you can stop paying

  413. 14:43

    twice or more for the same answer each

  414. 14:46

    time.

  415. 14:47

    And personalization, so that the router

  416. 14:49

    learns what works for your team over

  417. 14:52

    time.

  418. 14:53

    This is a continuous improvement loop

  419. 14:55

    maturing over time. That means that the

  420. 14:57

    more you route and evaluate, the better

  421. 15:00

    the router does for your workload.

  422. 15:04

    So, to summarize, where does this leave

  423. 15:06

    you?

  424. 15:07

    There is no single best model. There's

  425. 15:09

    only the right model for the request.

  426. 15:12

    And benchmarks will only tell you part

  427. 15:14

    of the story. Your preferences will tell

  428. 15:16

    you the rest.

  429. 15:17

    And we built the router to honor your

  430. 15:19

    preferences and stay open, so that

  431. 15:21

    you're never locked into a single stack.

  432. 15:24

    And that's how teams actually built.

  433. 15:27

    We are DigitalOcean, any i-native cloud.

  434. 15:30

    Come find us at the booth and route your

  435. 15:32

    next workload with us. Thank you so much

  436. 15:33

    for being here.

  437. 15:36

    >> [applause]