Summary
We found that the current BenchFlow ACP integration does not correctly map model selection and reasoning-effort configuration across versions of @agentclientprotocol/codex-acp.
The currently pinned codex-acp@0.0.45 is substantially behind the current adapter release and represents reasoning effort as part of the model ID:
<model>[<reasoning-effort>]
For example:
By contrast, newer Codex ACP releases expose separate ACP session config options for model selection and reasoning effort:
model = gpt-5.6-sol
reasoning_effort = high
BenchFlow currently does not fully distinguish these two protocols.
Observed problems
1. Legacy Codex ACP does not receive the requested reasoning effort
For legacy Codex ACP, BenchFlow selects a model ID such as:
but does not translate:
into:
session/set_model("gpt-5.5[high]")
It then attempts to send the effort as a separate config option, which legacy Codex ACP does not expose.
2. Newer Codex ACP cannot accept legacy-formatted model IDs
Newer Codex ACP exposes a model config option, but it expects the public, effort-free model name:
If BenchFlow reuses the legacy selection path and sends:
through that config option, the adapter rejects the request as invalid.
Therefore, upgrading the ACP package alone is insufficient: BenchFlow must choose the model representation according to the connected agent's advertised ACP capabilities.
Requested change
Please audit all ACP-based agents, not only codex-acp, for equivalent version-dependent mismatches between:
- Public BenchFlow CLI arguments (
--model, --reasoning-effort)
- ACP session capabilities advertised by the running adapter
- Model selection transport (
session/set_model versus session/set_config_option)
- Reasoning-effort transport (model ID suffix versus a dedicated config option)
The issue may affect other adapters whose ACP protocol or configuration-option names have changed between releases.
Suggested behavior
Use capability-first dispatch based on the session/new response.
For each agent/version:
- If the adapter exposes a model config option, send the public model name through that option.
- If the adapter exposes an effort config option, send the requested effort through that option.
- If the adapter instead exposes legacy model IDs in the form
model[effort], encode the requested effort in session/set_model.
- Fail with a clear compatibility error when a requested model or effort is not supported, rather than silently selecting a default effort.
This would allow BenchFlow to support both legacy and current ACP adapters without relying on version-specific assumptions in the registry.
Summary
We found that the current BenchFlow ACP integration does not correctly map model selection and reasoning-effort configuration across versions of
@agentclientprotocol/codex-acp.The currently pinned
codex-acp@0.0.45is substantially behind the current adapter release and represents reasoning effort as part of the model ID:For example:
By contrast, newer Codex ACP releases expose separate ACP session config options for model selection and reasoning effort:
BenchFlow currently does not fully distinguish these two protocols.
Observed problems
1. Legacy Codex ACP does not receive the requested reasoning effort
For legacy Codex ACP, BenchFlow selects a model ID such as:
but does not translate:
into:
It then attempts to send the effort as a separate config option, which legacy Codex ACP does not expose.
2. Newer Codex ACP cannot accept legacy-formatted model IDs
Newer Codex ACP exposes a
modelconfig option, but it expects the public, effort-free model name:If BenchFlow reuses the legacy selection path and sends:
through that config option, the adapter rejects the request as invalid.
Therefore, upgrading the ACP package alone is insufficient: BenchFlow must choose the model representation according to the connected agent's advertised ACP capabilities.
Requested change
Please audit all ACP-based agents, not only
codex-acp, for equivalent version-dependent mismatches between:--model,--reasoning-effort)session/set_modelversussession/set_config_option)The issue may affect other adapters whose ACP protocol or configuration-option names have changed between releases.
Suggested behavior
Use capability-first dispatch based on the
session/newresponse.For each agent/version:
model[effort], encode the requested effort insession/set_model.This would allow BenchFlow to support both legacy and current ACP adapters without relying on version-specific assumptions in the registry.