Picking a framework
📖 3 min readUpdated 2026-04-19
There are a dozen agent frameworks and the list grows every month. Feature matrices are exhausting and usually useless. Instead, answer four questions about your use case. The answers almost pick the framework for you.
The four questions
Question 1: Do you need a framework at all?
For a simple ReAct agent with 3-5 tools, you probably don't. The loop is ~50 lines of Python around a tool-use API. Framework adds abstraction that may be more complexity than value.
Rule of thumb: start without a framework. Adopt one when you hit real pain the framework solves, not before.
Question 2: Are you all-in on Claude?
If yes, Claude Agent SDK is the default. Anthropic-native, strong MCP integration, behavior parity with Claude Code, maintained by the people who made the model. You get battle-tested orchestration without re-inventing it.
Question 3: Do you need multi-model flexibility?
Want to mix Claude, GPT, Gemini in the same system? LangGraph. Most provider-agnostic of the mature frameworks. Biggest ecosystem. Best observability tooling (via LangSmith).
Question 4: Explicitly multi-agent? Prototype or ship?
- Prototype a multi-agent idea fast: CrewAI. Up and running in an afternoon.
- Production multi-agent with strict orchestration: LangGraph's state machines.
- Conversation-shaped problem (debate, negotiation, co-coding): AutoGen.
- Single-agent on Claude: Claude Agent SDK.
Head-to-head at a glance
The recommendation
For 80% of production use cases:
- On Claude: start with Claude Agent SDK.
- Multi-model: start with raw API + small orchestrator, graduate to LangGraph when complexity demands.
- Multi-agent prototype: CrewAI.
- Multi-agent production: LangGraph.
This is where most teams end up after evaluating honestly.
The "don't lock in" rule
Whatever you pick, build your agent's business logic behind your own interface. Frameworks change quickly. Models change. Patterns change. The business logic, your tools, your prompts, your eval set, is what you own. Abstract the framework; treat it as replaceable scaffolding.
Common mistakes when picking
- Picking by popularity. GitHub stars don't correlate with fit.
- Feature-list shopping. You won't use most features. Pick based on your core need.
- Picking for flexibility you don't need. Generic + configurable = more complexity.
- Not prototyping first. The only way to know if a framework fits is to build with it for a day.
- Locking in early. Your abstractions on top of the framework are what matter; those portable.
What to do with this
- Answer the four questions for your use case. The answer probably names your framework.
- Prototype a minimal agent in your top choice in one sitting. If it feels wrong, try another.
- Read the individual framework pages (Claude Agent SDK, LangGraph, CrewAI, AutoGen) for deeper notes.