Repository navigation
Train Harbor computer-1 through the session-server agent function - #8
Merged
celve merged 2 commits intoOct 22, 2026
Conversation
Bind computer-1 in harbor_agent_function: the session URL and key on its LiteLLM, Miles's temperature on the constructor and every other request arg in llm_kwargs so the compactor's and the fallback's calls carry them too, no max_seq_len, images on, and Qwen3VLComputer1 through import_path. A computer-1 trial whose own in-sandbox command fails after its agent started is discarded as SandboxLost. The Qwen3-VL launcher gains --rollout-path session, which runs it with --use-session-server v2 --use-session-images --tito-model qwen3_vl.
execute() exports MODEL_ARGS_ROTARY_BASE for the qwen3-4B model args, and calling it directly leaked that into every later model-args snapshot test in the same process.
celve
marked this pull request as ready for review
October 22, 2026 05:03
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
Harbor's
computer-1could not train throughagentic_tool_call.generatewithharbor_agent_function.run. It fell to the default binding, which:max_seq_lenits constructor rejects;Computer1after the first in a process;Computer1rather thanQwen3VLComputer1.What changes
A
computer-1binding.llm_kwargs, which LiteLLM sends on every call: the agent loop's, both compactor summaries', and the final-answer fallback's.llm_call_kwargsreaches only the agent loop.max_seq_len;enable_images=True;provider="litellm".Qwen3VLComputer1throughAgentConfig(import_path=..., name=None), since Harbor builds its registered class whenever the name is a registered one.HARBOR_AGENT_MAX_ITERATIONSandHARBOR_CUA_DESKTOP_WIDTH/HEIGHTset the turn cap and the desktop.Failure scoring. A
computer-1trial whoseRuntimeRequestErrorescapes after its agent started is discarded asSandboxLost. The reasoning:Everything else is scored as before, including the token cap, context overflow, session-server 4xx/5xx other than 503, and verifier-phase failures. A raw SDK exception from the screenshot read or the verifier also still scores 0: no version-stable signal names it.
The compactor's summary trains, as in Miles's Terminus compaction recipe. It is the policy's own completion on the context it saw, and the only carrier of the episode's progress once the history is replaced. Train a screenshot agent through Harbor, on computer-1 tasks and OSWorld-Verified #2's generate function excluded it.
Launch.
agentic_train_args(session_images=True)passes--use-session-server v2 --use-session-images.scripts/run_qwen3_vl_4b_harbor_cua.py --rollout-path sessionruns the agent function with--tito-model qwen3_vland--max-seq-len 32768.generatestays the default, so its snapshot is unchanged.Verification. Record: https://github.com/softlash/LIN-2151/blob/main/docs/live-checks.md, plan: https://github.com/softlash/LIN-2151/blob/main/plans/computer-1-session-binding.md
ac63e51a8finstalled (so the contract tests against the realComputer1run):tests/fast/examples/experimental/harborandharbor_cua: all passed.tests/fast/launch_scriptsandtests/manual/launch_scriptsat this head: 14 failed, 583 passed, 10 errors. The basef5bf49da15gives 14 failed, 580 passed, 10 errors, with the identical failure list (snapshots missing for models and launchers already on the integration branch).image_grid_thwandpixel_values, and no TITO mismatch.--rollout-path session, on Train a screenshot agent through Harbor, on computer-1 tasks and OSWorld-Verified #2's tasks on the shared sandbox service. Qwen3-VL-4B-Instruct, TP2, no recompute, 2×B200 with--attention-backend fused.a007d0c78d. This head differs only intests/fast/launch_scripts/test_run_qwen3_vl_4b_harbor_cua.py, which the live checks do not read.3a93821with Keep message images on pretokenized chat requests sglang#5 cherry-picked, which this needs and no Miles image carries.Review. Sol, round 1 on
6d4f426650: pass, no P1.Left by the pass (P2). A
reasoning_effortin the request args would collide withComputer1's own namedLiteLLM(reasoning_effort=...)and raiseTypeErrorat construction. Stock Miles sampling never sends it. The fix is to route it throughComputer1's parameter, or refuse constructor fields explicitly, with a real-constructor contract case.Owed to the human. Nothing only Linyu can do; the three decisions above are agents', for Linyu's veto.