You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -285,8 +285,9 @@ request-start to request-start. This is always the case for weka trace replay; t
285
285
change it. Replay dispatches each turn only after the previous one completes,
286
286
so start-to-start deltas would double-count the server's own response time and make every session
287
287
drift later turn by turn. Individual trace gaps are not capped by default; pass
288
-
`--trace-idle-gap-cap-seconds S` to compress request-start gaps longer than `S` independently
289
-
within each root trace. If the entire replay has no active or ready request, AIPerf uniformly
288
+
`--trace-idle-gap-cap-seconds S` to advance a trajectory's pending timers when its root and
289
+
all descendants have had no request in flight for `S` seconds. This runtime guard does not
290
+
rewrite dataset timestamps or bypass spawn/join dependencies. If the entire replay has no active or ready request, AIPerf uniformly
290
291
shifts every pending request timer so the next request arrives within 10 seconds.
291
292
292
293
### Q: What does a single session look like on the wire?
@@ -795,7 +796,7 @@ the context-overflow bound is evaluated during the run.
795
796
| SemiAnalysis corpus | A pinned `*_weka_*``--public-dataset` alias, or `weka_hf` pinned to `semianalysisai/cc-traces-weka-062126`| A non-pinned dataset, local `weka_trace`, or another `--hf-weka-dataset` under the scenario; omitting a dataset entirely (CLI synthetic default) | Explicit wrong / unpinned loader: refuses to start (or `submission_valid: false` via `--unsafe-override`). Missing/synthetic: always refuses — `--unsafe-override` cannot bypass |
796
797
|`ignore_eos`| Injected `ignore_eos=true`| Explicit `ignore_eos=false`| Refuses to start (or `submission_valid: false` via `--unsafe-override`) |
797
798
| Streaming |`--streaming` auto-enabled | Explicit `--no-streaming`| Refuses to start (or `submission_valid: false` via `--unsafe-override`) |
798
-
| Honored trace delays | Recorded think-time gaps are preserved by default; `--trace-idle-gap-cap-seconds` may explicitly compress per-trace gaps|`--ignore-trace-delays` or `--inter-turn-delay-cap-seconds`| Refuses to start (or `submission_valid: false` via `--unsafe-override`) |
799
+
| Honored trace delays | Recorded think-time gaps are preserved; `--trace-idle-gap-cap-seconds` may bound observed whole-tree runtime idle without rewriting them|`--ignore-trace-delays` or `--inter-turn-delay-cap-seconds`| Refuses to start (or `submission_valid: false` via `--unsafe-override`) |
799
800
| No input truncation | Prompts built to the full recorded token counts | Truncating/capping input below the recorded length | Refuses to start (or `submission_valid: false` via `--unsafe-override`) |
800
801
| Minimum duration |`--benchmark-duration` ≥ 900s (default 1800s) | A duration below 900s | Refuses to start (or `submission_valid: false` via `--unsafe-override`) |
801
802
| First-turn-prefix cache-busting | Uniqueness marker placed as a first-turn prefix | Disabling cache-busting or relocating the marker | Refuses to start (or `submission_valid: false` via `--unsafe-override`) |
@@ -1154,7 +1155,7 @@ The ones a serving engineer is most likely to use:
1154
1155
|`--max-context-length`| Drops whole traces whose peak prompt+output exceeds your server's window, so you don't get guaranteed mid-run overflows. Blunter than a `_256k` corpus (removes entire traces, not just over-limit turns). If it would drop everything, the run errors instead of silently emptying the dataset. |
1155
1156
|`--trajectory-start-min-ratio` / `--trajectory-start-max-ratio`| The window within each session where t\* is sampled — i.e. how deep into sessions the measured traffic sits. Defaults to the **full session (0.0–1.0)** under the `inferencex-agentx-mvp` scenario; 0.25–0.75 is the generic CLI default when not scenario-locked. |
1156
1157
|`--system-idle-gap-cap-seconds`| Caps only globally idle replay time (scenario default 10s); all pending timers shift uniformly, preserving order and relative spacing. |
1157
-
|`--trace-idle-gap-cap-seconds`| Optional per-trace request-start gap compression; unset by default and allowed by the scenario. |
1158
+
|`--trace-idle-gap-cap-seconds`| Optional observed whole-tree runtime idle cap; unset by default and allowed by the scenario. |
1158
1159
|`--inter-turn-delay-cap-seconds`| Per-turn timing compression; forbidden by the scenario. |
1159
1160
|`--cache-bust`| Where the per-session uniqueness marker goes; the scenario locks `first_turn_prefix`. |
Copy file name to clipboardExpand all lines: docs/cli-options.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1092,7 +1092,7 @@ AGENTIC_REPLAY only: collapse the WARMUP-start and PROFILING-start dispatches in
1092
1092
1093
1093
#### `--trace-idle-gap-cap-seconds``<float>`
1094
1094
1095
-
Hard ceiling (seconds) for idle gaps within each individual trace. For Weka trace replay, AIPerf looks at all parent and subagent request submission timestamps within one root trace, compresses long gaps between consecutive request submissions, and derives turn delays from the compressed per-trace timeline. Original request api_time values are not used to decide these idle gaps. During AgentX profiling, AIPerf also advances only that runtime tree's pending replay timers if independent stream clocks would leave the whole tree idle beyond the cap; request order and dependency gates remain unchanged. When set for Weka, this takes precedence over `--inter-turn-delay-cap-seconds` so individual parent/subagent-line delays are not separately capped. Defaults to None (no per-trace idle-gap compression).
1095
+
Hard ceiling (seconds) for observed runtime idle time within each AgentX trajectory tree. The idle clock covers initial future work and restarts when the final in-flight request across the root and all descendant streams completes. If no request from that tree reaches the wire before the cap, AIPerf uniformly advances only that tree's pending replay timers. Dataset timestamps are unchanged, and request order, spawn/join dependencies, and replay barriers remain authoritative. Defaults to None (no per-trace runtime idle cap).
1096
1096
<br/>_Constraints: ≥ 0.0_
1097
1097
1098
1098
#### `--system-idle-gap-cap-seconds``<float>`
@@ -2627,7 +2627,7 @@ AGENTIC_REPLAY only: collapse the WARMUP-start and PROFILING-start dispatches in
2627
2627
2628
2628
#### `--trace-idle-gap-cap-seconds``<float>`
2629
2629
2630
-
Hard ceiling (seconds) for idle gaps within each individual trace. For Weka trace replay, AIPerf looks at all parent and subagent request submission timestamps within one root trace, compresses long gaps between consecutive request submissions, and derives turn delays from the compressed per-trace timeline. Original request api_time values are not used to decide these idle gaps. During AgentX profiling, AIPerf also advances only that runtime tree's pending replay timers if independent stream clocks would leave the whole tree idle beyond the cap; request order and dependency gates remain unchanged. When set for Weka, this takes precedence over `--inter-turn-delay-cap-seconds` so individual parent/subagent-line delays are not separately capped. Defaults to None (no per-trace idle-gap compression).
2630
+
Hard ceiling (seconds) for observed runtime idle time within each AgentX trajectory tree. The idle clock covers initial future work and restarts when the final in-flight request across the root and all descendant streams completes. If no request from that tree reaches the wire before the cap, AIPerf uniformly advances only that tree's pending replay timers. Dataset timestamps are unchanged, and request order, spawn/join dependencies, and replay barriers remain authoritative. Defaults to None (no per-trace runtime idle cap).
Copy file name to clipboardExpand all lines: docs/tutorials/agentx-mvp.md
+9-5Lines changed: 9 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -267,7 +267,7 @@ flag.
267
267
|`--streaming` is on | Responses stream token-by-token (auto-enabled when unset; explicit `--no-streaming` errors) | The per-token latency metrics (TTFT, ITL) are core to this benchmark and need streaming responses. |
268
268
| Replay delays are end-to-start (always on, no flag) | Each turn's replay delay is the recorded idle gap from the previous response's *end* to the next request's *start*, not the start-to-start delta. This is unconditional for weka trace replay — there is no toggle. | Replay dispatches each turn after the previous one completes, so start-to-start deltas would double-count the previous request's server time, making every session drift later turn by turn and overstating how many sessions overlap at once. |
269
269
|`--ignore-trace-delays` is off | Trace-derived delays are preserved | The replay retains the captured agent pacing and KV-cache reuse intervals. |
270
-
| Per-trace idle-gap cap is optional |`--trace-idle-gap-cap-seconds` is unset by default and accepts an explicit CLI value | Setting it compresses long request-start gaps independently within each root trace, changing think-time and cache-TTL behavior while avoiding lanes held by long idle gaps. |
270
+
| Per-trace idle-gap cap is optional |`--trace-idle-gap-cap-seconds` is unset by default and accepts an explicit CLI value | Setting it bounds observed runtime idle across the root and every descendant stream without rewriting dataset timestamps or bypassing spawn/join dependencies. |
271
271
| Per-turn cap is forbidden |`--inter-turn-delay-cap-seconds` must remain unset | Independently clamping parent and subagent delays can distort their relative timing. |
272
272
|`--system-idle-gap-cap-seconds = 10`| When no request is active or ready, all pending replay timers shift uniformly so the next request arrives within 10 seconds | The benchmark avoids measuring long periods with no server work while preserving request order and relative spacing across every pending trajectory. |
273
273
|`--cache-bust first_turn_prefix`| A unique per-conversation marker is injected at the start of the first user turn for every play (each dispatch of a trace, initial or recycled) | Without this, every time a trace is recycled the server's prefix cache would warm up further on identical content, and steady-state cache-hit rates would inflate the longer the run goes. The marker gives every recycled play a fresh prompt prefix. |
@@ -440,10 +440,14 @@ request metrics.
440
440
After warmup, the profiling phase opens. Now you're measuring. Each trajectory
441
441
keeps replaying its conversation from turn `k_i + 1` onward, honoring the
442
442
original recorded inter-turn gaps as end-to-start delays counted from the
443
-
moment the previous turn completes. An explicit
444
-
`--trace-idle-gap-cap-seconds S` first compresses request-start gaps longer
445
-
than `S` independently within each root trace. If every request completes
446
-
while future requests remain scheduled more than 10 seconds away, AIPerf
443
+
moment the previous turn completes. With
444
+
`--trace-idle-gap-cap-seconds S`, a per-trajectory watchdog covers initial
445
+
future work and restarts when the last in-flight request across the root and
446
+
all descendant streams completes.
447
+
If that tree remains idle for `S` seconds, AIPerf uniformly advances only its
448
+
pending timers; dataset timestamps, relative timer spacing, request order, and
449
+
spawn/join gates remain unchanged. If every request completes while future
450
+
requests remain scheduled more than 10 seconds away, AIPerf
447
451
shifts all pending request timers earlier by the same amount. This bounds true
448
452
system-idle time without changing request order or the relative spacing among
449
453
pending trajectories. A scheduled turn may become retained by a cross-stream
Copy file name to clipboardExpand all lines: docs/tutorials/weka-trace.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,7 +104,7 @@ The HuggingFace path and the file-based `--input-file` path produce **byte-ident
104
104
|`--public-dataset semianalysis_cc_traces_weka` (HuggingFace, legacy/default no-subagents alias) | Legacy/default pinned alias for the same current no-subagents corpus as `semianalysis_cc_traces_weka_no_subagents`. |
105
105
|`--public-dataset semianalysis_cc_traces_weka_with_subagents` (HuggingFace, with subagents) | Rolling with-subagents alias tracking the current default corpus (062126) for zero-setup runs with full subagent SPAWN/JOIN topology. 393 traces. |
106
106
107
-
Existing Weka tunables work identically in both paths: `--synthesis-max-isl`, `--synthesis-max-osl`, `--inter-turn-delay-cap-seconds`, `--trace-idle-gap-cap-seconds`, `--ignore-trace-delays`, `--use-think-time-only`, `--cache-bust`, the per-trace model rewriting rules below — same flags, same behavior, same output bytes on the wire. For `--scenario inferencex-agentx-mvp`, the validator accepts a with-subagents `--public-dataset` alias or `weka_hf` constrained to `semianalysisai/cc-traces-weka-062126` for `submission_valid: true`; a local `weka_trace` directory requires `--unsafe-override` (stamps `submission_valid: false`) because corpus identity is not fingerprintable; it does not accept the no-subagents aliases. That scenario permits an explicit `--trace-idle-gap-cap-seconds`, forbids the per-turn `--inter-turn-delay-cap-seconds`, and retains the global `--system-idle-gap-cap-seconds` guard.
107
+
Existing Weka tunables work identically in both paths: `--synthesis-max-isl`, `--synthesis-max-osl`, `--inter-turn-delay-cap-seconds`, `--trace-idle-gap-cap-seconds`, `--ignore-trace-delays`, `--use-think-time-only`, `--cache-bust`, the per-trace model rewriting rules below — same flags, same behavior, same output bytes on the wire. `--trace-idle-gap-cap-seconds` is a runtime AgentX watchdog and does not rewrite either loader's dataset timestamps. For `--scenario inferencex-agentx-mvp`, the validator accepts a with-subagents `--public-dataset` alias or `weka_hf` constrained to `semianalysisai/cc-traces-weka-062126` for `submission_valid: true`; a local `weka_trace` directory requires `--unsafe-override` (stamps `submission_valid: false`) because corpus identity is not fingerprintable; it does not accept the no-subagents aliases. That scenario permits an explicit `--trace-idle-gap-cap-seconds`, forbids the per-turn `--inter-turn-delay-cap-seconds`, and retains the global `--system-idle-gap-cap-seconds` guard.
108
108
109
109
For newly published compatible HuggingFace Weka trace corpora, pass `--hf-weka-dataset <repo>` — it auto-selects the neutral `weka_hf` loader (passing `--public-dataset weka_hf` explicitly is equivalent):
0 commit comments