Repository navigation
Conversation
…nd OpenClaw presets, and build responses from Relay ATIF Signed-off-by: Christian Munley <cmunley@nvidia.com>
…agents, and install OpenHands' dependencies Signed-off-by: Christian Munley <cmunley@nvidia.com>
…eways, keep the fuller trajectory, and pin LiteLLM in the runtime script Signed-off-by: Christian Munley <cmunley@nvidia.com>
|
/ok to test 61e2e62 |
|
/review |
svcnvidia-nemo-ci
left a comment
There was a problem hiding this comment.
HOLD — two BLOCKERs in Relay trajectory fidelity and three RISKs in configuration, proxy cleanup, and OpenClaw provisioning.
Completed the broad review of all nine changed files, including affected configuration composition, verifier handoff, installation paths, and existing regression tests. Relay is opt-in, so the trajectory and proxy findings are confined to Relay-enabled runs; the configuration and OpenClaw findings affect their respective setup paths.
Static inspection only: tests, dependency resolution, and model rollouts were not executed. Third-party Fabric/Relay implementations are not mounted, so their internal compatibility claims were not independently verified. The findings below are grounded in the mounted source and fixtures.
Note: formal approval is not available for this request, so this review is posted as a comment only.
Review generated by codex. This was a full review. Request a full review with /review reset=true.
…s, close proxy connections, declare Relay options, and provision OpenClaw Signed-off-by: Christian Munley <cmunley@nvidia.com>
|
/ok to test 4d51f4a |
|
/review |
svcnvidia-nemo-ci
left a comment
There was a problem hiding this comment.
SHIP — all five prior findings are resolved in the inspected source; no eligible findings remain in this follow-up.
Verified fixes:
- ATIF normalization preserves structured Relay results, including false, zero, and null. Fallback selection now compares both nonempty and total tool outputs, retaining completed empty native results.
- Proxy cleanup cancels and awaits registered handlers and closes both streams. Post-proxy configuration construction now sits inside the cleanup boundary.
- The base YAML declares both options, allowing composed overrides without weakening unknown-field rejection.
- OpenClaw startup invokes the existing provisioning helper only for that adapter.
Accounted for all ten changed files and compared the fixes with the previous reviewed tree. Discovery remained limited to the prior failures and subsequent changes under the existing impact filter. Relevant regression assertions and directly affected configuration, verifier-handoff, and setup paths were inspected.
Static inspection only: tests, installations, dependency resolution, and rollouts were not executed. Third-party Fabric, Relay, and OpenClaw implementations are not mounted, so runtime compatibility was not independently verified.
Note: formal approval is not available for this request, so this review is posted as a comment only.
Review generated by codex. This was a findings-only review. Request a full review with /review reset=true.
…nd turns from adapter and Relay data, and add the NOOA extra Signed-off-by: Christian Munley <cmunley@nvidia.com>
|
/ok to test 1c5aed4 |
|
/review |
|
/ok to test d6558fa |
|
/review |
svcnvidia-nemo-ci
left a comment
There was a problem hiding this comment.
SHIP — no eligible findings remain in this follow-up.
Compared the current head with the previously reviewed baseline and accounted for all ten changed files. The only subsequent source change adds OpenClaw’s read and shutdown timeout settings. Traced their handoff through configuration construction and invocation cleanup: adapter settings and the invocation timeout remain separate. No introduced high- or critical-impact regression was established under the existing impact filter.
The earlier repairs remain present: structured Relay results, completed-empty-result fallback, proxy cleanup, declared YAML options, and adapter-specific OpenClaw provisioning. Relevant regression assertions were inspected.
Static inspection only: tests, installations, dependency resolution, and rollouts were not executed. Third-party Fabric/Relay implementations are not mounted, so adapter-internal timeout and shutdown behavior could not be independently verified. Two delegated detailed reports were unavailable; their timeout and lifecycle topics were independently inspected before completion.
Note: formal approval is not available for this request, so this review is posted as a comment only.
Review generated by codex. This was a findings-only review. Request a full review with /review reset=true.
…ack proxy, and adapter turn counters NeMo Fabric and its Harbor integration expect harness CLIs to be preinstalled, so the OpenClaw preset documents the CLI install instead of the agent special-casing one adapter. The Relay loopback proxy worked around Relay 0.10 refusing plain-HTTP upstreams. Fabric #472 forwards insecure_http_model_hosts to Relay 0.11 for that, so the README documents the limit until it ships. Turn counts now come only from fields Fabric adapters share, not per-adapter metadata keys. Signed-off-by: Christian Munley <cmunley@nvidia.com>
Relay ATIF final_metrics no longer fill token counts when Fabric reports none. Their scope and cache conventions are not verified against the invocation, which is why Fabric's Harbor integration keeps them out of accounting too. Model-call capture records the full counts. Signed-off-by: Christian Munley <cmunley@nvidia.com>
|
/ok to test bb178da |
|
/review |
svcnvidia-nemo-ci
left a comment
There was a problem hiding this comment.
SHIP — no eligible findings remain in this follow-up.
Compared all ten changed files with the previously reviewed tree. Discovery covered subsequent startup/lifecycle and accounting changes, plus directly affected configuration, verifier-handoff, and profiling contracts. No introduced high- or critical-impact regression was established under the existing impact filter.
Verified that the earlier structured Relay-result repair, completed-empty-result fallback, and declared YAML options remain intact. Relevant regression assertions were inspected. The former proxy-owned connection leak no longer applies because the proxy and its invocation boundary have been removed.
Static inspection only: tests, installations, dependency resolution, and rollouts were not executed. Third-party Fabric and Relay implementations are not mounted, so their internal runtime compatibility was not independently verified.
Note: formal approval is not available for this request, so this review is posted as a comment only.
Review generated by codex. This was a findings-only review. Request a full review with /review reset=true.
…-8 character _atif_trajectories caught OSError and JSONDecodeError, but a Relay ATIF file cut inside a multi-byte character raises UnicodeDecodeError, which escaped and failed the rollout instead of falling back to Fabric's own output. It is now caught with the others, as Fabric's own relay artifact reader does. A test covers a cut multi-byte character, truncated JSON and a readable file. Signed-off-by: Christian Munley <cmunley@nvidia.com>
|
/ok to test ddc5b5c |
|
/review |
svcnvidia-nemo-ci
left a comment
There was a problem hiding this comment.
SHIP — no eligible findings remain in this follow-up.
Compared all ten changed files with the previously reviewed tree. Discovery focused on the subsequent UTF-8 artifact-handling change and its directly affected response and verifier-handoff paths. No introduced high- or critical-impact regression was established under the existing impact filter.
The reader now skips undecodable artifacts while retaining existing JSON/I/O handling and continuing to readable files. The new regression assertion covers an incomplete multibyte character, truncated JSON, and a subsequent readable trajectory. When no trajectories survive, the selection branch retains Fabric’s native output.
Earlier repairs remain intact: structured Relay results, the completed-empty-result regression assertions, and the declared YAML options.
Static inspection only: tests, installations, dependency resolution, and rollouts were not executed. Third-party Fabric and Relay implementations are not mounted. One delegated detailed report was unavailable; its eight ancillary-file comparisons were independently completed.
Note: formal approval is not available for this request, so this review is posted as a comment only.
Review generated by codex. This was a findings-only review. Request a full review with /review reset=true.
Signed-off-by: Christian Munley <cmunley@nvidia.com>
|
/ok to test ec272b4 |
What does this PR do?
Updates
nemo_fabric_agentfrom NeMo Fabric 0.2.0 to 0.5.0 and adds an opt-in NeMo Relay path.nooa,openhands,openclaw, andrelayextras and presets for OpenHands and OpenClaw. The OpenClaw preset needs the CLI release Fabric 0.5.0 documents (npm install --global openclaw@2026.9.4). Like Fabric's Harbor integration, the agent expects harness CLIs to be preinstalled. The 0.5.0 TypeScript adapters (Cline, Droid, Kilo, OpenCode, Pi, Qwen Code) also run through this agent when their npm packages are installed and discovered withfabric_config.discovery.local_paths.relay: true. Records each run with NeMo Relay and builds the response from Relay's ATIF trajectory, so adapters with Relay support return the same item shape.fabric_result.relay_atifholds the trajectories.insecure_http_model_hoststo Relay 0.11 for remote HTTP servers.send_model_base_url: falsefor adapters that read their endpoint elsewhere (Factory Droid).litellm<1.103, because later releases import mcp 2 types and nemo-gym pins mcp<2. Also pinned in the portable runtime script.pillow==12.3.0overriding hermes-agent's exact pin.uv.tomlthat mirrors Gym's resolver policy but keepscryptography,pathspec, andwcwidth, which OpenHands needs.Validation
pytest responses_api_agents/nemo_fabric_agent/tests: 51 passed, including planning for every preset, Relay config, ATIF parsing (Relay's structuredextra.tool_resultand empty results) and fallback, and the base URL opt-out.pre-commiton the changed files: passed.Rollouts
Every Fabric 0.5.0 harness ran through Gym with a self-hosted DeepSeek-V4.1-Flash policy on three environments. Each cell is passes over attempts. Most harnesses also needed harness-specific settings, such as permission modes, model fields, or the model server's
reasoning_field.The remaining 0/3 cells come from limits and settings, not the model:
fabric_config.models.default.max_tokensis set, and inline reasoning counts against it. The Alpine image's BusyBoxsetprivlacks--pdeathsig, which the gateway needs.session.promptrequest, and itsbashtool waits for an approval no one gives. ANODE_OPTIONSpreload that disables undici's timeouts plusfabric_config.tools.enabledfixed both. The proper fix for the first belongs in Fabric's Kilo adapter.Relay produced complete trajectories for Claude and Codex on SWE-bench (every tool call has its result). Known Fabric 0.5.0 and Relay 0.10 gaps, kept behind the opt-in flag:
nemo_relay.tools.call_end, so its trajectory has no tool results, and on math more of its runs failed with Relay.Compatibility and benchmark impact
relaydefaults tofalse, so existing runs are unchanged apart from the Fabric version. The pinned benchmark configs that installnemo-fabric[deepagents]==0.2.0(deepsearchqa, widesearch) are left as is.Follow-ups outside this PR:
cache_controlNOOA sends: fix(chat): drop cache_control hints from chat request messages #5059.turns_used.ng_perfstays empty because this agent emits no agent invocation records.Checklist