Agentic requests are multi-call DAGs revealed online; users feel end-to-end workflow latency, not per-call latency. HexAGenT maintains a per-workflow standalone horizon $H_w(t)$, ranks ready calls by projected scaled-SLO risk, and jointly picks prefill/decode placement + queue priority on heterogeneous A100/H100/H200 P-D clusters. It cuts the SLO scale for timely completion by 13–24% on average.
The scheduling unit for LLM serving has shifted. A single user request now expands into a workflow of many dependent LLM calls (planning → tool use → branching → refinement → synthesis), and the user experiences the end-to-end workflow completion time, not any single call's latency. Three coupled difficulties make this hard on a prefill-decode (P-D) disaggregated, heterogeneous cluster:
Existing execution substrates (vLLM, SGLang), disaggregation systems (DistServe, Splitwise), and program-aware schedulers (Parrot, Autellix, Continuum) each supply building blocks, but none jointly handle online-revealed DAGs, heterogeneous P-D placement, decode-capacity constraints, stage coupling, and non-blocking runtime overhead.
HexAGenT abstracts each request as an online-revealed DAG $G_w(t)$ and maintains a running standalone completion horizon $H_w(t)$: the makespan of the revealed subgraph if it were run alone on the same cluster. This horizon is the workflow's live SLO target. For each ready call it computes a projected ratio $R_s(c,t)$ (§5) that normalizes projected completion pressure by $H_w(t)$, ranks calls by that risk, greedily picks the most urgent, and jointly chooses (i) the prefill/decode instance pair and (ii) stage-local queue priority — while respecting decode KV capacity and KV-transfer latency. Planning is asynchronous: at most one plan is in flight, serving never blocks, and late plans apply only to calls still waiting.
核心技术壁垒 (hardest-to-replicate insight): the joint, decode-anchored prefill placement. HexAGenT does not just rank which call is urgent — for the urgent call it selects the prefill/decode pair that minimizes the projected normalized decode-finish time, pre-committing the downstream decode instance before prefill even completes so the KV transfer target is fixed. This couples urgency signal, heterogeneous per-instance service times, and cross-hardware transfer bandwidth into one greedy decision that self-corrects via recomputation after each assignment. Reproducing it requires a faithful roofline estimator plus the exact "plan-then-lock" runtime semantics; a naive urgency-only scheduler misses most of the tail gain.
Only source calls are known at arrival; the DAG grows as parents and tools complete.

Paper's Figure 1 (caption: "Example of an agentic LLM application workflow. Only source calls are known at arrival. As parent calls and tool calls complete, new LLM calls are revealed, and the workflow DAG grows online."). The figure shows how nested agent-tool-agent chains, bounded self-refinement, and parallel sibling branches all map to one DAG whose runnable frontier is the scheduler's true decision surface — every scheduling invocation acts only over currently revealed, dependency-satisfied calls.

Paper's Figure 2 (caption: "System architecture and scheduler placement of HexAGenT. The workflow front-end releases ready calls from online agent workflows, while the global scheduler collects cross-stage state, estimates prefill, KV-transfer, and decode latencies, and jointly decides instance placement and queue priority. The P-D disaggregated cluster executes calls across prefill and decode stages, with runtime metrics fed back for event-driven re-scheduling."). Note the four scheduler modules: State Collector (snapshots prefill/decode queues, KV usage, transfer state, workflow progress), Estimator (roofline-style prefill/decode/transfer time + KV demand), Joint Planner (picks P-D pair + local priority), Plan Dispatcher (pushes placement/priority updates to workers). The feedback loop makes re-scheduling event-driven rather than periodic.
Each call travels one full lifecycle; runtime events (arrival, prefill-done, transfer-done, decode-done) drive re-scheduling. Once a call starts prefill or decode, its placement is locked.
The fallback edge is the error-recovery path: if a solve is in flight when a new call arrives, the call temporarily follows a safe policy; the late plan is applied only if service has not yet started, otherwise runtime state is authoritative and the plan is ignored for that stage.
无形式化作者证明 — 仅实证. The paper frames an online workflow scheduling problem but gives no convergence, competitive-ratio, or optimality guarantee for the greedy algorithm; all support is empirical. What could have been bounded: the competitive ratio of greedy projected-risk ordering against the offline optimal makespan, or a regret bound on horizon mis-estimation. Neither is attempted.
The formal content is definitional. Notation table:
| Symbol | Meaning | ||
|---|---|---|---|
| $\pi$ | scheduling policy | ||
| $\alpha$ | SLO scale factor (minimized) | ||
| $\mathcal{W},\, | \mathcal{W} | $ | set of workflows and its cardinality |
| $C_w^{\pi}$ | end-to-end completion time of $w$ under $\pi$ | ||
| $H_w(t),\,H_w$ | online / final standalone horizon of $w$ | ||
| $\tau$ | target attainment level (0.95 or 0.99) | ||
| $a_w$ | workflow arrival time | ||
| $R_s(c,t)$ | projected ratio for call $c$ at stage $s$, time $t$ | ||
| $\Delta_s(c,t)$ | projected elapsed time to finish $c$ at stage $s\in\{\text{Prefill},\text{Decode}\}$ | ||
| $m(c)$ | decode KV demand of call $c$ (tokens) | ||
| $L_{\mathrm{in}}(c),\,\widehat{L}_{\mathrm{out}}(c)$ | input length, predicted output length | ||
| $\mathrm{Cap}(d)$ | decode KV capacity of instance $d$ |
Objective (Eq. 1):
$$\min_{\pi}\;\alpha\quad\text{s.t.}\quad\frac{1}{|\mathcal{W}|}\sum_{w\in\mathcal{W}}\mathbbm{1}\!\left[C_{w}^{\pi}\leq\alpha H_{w}\right]\geq\tau.$$
Physical meaning: minimize the multiplicative SLO slack $\alpha$ such that at least a $\tau$-fraction of workflows finish within $\alpha H_w$. This targets tail attainment (Req95/Req99), deliberately not average latency.
Projected ratio (Eq. 2):
$$R_{s}(c,t)=\frac{(t-a_{w})+\Delta_{s}(c,t)}{H_{w}(t)}.$$
Physical meaning: normalized completion pressure — (elapsed + projected-remaining) over the current horizon. Larger $R_s$ ⇒ the workflow is projected closer to (or past) its target ⇒ more urgent. Dividing by $H_w(t)$ makes urgency comparable across workflows of different sizes.
Decode demand and feasibility (Eqs. 3–4):
$$m(c)=L_{\mathrm{in}}(c)+\widehat{L}_{\mathrm{out}}(c),\qquad m(c)\leq\mathrm{Cap}(d).$$
Physical meaning: KV footprint is approximated as prompt + proxy-predicted generation length; a call is admissible on decode instance $d$ only if that footprint fits $d$'s KV capacity. This makes decode memory a first-class capacity constraint, not an afterthought.
6 minimum checks:

Paper's Table 1 (Req95/Req99, lower is better). The two-step ladder is the load-bearing motivation: per-call FCFS → workflow-FCFS isolates Insight 1 (workflow ordering matters: e.g. Qwen-BFCL Req95 21.11 → 9.64), and workflow-FCFS → HexAGenT isolates Insight 2 (heterogeneous placement on top: Qwen-Mixed Req95 10.30 → 3.48). Each cell moving strictly down-and-right confirms the axes are complementary, not redundant.

Paper's Figure 3 (x = SLO scale $\alpha$, y = fraction of workflows with $C_w\le\alpha H_w$; higher-left is better). HexAGenT's curve sits left of all baselines, most dramatically on Qwen and Mixed/LATS traces — meaning it reaches high attainment at a tighter SLO than the strongest baseline can.

Paper's Table 2. Averaged over ShareGPT/BFCL-v3/LATS/Mixed against the per-trace strongest baseline; reductions grow with model cost (Qwen Hetero-1: 21.1% / 33.1%), showing the benefit is largest when workflow pressure meets expensive execution.

Paper's Table 3. The per-trace breakdown localizes the gain: Mixed drives the headline (Req99 56.0%), while BFCL-v3 Req95 is only 5.7% because Workflow-LLF already captures most urgency for short tasks — yet HexAGenT still wins the tail (Req99 23.0%) via better P-D placement.
The gain source is explicit: Workflow-LLF captures urgency but does not evaluate which P-D pair minimizes projected normalized completion after accounting for heterogeneous service and transfer-induced decode-ready times; Autellix-ATLAS tracks attained service, which is not the same as risk of exceeding a workflow-specific horizon.

Paper's Table 4. Even with identical instances (Llama H200, Qwen A100), workflow-aware ordering alone yields 23–37% reductions — the method is not purely a heterogeneity trick.

Paper's Table 5 (% degradation vs 0% error). Llama stays within 1.5% Req99 even at 30% error. Two surprises: Qwen Req99 degradation is non-monotonic (largest 9.5% at only 10% error, dropping to 5.4% at 30%), and several Qwen Req95 entries are negative (noisy estimate → slightly better greedy order); the authors treat these as near-ties, evidence that the scheduler is driven by workflow priorities rather than exact per-call durations.
| # | Step | Support (paper-internal) |
|---|---|---|
| 1 | Users experience end-to-end workflow latency, so the scheduling unit must be the workflow, not the call. | §1 framing; §2 request-centric limitation |
| 2 | Per-call FCFS therefore leaves large SLO scales on tail workflows; switching to workflow-level ordering already cuts Req95/Req99 substantially. | §3 Insight 1, Table 1 (Qwen-BFCL 21.11→9.64) |
| 3 | Workflow ordering alone is insufficient because calls and hardware are heterogeneous; adding heterogeneity-aware P-D placement cuts the scale again. | §3 Insight 2, Table 1 (Qwen-Mixed 10.30→3.48) |
| 4 | To do both jointly, formalize a per-workflow horizon $H_w(t)$ and rank ready calls by the normalized projected ratio $R_s(c,t)$ (Eq. 2). | §5.1 Eqs. 1–2 |
| 5 | Greedily pick argmax $R_s$, assign the P-D pair with earliest projected decode finish, recompute after each assignment, respect decode KV capacity (Eqs. 3–4), and apply the plan asynchronously. | §5.2 Alg. 1; §5.3–§5.4 |
| 6 | The resulting system lowers tail SLO scales across heterogeneous and homogeneous clusters, is robust to estimate error, and its planning cost is hidden by async application. | §7.4–§7.7, Tables 2–6 |
Built on SGLang v0.5.9 using its P-D disaggregated serving feature; scheduling policy is kept outside GPU kernels and the hot decode loop, integrated into the gateway/worker path (§6). Router-side changes: workflow metadata parsing, stage-state construction, async plan application, revision checks for safe queue mutation, bootstrap metadata injection, completion feedback accounting. Worker-side: expose P-D snapshots, accept priority/reassignment updates for still-waiting requests, report completion telemetry. A standalone Python event-driven simulator (~4.6K LoC across runtime, scheduler, runners) acts as the resource estimator, modeling the full call lifecycle and computing $H_w$ and the projected ratios via a roofline-style latency model.
[实现未公开] — no code repository URL is exposed in the source; the above is the paper's own implementation description.
核心技术壁垒 (elaboration): the joint plan-then-lock semantics. HexAGenT commits a planned decode instance during prefill scheduling so the KV-transfer target is known before prefill completes (§5.3), and once prefill or decode starts, placement is immovable (§5.2). Getting this right requires the async solver to reconcile a "plan in flight" against runtime authority (Alg. 1 lines 5–8, 23) — the hardest engineering surface to replicate, and the one that converts an offline greedy ranking into a non-blocking online scheduler.
关键实现细节 (easy-to-miss tricks):