In *Building Effective Agents*, Anthropic splits agentic systems into two kinds:
- Workflows — LLMs and tools are orchestrated through predefined code paths.
- Agents — the LLM dynamically directs its own process and tool usage, staying in control of how it accomplishes the task.
The core advice: find the simplest solution first, and only add complexity when it's clearly needed — because an agentic system essentially "trades latency and cost for better task performance." Multi-agent sits at the highest end of the complexity spectrum and should be introduced only when a simple workflow isn't enough.
When you do split into multiple agents, the LangGraph docs give three orchestration topologies:
- Network — every agent can talk to any other agent (many-to-many); any agent can decide who goes next.
- Supervisor — each agent talks only to one central supervisor agent, which decides who to call next.
- Hierarchical — supervisors above supervisors, forming "teams of teams" for more complex systems.
There are three typical reasons to split a single agent into multiple: too many tools degrade a single agent's selection, context grows too large to track, or multiple specialized domains each need separate handling. Without these drivers, don't rush to split.
📷 Image placeholder: three topology diagrams side by side — left to right "network (many-to-many lines) / supervisor (star, a central PM node) / hierarchical (tree, supervisors above supervisors)"