final_env_response pattern; updated docs/tests/example #677
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.
Description
Introduces proper support for rollouts to include final_env_response in state, which can be set in env_response, resulting in early termination mid-step.
We treat these as cosmetic/metadata, accessible by Rubric classes + for logging, but not included in trajectory (as token representations are never materialized).
Resolves #671 ; replaces #673
Type of Change
Testing
uv run pytestlocally.Checklist
Additional Notes
Note
Implements a clean termination path for multi-turn rollouts when the environment produces a final message.
state["final_env_response"](initialized inEnvironment.init_state), new stop conditionhas_final_env_response, rollout loop skips extra model call when set, and_render_completionappends the final env message for scoring while keeping it out of the trajectoryfinal_env_responseand returns it; minor typing/casting cleanupsMultiTurnEnvexample, makeToolEnvsample tool async, and add a "Final Environment Responses" section describing the pattern and its effectsslow; minor warning-filter tweak inpyproject.tomlWritten by Cursor Bugbot for commit 6fcf399. This will update automatically on new commits. Configure here.