Skip to content

BuildNot yet confirmed elsewhere1 publisher2 min readPublished

NVIDIA Dynamo makes the agent session the unit of inference routing and caching

NVIDIA's Dynamo uses one shared session ID to drive routing, KV-cache indexing and cache movement for agent traffic on vLLM and SGLang. Teams serving coding agents should size for contexts held in cache between tool calls more than for request rates.

The Engineer · Build desk

How we use AISend a correction

Illustration accompanying NVIDIA Dynamo makes the agent session the unit of inference routing and caching
Generated illustration

What happened

  • Most of an agent session's wall-clock time passes between tool calls, with its context held in KV cache while nothing generates, according to the Dynamo post.
  • Dynamo maps the session and parent headers that Claude Code, Codex and OpenCode already send onto session_id and parent_session_id, with no configuration needed.
  • Session-aware admission control counts each session's working set and applies backpressure at tool boundaries to reduce cache thrashing.
  • An experimental shared-pool indexer lets the router count reusable KV held in external stores when it decides where to place a request.

Why it matters

  • cost When the cache is full, backpressure at tool boundaries makes incoming sessions wait so resident ones keep their reuse, and new work pays for that protection in latency.
  • constraint Teams on custom harnesses get none of these features until their harness sends a session ID, because each optimization is an opt-in consumer of that field.
  • exposure Cross-tier cache policies written against KvHint depend on an interface the post still calls a proposal, so the engine-side contract can change under them.

According to the Dynamo post, most open-source serving stacks route, admit and cache each request on its own [7]. They have no notion of the harness or the session that ties a request to earlier turns [7]. A coding agent sends a different shape of traffic [1]. Its session opens with a prefill that is often tens of thousands of tokens of system prompt, tool definitions and user guidance, and every later turn resends the whole growing context [3]. One task fans out into dozens of those calls, alongside subagents running in parallel [4].

A request-level scheduler cannot know that an idle context belongs to a session that is coming back. If it evicts that context while a tool runs, the next turn resends the full context and the engine prefills it again [18]. Dynamo's answer is one field. A session_id is a stable identifier for one chain of reasoning and tool calls, and every request in that trajectory carries it [9]. Child sessions usually add a parent_session_id, so traces can link an agent to the subagents it spawns [9]. The team says it spent the last few months unifying its router, engine and KV cache manager work around that primitive [8].

The post promises four parts and then lists five [16]. The last item, the programmatic cache work, splits responsibility in a way I'd keep. Dynamo, which sees the whole session, supplies policy intent through a Session-Prefix Indexer and a KvHint interface, and the inference engines control execution across memory tiers [14]. The same session ID drives that cache movement on vLLM and SGLang alike [2].

The post wrote that serving these workloads well comes down to "how much of that context a system keeps resident and reuses, and how many sessions it holds at once while still meeting latency targets" [6]. I'd build a capacity model on that sentence. Its inputs are peak concurrent sessions, context length per session, and how long each context sits idle while tools run [19]. A requests-per-second forecast measures none of those [19].

The post's introduction and session-ID sections include no throughput, hit-rate or latency figures [17]. When results appear, they will come from the team's own session shapes. They transfer only to a deployment with similar prefill sizes, fan-out and tool-call durations [21]. A team can test that on its own traffic: session-linked traces tie harness activity to inference performance and feed both offline simulation and live benchmarking [15].

What to watch

  • Whether the Dynamo team publishes hit-rate and latency results for session-aware routing, and on what prefill sizes and tool-call durations.
  • Whether KvHint moves from proposal to an interface that vLLM and SGLang actually implement.
  • Whether more harness providers emit session and parent headers by default, as the Dynamo team says it is working toward.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence35
Adoption
Insufficient
Hype gap+20
Incentives65
Confidence50
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    Agent sessions can involve a large initial prefill, repeated model calls, and subagents running in parallel, with KV cache remaining resident while tools execute between turns.

    ReportedSupportedSource: NVIDIA Dynamo post on pytorch.orgView cited source
  2. [2]

    NVIDIA Dynamo uses a unified session-level identifier to enable session-aware routing, shared KV cache indexing, and programmatic cache movement across vLLM and SGLang.

    ReportedSupportedSource: NVIDIA Dynamo post on pytorch.orgView cited source
  3. [3]

    A coding session opens with a large prefill, often tens of thousands of tokens of system prompt, tool definitions and user-specific guidance, and every turn after that appends to a context the session resends in full.

    ReportedSupportedSource: NVIDIA Dynamo post on pytorch.orgView cited source

Sources

1 independent publisher whose own reporting we read for this story.

  1. pytorch.org

    1 article · October 8, 2026

    Session-Aware Agentic Inference with NVIDIA Dynamo

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Topics

  • LLM inference routingFollow
  • Agentic inference servingFollow
  • KV Cache and Context BudgetingFollow
Loading related stories