feat: AgentX v1.0#1970
Draft
cquil11 wants to merge 5 commits into
Draft
Conversation
Signed-off-by: Cam Quilici <cjquilici@gmail.com>
Comment on lines
+383
to
+421
| needs: | ||
| [ | ||
| test-sweep-agentic, | ||
| test-sweep-multi-node-agentic, | ||
| collect-agentic-results, | ||
| calc-success-rate, | ||
| ] | ||
| if: >- | ||
| always() && | ||
| github.event_name == 'workflow_dispatch' && | ||
| needs.collect-agentic-results.result == 'success' && | ||
| needs.calc-success-rate.result == 'success' && | ||
| ( | ||
| needs.test-sweep-agentic.result == 'success' || | ||
| needs.test-sweep-multi-node-agentic.result == 'success' | ||
| ) && | ||
| ( | ||
| needs.test-sweep-agentic.result == 'success' || | ||
| needs.test-sweep-agentic.result == 'skipped' | ||
| ) && | ||
| ( | ||
| needs.test-sweep-multi-node-agentic.result == 'success' || | ||
| needs.test-sweep-multi-node-agentic.result == 'skipped' | ||
| ) | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - name: Trigger agentic database ingest | ||
| run: | | ||
| curl -sSf -X POST \ | ||
| -H "Authorization: Bearer ${{ secrets.INFX_FRONTEND_PAT }}" \ | ||
| -H "Accept: application/vnd.github+v3+json" \ | ||
| https://api.github.com/repos/SemiAnalysisAI/InferenceX-app/dispatches \ | ||
| -d '{ | ||
| "event_type": "ingest-agentic-results", | ||
| "client_payload": { | ||
| "run-id": "${{ github.run_id }}", | ||
| "run-attempt": "${{ github.run_attempt }}" | ||
| } | ||
| }' |
Signed-off-by: Cam Quilici <cjquilici@gmail.com>
Signed-off-by: Cam Quilici <cjquilici@gmail.com>
Signed-off-by: Cam Quilici <cjquilici@gmail.com>
Signed-off-by: Cam Quilici <cjquilici@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Reorganizes AgentX v1.0 into five squashed implementation groups. This keeps the existing PR/branch but removes the exploratory commit history and separates utility code, runtime plumbing, recipes, and final config registration.
Groups
1. AgentX result utilities
Implemented the
utils.agenticpackage for result aggregation, backend-specific metric extraction, server-log parsing, trace metadata, dataset helpers, and result validation. The package is intentionally modular: common aggregation flow lives in shared code, while backend adapters underutils.agentic.aggregation.backendsisolate vLLM, SGLang, and Dynamo-vLLM metric differences.This modularity is required because AgentX results are not uniform across backends. Different engines expose cache hits, KV usage, request accounting, and server-side telemetry through different metric names and log formats. Keeping those mappings behind backend-specific adapters lets future contributors add another backend by implementing a focused adapter instead of modifying one large result processor. It also makes unit testing practical because request metrics, server metrics, server-log parsing, trace metadata, and validation can be tested independently.
The utility layer also includes smaller supporting changes, including success-rate calculation updates and shared constants used by AgentX result processing. These keep downstream aggregation behavior consistent between normal benchmark rows and AgentX-derived rows.
2. Runtime and CI plumbing
Wired AgentX into the shared benchmark/runtime path: workflow templates, matrix schema/generation, runner launchers, shared benchmark helpers, and the AIPerf submodule. This provides the common execution path consumed by the recipe/config layers.
AgentX e2e workflow runs now also trigger the InferenceX-app
ingest-agentic-resultsrepository-dispatch receiver after successful manual agentic sweeps. The dispatch passes the GitHub run ID and attempt once agentic artifacts and run stats are available, and it is gated to avoid ingesting PR/comment reusable workflow calls or partial failures.This group also extends runner metadata in
runners.yaml. AgentX needs runner-level resource information that fixed-sequence benchmarks mostly did not need, especially host DRAM availability for CPU/DRAM KV-offload configurations. The matrix logic uses runner metadata plus per-config model/runtime fields to reason about whether a proposed offload point is valid for a given runner. In practice, the available host-memory budget is derived from the runner entry rather than hardcoded inside each benchmark script, so config generation can consistently filter or size host-offload points across B200/B300/GB-class runners.The intent is that resource capacity lives in runner/config metadata, while benchmark scripts focus on launching the server. That keeps decisions like DRAM-offload eligibility, runner selection, and generated sweep shape in the matrix layer instead of scattering those calculations through shell scripts.
3. Single-node AgentX recipes
Added and updated single-node benchmark scripts for DSv4, MiniMax, Kimi, and Qwen AgentX runs across NVIDIA and AMD runners. Deprecated AgentX scripts that are no longer part of the v1.0 surface were removed.
These recipes are still best-effort and experimental. They are included in the v1.0 release to document working patterns and provide templates for future contributors, not because every model/backend combination should be treated as fully production-hardened.
4. Multi-node AgentX recipes
Added GB200/GB300 disaggregated AgentX recipes and updated the SRT launcher path. This isolates multi-node recipe review from single-node runtime scripts.
These recipes are also best-effort and experimental. They are intentionally left in v1.0 as examples for future multi-node AgentX contributors, especially around disaggregated serving topology, SRT launcher integration, and backend-specific recipe structure.
5. Final sweep config registration
Updated NVIDIA/AMD master configs, runner metadata, and config docs for the final AgentX v1.0 sweep surface. This intentionally collapses config-testing churn into one reviewable final-state commit.
The config changes include the final AgentX matrix definitions, runner metadata needed for resource-aware generation, and documentation updates describing the new config surface. The goal is to keep sweep registration declarative: model/backend/runner capabilities are described in config files, then matrix generation applies the shared validation/resource logic.
Main sync
Rebased onto latest
mainand resolved theprocess_agentic_resultconflicts by keeping the newutils.agentic.aggregationpackage layout and deleting the old top-level processor/test files.Validation
python -m pytest utils/matrix_logic/ utils/agentic/aggregation/test_process_agentic_result.py utils/agentic/aggregation/test_server_log_metrics.py utils/agentic/datasets/test_build_weka_hf_dataset.py utils/agentic/validation/test_validate_agentic_result.py utils/test_calc_success_rate.py -q220 passeduv run pytest tests/unit/dataset/loader/test_weka_aux_classification.py tests/unit/dataset/loader/test_weka_flat_split_v1_contract_adv.py tests/unit/dataset/loader/test_weka_async_subagent.py tests/unit/dataset/loader/test_weka_overlap_groups.py -qinutils/aiperf78 passeduv run pytest tests/unit/dataset/loader/test_weka_trace.py -q -k 'not test_flattened_fanout_logs_detection_summary'inutils/aiperf38 passed, 1 deselecteduv run --extra dev ruff check <touched AIPerf Python files>All checks passed