The Agent Framework Landscape: A Map of the Main Options
The agent framework space looks crowded, but the popular options fall into a few groups: graph and workflow libraries, lightweight agent SDKs from model providers, typed Python toolkits, role-based multi-agent libraries, data-centric frameworks and TypeScript toolkits. Knowing which group a library belongs to tells you most of what you need to know about how it feels to use.
Graph and workflow frameworks
LangGraph models an agent as a graph. You define a shared state, nodes that read and update it, and edges that decide what runs next. It adds checkpointing, streaming, and pausing for human input. It is built by the LangChain team and works with or without the rest of LangChain. It is a good fit when control flow matters. LlamaIndex Workflows take a similar event-driven approach, where steps receive and emit events.
Provider SDKs
Model providers ship their own agent libraries:
- OpenAI Agents SDK (Python, with a JavaScript version) has a small set of ideas: agents, tools, handoffs, guardrails and sessions. It is small and easy to learn.
- Claude Agent SDK (Python and TypeScript) exposes the agent loop behind Claude Code, with built-in tools for files, search and shell commands, plus permissions, hooks and subagents.
Typed Python toolkits
Pydantic AI is designed around type safety. Dependencies are injected through a typed context, tool arguments and outputs are Pydantic models, and a built-in test model makes unit testing practical. It works with many model providers.
Role-based multi-agent libraries
CrewAI asks you to describe agents by role, goal and backstory, give them tasks, and assemble them into a crew. AutoGen (the AgentChat layer in its 0.4 line) provides agents and team patterns such as round-robin and selector group chats. Both suit conversations between several specialist agents.
Data-centric frameworks
LlamaIndex started as a toolkit for connecting language models to your documents. It now includes agents, and its strength is indexes, query engines and retrieval that agents can use as tools.
TypeScript toolkits
The Vercel AI SDK gives you generateText, streamText, tools and UI hooks across many providers. Mastra is a TypeScript agent framework with agents, tools, workflows and memory, plus a local development playground. LangChain.js and LangGraph.js bring the LangChain family to JavaScript.
A comparison table
| Framework | Language | Main idea | Best for |
|---|---|---|---|
| LangGraph | Python, JS | State graph | Branching, durable, human-in-the-loop flows |
| OpenAI Agents SDK | Python, JS | Agents and handoffs | Small multi-agent apps |
| Claude Agent SDK | Python, TS | Claude Code loop as a library | File and shell agents |
| Pydantic AI | Python | Typed agents | Validated, testable services |
| CrewAI | Python | Roles, tasks, crews | Role-play style pipelines |
| AutoGen | Python, .NET | Conversing agent teams | Group chat patterns |
| LlamaIndex | Python, TS | Data and retrieval | Document question answering |
| Vercel AI SDK | TypeScript | Provider-neutral primitives | Web chat and streaming UIs |
| Mastra | TypeScript | Agents, tools, workflows | TypeScript agent backends |
Overlap is normal
These categories overlap. LangGraph can do multi-agent work, CrewAI can call tools, and LlamaIndex can orchestrate workflows. Treat the table as a starting point, not a rule. What matters more is the model of state each framework uses, which later posts compare in detail.
A quick way to see the difference
The same install step looks different depending on the ecosystem:
pip install langgraph langchain
pip install openai-agents
pip install pydantic-ai
pip install claude-agent-sdk
pip install crewai
pip install llama-index
npm install ai @ai-sdk/anthropic zod
npm install @mastra/core
Package names and extras change over time, so check each project's installation page before copying. Use a separate virtual environment per experiment to keep dependencies from clashing.
What to do next
- Pick the language you already ship in; that removes half the options.
- Pick the model provider you already pay for; most frameworks support several, but each has a favorite.
- Try the smallest example in two frameworks before committing. The first-agent posts later in this course are written for exactly that.
Comments
No comments yet. Have a question or a tip? Be the first to share it.