Hey!
Looking at https://github.com/braintrustdata/lingua/blob/main/crates/lingua/src/universal/reasoning.rs, I wonder if the current design (The universal representation uses budget_tokens as the single canonical field.) is optimal
OpenAI uses strings to represent 'effort', Anthropic has deprecated budget_tokens for 4.6 and it's unsupported for 4.7 onwards, and other models (eg Grok, and recent open source like Kimi K3) seem to also use strings. It looks like effort is moving away from being quantified as an integer quantity. I also think the ergonomics of an enum to represent effort is better for a universal representation, to be agnostic of model-specific differences.
I'd probs also note that Anthropic seems to distinguish effort and thinking as separate concepts, but I'm not sure this matters much in practice and whether a universal representation should account for it.
Hey!
Looking at https://github.com/braintrustdata/lingua/blob/main/crates/lingua/src/universal/reasoning.rs, I wonder if the current design (
The universal representation usesbudget_tokensas the single canonical field.) is optimalOpenAI uses strings to represent 'effort', Anthropic has deprecated
budget_tokensfor 4.6 and it's unsupported for 4.7 onwards, and other models (eg Grok, and recent open source like Kimi K3) seem to also use strings. It looks like effort is moving away from being quantified as an integer quantity. I also think the ergonomics of an enum to represent effort is better for a universal representation, to be agnostic of model-specific differences.I'd probs also note that Anthropic seems to distinguish effort and thinking as separate concepts, but I'm not sure this matters much in practice and whether a universal representation should account for it.