Preserve OpenHands context budget#927
Conversation
|
Daily scan hygiene (2026-07-13): added rollout/eval tracking labels while this remains a draft PR. Current state:
Labels: |
|
Users Simulation automation review (2026-07-13): behavior-ready, but still draft/in-progress on head Scope checked: OpenHands settings generation, context/output budget propagation, summarizing condenser setup, manifest-neutral install/launch behavior, CLI/SDK regression risk, and artifact health. Evidence:
Artifact health:
Thermo-nuclear review: no blocker from this diff. The PR edits an already-large registry file, but the new settings writer is cohesive and avoids scattering context-budget branches across rollout code. I left labels as draft |
What changed
Agentsettings file instead of only the minimal LLM routeBENCHFLOW_OPENHANDS_CONTEXT_LIMITandBENCHFLOW_OPENHANDS_OUTPUT_LIMITare setLLMSummarizingCondenserwithBENCHFLOW_OPENHANDS_CONTEXT_RESERVE(default 4096)install_cmdandlaunch_cmdbyte-identical to the external agent manifest by modeling the compatibility hooks as shim-only fieldsRoot cause
BenchFlow wrote only
llm.model,llm.api_key, and optional provider fields toagent_settings.json. That bypassed the OpenHands CLI's default agent construction and leftcondenser=Noneplus no explicit input/output limits. A long rollout reached 262,216 input tokens against a 262,144-token endpoint and ended in a provider context-window rejection instead of condensing first.Behavior
With context 262144, output 32768, and the default 4096 reserve, condensation starts at 225280 tokens. Existing provider URL and optional LiteLLM boolean flags are preserved. When limits are omitted, the writer still restores the normal summarizing condenser without inventing a token threshold.
Validation
benchflow-ai/agents@mainmanifestsAgent, input 262144, output 32768,LLMSummarizingCondenser, trigger 225280<think>leaksThe production experiment patch was deployed only to newly launched jobs; existing active jobs were not restarted.