Course Content
CrewAI Multi-Agents
9 sections · 53 lessons
CrewAI vs LangChain Agents: what are the key differences?
What you need to know
What a "LangChain agent" means in 2026
The name has changed meaning over time, so say which version you mean.
- Old style (legacy):
initialize_agentandAgentExecutor. These are now in thelangchain-classicpackage and should not be used for new work. - 2024–2025:
create_react_agentfromlanggraph.prebuilt. - LangChain 1.0 and later:
from langchain.agents import create_agent. It builds a LangGraph graph under the hood and adds middleware for things like human approval and summarising long histories.
Python
1from langchain.agents import create_agent23agent = create_agent(model="openai:gpt-4.1", tools=[search_orders],4 system_prompt="You answer order questions.")5result = agent.invoke({"messages": [{"role": "user", "content": "Where is order 881?"}]})In all versions, the core is one agent: one prompt, one tool set, one loop.
What CrewAI adds
Python
1crew = Crew(agents=[researcher, analyst, writer],2 tasks=[research, analyse, write],3 process=Process.sequential)4result = crew.kickoff(inputs={"topic": "Pune meal-kit market"})The unit is a team: each Agent has a role, goal, backstory, tools and model; each Task has a description, an expected_output and an optional schema; the Crew decides the order and passes results. CrewAI is its own framework and does not depend on LangChain.
| LangChain agent | CrewAI | |
|---|---|---|
| Basic unit | one agent + tools | Agent, Task, Crew, Flow |
| Number of actors | one (multi-agent means you build a graph) | many, with roles |
| How work is defined | messages and a system prompt | tasks with expected outputs |
| Handoffs | you design them | context, delegation, manager |
| Config | Python | Python or YAML with @CrewBase |
| Built in | model and tool integrations, middleware | guardrails, memory, knowledge, planning, training, testing CLI |
A real-life example
A food-delivery company needs two things.
- "Where is my order?" chat. One agent with three tools (order status, rider location, refund policy). A LangChain
create_agentagent fits well: one actor, short conversation, and the company already uses LangChain integrations. - Weekly market-research report on new cloud-kitchen brands in five cities. A researcher, an analyst and a writer with different tools and a fixed report format. A CrewAI crew fits: the work is naturally a team with a handoff, and it was working in a day.
Using a crew for the chat would add personas and handoffs with no benefit. Building the report as one giant agent prompt gave long, unfocused output in their first attempt.
Follow-up questions to expect
- "Can LangChain do multi-agent?" — Yes, by composing agents in LangGraph, for example a supervisor graph. You design the structure yourself.
- "Is CrewAI built on LangChain?" — Not any more. Early versions used it; current CrewAI is independent and calls model providers through its own
LLMclass. - "Which would you pick for a single tool-using assistant?" — A single agent: LangChain's
create_agent, a CrewAIAgent.kickoff(), or even the provider SDK. A crew is for work that splits into roles.