Beam has five reasoning levels. On standard math and code, low matches max for about half the tokens. BeamDial picks the level per request, escalates when a prompt looks hard, and lets you measure the gap on your own prompts.




Measured on standard math and Python benchmarks, where Beam already scores about 97%. These benchmarks are old and public, so Beam has likely seen many of them, which can make low look better than it would on new problems. Harder problems may need more thinking: the next run covers frontier math (AIME 2026, HMMT 2026, Apex) and freshly generated long-context tasks. One provider (Baseten), one sample per cell, temperature 0.7.
The "re-ask at high if low thinks long" row uses a threshold picked on this data. Picked on held-out folds instead, it scores
97.2%, a tie with always using high, so it ships turned off. For your own traffic, run beamdial calibrate (next tab).
pip install "git+https://github.com/CoderRahul01/beamdial"
from openai import OpenAI
from beamdial import BeamDial
beam = BeamDial(OpenAI(base_url="https://router.huggingface.co/v1", api_key=HF_TOKEN))
res = beam.create(messages=[{"role": "user", "content": prompt}])
print(res.effort, res.total_tokens, res.content)
# escalate only when your own check fails
res = beam.create(messages=msgs, verify=lambda text: my_tests_pass(text))
# keep follow-up turns valid: Beam needs reasoning_content on every assistant turn
msgs.append(res.to_message())
My benchmark is a starting point. calibrate runs your prompts at each level, tests whether the gap is real,
and prints the cheapest setting that keeps your accuracy. It needs pip install openai.
# my_prompts.jsonl: {"prompt": "...", "answer": "..."} per line
beamdial calibrate my_prompts.jsonl --levels low,high,max --budget-usd 2