Retries, Persistence, Observability. v1.0 Means It.
CrewAI spent two years as the demo-friendly agent framework that nobody dared put in production. Cute role-playing, no retries, no observability, state stored in your dreams. v1.0 just shipped and — spoiler — it's actually deployable now.
The Setup
The mental model is unchanged: define agents with roles and goals, give them tools, hand each a task, run the crew. The difference is everything under the hood. Built-in OpenTelemetry, retry policies, durable state via SQLite or Postgres, and a proper async runtime.
pip install "crewai[tools]>=1.0"
export OPENAI_API_KEY=sk-...The Money Pattern
Agents → Tasks → Crew. The role-based prompting actually helps the smaller models stay on track. Add a memory backend and the crew survives restarts, which is the bit that was missing for real workloads.
from crewai import Agent, Task, Crew, Process
from crewai.memory import LongTermMemory
from crewai_tools import SerperDevTool
researcher = Agent(
role="Storm Damage Analyst",
goal="Find Brisbane suburbs with hail activity this week",
backstory="Veteran insurance analyst tracking QLD weather.",
tools=[SerperDevTool()],
max_retry_limit=3,
)
report_task = Task(
description="Identify the top 5 affected suburbs and likely claim volume.",
expected_output="Markdown table with suburb, severity, est. claims.",
agent=researcher,
)
crew = Crew(
agents=[researcher],
tasks=[report_task],
process=Process.sequential,
memory=True,
long_term_memory=LongTermMemory(),
verbose=True,
)
print(crew.kickoff())The Catch
CrewAI is opinionated. Hard. Once you commit to roles, tasks, and process types, escaping the abstraction is painful. Want a custom turn-taking strategy? You're forking. Want to mix in a non-CrewAI agent? Awkward. It's the Rails of agent frameworks — wonderful inside the golden path, miserable outside it.
The Verdict
If your use case fits the role-based crew metaphor (research → analyse → report, or scout → plan → execute), CrewAI v1.0 will save you a month of plumbing. I'm using it for a Pipedrive deal-triage crew that scores incoming leads and routes them — the retries and persistence are doing real work. Just don't pick CrewAI if you're going to fight the framework. This is fine until it isn't.