feat(agentx): run AgentX on upstream AIPerf / feat(agentx): 在上游 AIPerf 上运行 AgentX by FrankD412 · Pull Request #4338 · SemiAnalysisAI/InferenceX · GitHub
Skip to content

feat(agentx): run AgentX on upstream AIPerf / feat(agentx): 在上游 AIPerf 上运行 AgentX - #4338

Draft
FrankD412 wants to merge 1 commit into
SemiAnalysisAI:mainfrom
FrankD412:fdinatale/agentx-upstream-aiperf
Draft

FrankD412 wants to merge 1 commit into
SemiAnalysisAI:mainfrom
FrankD412:fdinatale/agentx-upstream-aiperf

Conversation

@FrankD412

Copy link
Copy Markdown
Collaborator

Summary

AgentX currently runs on agentx-harness==1.0.12, SemiAnalysis's fork of AIPerf. Upstream ai-dynamo/aiperf now contains everything AgentX relies on: the fork was ported in ai-dynamo/aiperf#1413, and the SPAWN fixes landed as #1540 (roll back delayed SPAWN children at the sending cutoff) and #1567 (pin SPAWN children under their own sticky entry). This PR moves AgentX to upstream AIPerf at 8aa7039f872cd029f05a4c313fb8759e9a482cd3, removing the fork from the benchmark path.

  • infx/bench/agentic/requirements.txt installs AIPerf from the pinned commit's source tarball, so the serving containers don't need git.
  • The replay runs aiperf profile --scenario inferencex-agentx-mvp. The fork-only agentx preset (feat(scenario): support CLI and runtime environment defaults ai-dynamo/aiperf#1495 adds scenario defaults upstream but is not merged, and no PR adds the preset) is passed as explicit flags plus AIPERF_DATASET_CONFIGURATION_TIMEOUT, AIPERF_SERVICE_PROFILE_CONFIGURE_TIMEOUT, AIPERF_UI_REALTIME_METRICS_ENABLED and AIPERF_HTTP_TCP_USER_TIMEOUT. Recipe and workflow values still win.
  • job_event.json records the pinned commit as versions.aiperf_sha. agentx_harness stays in the schema for older records and is null for new ones.
  • The standalone guide and READMEs now describe aiperf profile.

Behavior changes vs 1.0.12 (why this is a perf-changelog entry for every agentic config):

Apart from these, the benchmark config AIPerf builds is unchanged. For the default, FAST, under-900 s and all-opt-ins points, the CLI parse, plan build and scenario check on the installed pin give the same values as 1.0.12 for all shared settings, except the scenario name (agentx → inferencex-agentx-mvp).

Open issues (draft):

  • Pre-existing, not fixed here: for dynamo-* frameworks with conversation-aware routing, replay.py passes --use-dynamo-conv-aware-routing and --dynamo-session-timeout-seconds. Neither 1.0.12 nor upstream AIPerf accepts these flags ("Unknown option"), so those points fail on main today, and this PR keeps the same flags.
  • validate_perf_changelog rejects the "*" entry because matrix planning fails on benchmarks/single_node/srt-slurm-recipes/qwen3.5/sglang/h100-fp8/agentic.yaml (KV offloading / DRAM override mismatch). This PR does not touch that config.
  • No GPU runs yet. The "*" entry sweeps every agentic config, so the sweep scope needs agreeing before a primary sweep label is applied.
  • Overlaps Pass AIPERF_SLICE_DURATION to agentx profile / 将 AIPERF_SLICE_DURATION 传递给 agentx profile #4288, which passes AIPERF_SLICE_DURATION; this PR fixes --slice-duration 1.0.
AI model disclosure
  • Model/version: claude-opus-5-5 (Anthropic, as exposed by the Hermes runtime). Role: gap analysis of agentx-harness vs upstream AIPerf, config-parity checks, code, tests, docs, changelog entry and this description.
  • Delegated agents: three read-only subagents checked individual fork commits against upstream AIPerf. They inherit the parent model by default, but the runtime did not report their model, so their exact model could not be verified.
PR checklist and change type

Type of Change

  • Bug fix
  • New feature
  • Configuration change
  • Documentation update
  • Other (please describe)

Checklist

  • I have completed the AI model disclosure and kept it current
  • I have tested my changes locally
  • I have updated documentation if necessary
  • If python -m infx.matrix.changed --base origin/main lists affected config keys, I have appended one new entry covering them to the physical end of inferencex-e2e/perf-changelog.yaml; if it lists none, I have added none. I have not edited historical entries
  • If this PR appends an inferencex-e2e/perf-changelog.yaml entry, it carries exactly one primary sweep label (a maintainer applies it on fork PRs): full-sweep-fail-fast (recommended), full-sweep-enabled, or non-canary-full-sweep-enabled. Optional modifiers all-evals, evals-only, and agentx-fast require a primary label; the last two block reuse while applied.
  • Before merging via reuse, an authorized maintainer (OWNER/MEMBER/COLLABORATOR) has commented /use <run_id> (or the legacy /reuse-sweep-run) on this PR. Do this only once there is a final full sweep that is all green with evals passing, since after this comment the primary sweep label will no longer automatically kick off new sweeps. Remove and re-add the primary sweep label to force a new sweep.
中文

概要

AgentX 目前使用 agentx-harness==1.0.12,即 SemiAnalysis 维护的 AIPerf fork。上游 ai-dynamo/aiperf 现已包含 AgentX 所依赖的全部功能:fork 的改动已通过 ai-dynamo/aiperf#1413 移植,SPAWN 相关修复也已合入,分别为 #1540(在发送截止时回滚延迟的 SPAWN 子会话)和 #1567(SPAWN 子会话使用各自的 sticky 路由条目)。本 PR 将 AgentX 切换到上游 AIPerf 提交 8aa7039f872cd029f05a4c313fb8759e9a482cd3,使基准测试不再依赖该 fork。

  • infx/bench/agentic/requirements.txt 从固定提交的源码压缩包安装 AIPerf,服务容器无需安装 git。
  • 回放改为运行 aiperf profile --scenario inferencex-agentx-mvp。fork 独有的 agentx 预设以显式参数传入(feat(scenario): support CLI and runtime environment defaults ai-dynamo/aiperf#1495 为上游增加了场景默认值,但尚未合并,也还没有添加该预设的 PR),并设置 AIPERF_DATASET_CONFIGURATION_TIMEOUT、AIPERF_SERVICE_PROFILE_CONFIGURE_TIMEOUT、AIPERF_UI_REALTIME_METRICS_ENABLED 和 AIPERF_HTTP_TCP_USER_TIMEOUT。recipe 和 workflow 中的设置仍然优先。
  • job_event.json 以 versions.aiperf_sha 记录固定的提交。agentx_harness 字段保留在 schema 中以兼容旧记录,新记录中为 null。
  • 独立运行指南和 README 已改为介绍 aiperf profile。

相对 1.0.12 的行为变化(因此为所有 agentic 配置新增 perf-changelog 条目):

除上述变化外,AIPerf 生成的基准测试配置保持不变。对 default、FAST、低于 900 秒以及启用全部可选参数这几种情况,在已安装的固定版本上执行 CLI 解析、计划构建和场景检查,所有共有设置的值都与 1.0.12 相同,唯一的区别是场景名称(agentx → inferencex-agentx-mvp)。

未解决问题(草稿):

  • 已有问题,本 PR 未修复: 对于启用了会话感知路由的 dynamo-* 框架,replay.py 会传入 --use-dynamo-conv-aware-routing 和 --dynamo-session-timeout-seconds。1.0.12 和上游 AIPerf 都不接受这两个参数(报 "Unknown option"),因此这些测试点目前在 main 上就会失败,本 PR 保留了相同的参数。
  • validate_perf_changelog 拒绝了 "*" 条目,原因是 matrix 规划在 benchmarks/single_node/srt-slurm-recipes/qwen3.5/sglang/h100-fp8/agentic.yaml 上失败(KV offloading / DRAM override 不匹配)。本 PR 没有改动该配置。
  • 尚未进行 GPU 运行。"*" 条目会对所有 agentic 配置执行 sweep,因此在添加主 sweep 标签之前,需要先确定 sweep 范围。
  • 与 Pass AIPERF_SLICE_DURATION to agentx profile / 将 AIPERF_SLICE_DURATION 传递给 agentx profile #4288 有重叠:Pass AIPERF_SLICE_DURATION to agentx profile / 将 AIPERF_SLICE_DURATION 传递给 agentx profile #4288 传入 AIPERF_SLICE_DURATION,而本 PR 将 --slice-duration 固定为 1.0。

AI 模型使用说明

  • 模型/版本:claude-opus-5-5(Anthropic,由 Hermes 运行环境提供)。工作内容:对比 agentx-harness 与上游 AIPerf 的差异、检查配置一致性,并编写代码、测试、文档、changelog 条目和本说明。
  • 委派的 agent:三个只读子 agent 逐个检查 fork 提交在上游 AIPerf 中的情况。它们默认继承父模型,但运行环境未报告其所用模型,因此无法确认其确切模型。

Replace the agentx-harness 1.0.12 client with ai-dynamo/aiperf at
8aa7039f872cd029f05a4c313fb8759e9a482cd3. The replay runs
`aiperf profile --scenario inferencex-agentx-mvp` and passes the fork's
agentx preset as explicit flags and AIPERF_* defaults, which callers
can still override. Job events record the pinned AIPerf commit.

中文:

将 AgentX 客户端从 agentx-harness 1.0.12 切换为 ai-dynamo/aiperf
8aa7039f872cd029f05a4c313fb8759e9a482cd3。回放改为运行
`aiperf profile --scenario inferencex-agentx-mvp`,并以显式参数和
AIPERF_* 默认值传入 fork 中 agentx 预设的设置,调用方仍可覆盖。
作业事件记录所固定的 AIPerf 提交。

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant