← All AI Engineer talks

AI Engineer World's Fair 2026

FinOps for AI Agents: Who Spent All the Tokens? — Tisha Chawla & Susheem Koul, Microsoft

Read the talk

FinOps for AI Agents: Steering Runs Before the Budget Runs Out

Tisha Chawla and Susheem Koul explain how Token Ops connects spending attribution, run-level budgets, and developer-authorized actions to control agent costs while preserving the chance of completion.

From a talk by Tisha Chawla and Susheem Koul

At a glance

Ideas worth remembering

  • Useful cost governance connects model-call spending to agent runs and user dimensions, then uses that attribution to govern loops, context growth, and shared budgets.

  • The boundary annotation carries telemetry to the control plane and actions back to the agent; the governor limits those actions to capabilities authorized by the developer.

  • Preview mode separates policy evaluation from enforcement. Steering then offers interventions such as shorter outputs or reduced tool results, while halting remains the final budget boundary.

  • The reported full-suite results pair almost 78% lower average spending with completion rising from 67% to roughly 96% compared with simple throttling. Missing benchmark details limit conclusions about output quality and transfer to other workloads.

  • Learning new policies or tuning existing ones from ledger data is future work; the demonstrated system relies on an existing policy catalog and configured actions.

From token consumption to useful work

An AI bill can reveal how much an agent workflow spent without explaining which activity produced the expense. Tisha Chawla opens with that attribution problem and frames the goal as a shift from maximizing token consumption to maximizing the value obtained from it. Exploration can justify substantial usage, but the eventual question is whether that usage produced something worthwhile.

Her historical comparison connects each software business model to its controls. SaaS offered usage caps, seat limits, and tier-based policies. Cloud computing introduced pay-as-you-go consumption with provisioning and autoscaling policies. In agent workflows, code repeatedly calls models, and those calls create spending. Chawla argues that this execution layer needs its own controls, beyond the hard caps and model downgrades available through gateways.

Reports of rapidly exhausted AI budgets and runaway loops motivate the proposal. Chawla cites a report that Uber exhausted its AI budget within four months, but uses these examples to introduce a design question: what mechanisms would control unbounded consumption at its source? The argument proceeds from attribution and execution rather than from choosing a particular cost dashboard.

0:290:32
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

Attribute model calls, then control the run

The first principle is to connect the unit of spending to the work responsible for it. Tokens provide a consumption measure, and the model-call boundary is where the system must record that consumption. A call also needs an agent identity and a run identity. Without those associations, an aggregate bill can expose a problem while leaving the responsible execution unknown.

Attribution makes targeted intervention possible. If an agent is repeating an unnecessary loop, the intervention should address that loop. If its context is growing excessively, the intervention should address context growth. Chawla places a budget-triggered halt at the end of this sequence: first attempt to correct the behavior that is consuming resources, then terminate if the budget still requires it.

This explains the emphasis on entire runs. An individual model request is only one step in a process that may alternate between an agent and its tools, spawn multiple subagents, and carry an expanding context into later calls. Request routing and hard caps can affect individual calls, but the proposed controller needs enough execution context to act on those larger patterns.

The proposed platform therefore combines cumulative budgets across attributed runs with enforcement in the call path. Context compaction and caching are examples of interventions that could happen during execution, before a final budget cap stops the work. The presenters’ criticism of gateway controls is specifically about this missing run-level influence: controlling a request does not by itself control the workflow that keeps generating requests.

4:134:15
Suggest correction

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

4:13 · section reference included

Instrumentation, accounting, and enforcement

Token Ops organizes governance into three responsibilities. Instrumentation supplies telemetry, enrichment, and attribution. Accounting accumulates the activity in a ledger. Enforcement uses policies to steer execution, with halting retained as the final response to an exhausted budget. The ledger connects observation to intervention: it provides the accumulated record against which spending decisions can be made.

The presenters describe an out-of-band control plane intended to avoid rewriting the agent’s application logic. Taking over the design explanation, Susheem Koul separates the architecture into the existing agent runtime, a bridge that transfers data between the runtime and the controller, and the control plane where decisions reside. That separation gives the application a local integration point while keeping the governance logic in a distinct system.

8:478:50
Suggest correction

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

8:47 · section reference included

A boundary carries observations up and actions down

The bridge starts with attribution dimensions attached to each agent run. Its central integration mechanism is a boundary annotation applied to an existing method. Koul presents this as independent of the agent framework: the annotation tracks the method’s inputs and outputs, sends that information to the control plane, and records a ledger entry associated with the run ID and other attributes.

The same annotation is also a return channel for actions. The control plane can send a behavioral adjustment back to the running agent through the boundary. This makes the bridge bidirectional: observations support a decision, and the decision can influence subsequent execution. The intended benefit is to fit more completed runs inside a budget by changing how resources are used while work is underway.

Koul illustrates this with a retrieval tool returning 20 chunks per call, sorted by relevance. Suppose only the first five are useful to the model. The controller could request that the tool’s output be limited to five chunks, reducing the material passed onward. This is a conditional example: its justification depends on the later chunks being irrelevant. The explanation does not establish a general method for determining which chunks the model actually needs.

Receiving an action and applying it are separate responsibilities. The boundary receives the request; a governor knows which actions the developer has allowed and how to apply them. The controller’s authority is therefore constrained by the integration’s configured capabilities. For model providers exposed through objects rather than standalone methods, Koul also describes a helper called “wrap complete” that applies the boundary mechanism to those objects.

11:4311:45
Suggest correction

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

11:40 · section reference included

Turn attribution into budgets and policies

On the control plane, a segment groups activity using the dimensions emitted by the agent. Koul’s example is a preview agent shared with conference attendees and tagged with the cohort AIE 2026. A budget can apply to that cohort collectively, rather than only to an individual agent or run. The same mechanism supports finer or coarser groupings, depending on the dimensions the application supplies.

The ledger gathers a run’s traces in one place. A budget supplies a static threshold over a time window for a segment or an agent run. Actions define what can happen when intervention is needed, and policies combine the budgets and actions with the segments or runs to which they apply. This separates the scope of accounting, the spending limit, and the response to that limit.

Actions have two broad forms. Halt actions terminate an agent that exceeds its budget. Steer actions change the behavior of the agent or one of its components to try to complete within the allotted amount. Steering is an attempt to preserve useful execution; it is not presented as a guarantee that every task can fit within any budget.

Integration consists of annotating existing methods and creating a governor with configuration declaring the allowed actions. Koul says the control plane resides in the developer’s own tenant. That describes the intended deployment boundary, although tenant placement alone does not establish the broader claim that data cannot leak. The concrete control described here is the governor’s restriction on what the control plane may do to an agent.

13:5213:55
Suggest correction

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

13:51 · section reference included

Preview policies before enabling enforcement

The demonstration uses a two-agent workflow. A research agent receives a question and can invoke a web-search tool as many times as it wants. Once it considers its evidence sufficient, it passes the findings to a summarizer that produces a research report. This gives the governance system a concrete workflow with discretionary tool use followed by a distinct output stage.

The first scenario runs Token Ops in preview mode. Policies evaluate normally, but their associated actions cannot execute. Koul describes a completed run with governance off while the dashboard still shows policy evaluations, including the cost budget and cost guard. This distinction lets an operator examine when policies would intervene without allowing those interventions to change the workflow.

Koul positions preview mode as a way to introduce governance into production: observe the guardrails, adjust their behavior, and settle on thresholds before enabling enforcement. The second scenario enables governance and demonstrates the harder boundary. When the run exceeds its allotted budget, it is killed immediately. This circuit breaker constrains further execution, but the run does not get to finish.

15:5816:00
Suggest correction

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

15:58 · section reference included

Steer using consumption and velocity

The steering scenario uses another prompt with a slightly higher budget, which Koul describes as still insufficient for the unadjusted run. A cost guard considers two signals: how much of the allotted budget has already been consumed and the velocity of token consumption. Together, these signals are used to predict whether the run will exhaust its allowance before finishing.

When the guard predicts an overrun, it injects an instruction into the system instructions asking the model to make its outputs more succinct or summarized. The intervention therefore changes requested behavior before the budget is exhausted. The explanation supplies the signals and the action, but not the forecasting formula, how remaining work is estimated, or a measured final outcome for this particular scenario. A request for brevity should consequently be understood as steering, rather than a deterministic token limit.

17:5918:00
Suggest correction

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

17:52 · section reference included

Measure spending alongside completion

Beyond the small demonstration, the presenters report benchmarks on two open-source repositories. Koul says the testing covered multiple iterations, stress tests, and both simple and hard scenarios. With the full policy suite enabled, he reports an almost 78% reduction in average spending.

Completion is the second measure. Compared with simple throttling, which stops runs when limits are reached, the reported completion share rises from 67% to roughly 96%. That result supports the presenters’ central concern: a lower bill is less useful if it is achieved by preventing work from finishing. These are presenter-reported results, however. Sample sizes, exact task sets, output-quality criteria, and the spending comparison baseline are not specified, so the figures do not establish equivalent answer quality or a general savings rate for other workloads.

The benchmark uses a broader catalog than the demonstrated brevity instruction. Koul lists spending controls, context compaction, tool-output reduction, loop detection, and progress detection. The action vocabulary includes allow, mutate, and inject for steering, alongside termination for halting. Because the reported savings come from the full suite, the talk does not isolate how much improvement came from any one policy.

18:4418:46
Suggest correction

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

18:44 · section reference included

Use the ledger to improve future policies

The closing proposal extends the ledger’s role beyond accounting. Because it is continuously updated, a future self-learning module could inspect it for failure modes that existing policies still miss. Koul describes two possible responses: generate new policies for remaining runaway costs, or refine the parameters of existing policies so they intervene more effectively.

This learning loop is an envisioned next step, not a demonstrated capability. The proposal identifies what it would inspect and what it might change, without describing how generated policies would be validated. The presenters close by pointing attendees to a public wiki they say they update regularly and inviting further discussion.

20:0420:05
Suggest correction

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

20:04 · section reference included

Read the complete timestamped transcript
  1. 0:01

    [music]

  2. 0:13

    Okay. Um, good morning everyone. So, um,

  3. 0:16

    I'm Tisha and I have Sushim with me as

  4. 0:18

    my co-presenter. All right. So, we'll be

  5. 0:21

    talking about the most expensive

  6. 0:23

    question in AI today. I think a lot of

  7. 0:27

    you would have come across the scenario

  8. 0:29

    that um you know when you opened an AI

  9. 0:32

    bill like through your agent workflows

  10. 0:34

    um you couldn't actually trace back

  11. 0:37

    where that bill was actually coming from

  12. 0:39

    right and um and I don't think that's a

  13. 0:42

    problem right now because right now the

  14. 0:45

    industry is valuing you know um token

  15. 0:48

    maxing that is like spending the most

  16. 0:51

    amount of tokens for exploration for all

  17. 0:54

    of those purposes

  18. 0:55

    And um people are proud to call

  19. 0:57

    themselves token billionaires and um I

  20. 0:59

    think that's all right but this talk is

  21. 1:02

    you know the shift from token maxing to

  22. 1:05

    value maxing you know how do we get

  23. 1:08

    there and um we'll talk about it from

  24. 1:12

    this question um who spent all the

  25. 1:15

    tokens and um if anyone spent all the

  26. 1:19

    tokens there has to be value associated

  27. 1:21

    with this right and that is um the talk

  28. 1:26

    about.

  29. 1:30

    All right. Now in order to minimize the

  30. 1:33

    gap you know from token maxing to value

  31. 1:36

    maxing we'll kind of see we'll observe

  32. 1:39

    the patterns which the like the existing

  33. 1:43

    um u like the past software evolution

  34. 1:46

    eras had like for instance when we talk

  35. 1:49

    about the SAS era the interface was UI

  36. 1:53

    and the control was in the form of usage

  37. 1:56

    caps right like or the seat limits or

  38. 1:58

    tier based policies

  39. 2:00

    Now when we moved on to the cloud era,

  40. 2:03

    the control surface again changed. The

  41. 2:06

    model became pay as you go and the

  42. 2:08

    control moved like in the form of

  43. 2:10

    autoprovisioning and you know

  44. 2:12

    autoscaling policies.

  45. 2:14

    Now we are in the agentic era right and

  46. 2:18

    um now how the cost is calculated here

  47. 2:22

    is in the form of model calls right like

  48. 2:26

    u how like the code calls your model but

  49. 2:31

    what we've observed is that there isn't

  50. 2:34

    a proper control plane in place for that

  51. 2:37

    like we do have control plane in place

  52. 2:40

    for you in place as model gateways where

  53. 2:43

    they're um are hard caps or there is

  54. 2:46

    model routing to downgrade the model but

  55. 2:49

    the part like where the code you know

  56. 2:53

    calls the model that um is what we'll be

  57. 2:57

    talking about uh today

  58. 3:00

    and um we also you know see um like in

  59. 3:05

    the last year we've seen a lot of

  60. 3:07

    unbounded consumption happening like um

  61. 3:12

    if you've read the news. There was news

  62. 3:14

    about the like the uh AI budget for Uber

  63. 3:19

    getting exhausted within 4 months and um

  64. 3:21

    there were companies who like who ran

  65. 3:24

    into you know

  66. 3:26

    like hundreds of millions of dollars

  67. 3:28

    within just months or days and like

  68. 3:30

    there were a lot of um like other news

  69. 3:32

    in place as well where like these

  70. 3:35

    runaway loops um led to a very like

  71. 3:39

    massive increase in the cost and there

  72. 3:42

    wasn't proper mechanisms to control it.

  73. 3:47

    Um so when we see all of this the first

  74. 3:50

    thing that comes to our mind is is there

  75. 3:52

    a tool or is there a product to save us?

  76. 3:54

    But uh we'll instead talk about the

  77. 3:58

    first principles of how you know we can

  78. 4:02

    design a system which is actually true

  79. 4:05

    enough to solve the problem from the

  80. 4:07

    very root. So for that let's um like

  81. 4:10

    dive onto the principles. First of all,

  82. 4:13

    let's talk about token being the unit of

  83. 4:15

    cost. Right? We are charged in terms of

  84. 4:18

    token. So the now we have to see value

  85. 4:23

    also in terms of token. Right? Next um

  86. 4:27

    we all know that cost is created at the

  87. 4:30

    LLM like the model call boundary. Um so

  88. 4:33

    that is what we'll have to track and if

  89. 4:37

    we don't have proper attribution like if

  90. 4:39

    we don't know what agent want run made

  91. 4:42

    that particular call we we can't you

  92. 4:45

    know control it right we we just know

  93. 4:48

    the like the broad uh picture of what

  94. 4:51

    went wrong but we don't we can't you

  95. 4:53

    know trace it back or narrow it down. So

  96. 4:55

    that is why attribution is a very

  97. 4:57

    important element to have and um like

  98. 5:01

    once you know which particular run or

  99. 5:04

    which particular agent is actually you

  100. 5:07

    know attributing to the cost you should

  101. 5:09

    have proper policies in place to

  102. 5:11

    actually stop it. Like um let's take

  103. 5:14

    example that um if you have a you know

  104. 5:17

    um a loop which is you know running um

  105. 5:22

    very excessively and which is not

  106. 5:24

    required or you know if your context is

  107. 5:27

    growing very out of range. you should

  108. 5:30

    have in place policies which can um like

  109. 5:33

    solve that particular thing there and

  110. 5:35

    there instead of halting that and if um

  111. 5:38

    and as the last resort only a like a

  112. 5:41

    halting or a should happen from a budget

  113. 5:44

    cap. So these are the first principles.

  114. 5:46

    Now let's see how we can you know define

  115. 5:50

    an ideal uh platform on top of that from

  116. 5:53

    these principles which we talked about.

  117. 5:56

    All right. Uh so one thing which is very

  118. 5:58

    important that which matters here is

  119. 6:00

    that u when we talk about um like the um

  120. 6:05

    existing frameworks for token ops or for

  121. 6:07

    token management most of them are at the

  122. 6:11

    um like u basically monitor the model uh

  123. 6:15

    request. they like they are like model

  124. 6:19

    gateways which will u you know u

  125. 6:22

    basically um do like model routing or

  126. 6:26

    hard budget capping. But what we need

  127. 6:28

    right now is something which you know um

  128. 6:33

    like monitors you at the run instead.

  129. 6:35

    Like um if you see we need something uh

  130. 6:39

    which can control the loop between like

  131. 6:43

    the agent call between the tool um and

  132. 6:47

    the agent. something you know which can

  133. 6:50

    um uh see or control the the spawning of

  134. 6:54

    multiple sub aents happening from a one

  135. 6:56

    main agent or um like something which

  136. 7:00

    can control the growing of context. So

  137. 7:02

    like that is the need of the right and

  138. 7:05

    that is what we need. So for all of this

  139. 7:08

    um we like uh kind of are proposing a

  140. 7:12

    platform which first of all um has a

  141. 7:15

    cumulative budget across like the uh

  142. 7:19

    like the attribution runs which happened

  143. 7:24

    and then where enforcement actually

  144. 7:26

    happens in call path rather than um you

  145. 7:30

    know a separate thing like for example

  146. 7:33

    if something goes wrong if your like if

  147. 7:35

    your context is just growing heavily.

  148. 7:38

    Then like in place compaction should

  149. 7:43

    happen or like in place caching or

  150. 7:45

    something like that should happen. And

  151. 7:47

    um after that if like after basically

  152. 7:50

    exhausting the list of all in place

  153. 7:53

    policies only like uh the budget cap

  154. 7:57

    should happen at the very last. Um so

  155. 7:59

    that is something which we are

  156. 8:01

    proposing. But um if you look at the

  157. 8:04

    landscape today, if you see the uh like

  158. 8:07

    the uh tools like um this light LLM,

  159. 8:10

    port key, cloudflare, all of those they

  160. 8:12

    happen at again the request level right

  161. 8:16

    um like if you see like halting is

  162. 8:20

    there, routing is there for some of

  163. 8:22

    those but all of this again is at a

  164. 8:26

    request and you can't control the cost

  165. 8:28

    at the uh request layer uh at the model

  166. 8:31

    layer, Right.

  167. 8:34

    So this is the missing piece which is

  168. 8:36

    you know the

  169. 8:38

    u basically navigating it at the um you

  170. 8:42

    know the model the agent run layer.

  171. 8:47

    So for that we have token ops which is

  172. 8:50

    uh you know a runaway token governance

  173. 8:52

    for AI agents and u this is the uh

  174. 8:57

    architecture for that. So first of all

  175. 9:00

    one thing I would want to highlight is

  176. 9:02

    the like the intentional design decision

  177. 9:04

    we took here was an out ofbound plane.

  178. 9:07

    So it doesn't interfere with your code

  179. 9:10

    at all. Um so if you see here that out

  180. 9:13

    of the bandound plane has three modules

  181. 9:15

    which I'll be talking about. The first

  182. 9:17

    one being instrumentation. It is a

  183. 9:19

    common observability layer where you

  184. 9:21

    know you'll u like uh have u like the

  185. 9:25

    basic telemetry the open telemetry the

  186. 9:27

    cost in microns and um like the um like

  187. 9:32

    enrichment layer and basically um the uh

  188. 9:37

    attribution like what caused that uh

  189. 9:40

    like particular run

  190. 9:43

    and then there is um obviously

  191. 9:45

    accounting where

  192. 9:48

    you'll basically accumulate it in a kind

  193. 9:51

    of a ledger like the total runs which

  194. 9:54

    are happening. And finally we have this

  195. 9:56

    enforced layer which has uh two main

  196. 10:00

    purposes. one is steering it um through

  197. 10:04

    the policies which we've defined which I

  198. 10:06

    think will cover later and um then we

  199. 10:10

    have halt in place as the you know final

  200. 10:13

    um like u final thing if um you know

  201. 10:16

    your budget is getting exhausted

  202. 10:19

    so yeah that is there now when we again

  203. 10:22

    look at the landscape this kind of will

  204. 10:26

    solve a lot of problems

  205. 10:29

    um which kind of happened uh when we

  206. 10:32

    like look at the previous um tools or

  207. 10:35

    products there because uh it is at

  208. 10:38

    happening at run and it is you know uh

  209. 10:41

    helping you solve the problem from the

  210. 10:44

    very root by steering it in place.

  211. 10:48

    All right. So uh with this I would like

  212. 10:51

    to hand it over to Sashim for the demo.

  213. 10:53

    >> Yeah.

  214. 10:57

    >> Oh yeah. Now I think I should be able to

  215. 10:59

    everyone in the back can hear me. All

  216. 11:00

    right, perfect. So yeah, we have

  217. 11:03

    established the principles behind token

  218. 11:05

    ops till now. Right. Now let's shift

  219. 11:08

    gears, talk about the design part of it

  220. 11:09

    and uh maybe get into the code and the

  221. 11:12

    eventual demo. Right? So what I have

  222. 11:14

    behind me on the screen is the like

  223. 11:16

    bird's eye view of what token ops looks

  224. 11:19

    like today. It's it's three layers.

  225. 11:21

    We'll go left to right and top to

  226. 11:23

    bottom. So on the left most you have

  227. 11:24

    your own agent runtime which you're

  228. 11:26

    trying to instrument and kind of manage

  229. 11:27

    the cost for right the middle layer is

  230. 11:30

    what we're calling the bridge that

  231. 11:32

    basically shuffles data between your

  232. 11:33

    agent and the control plane and the

  233. 11:36

    control plane is where the mind of the

  234. 11:38

    system lies right so let's talk about

  235. 11:40

    the bridge layer very briefly if we uh

  236. 11:42

    go from top to bottom you have the

  237. 11:43

    attribution on top so what we're trying

  238. 11:45

    to do here is every agent run that you

  239. 11:48

    do it's attributed to some user

  240. 11:50

    dimensions so the idea is everything

  241. 11:53

    that you do every run of the agent is

  242. 11:55

    accounted to some usability or some

  243. 11:57

    usage. This comes in handy later. We'll

  244. 11:59

    talk about it. Uh the second part which

  245. 12:01

    is the boundary annotation that you see

  246. 12:03

    this is pretty much the heart and soul

  247. 12:04

    of this middle layer. So the idea behind

  248. 12:07

    the boundary annotation is that you take

  249. 12:08

    any method. It doesn't matter what

  250. 12:10

    framework you're using. You might be

  251. 12:11

    using uh let's say lang chain lang

  252. 12:13

    whatever. If you have a method you can

  253. 12:15

    annotate it with boundary. What this

  254. 12:17

    annotation is going to do is it's going

  255. 12:19

    to do two things. First it's going to

  256. 12:20

    track the input and the output and it's

  257. 12:22

    going to flight that up to the control

  258. 12:24

    layer and record it there as a ledger

  259. 12:26

    entry. Now this will be annotated with

  260. 12:28

    the further agent run ID and the other

  261. 12:30

    attributes and so on. The second thing

  262. 12:32

    the boundary annotation does is it acts

  263. 12:34

    as a channel through which the control

  264. 12:35

    plane can push actions down to the

  265. 12:37

    agent. This is where the entire

  266. 12:39

    intelligence lies. So we do not have a

  267. 12:41

    single directional highway. We want the

  268. 12:43

    control plane to be able to tweak the

  269. 12:45

    behavior of the agent on the fly to

  270. 12:48

    ensure that we are able to squeeze in

  271. 12:49

    more runs inside our budget cap. Right

  272. 12:52

    now let's say the control plane pushes

  273. 12:54

    down an action. Let's take a small

  274. 12:55

    example. Let's say you have a rag

  275. 12:56

    retrieval tool which is generating like

  276. 12:58

    20 chunks every retrieval for every call

  277. 13:01

    and that's eating up eating up your

  278. 13:02

    budget. And let's say the LLM is not

  279. 13:04

    even using the chunks that are after

  280. 13:06

    five because they are just not relevant,

  281. 13:07

    right? They're sorted by relevance. So

  282. 13:09

    let's say the control plane observes

  283. 13:10

    this and it wants to limit the output to

  284. 13:13

    just five chunks. So it can push down an

  285. 13:15

    action but that action has to be

  286. 13:17

    received by boundary and then has to be

  287. 13:19

    executed by something. That is where the

  288. 13:21

    third node, the governor node comes in.

  289. 13:22

    The governor knows what actions are

  290. 13:26

    allowed on your agent by you as a

  291. 13:28

    developer and it receives those actions

  292. 13:30

    from the control plane and knows how to

  293. 13:31

    apply it in a non-destructive way. So

  294. 13:34

    that's the first three. The fourth one

  295. 13:35

    wrap uh the wrap complete is essentially

  296. 13:37

    just a helper method. So as we know most

  297. 13:40

    of the agent providers or the model

  298. 13:41

    providers they provide objects rather

  299. 13:43

    than methods for their LMS right. So

  300. 13:45

    wrap complete is just another way of

  301. 13:46

    applying boundary on objects rather than

  302. 13:48

    methods. Let's shift right to the

  303. 13:51

    control plane. On the control plane the

  304. 13:52

    first layer is the segment. Now this is

  305. 13:55

    where the attribution that we talked

  306. 13:56

    about earlier comes into picture. So any

  307. 13:59

    dimensions that you float from the

  308. 14:01

    attribution layer. Let's say you have a

  309. 14:03

    preview agent that you share with

  310. 14:04

    everyone in this room and your agent is

  311. 14:06

    floating a dimension saying that cohort

  312. 14:09

    is AIE 2026 right so you can create a

  313. 14:12

    segment which is a cohort of users which

  314. 14:15

    is based on this tag like dimension

  315. 14:16

    being AI 2026 right and you can apply

  316. 14:19

    your budgets at this cohort level so you

  317. 14:21

    don't necessarily have to restrict

  318. 14:23

    everything at an agent level or a run

  319. 14:24

    level you can do you can do rollups you

  320. 14:27

    can do fine grain or coarse grain

  321. 14:28

    control right so that's the segmentation

  322. 14:31

    part of Ledger as I mentioned is just

  323. 14:33

    one agent run all the traces in one

  324. 14:35

    place. Then you have budgets. Budgets

  325. 14:37

    are basically just the static thresholds

  326. 14:39

    that work across a time window against a

  327. 14:41

    particular segment or an agent run. And

  328. 14:43

    then you have actions. So on the actions

  329. 14:45

    part we have broadly two flavors. First

  330. 14:48

    is the halt type actions which basically

  331. 14:49

    just kill your agent if it exceeds a

  332. 14:51

    budget. The second part where we are

  333. 14:53

    adding value is the steer type actions.

  334. 14:56

    So here we do not kill the agent.

  335. 14:58

    Instead we try to steer the behavior of

  336. 15:00

    the agent or the components of the agent

  337. 15:02

    to try and fit that particular run

  338. 15:05

    within the alerted budget. Right? And

  339. 15:07

    then the policies layer is where it all

  340. 15:09

    comes together. You basically uh group

  341. 15:11

    the budgets the actions and then set

  342. 15:13

    your policies against certain segments

  343. 15:15

    or agent runs and that is where it

  344. 15:16

    executes. Right? So moving on uh what

  345. 15:20

    changes in your code that is the

  346. 15:21

    boundary annotation that we just talked

  347. 15:22

    about. As Disha mentioned earlier this

  348. 15:24

    is all out of band. So you do not have

  349. 15:26

    to change your code. You just have to

  350. 15:27

    apply the annotation on the methods that

  351. 15:29

    you have. This boundary annotation will

  352. 15:31

    take care of floating all the

  353. 15:32

    information up to the control plane. And

  354. 15:34

    uh the control plane lies in your own

  355. 15:35

    tenant. So you do not need to worry

  356. 15:37

    about any data leaks or anything. Then

  357. 15:39

    if I talk about the governor, so for the

  358. 15:42

    governor, you just have to create an

  359. 15:43

    instance. You just have to pass it your

  360. 15:44

    own configs. These configs will

  361. 15:46

    basically declare what sort of actions

  362. 15:48

    are allowed for those agents, right? so

  363. 15:50

    that your control plane cannot just

  364. 15:53

    willingly do any random things on your

  365. 15:55

    on your agents. So before we move on to

  366. 15:58

    the demo, I'll just briefly touch upon

  367. 16:00

    the uh test that we're going to use

  368. 16:01

    today. So it's a simple two agent

  369. 16:03

    workflow. We have a research agent which

  370. 16:06

    has access to a search tool. Uh you give

  371. 16:08

    it a question. It's allowed to look up

  372. 16:10

    on the web as many times as it wants.

  373. 16:12

    And once it knows that it has all the

  374. 16:14

    data, it passes the findings on to the

  375. 16:16

    second agent which is a summarizer which

  376. 16:17

    creates creates a research report.

  377. 16:19

    Right? So with that out of the way,

  378. 16:21

    let's just quickly walk over to the

  379. 16:23

    demo. So for the demo, we have three

  380. 16:25

    different scenarios that we're going to

  381. 16:26

    talk about. For the first one, we're

  382. 16:28

    going to run the token ops in what we

  383. 16:30

    call preview mode. So in preview mode,

  384. 16:32

    what happens is that all the policies

  385. 16:34

    run as is, but the enforcement doesn't

  386. 16:36

    happen. So if you see we ran a

  387. 16:39

    particular run over here which completed

  388. 16:42

    but we did not see any sort of failures

  389. 16:45

    there. The policies executed but the

  390. 16:48

    actions that were associated with those

  391. 16:50

    policies were not allowed to be

  392. 16:51

    executed. So we're just going to load

  393. 16:53

    the dashboard screen here.

  394. 16:57

    Yeah. So this is the governance output.

  395. 17:00

    Governance is off. The run completed.

  396. 17:02

    But in the dashboard you can see the

  397. 17:03

    policies have executed. So you can see

  398. 17:04

    the cost budget, the cost guard and so

  399. 17:06

    on. Right? So this was the first

  400. 17:08

    scenario. For the second scenario, what

  401. 17:10

    we're going to do is we're going to turn

  402. 17:11

    on the governance. Now while that is

  403. 17:14

    happening, I just want to touch upon why

  404. 17:15

    this is important. So if you want to

  405. 17:17

    like include this product into your

  406. 17:19

    production agents, you want to have a

  407. 17:21

    safe environment or a safe way to

  408. 17:22

    firstly put it in your production

  409. 17:24

    environment, test the guardrails, tweak

  410. 17:25

    the guardrail, see what's the policies

  411. 17:27

    are doing and then finalize the

  412. 17:30

    thresholds. Right? So this is the second

  413. 17:32

    one where we have now enforced the

  414. 17:34

    governance and you can see in the

  415. 17:36

    dashboard that the pre-all cost cap has

  416. 17:39

    exceeded. So you had a budget allotted

  417. 17:41

    for this run but the agent exceeded the

  418. 17:44

    budget and it was killed immediately. So

  419. 17:45

    that's the simple circuit breaker sort

  420. 17:47

    of a methodology. So this is the halt

  421. 17:49

    behavior. And now let's see the steer

  422. 17:52

    behavior which is the which is where we

  423. 17:55

    are trying to add value to this entire

  424. 17:57

    cost management scenario. So this time

  425. 17:59

    we're going to run the third the second

  426. 18:00

    prompt. The budget allotted for this one

  427. 18:03

    is slightly higher but it's still not

  428. 18:04

    high enough for the agent to complete in

  429. 18:07

    time. So what instead happens is there

  430. 18:09

    is something called cost guard which

  431. 18:11

    kicks in. This cost guard it takes into

  432. 18:13

    account two things. First how much of

  433. 18:15

    your allotted budget have you consumed?

  434. 18:17

    Second what is the velocity at which

  435. 18:19

    you're consuming tokens. [music] Now

  436. 18:20

    based on these two things if it predicts

  437. 18:22

    that you're going to run out of your

  438. 18:24

    tokens or your allotted budget by the

  439. 18:26

    end of the run it's going to inject

  440. 18:28

    something into your system instructions

  441. 18:30

    that something could be as simple as hey

  442. 18:33

    you're running out of budget so make

  443. 18:35

    sure that the LM outputs are more

  444. 18:36

    succinct or more summarized right so

  445. 18:39

    that is the way we are doing the

  446. 18:41

    steering now the this was a very simple

  447. 18:44

    test bench to show you like how this

  448. 18:46

    works on a like working code we have

  449. 18:49

    also benchmarked it on a couple of open

  450. 18:51

    source repos. So we have benchmarked it

  451. 18:53

    on browser use as well as metagp. Uh we

  452. 18:56

    ran it across multiple iterations across

  453. 18:58

    stress tests across simple scenarios

  454. 19:00

    hard scenarios and everything. And the

  455. 19:01

    results we see are the average spend

  456. 19:03

    goes down by almost 78% with token ops

  457. 19:06

    enabled with the full policy suit that

  458. 19:07

    we have today. On the completion part

  459. 19:10

    when we compare it with throttling just

  460. 19:12

    simple throttling your simple throttling

  461. 19:14

    is going to kill your agent runs no

  462. 19:16

    matter what. Right? So with the reduced

  463. 19:18

    average spend what you get is you get an

  464. 19:20

    uplift in that completion percentage

  465. 19:22

    from 67% to roughly 96%. So that is the

  466. 19:25

    value ad that token ops is doing here.

  467. 19:27

    Now this is the policy catalog that we

  468. 19:29

    run this benchmark against. This is what

  469. 19:31

    we support today. We kind of researched

  470. 19:33

    what are the different failure modes

  471. 19:34

    that are there today out in the wild and

  472. 19:36

    tried to cover most of them here. So you

  473. 19:38

    have things across spend management, you

  474. 19:40

    have things across context management

  475. 19:41

    like context compaction, tool output

  476. 19:43

    reduction, you have things across loop

  477. 19:45

    detection and progress detection and

  478. 19:46

    stuff like that. So this is the entire

  479. 19:48

    set of policies that we support. And at

  480. 19:50

    the bottom you can see the actions. So

  481. 19:51

    as I mentioned earlier, we have two

  482. 19:53

    flavors. You have the uh the halt type

  483. 19:56

    actions and then the steer type actions.

  484. 19:58

    So for the steer we can do allow,

  485. 20:00

    mutate, inject and so on. And for the

  486. 20:02

    halt, it can be a simple kill. But this

  487. 20:04

    is not the end state that we envision

  488. 20:05

    for this. The end state is we have a lot

  489. 20:09

    of data right we have a ledger that is

  490. 20:11

    continuously being updated. So what we

  491. 20:13

    want to try is we want to try a

  492. 20:15

    self-learning module within the token

  493. 20:17

    ops plane within the control plane which

  494. 20:19

    can look at this ledger and ask this

  495. 20:21

    question hey why or what is the failure

  496. 20:24

    mode that I'm still not able to catch

  497. 20:26

    and then based on that it can do two

  498. 20:28

    things one is it can enhance it can

  499. 20:30

    generate new policies on the fly based

  500. 20:33

    on the missing or the still uh runaway

  501. 20:36

    costs or it can refine the existing

  502. 20:39

    parameters for the existing policies

  503. 20:40

    that are there so that the runaway costs

  504. 20:43

    are managed more effectively in the

  505. 20:44

    future. So with that I think uh that is

  506. 20:47

    all we have for you guys today. Thank

  507. 20:49

    you so much for your time and you can

  508. 20:51

    scan this QR code that's the public

  509. 20:52

    wiki. We are updating it almost

  510. 20:54

    regularly. So you can scan this and stay

  511. 20:57

    up to date and uh Tisha and I are around

  512. 20:59

    so if you guys have any questions or if

  513. 21:00

    you want to discuss more about it just

  514. 21:02

    let us know. That's it. Thank you.

  515. 21:05

    [applause]