Anthropic's simple 3-question test can stop you from overengineering your AI agents
Curated by the Inblix editorial team
Every AI agent builder hits the same wall eventually: should this task be a simple tool call or a full-blown subagent? Pick the wrong path and you’re either drowning in a bloated context window or buried under unnecessary coordination overhead from extra LLM calls. Anthropic’s engineering team has laid out a refreshingly practical framework that cuts through the architecture astronaut hype.
The core distinction is surprisingly simple. Tools execute code — they’re fast, deterministic, and cheap. A Python function that hits an API, runs a regex, or queries a database. No reasoning, just execution. Subagents, on the other hand, are separate LLM instances that run their own reasoning loops with independent context windows. They’re not just doing a task; they’re figuring out how to do it, potentially making their own tool calls along the way. The orchestrating agent only sees the final summary, not the messy intermediate steps.
That context window difference is the hidden cost most developers overlook. When an agent calls a tool, the result lands right back in the same context where all the prior reasoning lives. Everything’s together. When it spawns a subagent, that subagent starts fresh — the orchestrator has zero visibility into what happened between “go” and “here’s your answer.” This isolation is either a feature or a bug, depending on what you’re building.
Anthropic suggests running every decision through a practical litmus test. If you can write the behavior as a typed Python function with clear inputs and outputs, and it doesn’t need to reason through multiple steps, it’s a tool. Period. Subagents earn their keep when the task has non-obvious intermediate steps — think “research the competitive landscape” rather than “fetch user record 739.” The real skill isn’t building complex agent topologies. It’s knowing when a simple function would do the job just fine.
💡 Key Takeaways
- Tools execute deterministic code without reasoning, while subagents run their own independent LLM reasoning loops with separate context windows.
- A subagent’s isolation is a double-edged sword: it keeps the orchestrator’s context clean but means you lose all visibility into intermediate steps.
- The core test is brutally pragmatic — if you can write it as a typed Python function that doesn’t need multi-step reasoning, don’t overcomplicate it with a subagent.
Keep reading: See related articles below for more coverage on this topic.
Get smarter about AI
The sharpest AI news, curated daily. Delivered free to your inbox.