AI Engineer World's Fair 2026

Agents Are Where Microservices Were in 2015 — Roberto Milev & Uday Kanagala, Navan

Read the talk

Agents Are Where Microservices Were in 2015

Roberto Milev and Uday Kanagala explain Navan’s emerging production-agent stack: persistent sessions, layered memory, progressively loaded skills, tool-call controls, trajectory evaluation, and fine-grained authorization—plus the costs and debugging problems that remain open.

From a talk by Roberto Milev and Uday Kanagala

At a glance

Ideas worth remembering

  • Establish a reliable single agentic loop before adding multi-agent orchestration; the speakers recommend avoiding that extra complexity until it solves a real need.

  • Production agents require persistent, isolated sessions and recovery through rehydration, even when a managed runtime supplies the basic execution environment.

  • Treat skills as reusable units that combine domain instructions with execution capabilities, then load them progressively to protect context focus.

  • Instrument pre- and post-tool boundaries so the system can block actions, emit structured traces, and route inferred decisions to human review.

  • For nondeterministic multistep agents, evaluate trajectory progress, efficiency, and completeness rather than requiring every successful run to follow an identical sequence.

  • Authorization must represent delegated action explicitly. A user’s earlier instruction does not by itself settle which identity and permissions govern a later purchase.

  • Runtime and tool invocation may be maturing, but predictable cost, replay, debugging, observability semantics, and agent-to-agent standards remain open work.

Start with one reliable agentic loop

The talk opens with an architectural warning borrowed from the rise of microservices. That shift eventually produced useful machinery—Kubernetes, service meshes, circuit breakers, and container orchestration—but teams needed time to learn how to use it well. Splitting a poorly structured application into services did not fix its underlying design. Milev applies the same test to agents: establish a working single agentic loop before taking on the added complexity of multi-agent orchestration.

Useful overview of the emerging production stack: runtime, memory, context management, operational concerns, and orchestration.
Useful overview of the emerging production stack: runtime, memory, context management, operational concerns, and orchestration.

Navan’s production experience suggests that a reference architecture is nevertheless taking shape. The speakers organize it around runtime, memory, context management, cross-cutting operational controls, and orchestration. The rest of the talk walks up this stack, distinguishing components that have become usable from those that still need engineering work.

0:130:43
Suggest correction

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

0:13 · section reference included

Agents turn stateless infrastructure into a state-management problem

Traditional API services often scale by keeping instances stateless. Agents invert that assumption: they carry an ongoing session, need isolation, and may live much longer than a request-response handler. A production runtime therefore has to preserve session state and restore it when execution moves or restarts. AWS, GCP, and Azure all offer agent-oriented runtimes, but adopting one does not necessarily finish the job.

Illustrates the layered-memory progression from ingestion and extraction through consolidation and retrieval, including short-, long-, and episodic memory.
Illustrates the layered-memory progression from ingestion and extraction through consolidation and retrieval, including short-, long-, and episodic memory.

Navan runs on AWS and uses its agent runtime while supplying its own session persistence and rehydration. Rehydration is the operationally important step: the runtime must reconstruct enough of an earlier session for work to continue rather than treating a recovered process as a fresh agent. The talk does not describe the stored representation, consistency model, or recovery procedure, so this is an architectural requirement rather than a complete implementation recipe. Navan also uses multiple agent SDKs; the speakers characterize managed runtimes as broadly framework-agnostic even when each provider favors its own framework.

Memory starts from the same constraint as retrieval-augmented generation: an agent cannot carry unlimited information in its active context. The memory pipeline described here ingests material, extracts useful information, consolidates it, and later retrieves selected pieces. Retrieval is only the last stage; the system must first decide what deserves to become memory and how separate observations should be combined.

The speakers distinguish three useful timescales: short-term conversational memory preserves the current interaction, managed long-term memory carries information across interactions, and episodic memory records examples of attempts that worked or failed. Navan uses its cloud provider’s memory service but adapts it to its own use case. No retention policy, consolidation algorithm, or measured quality gain is given, leaving memory selection and lifecycle management as implementation-specific work.

2:122:42
Suggest correction

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

2:12 · section reference included

Package context and execution together as skills

Larger context windows do not remove context management. Too little context leaves an agent uninformed; too much can dilute the instructions and evidence that matter for the current task. Navan’s answer is to make a skill the unit of context rather than loading every domain’s material into every run.

Introduces skills as the unit of context and explains why larger context windows do not eliminate context-management problems.
Introduces skills as the unit of context and explains why larger context windows do not eliminate context-management problems.

A skill has two sides. It contains instructions and setup for a domain or task, and it contains the tool-execution capability used to perform that work. Navan composes an agent’s context dynamically from these packages, treating them as pluggable units that can be reused and tested independently. This moves context selection closer to software composition: a task receives the capability and instructions it needs without inheriting the whole system’s knowledge.

Progressive disclosure keeps the initial context small. The agent begins with limited information about available skills, then follows included metadata to load more detail as the task develops. The tradeoff is explicit: selective loading protects focus, but the system must reliably recognize which skill to load and when. The talk says skills are independently testable, though it does not show the triggering tests or an evaluation of skill-selection accuracy.

How it fits togetherProgressive skill loading

The agent begins with a domain or use case to navigate.

Navan composes task context from modular skills and expands it only as the agent needs more detail.

5:145:44
Suggest correction

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

5:14 · section reference included

Ordinary logs give way to structured tool-call traces

Kanagala makes the operational problem concrete with an agent that fails halfway through a 20-step or 30-step process. Conventional logs may contain the evidence, but an agent can emit too much reasoning and intermediate activity for an engineer to consume efficiently. The useful question changes from “What did the process print?” to “At which action did its progress diverge?”

Documents the structured trace signals Navan records, including the current goal, reasons, belief status, and tool calls.
Documents the structured trace signals Navan records, including the current goal, reasons, belief status, and tool calls.

Hooks at tool-call boundaries create structured interception points. Before or after a tool call, the surrounding system can block an operation, record an audit event, or emit a metric. Navan sends these events to Braintrust and examines traces and spans to locate where an agent became stuck. This is described as a day-two concern: frameworks make an initial agent relatively easy to build, while operating and diagnosing it later remains the harder job.

Navan’s traces include the current goal, reasons associated with operations, belief status, and tool calls. Decisions also carry a confidence score and signals indicating whether an answer was inferred or supported through multiple paths. An inferred result can be routed to a human for guidance. The speakers do not explain how confidence is calculated, calibrated, or converted into an escalation threshold, so these fields should be understood as review signals rather than proven probabilities.

How it fits togetherTool-call boundaries become control and observation points

The trace records the current goal, reasons, belief status, and confidence-related signals.

The same hooks can enforce policy, emit structured traces, and route uncertain decisions to a person.

6:457:05
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

Evaluate progress without requiring an identical path

Testing exposes the same nondeterminism from another direction. A conventional program has an expected sequence of operations that an engineer can explain. An agent may choose different intermediate steps on separate runs, and a change that fixes one failure can introduce another. An assertion over one final string therefore says little about whether the agent reached a goal efficiently or by an acceptable route.

Introduces trajectory evaluations as Navan’s response to regressions and nondeterministic multi-step agent behavior.
Introduces trajectory evaluations as Navan’s response to regressions and nondeterministic multi-step agent behavior.

Navan relies heavily on trajectory evaluations for multistep work. Instead of demanding one deterministic 30-step graph, an evaluation observes movement from the initial intent toward the destination. It can then assess how far the run progressed and use that progress to reason about completeness and efficiency while allowing the chosen path to vary.

Trace signals connect diagnosis to evaluation. If a result depends on an inferred answer, that fact can help classify a behavioral change as a regression and guide the next fix. The talk does not provide a trajectory-distance formula, reference path, weighting scheme, or passing threshold. The mechanism is therefore a testing direction—score the path and its progress—not a fully specified evaluation standard.

9:329:51
Suggest correction

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

9:32 · section reference included

A delayed purchase blurs who is acting

Guardrails begin with information governance: enterprise agents can send sensitive material to models, sometimes without sufficient awareness. They also expose a deeper identity problem. Traditional authorization usually recognizes a person or a service account. An agent may act for the former while using the latter, which makes the familiar identity model incomplete.

Concise evidence that Navan places guardrails before and after every tool call to inspect, block, and inform decisions.
Concise evidence that Navan places guardrails before and after every tool call to inspect, block, and inform decisions.

The travel example makes the ambiguity visible: a user asks an agent to book a flight whenever the fare falls below $200. The user sets the condition now; the agent may decide to execute much later. Who made the eventual purchase—the user, the agent acting for the user, or a service identity used by the agent? The price threshold does not answer which credentials, permissions, or delegation policy should govern the transaction.

Navan responds with fine-grained policy checks before and after every tool call. These guardrails can inspect and block actions where they cross into external systems, rather than relying on a single check at the beginning of a session. The talk identifies the enforcement points but does not specify the delegation token, purchase policy, revocation behavior, or treatment of a session whose authority changes before the delayed condition becomes true.

12:0312:11
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

Use one master agent until a real boundary demands another

The opening microservices analogy returns when the speakers compare single-agent and multi-agent orchestration. Navan chose a single master agent that progressively loads sub-skills and decides what belongs in context for the current use case. The speakers also mention sub-agents within this arrangement, but do not define precisely where a skill ends and a sub-agent begins. The supported design principle is centralized navigation with modular capabilities, not an absolute ban on internal delegation.

Shows Navan’s orchestration pattern: one master agent progressively loads sub-skills, with sub-agents inside the arrangement.
Shows Navan’s orchestration pattern: one master agent progressively loads sub-skills, with sub-agents inside the arrangement.

Agent-to-agent communication becomes more compelling when it reflects an organizational boundary. Two teams may own separate agents and need an explicit way to communicate without collapsing their systems into one implementation. The speakers present A2A as an emerging protocol for expressing contracts in terms of skills across that boundary. This is a narrower justification for multiple agents than orchestration for its own sake: separate ownership creates the interface.

13:5214:21
Suggest correction

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

13:52 · section reference included

The stack is crystallizing, but cost and replay remain open

Milev closes by grading the stack unevenly. In his assessment, runtime and scaling are largely solved, while memory is maturing through better models, operating practices, and cloud services. He also sees tool calling and MCP as points of industry convergence. These are the speaker’s production judgments, not guarantees that managed runtimes or memory services cover every reliability requirement.

Highlights the major unresolved operating issue: agent cost remains difficult to predict, manage, and constrain.
Highlights the major unresolved operating issue: agent cost remains difficult to predict, manage, and constrain.

Observability remains less settled. OpenTelemetry can be adapted to agentic calls, but the speakers question how naturally it represents them. Testing patterns are becoming more usable despite agent unreliability, and orchestration now offers recognizable large-agent and small-agent patterns. Their recommendation stays conservative: use the simplest arrangement that works and avoid overengineering while these patterns continue to change.

Cost is the clearest unresolved production problem. Navan finds agent spending difficult to predict and control. Reliable fallbacks and routing selected tasks to cheaper models are possible directions, but the talk does not present either as a finished strategy. Milev also points out an incentive mismatch: major AI vendors benefit when customers consume more tokens, while application teams must make that consumption economically predictable.

Replay and debugging remain difficult because engineers must reconstruct long, variable runs from large volumes of agent activity. The speakers suggest using agents to help analyze other agents’ traces and reduce that cognitive load, but no replay mechanism or measured debugging improvement is demonstrated. Standards such as OpenTelemetry and Agent2Agent are still evolving, with the latter described as young and influenced by particular vendors. The ending is pragmatic rather than triumphant: the industry increasingly knows which capabilities it needs, but engineers still have to build the dependable operating layer around them.

15:2915:59
Suggest correction

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

15:29 · section reference included

Resources

From the talk

  • 12-Factor Agents: Patterns of reliable LLM applications

    A complementary production-oriented argument for keeping agent systems modular, controlling orchestration explicitly, and surrounding probabilistic model behavior with deterministic software.

  • Don't Build Agents, Build Skills Instead

    Develops the skill abstraction in greater depth, including progressive disclosure, reusable procedural knowledge, and the separation between runtime, connectivity, and expertise.

  • How to Secure Agents using OAuth

    Extends the flight-purchase authorization problem with concrete delegated-access concepts including OAuth clients, scopes, access tokens, consent, and agent-specific security questions.

Read the complete timestamped transcript
  1. 0:01

    [music]

  2. 0:13

    >> Right. Hello, everybody. Um welcome to

  3. 0:16

    our talk. My name is Roberto Milev. I am

  4. 0:19

    the chief architect at Navan.

  5. 0:21

    And I have Uday here, who's also part of

  6. 0:23

    the architecture team.

  7. 0:25

    Uh Navan is a travel and expense

  8. 0:28

    management company.

  9. 0:30

    And we'll share with you some of our

  10. 0:31

    learnings around how you run an AI and

  11. 0:34

    what have we

  12. 0:35

    uh discovered.

  13. 0:37

    So,

  14. 0:39

    uh if you've been long enough um in this

  15. 0:42

    industry, you remember that

  16. 0:44

    over time there are a few paradigm

  17. 0:46

    shifts.

  18. 0:47

    And we all tend to jump on a bandwagon

  19. 0:49

    and try to uh kind of do things, all

  20. 0:52

    right?

  21. 0:53

    Last time was when we all jumped on the

  22. 0:56

    microservices bandwagon. And out of

  23. 0:58

    that, a lot of good things came out,

  24. 1:00

    like container orchestration,

  25. 1:02

    Kubernetes.

  26. 1:04

    Then we had service mesh,

  27. 1:07

    uh circuit breakers, all of those good

  28. 1:10

    things.

  29. 1:10

    But it didn't happen overnight. Like it

  30. 1:12

    took a long time. It took some time for

  31. 1:15

    us to learn how to do these things.

  32. 1:18

    So, one of the quotes from there is, "If

  33. 1:20

    you can't build a well-structured

  34. 1:21

    monolith, why even try to build

  35. 1:23

    microservices?"

  36. 1:25

    Uh it kind of translates today because

  37. 1:28

    if you can't build a single agentic

  38. 1:30

    loop, why go in and try to build a

  39. 1:33

    multi-agent orchestrated system?

  40. 1:37

    So, over time, just like previously,

  41. 1:41

    uh a reference architecture is emerging.

  42. 1:44

    So, we

  43. 1:46

    have learned a few things by by doing in

  44. 1:49

    production. We have a

  45. 1:51

    lot of agents, a lot of tokens per day

  46. 1:53

    being used.

  47. 1:55

    And as I said, there are few layers that

  48. 1:58

    have standardized, that have

  49. 1:59

    crystallized around what do we need to

  50. 2:02

    run agentic flows

  51. 2:05

    reliably in production.

  52. 2:07

    Runtime memory, context management, all

  53. 2:11

    around operational

  54. 2:12

    cross-cutting concerns, and around

  55. 2:14

    orchestration as well. So, today we'll

  56. 2:16

    go over some of these layers, all of

  57. 2:18

    these layers actually, and we will show

  58. 2:22

    kind of where the industry is, what we

  59. 2:24

    have done, what we have learned, and and

  60. 2:26

    so on.

  61. 2:28

    So, starting at the runtime layer,

  62. 2:32

    we've talked a lot and we've built a lot

  63. 2:34

    of services

  64. 2:35

    in order to scale them

  65. 2:38

    statelessly

  66. 2:39

    before.

  67. 2:40

    And now we're in a new world where, you

  68. 2:42

    know, agents are stateful by nature.

  69. 2:44

    They need to have persistent sessions.

  70. 2:48

    They need to have isolation. Their life

  71. 2:51

    cycle is different than the life cycle

  72. 2:53

    of a traditional API service, and so on.

  73. 2:57

    So,

  74. 2:58

    the cloud providers have jumped in and

  75. 3:01

    try to fill this gap.

  76. 3:03

    Um, you know, AWS, GCP, Azure, they all

  77. 3:08

    have a

  78. 3:10

    some incarnation of a agentic runtime.

  79. 3:13

    If you scan the QR code for this slide

  80. 3:15

    and for the following slides,

  81. 3:17

    you will see a comparison of some of the

  82. 3:19

    features and how different cloud

  83. 3:20

    providers try to try to

  84. 3:23

    approach this.

  85. 3:25

    At Nvono, we run everything on AWS. AWS

  86. 3:29

    has an agent core runtime. We heavily

  87. 3:31

    use that, but we have filled some gaps

  88. 3:33

    around that, like the

  89. 3:36

    session persistence and rehydration

  90. 3:39

    is something that we have built.

  91. 3:41

    And we also run a bunch of other

  92. 3:44

    bunch of SDKs for writing agents. And

  93. 3:47

    part of

  94. 3:48

    these runtimes is typically they are

  95. 3:50

    framework agnostic, although they all

  96. 3:52

    prefer their

  97. 3:53

    native framework in a way.

  98. 3:57

    Um the next

  99. 3:59

    layer in the stack is around memory.

  100. 4:03

    Um

  101. 4:04

    we started with rag. Rag was kind of a

  102. 4:06

    big thing for a while. We were

  103. 4:10

    kind of driven to that out of necessity

  104. 4:12

    because you cannot fit an unlimited

  105. 4:15

    amount of context into an agent.

  106. 4:18

    And over time um all of these cloud

  107. 4:21

    providers and the industry has

  108. 4:23

    implemented a pipeline where memory is

  109. 4:26

    kind of automatically generated by

  110. 4:28

    following a workflow of ingestion,

  111. 4:31

    extraction, and then consolidation and

  112. 4:33

    retrieval.

  113. 4:34

    And there are parts of rag that are

  114. 4:37

    built in things like a long-term memory

  115. 4:40

    that inherently has some semantic

  116. 4:42

    characteristics. But memory is built up

  117. 4:44

    over time from short-term conversational

  118. 4:47

    memory

  119. 4:48

    to long-term memory that you kind of

  120. 4:50

    manage yourself. Uh then episodic

  121. 4:52

    memories about kind of instances that

  122. 4:55

    worked well and didn't work well.

  123. 4:57

    Uh and so on. We at Navan again being a

  124. 5:01

    AWS shop, um

  125. 5:03

    utilize their agent core memory.

  126. 5:06

    But we are also kind of doing it in a

  127. 5:07

    way that

  128. 5:09

    uh matches matches our our use case.

  129. 5:14

    And then the next thing is context

  130. 5:16

    management. You know, it's a hot topic.

  131. 5:18

    It was a hot topic and it's still a hot

  132. 5:19

    topic. Context windows are growing

  133. 5:21

    bigger, but there's never enough context

  134. 5:24

    or if there is too much context again,

  135. 5:27

    agents struggle with that cuz you lose

  136. 5:28

    focus and so on. Um

  137. 5:32

    what we found working is that

  138. 5:35

    uh focusing on skills as a unit of

  139. 5:38

    context. And I'll explain what I mean by

  140. 5:39

    that.

  141. 5:40

    Uh we look at skills as both having

  142. 5:43

    context, meaning instructions and uh

  143. 5:46

    setup about a certain domain or a task.

  144. 5:49

    And there's also the

  145. 5:51

    the second part of the skill, which is

  146. 5:52

    the tool execution and you know, the

  147. 5:55

    agentic part.

  148. 5:56

    And we compose context dynamically out

  149. 6:01

    of skills that we

  150. 6:03

    use as units of work that are

  151. 6:06

    pluggable, that we can test

  152. 6:07

    independently, and that we can reuse.

  153. 6:11

    So, for example, when we are

  154. 6:14

    we have an agent, we have skills that

  155. 6:16

    are

  156. 6:17

    that are specific to a domain.

  157. 6:19

    And based on that, we compose them. And

  158. 6:21

    we rely on the

  159. 6:25

    you know, the progressive disclosure,

  160. 6:26

    which is a feature of the skills itself

  161. 6:29

    to start with a limited scope of context

  162. 6:31

    and then

  163. 6:32

    expand by included metadata

  164. 6:36

    further down the the line.

  165. 6:39

    I'll hand it over to Uday Uday now to

  166. 6:42

    kind of walk us through the rest of

  167. 6:43

    this.

  168. 6:44

    >> Thanks, Rudra.

  169. 6:46

    All right. Can I have a quick show of

  170. 6:48

    hands

  171. 6:49

    here who have who had built an agent uh

  172. 6:52

    which failed halfway through multi 20 20

  173. 6:56

    step or 30 step process and be able to

  174. 6:59

    figure out quickly or reason about why

  175. 7:01

    the agent failed.

  176. 7:05

    So, again, logs we've generally been

  177. 7:08

    traditionally with microservices, we all

  178. 7:10

    are familiar with logs. There's logs out

  179. 7:12

    there and then we go check out the logs.

  180. 7:13

    But this changes everything the moment

  181. 7:16

    we switch to agents.

  182. 7:17

    Agents

  183. 7:19

    output a lot of thinking. There's too

  184. 7:20

    much to consume. So, that's not the

  185. 7:22

    right way to do it, right? So,

  186. 7:24

    traditionally, that was the way, but our

  187. 7:26

    thought has to be changed right now.

  188. 7:28

    In the in the way they

  189. 7:30

    Claude as an example, when we take

  190. 7:32

    Claude as an example for an agent,

  191. 7:34

    there is hooks and we can intercept

  192. 7:37

    everything that Claude as an agent that

  193. 7:38

    does at that level. So, what kind of

  194. 7:41

    tool it calls, right? What kind of

  195. 7:43

    decision it's making? So, before

  196. 7:45

    pre-tool and post-tool call or a

  197. 7:47

    pre-decision or a post-decision, so all

  198. 7:48

    of that are a

  199. 7:50

    point point in time for us to intercept

  200. 7:53

    and make a decision

  201. 7:54

    and either block

  202. 7:56

    to do a

  203. 7:58

    blocking operation or to log in metric

  204. 8:00

    or emit a metric, right? So, this is a

  205. 8:02

    critical

  206. 8:04

    place where we can emit auto traces.

  207. 8:06

    At Nvone, we use one of our provider to

  208. 8:10

    interest to emit these auto traces and

  209. 8:13

    through these traces we should be able

  210. 8:14

    to figure out the spans, the traces and

  211. 8:17

    at what point in time where the agent is

  212. 8:19

    stuck, which gives much more confidence

  213. 8:22

    into

  214. 8:23

    how we operate and build the agent. This

  215. 8:26

    is

  216. 8:27

    day-to-day operational challenge.

  217. 8:29

    Building agent these days there's so

  218. 8:31

    many frameworks, but how do you navigate

  219. 8:34

    building and operating an agent later is

  220. 8:36

    primary concern. Um

  221. 8:39

    And moreover, the reasoning chain, the

  222. 8:41

    thought process and critical signals

  223. 8:43

    that we emit

  224. 8:45

    here as part of the trace captures, we

  225. 8:47

    emit a few primary signals here. What is

  226. 8:50

    the current goal the agent is going

  227. 8:52

    through, the reasons behind its

  228. 8:54

    operations and the belief status and

  229. 8:56

    the tool calls that it's making. So,

  230. 8:58

    this kind of gives us a judgment

  231. 8:59

    pointers. Um

  232. 9:01

    Um in the traces. And when we make when

  233. 9:04

    the agent makes a decision, there is a

  234. 9:07

    confidence score, how confident it is

  235. 9:10

    when it makes the judgment, right? So,

  236. 9:12

    whether there are multiple paths that it

  237. 9:14

    leads to this choice

  238. 9:16

    or whether this is an inferred answer.

  239. 9:18

    So, basically these are signals that

  240. 9:20

    gives us confidence later to review. If

  241. 9:23

    this is an inferred answer, there could

  242. 9:24

    be a human in the loop to guide through

  243. 9:26

    and tweak the agent to perform a little

  244. 9:28

    better.

  245. 9:32

    Again, um

  246. 9:34

    Can I have a raise of hands again to see

  247. 9:36

    how confident are you like 100%

  248. 9:39

    confident in testing pipelines with your

  249. 9:41

    agents?

  250. 9:43

    Right. So, this is one of the other um

  251. 9:47

    critical aspect today. Um

  252. 9:51

    Because agents are non-deterministic.

  253. 9:53

    We've all been used to program and write

  254. 9:55

    much more deterministic flows.

  255. 9:57

    And

  256. 9:58

    we know how it works. The Can I ask an

  257. 10:01

    engineer? Engineer can come and tell me

  258. 10:02

    how this the algorithm, the sequence of

  259. 10:04

    operations. Everything is programmed in

  260. 10:06

    our mind. Everything is expectations.

  261. 10:08

    But now the agents come into a

  262. 10:09

    non-deterministic way. And how do we

  263. 10:11

    test them, right? So, that is very

  264. 10:12

    criticality here.

  265. 10:14

    And yeah. We are also struggling. Um

  266. 10:17

    we've uh started

  267. 10:19

    doing building agents. We the day to

  268. 10:21

    operations was challenging and then we

  269. 10:22

    failed in a lot of steps. How do we

  270. 10:24

    course correct? The moment we change

  271. 10:26

    something, something else broke breaks,

  272. 10:28

    right? So, how do we do that? Um one one

  273. 10:31

    approach that we took uh this is from um

  274. 10:33

    research papers uh around the

  275. 10:38

    in a multi-step

  276. 10:40

    uh orchestration, when an agent makes uh

  277. 10:42

    30 steps or decisions to make to reach

  278. 10:45

    to a goal,

  279. 10:46

    if that is a program or that's a

  280. 10:49

    different story. But this is not a

  281. 10:50

    program. This is non-deterministic way

  282. 10:52

    of It makes up its own steps every time

  283. 10:56

    uh differently.

  284. 10:58

    So, how can we

  285. 11:00

    chart a deterministic graph here?

  286. 11:03

    Is it possible? No.

  287. 11:05

    Can we have a trajectory of its starting

  288. 11:08

    from an end to a goal and then see how

  289. 11:10

    much how far it went in the trajectory

  290. 11:14

    and how far it went from the source to

  291. 11:15

    the destination is what we can compute

  292. 11:18

    to evaluate the efficiency or the

  293. 11:22

    completeness of the

  294. 11:23

    agent

  295. 11:24

    agent evaluation.

  296. 11:26

    So, we we heavily rely on um trajectory

  297. 11:29

    vals um

  298. 11:30

    and uh

  299. 11:32

    this

  300. 11:33

    There are few other signals uh as I

  301. 11:35

    briefly spoke around uh in the previous

  302. 11:36

    slide around the inferred signal. Um

  303. 11:39

    If the answer is from an in in inferred

  304. 11:41

    answer, uh how can we uh

  305. 11:44

    loop that into uh and make a

  306. 11:48

    signals around uh how can we classify

  307. 11:50

    that this is a regression and make fixes

  308. 11:52

    towards the agent?

  309. 11:59

    Uh

  310. 12:03

    So, the next is the uh guardrails. Um

  311. 12:07

    Where

  312. 12:11

    Is this the one? Yeah.

  313. 12:15

    So, guardrails and authorization, um

  314. 12:18

    this is uh critical

  315. 12:21

    displays a critical role in enterprise

  316. 12:22

    AI.

  317. 12:24

    A lot of information is being piped to

  318. 12:27

    models. Um there could be sensitive

  319. 12:29

    information that goes into it uh without

  320. 12:32

    our knowledge. And

  321. 12:34

    we as uh uh leaders, how can we put in

  322. 12:36

    this governance layer um

  323. 12:39

    to stop this um is very uh critical

  324. 12:42

    here.

  325. 12:43

    And and the concept of uh authentication

  326. 12:45

    and authorization um is

  327. 12:49

    taking up a different approach here. Um

  328. 12:51

    traditionally, we've seen um a user or a

  329. 12:54

    service account, but now what is an

  330. 12:56

    agent? Agent can be

  331. 12:58

    acting as on behalf of users. There is

  332. 13:00

    so much of things uh so many of use

  333. 13:02

    cases there. Hey, book me a flight

  334. 13:05

    whenever it's cheaper than $200, right?

  335. 13:07

    So, we just tell this assertion and then

  336. 13:09

    agent go figures out and does this

  337. 13:11

    action on behalf of me. So, is it me

  338. 13:13

    making this

  339. 13:14

    purchase or is it agent me making on

  340. 13:17

    behalf of me? So, there is

  341. 13:20

    Agent acts as a on behalf of user or

  342. 13:22

    agent uses a service account as well.

  343. 13:24

    So,

  344. 13:25

    the line is being blurred here and we

  345. 13:27

    need to make fine-grained authorization

  346. 13:29

    decisions here, and the policy layer

  347. 13:32

    that's where the guardrails and

  348. 13:33

    authentication authorization plays a

  349. 13:34

    critical role.

  350. 13:36

    And in the one what we employ here is

  351. 13:39

    before every tool call

  352. 13:41

    pre-tool and post-tool, we have this

  353. 13:43

    guardrails to check and block

  354. 13:46

    and make a informed decisions.

  355. 13:52

    And

  356. 13:53

    this single agent versus multi-agent,

  357. 13:56

    again, this is kind of a

  358. 13:58

    orchestration wars you can think of

  359. 14:00

    with it to build a single agent or a

  360. 14:01

    multi-agent.

  361. 14:03

    Again, as Roberto briefly hinted

  362. 14:05

    if you can't perfect and build a

  363. 14:08

    single agent, why go towards

  364. 14:11

    multi-agent, right? So, learn from our

  365. 14:13

    uh

  366. 14:14

    failures, experiences, and build towards

  367. 14:17

    that.

  368. 14:18

    At Navan, yeah.

  369. 14:20

    What the approach that we have taken is

  370. 14:22

    single master, and then we adopted

  371. 14:25

    sub-skills. Um

  372. 14:27

    There are sub-agents within it.

  373. 14:29

    So, it's a single agent that can

  374. 14:32

    progressively load the skills and

  375. 14:34

    understand decisively what needs to be

  376. 14:37

    loaded into the context, and then

  377. 14:39

    make this

  378. 14:40

    navigation

  379. 14:41

    through the use case.

  380. 14:44

    But there are

  381. 14:45

    other patterns that are also emerging.

  382. 14:48

    There are different class of use cases

  383. 14:49

    here. One is um

  384. 14:52

    agent-to-agent communication. So, there

  385. 14:53

    are If you take a large scale

  386. 14:55

    organization, and there are so many of

  387. 14:56

    these teams that are

  388. 14:59

    that are acting as the boundaries, and

  389. 15:00

    they don't talk to each other, let's

  390. 15:01

    say.

  391. 15:02

    How do we communicate? There are two

  392. 15:04

    agents on either of the side, right? How

  393. 15:06

    do we do it? So, there is A2A protocol

  394. 15:09

    which can help us establish the

  395. 15:12

    contracts in terms of skills.

  396. 15:14

    And we can use A2A as a protocol there,

  397. 15:17

    which kind of

  398. 15:19

    is a boundary between the teams.

  399. 15:22

    Yeah, over to you, Uday.

  400. 15:29

    >> All right. So, as we went through the

  401. 15:30

    stack,

  402. 15:32

    it's obvious that um some components of

  403. 15:34

    the stack are in a more mature state and

  404. 15:38

    we already have good answers for them.

  405. 15:40

    As Uday said, the runtime, I think it's

  406. 15:43

    pretty much solved. We are so advanced

  407. 15:44

    in orchestration and we are running LLMs

  408. 15:47

    in kind of uh a very

  409. 15:49

    uh brute-force way. So, scaling is not a

  410. 15:52

    not a problem. Also, memory, I think uh

  411. 15:55

    as

  412. 15:56

    uh the frontier LLMs get better and as

  413. 16:00

    our practices get better,

  414. 16:02

    we will uh find a way to cover the

  415. 16:05

    majority of the use cases and there is

  416. 16:06

    good maturity around the the cloud

  417. 16:09

    providers.

  418. 16:10

    Uh MCP has emerged as the de facto

  419. 16:13

    protocol and tool calling is now a

  420. 16:16

    feature that everybody supports. So, we

  421. 16:18

    are seeing some industry convergence

  422. 16:21

    around that as well and MCP as a

  423. 16:24

    standard is also evolving. Now, it's

  424. 16:25

    becoming stateless. It's uh we are

  425. 16:28

    reaching a point where kind of we know

  426. 16:30

    how to invoke uh services and and and

  427. 16:33

    tools with agents.

  428. 16:35

    Uh in some areas, things are happening,

  429. 16:39

    but you know, there's still a lot of

  430. 16:40

    unknown. Around observability, there is

  431. 16:43

    a push towards OTEL, but does OTEL

  432. 16:46

    really work for agentic calls?

  433. 16:49

    Uh yeah, you can make it work as Uday

  434. 16:51

    was saying.

  435. 16:52

    Um also, we are getting more comfortable

  436. 16:55

    around um around that the the the the

  437. 16:58

    testing patterns. It's very hard to

  438. 16:59

    test, but we have found a way to give

  439. 17:02

    customers um quality experiences even

  440. 17:05

    with the unreliability of agentic system

  441. 17:07

    and I think that's kind of

  442. 17:09

    uh getting in a in a state that is uh

  443. 17:12

    that is more better defined.

  444. 17:15

    Orchestration is another one

  445. 17:17

    um,

  446. 17:18

    where, you know, we have a

  447. 17:21

    uh, we have patterns, uh, we can build,

  448. 17:24

    you know, bigger agents, smaller agents.

  449. 17:27

    Uh, as we said previously, probably the

  450. 17:30

    right answer is to not over-engineer.

  451. 17:34

    Uh, so we're learning there and and and

  452. 17:36

    uh,

  453. 17:37

    a pattern of school thought is also

  454. 17:40

    emerging. Uh, where we're all struggling

  455. 17:43

    with and the previous talk was about

  456. 17:45

    this for the developer, um,

  457. 17:47

    AI assistant development perspective,

  458. 17:49

    but also we're seeing these issues from

  459. 17:52

    our production agents. It's very hard to

  460. 17:55

    predict cost and it's very hard to

  461. 17:57

    manage cost, uh, and put guardrails and

  462. 18:01

    solve this in a way where there is

  463. 18:02

    reliable, maybe fallback or have agents

  464. 18:06

    be, uh, using cheaper models for certain

  465. 18:10

    tasks. Uh,

  466. 18:11

    uh, this is all driven by kind of the

  467. 18:14

    big AI vendors who, I think, their

  468. 18:17

    interest is for us all to spend more

  469. 18:20

    tokens. Um, replay and debugging, Woody

  470. 18:23

    talked about that, that's also a big big

  471. 18:25

    issue. It's very hard

  472. 18:28

    to understand, but I think

  473. 18:30

    this is also something that that is

  474. 18:32

    going to be solved because we can now

  475. 18:35

    use, uh, agents to

  476. 18:37

    uh, get over the cognitive overload of

  477. 18:40

    trying to debug what they do.

  478. 18:43

    And then standards, um, standards are

  479. 18:46

    emerging uh, by,

  480. 18:49

    you know, the community. Uh, Hotel, as I

  481. 18:51

    mentioned, agent to agent is young, it's

  482. 18:53

    kind of pushed by certain vendors, but I

  483. 18:56

    think over time we will we will get, uh,

  484. 18:58

    there.

  485. 19:00

    Uh, with all of this said, you know, we

  486. 19:03

    know what we need and it's up to us to

  487. 19:06

    write and build it.

  488. 19:07

    Thank you, everybody.

  489. 19:09

    >> [applause]

  490. 19:27

    >> I