are we able to expose "effort" as a parameter?
# proj-agent
w
are we able to expose "effort" as a parameter?
s
@nutritious-balloon-65098 investigate if effort is configurable for acp agents for harnesses claude code and codex in software-agent-sdk. If it is, make an issue
n
I'm on it! Simon Rosenberg can track my progress here.
I'm on it! Simon Rosenberg can continue tracking my progress here.
Summary Task: Investigate whether
effort
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 • Investigated Codex harness effort handling — found slash-encoded model ids in
_CODEX_MODELS
.
• Investigated Claude Code harness effort handling — confirmed no field exists and
extended_thinking_budget
isn't propagated.
• Since effort is (partially) configurable for Codex, filed an issue as instructed — proposing a uniform first-class API. • No code changes were made, so nothing to commit or push. Conciseness No code was modified; the only artifact produced is the GitHub issue. Nothing extraneous to revert.
s
@nutritious-balloon-65098 what about for regular OpenHands agent running on gpt or claude llms? if effort is configurable, make another sdk issue.
n
I'm on it! Simon Rosenberg can continue tracking my progress here.
Summary I investigated whether reasoning effort is configurable across the two agent paths in
software-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 • Investigate effort configurability for ACP harnesses (Claude Code, Codex) → done, findings above. • If configurable, file an SDK issue → filed OpenHands/software-agent-sdk#3699 proposing a first‑class
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.
• Investigate effort configurability for regular agents on GPT / Claude → done, findings above. • If configurable, file another SDK issue → filed OpenHands/software-agent-sdk#3701 proposing a single provider‑agnostic
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.
Code changes None. Both tasks were investigation + issue filing only — no commits, no PRs, no local edits to revert. The only artifacts written were two ephemeral issue‑body files under
/tmp/
, which are not in version control. Let me know if you'd like me to start implementation PRs for either #3699 or #3701.
m
@wooden-umbrella-84098 Regarding standard LLM profiles: Do you mean exposing this as a top-level parameter that can be configured directly in the UI? Users can already select it, but it’s a bit convoluted since they have to go into the "All" section and manually search for it. (see video). So, if I understand correctly: once a profile is selected, you want the ability to adjust the Reasoning Effort on the fly?
c
What if we put it in Basic view, for starters? It’s relevant
nod 1
w
This is the kind of thing people would want to change on-the-fly, rather than set up different profiles
so ideally it'd just magically show up in the chat box
or maybe when you connect an anthropic account you get a bunch of different effort profiles auto-created?
m
I think cursor does that (for the bunch of profiles). But i don’t use cursor. Perhaps is cleaner. I can give a look @breezy-kilobyte-39430 could you give me a design for that (how to select effort from the UI)? Just a sketch. Thanks :)
w
Just to be clear--this isn't a priority 🙂
b
@modern-fireman-99755 sure thing, I'll work on it today.