wooden-umbrella-84098
06/14/2026, 2:33 PMstrong-ice-84145
06/14/2026, 6:36 PMnutritious-balloon-65098
06/14/2026, 6:36 PMnutritious-balloon-65098
06/14/2026, 6:36 PMnutritious-balloon-65098
06/14/2026, 6:40 PMeffort is configurable for ACP agents (Claude Code and Codex harnesses) in software-agent-sdk, and file an issue if so.
Investigation result effort is not exposed as a first-class parameter on ACPAgentSettings for any ACP harness:
• Codex (@zed-industries/codex-acp): partially configurable, but only by encoding it into acp_model as <model>/<effort> (e.g. gpt-5.5/high). The curated _CODEX_MODELS list enumerates all 8 model×effort combos as separate model ids.
• Claude Code (@agentclientprotocol/claude-agent-acp): not exposed at all. LLM.extended_thinking_budget exists for direct-LLM agents but is not wired to the ACP subprocess.
• Gemini CLI (bonus): same as Claude Code — no effort field.
Action taken Filed feature-request issue OpenHands/software-agent-sdk#3699 proposing a first-class acp_effort: Literal["low","medium","high","xhigh"] | None field on ACPAgentSettings, with per-provider translation (Codex → slash suffix on the model id; Claude Code → MAX_THINKING_TOKENS env var; Gemini/custom → no-op). Labels applied: enhancement, acp, sdk. The issue includes an AI-disclosure note that it was opened by OpenHands on the user's behalf.
Completeness checklist • _CODEX_MODELS.extended_thinking_budget isn't propagated.strong-ice-84145
06/14/2026, 8:01 PMnutritious-balloon-65098
06/14/2026, 8:02 PMnutritious-balloon-65098
06/14/2026, 8:04 PMsoftware-agent-sdk and filed two feature‑request issues.
Investigation results 1. ACP agents (Claude Code & Codex harnesses) — not a first‑class parameter:
• Codex (@zed-industries/codex-acp): effort is only selectable by jamming it into the acp_model string as <model>/<effort> (e.g. gpt-5.5/high). The curated _CODEX_MODELS list in openhands-sdk/openhands/sdk/settings/acp_providers.py enumerates the 8 model×effort combos as if they were distinct models.
• Claude Code (@agentclientprotocol/claude-agent-acp): no effort/thinking‑budget field at all. The non‑ACP LLM.extended_thinking_budget does not propagate to the ACP subprocess; the only workaround is smuggling MAX_THINKING_TOKENS via the secrets channel.
2. Regular OpenHands agents on GPT / Claude LLMs — configurable, but inconsistently:
• OpenAI GPT‑5 / o‑series → LLM.reasoning_effort: Literal["low","medium","high","xhigh","none"] (default "high")
• Anthropic Claude (Sonnet 4.5/4.6, Haiku 4.5, Fable 5) → LLM.extended_thinking_budget: int token budget (default 200_000)
• Two different field names + units for the same concept; defaults are silently asymmetric across providers.
Checklist of user requests • ACPAgentSettings.acp_effort field, with per‑provider translation (Codex → <model>/<effort> composition; Claude Code → MAX_THINKING_TOKENS env mapping). Labels: enhancement, acp, sdk. AI disclosure included.LLM.effort knob that the SDK translates to reasoning_effort (OpenAI) or extended_thinking_budget (Anthropic via a low/medium/high/xhigh → token‑budget mapping), with a validation rule against double‑setting. Cross‑linked to #3699 so the ACP and direct‑LLM surfaces ship aligned. Labels: enhancement, llm, sdk. AI disclosure included./tmp/, which are not in version control.
Let me know if you'd like me to start implementation PRs for either #3699 or #3701.modern-fireman-99755
06/15/2026, 9:08 AMcalm-artist-7206
06/15/2026, 12:39 PMwooden-umbrella-84098
06/15/2026, 1:03 PMwooden-umbrella-84098
06/15/2026, 1:03 PMwooden-umbrella-84098
06/15/2026, 1:03 PMmodern-fireman-99755
06/15/2026, 1:07 PMwooden-umbrella-84098
06/15/2026, 1:14 PMbreezy-kilobyte-39430
06/15/2026, 4:38 PM