feat(cua): make reasoning effort declarable, and record what actually ran (#497) - #498
Merged
Conversation
… ran (#497) Effort was reachable in the provider and unreachable from a lab. Nothing in cua-actor-lab ever passed it and the schema had no field for it, so every computer-use run humanish has ever done was the provider default — not by decision but by omission. That is the kind of silent constant that turns a finding about a product into a finding about a default nobody chose: a participant who abandons a flow at medium and finishes it at high did not find a usability problem, the harness did. - `actors[].reasoningEffort` with a per-lane override, the same shape persona and stopWhen already have. Two lanes at different efforts is a control that runs in ONE study, under one set of conditions. - The vocabulary is the documented union (none..max) and it validates, because OpenAI states support is model-dependent. An unsupported level fails on the first turn with the provider's own message rather than being downgraded — a silent downgrade would make the trace claim an effort the run did not use. - `ActorTrace.modelSettings` (humanish.model-settings.v1): the effort the request ACTUALLY carried, including the default when a lab declared none. A trace that cannot say what effort produced it cannot be compared with one that can. Absent when a provider declares no settings; verify tolerates it. - The lab screen and the fan-out plan line both show it, and the plan line is what you read before spending money. "per-lane" when a roster disagrees, rather than picking one lane's answer for all of them. - labs/effort-contrast-demo.yaml: the sibling of persona-contrast-demo. One persona, one mission, two efforts. Both lanes dry-run with identical prompt digests, so effort is the only declared difference. Keeping gpt-5.6-sol as the default is unchanged and deliberate: Artificial Analysis, who ran OpenAI's pre-release eval, reports Luna and Sol always on the Pareto frontier ahead of Terra, and OpenAI reports Sol at 62.6% on OSWorld 2.0.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
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.
feat(cua): make reasoning effort declarable, and record what actually ran (#497)
Effort was reachable in the provider and unreachable from a lab. Nothing in
cua-actor-lab ever passed it and the schema had no field for it, so every
computer-use run humanish has ever done was the provider default — not by
decision but by omission. That is the kind of silent constant that turns a
finding about a product into a finding about a default nobody chose: a
participant who abandons a flow at medium and finishes it at high did not find
a usability problem, the harness did.
actors[].reasoningEffortwith a per-lane override, the same shape personaand stopWhen already have. Two lanes at different efforts is a control that
runs in ONE study, under one set of conditions.
OpenAI states support is model-dependent. An unsupported level fails on the
first turn with the provider's own message rather than being downgraded —
a silent downgrade would make the trace claim an effort the run did not use.
ActorTrace.modelSettings(humanish.model-settings.v1): the effort therequest ACTUALLY carried, including the default when a lab declared none.
A trace that cannot say what effort produced it cannot be compared with one
that can. Absent when a provider declares no settings; verify tolerates it.
what you read before spending money. "per-lane" when a roster disagrees,
rather than picking one lane's answer for all of them.
persona, one mission, two efforts. Both lanes dry-run with identical prompt
digests, so effort is the only declared difference.
Keeping gpt-5.6-sol as the default is unchanged and deliberate: Artificial
Analysis, who ran OpenAI's pre-release eval, reports Luna and Sol always on the
Pareto frontier ahead of Terra, and OpenAI reports Sol at 62.6% on OSWorld 2.0.
Closes #497.