Skip to content

Fix AA-next OpenHands timeout guidance - #2094

Open
Edwardf0t1 wants to merge 1 commit into
mainfrom
agent/fix-aa-next-openhands-timeout
Open

Fix AA-next OpenHands timeout guidance#2094
Edwardf0t1 wants to merge 1 commit into
mainfrom
agent/fix-aa-next-openhands-timeout

Conversation

@Edwardf0t1

@Edwardf0t1 Edwardf0t1 commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Type of change: Bug fix

Updates the AA-next evaluation runbook to require the current
0.5.0.1-harbor runtime for Terminal-Bench 2.1 and SWE-bench, and adds a
SWE-bench canary gate that rejects an active OpenHands timeout: 300.

The prior 0.3.1.1-harbor guidance accepted
solver.agent_kwargs.llm_kwargs.timeout: 3600, but that runtime did not pass
the value to the OpenHands LLM client. OpenHands therefore retained its
300-second default and failed slow model generations with LLMTimeoutError.
NVIDIA-NeMo/Evaluator#1083 fixed the propagation path; 0.5.0.1-harbor is the
current internal benchmark source of truth and includes that fix.

The source paths in the benchmark recipes are also updated to the current
nvidia-eval-factory-benchmarking layout.

Companion internal config-writer MR:
https://gitlab-master.nvidia.com/omniml/Model-Optimizer-Internal/-/merge_requests/111

Usage

Keep agent_kwargs.llm_kwargs.timeout: 3600 in the SWE-bench solver config and
use the NEL_NEXT_EVAL_IMAGE written by the current modelopttools:eval-config
skill. During the first canary, confirm the OpenHands agent reports an active
timeout of 3600; do not scale out a canary that reports timeout: 300.

Testing

  • pre-commit run --files on all four changed files
  • git diff --check
  • Cross-checked the image against
    configs/shared/nel_next_containers.yaml in the internal benchmark source of
    truth

Before your PR is "Ready for review"

  • Is this change backward compatible?: ✅
  • If you copied code from any other sources or added a new PIP dependency, did you follow guidance in CONTRIBUTING.md: N/A
  • Did you write any new necessary tests?: N/A — documentation/runbook fix; pre-commit validation covers the changed files
  • Did you update Changelog?: N/A
  • Did you get Claude approval on this PR?: N/A

Additional Information

Upstream propagation fix:
NVIDIA-NeMo/Evaluator#1083

Summary by CodeRabbit

  • Documentation
    • Updated evaluation guidance to use image version 0.5.0.1-harbor.
    • Refreshed SWE-bench Verified and Terminal-Bench 2.1 configuration references.
    • Added validation guidance for confirming the 3600-second request timeout and rejecting the default 300-second timeout.
    • Documented timeout verification in startup logs and retained private-image credential requirements.

Signed-off-by: Zhiyu Cheng <zhiyuc@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Aug 6, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: bbd5ed2e-d3af-452a-bbeb-34a384b5b9e8

📥 Commits

Reviewing files that changed from the base of the PR and between 22b6a14 and fe2cc52.

📒 Files selected for processing (4)
  • .agents/skills/evaluation/recipes/examples/example_eval_next.yaml
  • .agents/skills/evaluation/recipes/tasks/aa_next/swebench_verified.md
  • .agents/skills/evaluation/recipes/tasks/aa_next/terminal_bench_2_1.md
  • .agents/skills/evaluation/references/nel-next.md

📝 Walkthrough

Walkthrough

Updated evaluation guidance to use the 0.5.0.1-harbor image, current benchmark configuration paths, and SWE-bench canary checks for the OpenHands 3600-second timeout.

Changes

Evaluation guidance

Layer / File(s) Summary
Image and configuration guidance
.agents/skills/evaluation/recipes/examples/example_eval_next.yaml, .agents/skills/evaluation/recipes/tasks/aa_next/*, .agents/skills/evaluation/references/nel-next.md
Updated image requirements to 0.5.0.1-harbor and replaced obsolete benchmark configuration references with current paths.
OpenHands timeout canary
.agents/skills/evaluation/recipes/tasks/aa_next/swebench_verified.md, .agents/skills/evaluation/references/nel-next.md
Added checks for an active 3600-second timeout and cancellation when the 300-second default is detected.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: aanoosheh

🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: updating AA-next OpenHands timeout guidance.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Security Anti-Patterns ✅ Passed HEAD changes only four YAML/Markdown documentation files; no Python, dependency, or security-sensitive additions were found in the commit diff.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch agent/fix-aa-next-openhands-timeout

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Aug 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.81%. Comparing base (19e0121) to head (fe2cc52).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2094      +/-   ##
==========================================
- Coverage   67.15%   66.81%   -0.35%     
==========================================
  Files         521      522       +1     
  Lines       59857    61312    +1455     
==========================================
+ Hits        40199    40965     +766     
- Misses      19658    20347     +689     
Flag Coverage Δ
unit 55.39% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Edwardf0t1
Edwardf0t1 marked this pull request as ready for review August 7, 2026 00:51
@Edwardf0t1
Edwardf0t1 requested a review from a team as a code owner August 7, 2026 00:51

@cjluo-nv cjluo-nv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bot review (bedrock-claude-opus-5) — DM the bot to share feedback.

Docs/runbook-only change (4 files, +33/-9) under .agents/skills/evaluation; no library code or tests affected, so the "no new tests" justification is reasonable. The substance — replacing the "≥ 0.3.1.1-harbor" floor with "current source of truth: 0.5.0.1-harbor" and adding a SWE-bench canary gate that rejects an active OpenHands timeout: 300 — is consistent across all four files, and I confirmed no stale 0.3.1.1-harbor "minimum" wording is left (the remaining mentions are deliberate "do not use" callouts). No licensing-relevant changes, and I found no prompt-injection content in the PR text.

Three actionable points, all documentation-consistency rather than blocking correctness:

  1. Possible version skew: the eval image is bumped to 0.5.0.1-harbor while .agents/scripts/nel-next.sh still pins the submitting CLI to nemo-evaluator[harbor,export]==0.3.* and references/nel-next.md is titled/structured around "nemo-evaluator 0.3.x". If the harbor image tag tracks the nemo-evaluator version, the runbook now tells users to combine a 0.3.x launcher with a 0.5.x runtime with no note about whether that's supported.
  2. The new canary paragraph in references/nel-next.md says "for the recipe below, 3600", but there is no recipe below in that file — the 3600 value lives in recipes/tasks/aa_next/swebench_verified.md.
  3. The ≥ 0.3.1.1-harbor — FEP-1085 reasoning fix rationale was dropped from the SWE-bench table; keeping both required fixes (reasoning + timeout propagation) documented helps anyone who has to pick a different image tag.

- **`eval_image`** = `${NEL_NEXT_EVAL_IMAGE}`. `0.3.1.1-harbor` is multi-arch and is
the minimum for **TB 2.1**; older `0.17.x/0.18.x-harbor-<arch>` are arch-suffixed.
Private gitlab-master image → cluster needs enroot creds (SKILL Step 7.5).
- **`eval_image`** = `${NEL_NEXT_EVAL_IMAGE}`. The current internal source of

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bot comment.

Compatibility check: this now pins the eval runtime to 0.5.0.1-harbor, but .agents/scripts/nel-next.sh still installs the submitting CLI as nemo-evaluator[harbor,export]==0.3.*, and this file's header ("nel-next (nemo-evaluator 0.3.x)") plus the "Separate venv" section describe 0.3.x. If the harbor image tag tracks the nemo-evaluator version, users would be running a 0.3.x launcher against a 0.5.0.1 runtime. Since the config schemas are extra="forbid", a config that validates under --dry-run (client side, 0.3.x) could hard-fail inside the container, or vice versa. Please either (a) note explicitly that the image tag is independent of the client package version, or (b) bump/loosen NEL_NEXT_SPEC and the surrounding 0.3.x prose in the same PR.


For a SWE-bench canary, inspect the OpenHands startup/agent log before scaling
out. The configured `agent_kwargs.llm_kwargs.timeout` must appear as the active
LLM timeout (for the recipe below, `3600`); `timeout: 300` means the eval image

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bot comment.

"for the recipe below, 3600" — there is no recipe below in this file (the next paragraph is the eval run / SLURM description); the agent_kwargs.llm_kwargs.timeout: 3600 value lives in recipes/tasks/aa_next/swebench_verified.md. Suggest rewording to e.g. "the value configured in the SWE-bench recipe (recipes/tasks/aa_next/swebench_verified.md, currently 3600)". Also, this paragraph largely restates the new "Canary gate" section in swebench_verified.md; consider keeping the detail in one place and cross-linking so the two can't drift.

| `sandbox.region` | `us-east-2` |
| `sandbox.ecr_repository` | `${HARBOR_SWEBENCH_ECR_REPOSITORY}` (dedicated `harbor-swebench` repo, **us-west-2**, regardless of sandbox region) |
| `cluster.eval_image` | `${NEL_NEXT_EVAL_IMAGE}` (needs **≥ `0.3.1.1-harbor`** — FEP-1085 reasoning fix) |
| `cluster.eval_image` | `${NEL_NEXT_EVAL_IMAGE}` (current internal source of truth: **`0.5.0.1-harbor`**) |

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bot comment.

This drops the previous rationale (FEP-1085 reasoning fix) for the image floor. 0.5.0.1-harbor presumably includes it, but readers who need to substitute a different tag now have no record of that constraint — and the tag ordering here isn't obviously monotonic (the reference file describes 0.17.x/0.18.x-harbor as older than 0.3.1.1-harbor), so "newer tag ⇒ includes the fix" isn't safe to infer. Suggest listing both required fixes, e.g. "must include the FEP-1085 reasoning fix and the OpenHands timeout propagation fix (Evaluator#1083)".

@cjluo-nv cjluo-nv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Edwardf0t1 I'm working on PR to upgrade these two benches to the latest harbor 0.5 which had a lot overlap on this PR and it also covers other configs to make the generated config similar with the golden VPR config. Maybe we can wait a bit and I will share the PR once the test runs pass.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants