Repository navigation
feat(aviary): consolidate Hypotest and support final assistant responses - #3792
Draft
arnavkomaragiri wants to merge 1 commit into
Draft
arnavkomaragiri wants to merge 1 commit into
arnavkomaragiri wants to merge 1 commit into
Conversation
Signed-off-by: Arnav Chandra Komaragiri <akomaragiri@nvidia.com>
This was referenced Oct 12, 2026
This branch has not been deployed
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.
Aviary currently stops when an environment reports completion, so a terminal
submit_answertool call cannot be followed by a final assistant message. This consolidates the OpenSandbox Hypotest integration from 7c7b439 and the final-response support from 774fb1c into the existing Aviary integration.resources_servers/aviary/. The OpenSandbox config useshypotest_app.py; there is no separatebbh_hypotestserver.generate_final_response_after_done: make exactly one additional model call with tools disabled, including when completion reachesmax_steps. Preserve both trajectory output formats and do not execute any tools from that final call.submit_answerreturnsAnswer submitted.for both correct and incorrect answers, while scoring and verifier metadata remain available outside the policy context.hypotest[opensandbox]to afcc132, which adds the default-oninclude_answer_feedbacksetting. Current Gym's OpenAI and Pillow pins resolve successfully, so the older OpenAI override is unnecessary.No separate issue: this is a focused consolidation of the two linked commits and the accompanying feedback-leakage fix.
Compatibility: final-response generation remains disabled by default and is enabled in the new OpenSandbox config. Enabling it adds a final model call and changes the trajectory context; the verifier continues to score the submitted answer, not the later assistant text. Deployments using the earlier branch config should switch to
resources_servers/aviary/configs/bbh_hypotest_opensandbox.yamland theaviaryresource-server component. Remote Aviary dataset servers must configure Hypotest'sinclude_answer_feedback: falseseparately if they enable a final model turn.Validation (Python 3.13.14):
resources_servers/aviary/requirements.txtsuccessfully without dependency overrides.gym env test +entrypoint=responses_api_agents/aviary_agent +should_validate_data=true +skip_venv_if_present=true: 13 passed.gym env test +entrypoint=resources_servers/aviary +should_validate_data=true +skip_venv_if_present=true: 10 passed, 1 existing Docker/data-dependent test skipped; example data validated. Both suites used the prepared environment containing the final Git-pinned dependency.pytest tests/test_answer_feedback.py tests/test_interpreter_env.py tests/test_dataset.py -k 'answer_feedback or submit_answer_marks_done or remote_capsule or remote_only_opensandbox' -q -o asyncio_mode=auto: 9 passed. Removing feedback suppression makes both relevant regression cases fail. Pinned Ruff reports no new findings; the upstream interpreter retains 8 pre-existing lint findings.pre-commit run --all-files: passed.Real rollout evidence: a synthetic arithmetic task completed through the Gym agent, model, and resource HTTP endpoints with a remote OpenSandbox and an externally hosted OpenAI-compatible API judge endpoint. The policy called
run_cell(observed mean4.0), thensubmit_answer, then produced a final assistant message. The judge awarded 3/3 points, reward 1.0, with no judge failure. There were 3 policy calls. The final model request hadtools: [],tool_choice: none, and the neutralAnswer submitted.observation; neither correctness feedback string appeared in that context. The sandbox was terminated successfully. Correct and incorrect feedback suppression are both covered by deterministic tests.Smoke overlays, credentials, endpoint/model identifiers, and full rollout logs remain local and are excluded from this PR.