CrewAI

CrewAI is a standalone Python framework with its own primitives for agents, tasks, crews, flows, and tools. Crews give agents autonomy; Flows give the developer control. Most production systems use both.

Technology

What it is

CrewAI is an open source Python framework for building multi-agent workflows, released under the MIT license. It is standalone, with its own primitives for agents, tasks, crews, flows, tools, and orchestration. A commercial product, the CrewAI AMP Suite, adds managed deployment, observability, and governance on top.

Crews, agents, and tasks

An agent has a role, a goal, a backstory, a model, and tools. A crew is a team of agents working through tasks. The default process is sequential. A hierarchical process adds a manager that delegates tasks and validates results. Agents can also use memory, knowledge sources, and checkpointing.

Flows

Flows are event-driven workflows for when you want control rather than autonomy. A method marked @start() begins the flow, @listen() runs a step when another finishes, and @router() branches on a result. State can be a plain dictionary or a typed Pydantic model, @persist saves it (SQLite by default) so a run can resume, and @human_feedbackpauses for a person's approval or review. A flow can call crews as steps, which is how the two fit together.

Model providers

CrewAI uses native SDKs for OpenAI, Anthropic, Google Gemini and Vertex AI, Azure, AWS Bedrock, and Snowflake Cortex, and routes other providers such as Mistral, Groq, and OpenRouter through LiteLLM. Local models work through Ollama or any self-hosted OpenAI-compatible endpoint. The default is OpenAI, so set the model explicitly.

MCP

Agents take MCP servers through an mcps field, over stdio, SSE, or Streamable HTTP, and the crewai-tools package offers an MCPServerAdapterfor manual connection management. The adapter mainly exposes tools rather than prompts or resources. CrewAI's own docs say to trust an MCP server before using it.

Telemetry

CrewAI collects anonymous usage telemetry by default: versions, crew and task metadata, tool usage counts, and similar signals, without prompts or outputs. Set CREWAI_DISABLE_TELEMETRY (or OTEL_SDK_DISABLED) to turn it off. Sharing full execution data requires opting in with share_crew.

Where it fits in an open stack

CrewAI is a framework for building your own harness, like LangGraph, rather than a finished agent. Crews suit open-ended work where role-based agents can explore; Flows suit work that needs explicit steps, typed state, and approval points, which is most work that touches production data.

Gotchas worth knowing

  • Autonomy needs bounds. Hierarchical crews delegate on their own; put approval and limits in a Flow around them.
  • Telemetry is on by default. Decide deliberately, and set the environment variable in every deployment where it should be off.
  • Agent definitions are framework specific. Roles, goals, and tasks do not move to another runtime without rewriting.

How it scores on openness

  • Replaceable. Strong. Many providers, local models, and OpenAI-compatible endpoints.
  • Inspectable. Strong. MIT source, and Flows make control flow explicit code.
  • Portable. Good for tools through MCP; crew and agent definitions are CrewAI specific.
  • Bounded. Depends on the build. Flows and human feedback make bounds easy to express; crews alone do not enforce them.
  • Grounded. Depends on the tools and data you connect.
  • Auditable. Good with persisted Flow state, plus whatever tracing you add.

What it is not

CrewAI is not a model, not a hosted agent, and not tied to LangChain. It is a library you build agent systems with.

Openness scorecard for CrewAI

The notes above describe the tool. The score belongs to your deployment of it, because configuration, permissions, and where records are kept decide most of the result. Score each test 0 (absent), 1 (partial), or 2 (demonstrated) for the way you run CrewAI, out of 12.

TestQuestionWhat a 2 looks likeEvidence to collect
ReplaceableCan one component be swapped without rebuilding the system?A major component has been swapped, and the work was measured in days, not months.Which component did you last swap, and how long did it take?
InspectableCan a builder understand what runs and why?The exact context, tool calls, and results for each step are exported to storage you own.Where do traces live, what do they contain, and how long are they kept?
PortableCan identity, skills, context, and work move?Identity, skills, and work are files in open formats and have been loaded into a second tool.What have you exported and reloaded somewhere else?
BoundedAre authority and approval requirements explicit?Tool scopes, delegated user identity, and approvals are enforced outside the model and tested adversarially.What stops the agent from taking an action its user could not take?
GroundedDo agents share durable data and semantic meaning?Agents query governed metrics over versioned tables and cite the definition and data version.Which semantic definitions and tables do agents use?
AuditableCan people reconstruct decisions and outcomes?Runs, approvals, and data versions are recorded long enough to reconstruct any decision.Could you reconstruct an agent decision from three months ago?

Score your CrewAI setup on the interactive scorecard. It runs in your browser, and you can download the result as JSON or print it.

Where to learn more

Primary sources first. Documentation and specifications move faster than any summary, so treat the links below as the authority and this page as orientation.