← All speakers
  • Design Evolution of an Open Source Project Using an Improved Modularity Metric ↗

    Listed as a 2009 publication on Milev’s corroborated first-person profile, with contributor links identifying Steven Muegge and Michael Weiss. Introduces an algorithm and modularity metric for comparing differently sized codebases and studies Apache Tomcat’s evolution. Major architectural changes initially reduced modularity, followed by recovery in subsequent versions. Attribution is supported by the profile listing; the paper body and publication-specific Carleton affiliation were not retained.

    linkedin.com · Source ↗

Bio, Work & Ideas

Roberto Milev

Conference affiliation: Navan · 2026

On this page

Roberto Milev is chief architect at Navan, where his work spans AI, platform design, and product architecture. He applies experience with software modularity and distributed systems to agents that must retain state, execute tools, and act within a user’s authority. His work with Uday Kanagala emphasizes a dependable agent loop, independently testable skills, and evaluations that examine how an agent reaches its result.

From software modularity to AI applications

In 2009, Milev co-authored research on software modularity with Steven Muegge and Michael Weiss, listed on his professional profile. They developed an algorithm and metric for comparing the modularity of codebases of different sizes and applied it to Apache Tomcat’s evolution. Major architectural changes sometimes reduced modularity initially, while subsequent versions recovered and improved it. The work examined how software structure actually changed across releases, giving architectural decisions a measurable outcome.

Building and operating a dependable agent loop

In their 2026 joint talk on operating agents at Navan, Milev and Kanagala compared agent infrastructure with microservices during their early adoption. Their starting point was simple: establish a reliable single agent loop before adding multi-agent orchestration. Navan’s approach uses a primary agent that progressively loads skills, with sub-agents where appropriate. The comparison concerns the engineering work required around a new execution model—state management, testing, diagnosis, and permissions—as much as the choice of framework.

Their architecture treats skills as reusable units containing both domain instructions and tool-execution capabilities. An agent starts with a limited amount of context and loads more detail as the task requires it. Engineers can test and improve individual skills without treating the entire workflow as one inseparable unit. Persistent sessions address a different requirement: an agent’s work can extend beyond the lifecycle of a stateless API request. The presenters described using AWS AgentCore Runtime and Memory at Navan, while building session persistence and rehydration to fill gaps in the runtime.

Their joint account also explains why operating an agent requires more than conventional logs. Tool-call hooks provide places to emit traces, inspect decisions, and block actions. Trajectory evaluations examine the steps an agent takes toward its goal, including how efficiently and completely it gets there, rather than checking only the final answer. Authorization must account for an agent acting on a user’s behalf or through a service account. Their example of a traveler asking an agent to book a flight whenever the price falls below $200 illustrates the problem: a standing instruction can lead to a later purchase, so permissions need to be checked when the agent executes tools. They described checks before and after tool calls as part of Navan’s controls.

Unfinished work in agent operations

Milev and Kanagala describe cost prediction, replay, debugging, and emerging standards as unfinished parts of agent engineering. Their production experience tempers the enthusiasm for orchestration: adding agents creates more behavior to understand, more decisions to evaluate, and more spending to manage. A useful architecture must make those operational demands manageable as well as enable the agent to complete its task.

1 conference talk

Key ideas

Scroll to read ↓

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.

  • Establish a reliable single agentic loop before adding multi-agent orchestration; the speakers recommend avoiding that extra complexity until it solves a real need.
    0:43 ↗
  • Production agents require persistent, isolated sessions and recovery through rehydration, even when a managed runtime supplies the basic execution environment.
    2:42 ↗
  • Treat skills as reusable units that combine domain instructions with execution capabilities, then load them progressively to protect context focus.
    5:14 ↗
  • Instrument pre- and post-tool boundaries so the system can block actions, emit structured traces, and route inferred decisions to human review.
    7:36 ↗
  • For nondeterministic multistep agents, evaluate trajectory progress, efficiency, and completeness rather than requiring every successful run to follow an identical sequence.
    9:51 ↗
  • Authorization must represent delegated action explicitly. A user’s earlier instruction does not by itself settle which identity and permissions govern a later purchase.
    12:41 ↗
  • Runtime and tool invocation may be maturing, but predictable cost, replay, debugging, observability semantics, and agent-to-agent standards remain open work.
    15:29 ↗

References