The agentic framework trap — stop picking one before you need it
Every week someone asks me: "Should I use CrewAI, AutoGen, or LangGraph for my agent project?"
Wrong question. You're solving for the wrong constraint.
Here's what actually happens when you start with a framework: You spend three days reading docs, another two days fighting their abstractions, then realize your "multi-agent system" is just one agent with extra steps. Meanwhile, the person who started with a simple script already shipped.
I've built dozens of agents. The ones that actually work in production started simple and grew complex only when they hit real limits. The ones that started complex usually died in complexity.
Start with a single agent in a loop
Your first agent should look like this:
while True:
user_input = get_input()
if user_input == "exit":
break
response = agent.process(user_input)
print(response)
# Optional: save to memory
memory.store(user_input, response)That's it. No orchestrators, no message queues, no agent-to-agent communication protocols. Just a loop that works.
This handles 80% of agent use cases. Customer support, code reviews, content generation, data analysis — all work fine with this pattern.
When you actually need frameworks
Frameworks solve three real problems:
- Parallel execution: When you need multiple agents working simultaneously, not sequentially
- Complex routing: When you need dynamic decision trees about which agent handles what
- State management: When agents need to share complex state beyond simple message passing
Notice what's not on that list: "I want multiple agents." Want doesn't create need.
I see people build "research agent + writing agent + review agent" systems that would work better as one agent with three different prompts. The handoff overhead kills more projects than bad models do.
Warning: If your agent system has more agents than people on your team, you're probably overengineering.
The right progression
Here's how complexity should grow:
- Single agent loop — handles the core task
- Add memory and tools — makes it actually useful
- Add error handling — makes it reliable
- Add specialized prompts — handles edge cases better
- Split into multiple agents — only when you hit clear bottlenecks
Most people jump straight to step 5 and wonder why nothing works.
Framework selection (when you need one)
If you've proven you need a framework, pick based on your constraint:
- CrewAI: Best for role-based workflows with clear handoffs
- AutoGen: Best for conversation-heavy scenarios
- LangGraph: Best for complex state machines
- Custom: Best when you know exactly what you need
But seriously — try the simple loop first. You might be surprised how far it gets you.
The best agent architecture is the simplest one that solves your actual problem. Everything else is just impressive demos.