The section your link pointed to isn't on CrewAI's page any more, so we've brought you to the top.
Framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks.
crewai create <resource>
/plugin marketplace add crewAIInc/skills
/plugin install crewai-skills@crewai-plugins
/reload-plugins
npx skills add crewaiinc/skills
from crewai import on
@on("before_llm_call")
def audit_llm_input(context):
print("LLM about to be called with:", context)
@on("after_llm_call")
def log_llm_output(context):
print("LLM responded with:", context)
from crewai.flow.flow import Flow, router, listen, start
class TriageFlow(Flow):
@router()
@start()
def triage(self):
if self.state.priority == 'high':
return 'urgent'
return 'normal'
@listen('urgent')
def handle_urgent(self): ...
@listen('normal')
def handle_normal(self): ...
crewai run --definition
from crewai.flow.flow import Flow, listen, router, start
class TriageFlow(Flow):
@start()
def ingest(self):
self.state.severity = classify_alert()
@router(ingest)
def route_by_severity(self):
if self.state.severity == "critical":
return "escalate"
return "log_only"
@listen("escalate")
def escalate(self):
...
@listen("log_only")
def log_only(self):
...
from crewai import Agent, LLM
analyst = Agent(
role="Data Analyst",
goal="Summarize query results from Snowflake",
backstory="Expert in SQL and data warehousing.",
llm=LLM(model="snowflake/snowflake-arctic-instruct"),
)
result = my_crew.kickoff(restore_from_state_id="<state_id>")
from crewai import LLM
# No api_key provided — CrewAI falls back to DefaultAzureCredential automatically
llm = LLM(
model="azure/<your-deployment>",
azure_endpoint="https://<your-resource>.openai.azure.com/",
api_version="2024-02-01",
)
result = crew.kickoff(from_checkpoint=<checkpoint_id>)
crewai checkpoint list
crewai checkpoint info <checkpoint-id>
from crewai.events import LLMCallCompletedEvent
from crewai.event_bus import event_bus
@event_bus.on(LLMCallCompletedEvent)
def on_llm_done(event: LLMCallCompletedEvent):
print(event.token_usage)
from crewai import LLM
llm = LLM(
model="ollama/llama3",
base_url="http://localhost:11434"
)
crewai logout
flow = MyFlow()
structure = flow.flow_structure()
print(structure)
from pydantic import BaseModel
from crewai import Agent, Task, Crew
class ThreatReport(BaseModel):
severity: str
affected_systems: list[str]
recommendation: str
analyst = Agent(role="Threat Analyst", goal="Analyze security incidents", backstory="...", verbose=False)
task = Task(
description="Analyze the attached incident log and produce a threat report.",
expected_output="A structured threat report",
agent=analyst,
response_format=ThreatReport,
)
crew = Crew(agents=[analyst], tasks=[task])
result = crew.kickoff()
report: ThreatReport = result.pydantic
crewai bump --no-commit
import asyncio
from crewai import Crew, Agent, Task
agent = Agent(role="Analyst", goal="Analyze data", backstory="Expert analyst")
task = Task(description="Summarize the report", agent=agent, expected_output="Summary")
crew = Crew(agents=[agent], tasks=[task])
async def main():
result = await crew.kickoff_async()
print(result)
asyncio.run(main())
import asyncio
from crewai.flow.flow import Flow, start
class MyFlow(Flow):
@start()
async def run_step(self):
return "done"
async def main():
flow = MyFlow()
result = await flow.kickoff_async()
print(result)
asyncio.run(main())
result = crew.kickoff()
for task_output in result.tasks_output:
print(task_output.messages)
embedder_config = {
"provider": "openai",
"config": {
"model": "text-embedding-3-small",
"batch_size": 50
}
}
crewai config reset
crewai config reset
crewai enterprise configure
crewai config
from crewai import Task
task = Task(
description="Summarize the latest threat intelligence report.",
expected_output="A structured summary of key findings.",
markdown=True
)
from crewai import Agent
analyst = Agent(
role="Threat Analyst",
goal="Identify emerging threats from recent feeds.",
backstory="Expert in cyber threat intelligence.",
reasoning=True,
inject_date=True
)
from crewai.tools import tool
@tool(result_as_answer=True)
def lookup_cve(cve_id: str) -> str:
"""Fetch CVE details from internal database."""
return fetch_cve_record(cve_id)
from crewai import Agent
researcher = Agent(
role="Research Analyst",
goal="Find the latest CVEs for Apache HTTP Server",
backstory="You are an expert in vulnerability research.",
llm="gpt-4o"
)
result = researcher.kickoff()
print(result)
from crewai_tools import QdrantVectorSearchTool
tool = QdrantVectorSearchTool(
collection_name="security-advisories",
url="http://localhost:6333",
api_key="<your-qdrant-api-key>"
)
agent = Agent(role="Threat Analyst", tools=[tool], ...)
from crewai.flow.persistence import persist, FlowPersistence
class MySecurityFlow(Flow):
@persist
def analyze_targets(self):
# state is automatically saved after this method completes
...
@crew
def my_crew(self) -> Crew:
return Crew(
agents=self.agents,
tasks=self.tasks,
before_kickoff=self.before_kickoff,
after_kickoff=self.after_kickoff,
)
from crewai import BaseTool
class MyScanner(BaseTool):
name: str = "Port Scanner"
description: str = "Scans open ports on a given host."
def _run(self, host: str) -> str:
# tool logic here
return f"Scanning {host}"
crewai flow add-crew
crewai flow plot
crewai create flow
crewai tool create <tool>
from crewai import Agent, LLM
llm = LLM(model="gpt-4o")
agent = Agent(
role="Security Analyst",
goal="Identify vulnerabilities in the provided code.",
backstory="Expert in application security.",
llm=llm
)
from crewai import Agent
agent = Agent(
role="Analyst",
goal="Analyze the dataset",
backstory="You are a data expert.",
llm="o1-preview",
use_system_prompt=False,
use_stop_words=False
)
from crewai import Agent
agent = Agent(
role="Researcher",
goal="Find key insights",
backstory="You are a senior researcher.",
max_rpm=10,
max_iter=5
)
crewai install
crewai deploy
result = crew.kickoff()
for task_output in result.tasks_output:
print(task_output.name, task_output.expected_output)
from crewai import Crew, Agent, Task, Process
from langchain_openai import ChatOpenAI
planner_llm = ChatOpenAI(model="gpt-4o-mini")
crew = Crew(
agents=[...],
tasks=[...],
process=Process.sequential,
planning=True,
planning_llm=planner_llm
)
crew.kickoff()
from crewai_tools import DallETool
from crewai import Agent
image_agent = Agent(
role="Image Creator",
goal="Generate visuals from descriptions",
backstory="You create images for marketing campaigns.",
tools=[DallETool()]
)
from crewai_tools import NL2SQLTool
from crewai import Agent
db_agent = Agent(
role="Data Analyst",
goal="Answer business questions from the database",
backstory="You query databases using plain English.",
tools=[NL2SQLTool(db_uri="mysql+pymysql://user:pass@host/dbname")]
)
from crewai import Crew
crew = Crew(
agents=[...],
tasks=[...],
planning=True
)
result = crew.kickoff()
crewai replay <task_id>
crewai reset-memory
crewai train -n 5
results = my_crew.kickoff_for_each(inputs=[{"target": "host1"}, {"target": "host2"}, {"target": "host3"}])
import asyncio
async def main():
result = await my_crew.kickoff_async(inputs={"target": "host1"})
print(result)
asyncio.run(main())
result = my_crew.kickoff(inputs={"target": "host1"})
print(result.usage_metrics)
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
memory=True
)
from crewai_tools import tool
@tool
def my_tool(query: str) -> str:
...
my_tool.cache_function = lambda args, result: 'volatile' not in args['query']
crewai create
from crewai import Agent, Task, Crew
agent = Agent(**{
"role": "Researcher",
"goal": "Find the latest AI news",
"backstory": "You are an expert at finding information."
})
task = Task(**{
"description": "Search for the top 5 AI news stories today",
"agent": agent
})
result = crew.kickoff(inputs={'domain': 'example.com'})
print(crew.usage_metrics)
agent = Agent(
role='Analyst',
llm=my_llm,
function_calling_llm=my_function_llm,
tools=[my_tool]
)
def my_callback(step):
print(step)
agent = Agent(..., step_callback=my_callback)
crew = Crew(agents=[agent], ..., step_callback=my_callback)
from crewai import Agent, Task, Crew, Process
researcher = Agent(
role='Researcher',
goal='Find key facts about quantum computing',
tools=[search_tool]
)
writer = Agent(
role='Writer',
goal='Summarize research into a short briefing',
tools=[]
)
research_task = Task(description='Research recent quantum computing breakthroughs', tools=[search_tool])
write_task = Task(description='Write a 200-word executive summary', tools=[])
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
process=Process.sequential
)
result = crew.kickoff()
print(result)
Summary
CrewAI is an open-source (MIT-licensed) Python framework for building multi-agent automation, letting developers define agents with roles that collaborate autonomously through Crews or follow explicit, event-driven logic through "Flows." It's a library imported into application code rather than a standalone service, aimed at developers building LLMLLMA large language model, a neural network trained on large amounts of text to recognize patterns and generate language. Applications use it for tasks such as answering, summarizing and writing code.-driven automation who need more structure than a single agent loop provides — flows support conditional branching, checkpointed state, and CLI-driven kickoff and resumption. Its own README frames it as a production-ready alternative to piecing together agent orchestration by hand, with pluggable backends for memory, knowledge, and RAGRAGRetrieval-augmented generation: looking up relevant documents and adding them to the prompt before the model answers. It grounds responses in private or current data without retraining. rather than a fixed stack. Development is active: 392 contributors, over 2,000 commits in the past year, and a release 16 days ago.
Framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks.
How do I resume a long agent run that failed halfway through instead of starting over?
flow and crew state is checkpointed as it runs, and a saved state ID can be passed back in to pick execution up from that point rather than replaying every step
Which agent or step in this run actually drove up my LLM bill?
each LLM call emits token usage, sampling parameters, and a finish reason as events, so cost and usage can be attributed per call rather than only summed for the whole run
Are my agents collaborating loosely or following a fixed sequence, and can I see which?
the same job can be built as a Crew of autonomous role-based agents or as a Flow with explicit conditional steps, and the framework runtime records which construct actually ran
Can I swap out how memory, knowledge, or RAG is stored without rewriting my agent code?
those backends are pluggable rather than hard-wired, so a different storage or retrieval implementation can be dropped in behind the same agent and flow code
What actually happened during a multi-turn conversation my flow had with a user?
conversational flow turns are tracked in telemetry, giving a per-turn record of a chat-style interaction instead of only a final answer
Which saved crew execution states do I have to roll back to or inspect?
checkpoint storage keeps a list of saved states with per-checkpoint detail, so a prior run's state can be looked up before deciding whether to resume from it
English, Arabic, Greek, Korean, Portuguese
Interface: English · Release notes: Arabic, Greek, Korean, Portuguese
Portuguese added in 1.14.5a6 (May 15, 2026) · Arabic added in 1.12.1 (Mar 26, 2026) · Arabic added in 1.12.0 (Mar 26, 2026) · Arabic added in 1.12.0a1 (Mar 25, 2026) · Korean added in 0.165.1 (Aug 19, 2025)
Features
73 capabilities
across 7 areas
· 2 backed by code, an API document or a real run
Built from CrewAI's releases, docs, README and our own runs.
“Seen” marks the month we first spotted a release the vendor didn't date.
Group names and tags are our labels.
+Flow Authoring and Orchestration8 capabilitiesCrewAI Flows let users define, configure, and run multi-step AI workflows declaratively, without writing imperative code for every transition. Conditional routing, iteration, composite actions, and human feedback steps are all expressible within a single flow definition.▸
+Conversational FlowsshippedFlows support multi-turn conversational patterns, including a chat API and terminal UI for interactive dialogue.16 releases · 1 other source · first seen Jun 2026▸
Also counts toward: Command-line interface
release
16 total
Supports conversational flow context compaction to manage long-running flow contexts.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
1.15.31 · Oct 2026
· source
· release history
Adds conversation route and public reply tracing in Flows.
1.15.29 · Oct 2026
· source
· release history
Conversational declarations accept crew-style LLM config in addition to standard formats
1.15.18 · Aug 2026
· source
· release history
Declarative chat flows can now declare their own state shape via state_shape
1.15.18 · Aug 2026
· source
· release history
Conversational flows are now stable (promoted out of experimental/beta status).
1.15.18 · Aug 2026
· source
· release history
Crew-style LLM config is now accepted inside a conversational flow declaration, unifying configuration patterns.
1.15.18 · Aug 2026
· source
· release history
example
Enable conversational back-and-forth with a flow using the new chat API.$ from crewai.flow.flow import Flow flow = Flow() response = flow.chat("What is the status of my order #1234?")
1.14.7 · Jun 2026
· source
+Flow composite actionsshippedFlow definitions support crew steps, single-agent calls, script blocks, and looping iteration with optional filtering as first-class action types.15 releases · 1 other source · first seen Nov 2023▸
release
15 total
Adds templated Flow action inputs, enabling dynamic parameterization of Flow actions at runtime.
1.15.2 · Jul 2026
· source
· release history
Adds repository agents to Flow definitions, enabling agent-backed steps directly in Flow authoring.
1.15.2 · Jul 2026
· source
· release history
Adds single-agent actions directly inside Flow definitions.
1.15.0 · Jun 2026
· source
· release history
Adds each composite action to FlowDefinition for iterating over steps within a flow.
1.15.0 · Jun 2026
· source
· release history
Adds single-agent action support in Flow definitions, allowing a lone agent call to be wired directly into a flow without a full crew.
1.15.0 · Jun 2026
· source
· release history
Adds each composite action to FlowDefinition for iterating over collections within a flow step.
1.15.0 · Jun 2026
· source
· release history
example
Stand up a minimal crew where two specialized agents tackle a research-then-write task sequentially.$ from crewai import Agent, Task, Crew, Process researcher = Agent( role='Researcher', goal='Find key facts about quantum computing', tools=[search_tool] ) writer = Agent( role='Writer',…
v0.1.0 · Nov 2023
· source
+Declarative Flow definitionsshippedUsers can author and run complete Flows from JSON or DSL config files instead of writing Python code.12 releases · 2 other sources · first seen Aug 2024▸
release
12 total
A declarative chat flow can now define its own state shape directly in the flow declaration.
1.15.18 · Aug 2026
· source
· release history
Adds unified declarative flow loading so flows can be defined and loaded from config rather than pure code.
1.15.0 · Jun 2026
· source
· release history
Adds unified declarative Flow loading, letting flows be defined and loaded from configuration rather than pure Python code.
1.15.0 · Jun 2026
· source
· release history
Adds inline crew definition loading so crews can be defined directly within a flow config.
1.15.0 · Jun 2026
· source
· release history
Enables declarative references to be resolved across Flow and Crew boundaries, allowing shared state and configuration to be referenced from either context.
1.14.8a5 · Jun 2026
· source
· release history
Adds inline crew definition loading so a crew can be fully specified inside a FlowDefinition without a separate crew config file.
1.15.0 · Jun 2026
· source
· release history
example
Pass dynamic runtime values into a Python flow without hardcoding them in the project script.$ crewai run --inputs '{"topic": "supply chain risk", "depth": 3}'
1.15.34 · Nov 2026
· source
Assign a cheaper or faster LLM specifically to the planning step so your expensive model is reserved for agent execution.$ from crewai import Crew, Agent, Task, Process from langchain_openai import ChatOpenAI planner_llm = ChatOpenAI(model="gpt-4o-mini") crew = Crew( agents=[...], tasks=[...], process=Process.sequential,…
v0.51.0 · Aug 2024
· source
+Flow DSL conditional routingshippedFlows support conditional branching using route-aware decorators and CEL expressions, including using a router as the entry point.9 releases · 2 other sources · first seen Jun 2026▸
release
9 total
Adds now() to the CEL expression environment, enabling time-based conditions in CEL policies.
1.15.19 · Sep 2026
· source
· release history
A router's response format can now be named in the flow declaration itself.
1.15.18 · Aug 2026
· source
· release history
Adds templated Flow action inputs, enabling dynamic parameterization of Flow actions.
1.15.2 · Jul 2026
· source
· release history
Adds text helpers for Flow CEL prompts and flow skill examples.
1.15.2 · Jul 2026
· source
· release history
Adds text helpers for Flow CEL prompts and skill examples, streamlining expression authoring in Flows.
1.15.2 · Jul 2026
· source
· release history
Enables @router() to be used as the start method of a Flow, allowing conditional branching logic at Flow entry points.
1.14.8a3 · Jun 2026
· source
· release history
example
Define a Flow whose entry point is a router for immediate conditional branching at startup.$ from crewai.flow.flow import Flow, router, listen, start class TriageFlow(Flow): @router() @start() def triage(self): if self.state.priority == 'high': return 'urgent' return 'normal'…
1.14.8a3 · Jun 2026
· source
Route a flow's next step based on a condition using the new route-aware DSL decorator syntax.$ from crewai.flow.flow import Flow, listen, router, start class TriageFlow(Flow): @start() def ingest(self): self.state.severity = classify_alert() @router(ingest) def route_by_severity(self): if…
1.14.7 · Jun 2026
· source
+AI coding agent authoring assistanceshippedA built-in authoring skill guides AI coding agents when scaffolding or editing Flow definitions.8 releases · 2 other sources · first seen Jun 2026▸
release
8 total
Adds progressive disclosure for skills, surfacing contextually relevant skill guidance incrementally rather than all at once.
1.15.9 · Jul 2026
· source
· release history
Emits skill usage events at runtime, enabling observability pipelines to trace which skills agents invoke during execution.
1.15.7 · Jul 2026
· source
· release history
Emits skill usage events at runtime, enabling observability pipelines to track which skills agents invoke during execution.
1.15.7a1 · Jul 2026
· source
· release history
Supports authenticated downloads from the skill registry, enabling access to private or restricted skills.
1.15.5 · Jul 2026
· source
· release history
Promotes the Skills Repository out of experimental status, making structured coding-agent instructions (for Claude Code, Cursor, Windsurf, etc.) a stable, supported capability.
1.15.4 · Jul 2026
· source
· release history
Adds a generated Flow Definition authoring skill to guide AI coding agents when scaffolding Flows.
1.15.2 · Jul 2026
· source
· release history
example
Install the stable CrewAI Skills into Cursor, Codex, Windsurf, or any other coding agent via the skills.sh registry.$ npx skills add crewaiinc/skills
1.15.4 · Jul 2026
· source
Install the now-stable CrewAI Skills into Claude Code so it automatically applies CrewAI best practices when you scaffold Flows, configure Crews, or design agents.$ /plugin marketplace add crewAIInc/skills /plugin install crewai-skills@crewai-plugins /reload-plugins
1.15.4 · Jul 2026
· source
+Human-in-the-loop feedback in FlowsshippedHuman feedback steps can be embedded directly in a flow definition without writing custom callback code.9 releases · first seen Jan 2024▸
release
9 total
Implements message setup and feedback handling in AgentExecutor for richer agent interaction loops.
1.15.2 · Jul 2026
· source
· release history
Enables human feedback to be driven directly from a flow definition, removing the need for custom Python callbacks.
1.14.8a · Jun 2026
· source
· release history
Adds request_id to HumanFeedbackRequestedEvent for tracking human-in-the-loop feedback requests.
1.12.1 · Mar 2026
· source
· release history
Adds user input handling in Flows, enabling human-in-the-loop data collection mid-flow execution.
1.10.0 · Feb 2026
· source
· release history
Enhances HITL (Human-in-the-Loop) self-loop functionality in human feedback integration.
1.10.0 · Feb 2026
· source
· release history
Adds Human-in-the-Loop (HITL) feedback support directly within Flows via global flow configuration.
1.8.0 · Jan 2026
· source
· release history
+DMN (Decision Model and Notation) supportshippedCrews can run in DMN mode, letting users model structured decision logic alongside standard agent workflows.3 releases · first seen Jun 2026▸
release
Implements DMN (Decision Model and Notation) mode support in crew creation and execution.
1.15.0 · Jun 2026
· source
· release history
Implements DMN (Decision Model and Notation) mode support in crew creation and execution for structured decision logic.
1.15.0 · Jun 2026
· source
· release history
Implements DMN (Decision Model and Notation) mode support in crew creation and execution.
1.14.8a · Jun 2026
· source
· release history
+Direct flow state accessshippedFlow methods access flow state directly, removing an indirection layer and simplifying state handling.2 releases · first seen Jun 2026▸
release
The StateProxy has been removed from flow state access
1.15.0 · Jun 2026
· source
· release history
Removes StateProxy from flow state access, providing direct state access in flow methods (breaking change).
1.15.0 · Jun 2026
· source
· release history
+Crew and Agent Configuration6 capabilitiesCrews and agents can be fully defined through structured configuration rather than code, covering agent skills, tool schemas, training state, and artifact types. This makes projects portable and easier to manage across environments.▸
+Memory managementshippedMemory can be reset on demand, with reliable handling for JSON-configured crews.17 releases · 2 other sources · first seen Nov 2023▸
release
17 total
Enhances memory reset functionality with improved JSON crew handling.
1.14.8a · Jun 2026
· source
· release history
Implements automatic root_scope for hierarchical memory isolation across agents.
1.12.1 · Mar 2026
· source
· release history
Implements automatic root_scope for hierarchical memory isolation across crews.
1.12.0 · Mar 2026
· source
· release history
Adds support for agent_id-linked memory entries in Mem0 integration.
0.165.1 · Aug 2025
· source
· release history
Includes exchanged agent messages in ExternalMemory metadata for richer memory context.
0.165.1 · Aug 2025
· source
· release history
Adds support for agent_id-linked memory entries in Mem0 integration.
0.165.0 · Aug 2025
· source
· release history
example
Clear stale crew memory before re-running to ensure the crew starts fresh without prior context contaminating results.$ crewai reset-memory
v0.41.0 · Jul 2024
· source
Enable shared crew memory so agents retain context across tasks, improving consistency in multi-step workflows.$ crew = Crew( agents=[researcher, writer], tasks=[research_task, write_task], memory=True )
v0.27.0 · Apr 2024
· source
+Typed tool output schemasshippedTools can declare typed output schemas so that results are structured and validated when returned to an agent.9 releases · 1 other source · first seen Jul 2024▸
release
9 total
Implements progressive disclosure for skills, controlling how skill details are revealed during execution.
1.15.9 · Jul 2026
· source
· release history
Surfaces tool failures as actual failures instead of silently reporting them as success, enabling agents to react correctly to tool errors.
1.15.9 · Jul 2026
· source
· release history
Adds authentication support for skill registry downloads, enabling access to protected or private skills from the CrewAI skill registry.
1.15.5 · Jul 2026
· source
· release history
Adds typed output schemas for CrewAI tools, enabling structured, validated outputs from tool calls.
1.14.8a3 · Jun 2026
· source
· release history
Supports structured outputs and response_format parameter across LLM providers for typed agent responses.
1.9.1 · Jan 2026
· source
· release history
Adds structured outputs and response_format support across providers for typed, schema-constrained LLM responses.
1.9.0 · Jan 2026
· source
· release history
example
Enforce a typed JSON schema on LLM output so downstream code can safely parse structured results.$ from pydantic import BaseModel from crewai import Agent, Task, Crew class ThreatReport(BaseModel): severity: str affected_systems: list[str] recommendation: str analyst = Agent(role="Threat Analyst",…
1.9.0 · Jan 2026
· source
+JSON-first crew projectsshippedCrews can be created, configured, and packaged entirely through JSON definitions without writing Python.6 releases · 1 other source · first seen Jun 2024▸
release
Adds platform tools to the JSON crew wizard.
1.15.22 · Sep 2026
· source
· release history
Pulls latest LLM models dynamically in the crew wizard, keeping model selection current without manual updates.
1.15.2 · Jul 2026
· source
· release history
Introduces JSON-first crew projects, enabling crew creation, configuration, and execution entirely through JSON rather than Python.
1.14.8a · Jun 2026
· source
· release history
Supports ZIP deployment fallback and JSON crew project environment runs, enabling portable crew packaging and deployment.
1.14.8a · Jun 2026
· source
· release history
Adds default value support for crew.name.
0.157.0 · Aug 2025
· source
· release history
Adds support for multiple crews in the new YAML format.
v0.32.0 · Jun 2024
· source
· release history
example
Scaffold a new JSON-first crew project$ crewai create crew <project_name>
+Inline skill definitionsshippedSkills can be declared inline within agent or crew configurations without needing separate skill files.6 releases · first seen Nov 2023▸
release
Supports inline skill definitions, eliminating the need for separate skill files in crew/flow configurations.
1.15.2 · Jul 2026
· source
· release history
Supports inline skill definitions, allowing skills to be defined directly without separate files.
1.15.2 · Jul 2026
· source
· release history
Supports inline skill definitions, enabling skills to be declared directly within agent or crew configurations without separate files.
1.15.2a1 · Jun 2026
· source
· release history
Introduces agent skills as a new first-class capability for agents.
1.12.0 · Mar 2026
· source
· release history
Introduces the Task class for dynamically creating and assigning tasks with per-task tool specifications.
v0.1.0 · Nov 2023
· source
· release history
+CrewDefinition artifact typesshippedCrewDefinition supports tool and app artifact type declarations, broadening what kinds of crew artifacts can be specified.3 releases · first seen Jun 2026▸
release
Types tool and app fields in CrewDefinition for stronger schema enforcement.
1.15.2 · Jul 2026
· source
· release history
Types tool and app fields in CrewDefinition, providing stronger schema validation for crew configs.
1.15.2 · Jul 2026
· source
· release history
Adds tool and app type options to CrewDefinition, expanding the kinds of crew artifacts that can be declared.
1.15.2a1 · Jun 2026
· source
· release history
+Agent training state persistenceshippedAgent training state can be saved and reloaded from a file, preserving learned behaviour across sessions.2 releases · first seen Jun 2026▸
release
Adds crew trained agents file support for persisting and reloading agent training state.
1.14.7 · Jun 2026
· source
· release history
Adds support for crew trained agents file, enabling persisted agent training state.
1.14.7 · Jun 2026
· source
· release history
+Developer Tooling and CLI5 capabilitiesThe CrewAI CLI covers the full development lifecycle from scaffolding new projects to deploying and running them. A terminal UI surfaces execution progress, and cold-start optimisations keep large deployments responsive.▸
+CLI project scaffoldingshippedThe CLI scaffolds new CrewAI projects with structured definitions and initialises a Git repository automatically.14 releases · 6 other sources · first seen Mar 2024▸
release
14 total
Unifies project scaffolding under crewai create <resource>, replacing separate scaffold commands.
1.15.12 · Aug 2026
· source
· release history
Unifies project scaffolding under the crewai create <resource> subcommand, replacing prior separate scaffold commands.
1.15.12 · Aug 2026
· source
· release history
Unifies scaffolding commands under the crewai create <resource> subcommand.
1.15.12 · Aug 2026
· source
· release history
Requires explicit CrewAI project definitions, enforcing structured crew configuration at project creation.
1.15.1 · Jun 2026
· source
· release history
Automatically initializes a Git repository when generating a new CrewAI project.
1.15.1 · Jun 2026
· source
· release history
Automatically initializes a Git repository when generating a new CrewAI project via the CLI.
1.15.1 · Jun 2026
· source
· release history
example
Scaffold a new CrewAI resource using the unified create command instead of legacy subcommands.$ crewai create <resource>
1.15.12 · Aug 2026
· source
Scaffold a new CrewAI resource (crew, flow, etc.) using the unified create command.$ crewai create <resource>
1.15.12 · Aug 2026
· source
Set up a new CrewAI project and its dependencies in one step.$ crewai install
v0.55.2 · Sep 2024
· source
Bootstrap a new CrewAI project scaffold from the command line.$ crewai create
v0.22.0 · Mar 2024
· source
+CLI deployment integrationshippedAfter a successful deploy command, the deployment page opens automatically in the browser.16 releases · 2 other sources · first seen Sep 2024▸
Also counts toward: Command-line interface
release
16 total
Build and deploy a project as a zip archive with deploy create --zip, which also prints the commit the zip was built from.
1.15.34 · Nov 2026
· source
· release history
Build and deploy a zip artifact with deploy create --zip, which also prints the commit hash the zip was built from.
1.15.33 · Oct 2026
· source
· release history
Adds GET /inputs endpoint to discover the parameters a deployed crew expects before execution.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
api-docs-a3e68250264d · Oct 2026
· source
· release history
New endpoint documented: GET /inputs
api-docs-a3e68250264d · Oct 2026
· source
· release history
New endpoint documented: POST /kickoff
api-docs-a3e68250264d · Oct 2026
· source
· release history
Records what the run app's Deploy encountered before an attempt, improving observability for deployment pre-flight checks.
1.15.27 · Oct 2026
· source
· release history
example
Reset stored auth/API tokens without being prompted for email — useful when rotating credentials in CI.$ crewai config reset
0.186.0 · Sep 2025
· source
Clear cached login tokens from the local crewAI config when rotating credentials or switching accounts.$ crewai config reset
0.175.0 · Aug 2025
· source
+Flow CLI executionverifiedFlows and crews can be started directly from the command line, including flows defined in config files.11 releases · 7 other sources · first seen Aug 2024▸
Also counts toward: Command-line interface
release
11 total
Pass runtime inputs to a Python flow with crewai run --inputs.
1.15.34 · Nov 2026
· source
· release history
Pass runtime inputs to a Python flow using crewai run --inputs.
1.15.33 · Oct 2026
· source
· release history
Consolidates crewai run and crewai flow kickoff into a single command entry point (breaking change for scripts that invoked them separately).
1.15.0 · Jun 2026
· source
· release history
Adds declarative Flow CLI support so flows defined in config files can be kicked off directly from the command line.
1.15.0 · Jun 2026
· source
· release history
Adds declarative Flow CLI support, enabling flow kickoff and management via CLI commands.
1.15.0 · Jun 2026
· source
· release history
Adds declarative Flow CLI support, letting practitioners launch declaratively defined Flows from the command line.
1.14.8a3 · Jun 2026
· source
· release history
command line
--n-iterations — Number of iterations to Test the crew
1.15.15 · Aug 2026
--task-id — Replay the crew from this task ID, including all subsequent tasks.
1.15.15 · Aug 2026
--skip-provider — Skip provider validation
1.15.15 · Aug 2026
example
Supply runtime parameters to a Python flow without hardcoding them — useful in CI pipelines.$ crewai run --inputs '{"target": "example.com", "depth": 3}'
1.15.33 · Oct 2026
· source
Run a flow defined entirely in a JSON/definition file — no Python code required — to execute a crew-based automation.$ crewai run --definition
1.14.8a · Jun 2026
· source
Inspect or set CrewAI CLI configuration without manually editing config files.$ crewai config
0.157.0 · Aug 2025
· source
Run the crew workflow$ crewai run
+CLI terminal UI (TUI)shippedA terminal UI shows crew and flow execution progress, conversational output, and interactive controls without leaving the terminal.10 releases · first seen Sep 2024▸
Also counts toward: Command-line interface
release
10 total
Adds search highlighting for the action picker in the CLI.
1.15.29 · Oct 2026
· source
· release history
Supports running declarative Flows on the TUI with headless terminal fallback.
1.15.3 · Jul 2026
· source
· release history
Runs declarative flows on the TUI with a headless terminal fallback.
1.15.3 · Jul 2026
· source
· release history
Supports running declarative flows on the TUI with a headless terminal fallback.
1.15.3a1 · Jul 2026
· source
· release history
Adds telemetry tracking for TUI button interactions, enabling usage analytics on crew terminal UI actions.
1.15.1a1 · Jun 2026
· source
· release history
Supports conversational flows in the CLI TUI for interactive, turn-based flow sessions.
1.15.0 · Jun 2026
· source
· release history
+Cold-start performance optimisationshippedLazy-loading of a heavy dependency reduces import time and cold-start latency in large deployments.2 releases · first seen Jun 2026▸
release
Improves CrewAI import speed via lazy-loading of docling imports, unlocking faster cold starts.
1.14.7 · Jun 2026
· source
· release history
Improves import speed via lazy-loading of docling — meaningfully reducing cold-start latency in large deployments.
1.14.7 · Jun 2026
· source
· release history
+Observability and Execution Control4 capabilitiesCrewAI exposes hooks, streaming events, and LLM-level telemetry so teams can monitor, audit, and gate what agents do at runtime. Interception points allow logging or blocking at execution boundaries without modifying core logic.▸
+Flow observabilityshippedFlow execution surfaces nested crew progress, real LLM finish reasons, sampling parameters, and response IDs for detailed monitoring.18 releases · 2 other sources · first seen Feb 2024▸
release
18 total
Records how a crew run ended for every user, surfacing run-termination metadata per execution.
1.15.19 · Sep 2026
· source
· release history
Adds execution context management with UUID support for tracking individual execution runs.
1.15.16 · Aug 2026
· source
· release history
Records when a trace batch is shared with AMP, enabling auditable telemetry handoff visibility.
1.15.16 · Aug 2026
· source
· release history
Records the type of exception that ended a flow, giving observability pipelines structured failure context.
1.15.16 · Aug 2026
· source
· release history
Introduces execution context management with UUID support for tracing individual flow runs.
1.15.16 · Aug 2026
· source
· release history
Reports flow outcome, duration, and human-in-the-loop signals as part of flow telemetry.
1.15.15 · Aug 2026
· source
· release history
example
Intercept execution boundaries in a crew or flow to log, audit, or gate agent activity at specific lifecycle points.$ from crewai import on @on("before_llm_call") def audit_llm_input(context): print("LLM about to be called with:", context) @on("after_llm_call") def log_llm_output(context): print("LLM responded…
1.15.3 · Jul 2026
· source
Inspect token consumption after a crew run to track LLM costs per execution.$ result = my_crew.kickoff(inputs={"target": "host1"}) print(result.usage_metrics)
v0.32.0 · Jun 2024
· source
+Execution hook interceptionshippedDecorated callbacks fire at execution boundaries, enabling logging, auditing, or gating of agent activity without modifying core code.10 releases · 2 other sources · first seen Feb 2024▸
release
10 total
Tracks interception-hook dispatches in telemetry for improved observability of agent workflows.
1.15.11 · Aug 2026
· source
· release history
Tracks interception-hook dispatches in telemetry for improved observability.
1.15.11 · Aug 2026
· source
· release history
Adds step interception points and a generic hook dispatcher, enabling fine-grained execution-boundary callbacks via @on decorators.
1.15.3 · Jul 2026
· source
· release history
Adds step interception points and a generic hook dispatcher, enabling @on-decorated callbacks at execution boundaries for fine-grained observability and control.
1.15.3a1 · Jul 2026
· source
· release history
Adds step interception points and a generic @on hook dispatcher for wiring execution-boundary hooks at precise points in agent and crew execution.
1.15.3 · Jul 2026
· source
· release history
Adds before and after tool call hooks in CrewAgentExecutor for intercepting and acting on tool invocations.
1.9.1 · Jan 2026
· source
· release history
example
Intercept a specific execution boundary in a crew run to log or mutate state at that step.$ from crewai import on @on('after_llm_call') def inspect_llm_output(context): print(context)
1.15.3 · Jul 2026
· source
Run setup or teardown logic around a crew execution using the new lifecycle hooks.$ @crew def my_crew(self) -> Crew: return Crew( agents=self.agents, tasks=self.tasks, before_kickoff=self.before_kickoff, after_kickoff=self.after_kickoff, )
v0.83.0 · Nov 2024
· source
+Flow streamingshippedA structured stream frame protocol defines how Flow execution events are formatted and delivered to consumers in real time.5 releases · first seen Nov 2025▸
release
Defines a stream frame protocol for Flows, enabling structured streaming output from Flow executions.
1.15.2 · Jul 2026
· source
· release history
Defines a stream frame protocol for flows, enabling structured streaming communication.
1.15.2 · Jul 2026
· source
· release history
Introduces a stream frame protocol for Flows, defining a structured message format for streaming Flow execution events.
1.15.2a1 · Jun 2026
· source
· release history
Adds aclose()/close() methods and async context manager support to streaming outputs for proper resource cleanup.
1.14.1 · Apr 2026
· source
· release history
Adds streaming result support to flows and crews, enabling real-time output consumption.
1.6.0 · Nov 2025
· source
· release history
+WaitTool for long-running background jobsshippedsuggestedA WaitTool lets agents pause execution until a long-running background job finishes before continuing.4 releases · first seen Jul 2026▸
Suggested capability: Model tool calling. This is our guess, not confirmed.
release
Queues relevant background replies for agent processing.
1.15.24 · Oct 2026
· source
· release history
Adds WaitTool to pause agent execution while waiting for long-running jobs to complete.
1.15.8 · Jul 2026
· source
· release history
Adds WaitTool to the tool library, enabling agents to pause execution while waiting on long-running background jobs.
1.15.8 · Jul 2026
· source
· release history
Adds WaitTool to pause agent execution while waiting on long-running background jobs.
1.15.8 · Jul 2026
· source
· release history
+Integrations and Data Access3 capabilitiesCrewAI provides built-in tools and provider integrations that give agents access to external data sources and LLM backends. These cover database querying, web content retrieval, and enterprise LLM platforms.▸
+URL reading toolshippedA URL reading tool lets agents fetch and read content from arbitrary web URLs as part of a workflow.5 releases · 1 other source · first seen Jul 2024▸
release
Adds URLReadTool for reading arbitrary URLs.
1.15.12 · Aug 2026
· source
· release history
Adds URLReadTool for fetching and reading content from arbitrary URLs inside agent workflows.
1.15.12 · Aug 2026
· source
· release history
Adds URLReadTool for reading arbitrary URLs inside agent workflows.
1.15.12 · Aug 2026
· source
· release history
New SerperScrapeWebsiteTool extracts clean content from URLs using Serper.
0.150.0 · Jul 2025
· source
· release history
Adds Firecrawl Tools for web scraping and crawling within CrewAI agents.
v0.36.0 · Jul 2024
· source
· release history
example
Give an agent the ability to retrieve live web content by attaching URLReadTool to its tool list.$ from crewai_tools import URLReadTool url_tool = URLReadTool() agent = Agent( role='Web Researcher', goal='Gather information from public URLs', backstory='An expert at reading web content',…
1.15.12 · Aug 2026
· source
+IBM Db2 search toolshippedA built-in IBM Db2 tool lets agents query Db2 databases directly within a workflow.3 releases · first seen Aug 2026▸
release
Adds IBM Db2 search tool, extending the library's built-in data-source integrations.
1.15.11 · Aug 2026
· source
· release history
Adds IBM Db2 search tool, enabling agents to query Db2 databases as a built-in tool.
1.15.11 · Aug 2026
· source
· release history
Adds a new IBM Db2 search tool for querying Db2 databases from within a crew.
1.15.11 · Aug 2026
· source
· release history
+Snowflake Cortex LLM providershippedSnowflake Cortex is available as a native LLM provider for agents and crews.2 releases · 1 other source · first seen Jun 2026▸
release
Adds native Snowflake Cortex LLM provider integration.
1.14.7 · Jun 2026
· source
· release history
Adds native Snowflake Cortex as a supported LLM provider.
1.14.7 · Jun 2026
· source
· release history
example
Use Snowflake Cortex as the LLM provider for an agent that queries internal data warehouses.$ from crewai import Agent, LLM analyst = Agent( role="Data Analyst", goal="Summarize query results from Snowflake", backstory="Expert in SQL and data warehousing.",…
1.14.7 · Jun 2026
· source
+Platform Architecture and Extensibility3 capabilitiesCore backends for memory, knowledge, storage, and locking are swappable, letting operators plug in custom engines without subclassing internals. Multi-org support and enterprise project linking connect open-source usage to managed platform accounts.▸
+Pluggable backendsshippedDefault backends for memory, knowledge, RAG, flow storage, and locking can be replaced with custom implementations without changing core code.14 releases · first seen Sep 2024▸
release
14 total
Adds Clipper integrations client for connecting to external systems
1.15.19 · Sep 2026
· source
· release history
Adds a Clipper integrations client for connecting to Clipper-based integrations.
1.15.19 · Sep 2026
· source
· release history
Improves custom OpenAI URL handling for self-hosted or proxy LLM endpoints.
1.15.3a1 · Jul 2026
· source
· release history
Makes the locking backend overridable for concurrent-run isolation and custom synchronization strategies.
1.14.7 · Jun 2026
· source
· release history
Introduces pluggable default backends for memory, knowledge, RAG, and flow — allowing custom storage and retrieval engines without subclassing core internals.
1.14.7 · Jun 2026
· source
· release history
Introduces pluggable default backends for memory, knowledge, RAG, and flow — making the locking backend overridable.
1.14.7 · Jun 2026
· source
· release history
+Multi-org platform supportshippedThe platform API client accepts an organisation ID, enabling a single deployment to serve multiple organisations.4 releases · first seen Jun 2025▸
release
Adds organization_id parameter to the PlusAPI client for multi-org deployments.
1.15.3 · Jul 2026
· source
· release history
Adds an organization ID parameter to the PlusAPI client for multi-org deployments.
1.15.3a1 · Jul 2026
· source
· release history
Adds an organization_id parameter to the PlusAPI client for multi-org API targeting.
1.15.3 · Jul 2026
· source
· release history
Adds support for multi-org actions in the CLI.
0.130.0 · Jun 2025
· source
· release history
+Enterprise project linkingshippedA project ID parameter links an open-source CrewAI installation to an enterprise platform account.3 releases · first seen Aug 2026▸
release
Project ID is backfilled from every user-invoked project command.
1.15.18 · Aug 2026
· source
· release history
Adds project_id support to link open-source CrewAI usage to an enterprise account.
1.15.11 · Aug 2026
· source
· release history
Adds project_id to link open-source CrewAI usage to an enterprise account.
1.15.11 · Aug 2026
· source
· release history
+Other44 capabilities▸
+Tool construction and integrationshippedProgrammatic tool construction from attributes, support for multiple MCP tools per agent, and ad-hoc tool calling via the internal LLM class.32 releases · 1 other source · first seen Feb 2024▸
release
32 total
Adds app metadata to platform action tools, surfacing richer context for actions executed via the CrewAI platform.
1.15.12 · Aug 2026
· source
· release history
Surfaces tool failures as actual failures instead of silently reporting them as success, giving agents accurate tool execution feedback.
1.15.9 · Jul 2026
· source
· release history
Surfaces tool failures as actual failures instead of silently reporting them as success, improving error visibility.
1.15.9 · Jul 2026
· source
· release history
Adds highlight results support to ExaSearchTool (formerly EXASearchTool).
1.14.5 · May 2026
· source
· release history
Improves Daytona sandbox tool integration.
1.14.5 · May 2026
· source
· release history
Adds You.com MCP tools covering search, research, and content extraction.
1.14.4 · Apr 2026
· source
· release history
example
Scaffold a new custom tool ready for implementation and publishing.$ crewai tool create <tool>
0.70.1 · Oct 2024
· source
+Observability event systemshippedA new event emitter system provides tracking of LLM calls and agent events, enriched with visualization and improved logging output.31 releases · first seen Feb 2024▸
release
31 total
Records the type of exception that ended a flow, enabling richer post-mortem observability in AMP traces.
1.15.16 · Aug 2026
· source
· release history
Records the type of exception that ended a flow, enabling richer post-mortem observability.
1.15.16 · Aug 2026
· source
· release history
Flow execution now reports outcome, duration, and human-in-the-loop signals as part of flow telemetry.
1.15.15 · Aug 2026
· source
· release history
Surfaces CrewAI AMP in AGENTS.md and adds coding-agent detection in telemetry.
1.15.11 · Aug 2026
· source
· release history
Collects skill usage events, enabling observability into which agent skills are invoked during crew runs.
1.15.10 · Jul 2026
· source
· release history
Emits FlowFailedEvent when a flow execution fails, enabling event-driven error handling in Flows.
1.15.9 · Jul 2026
· source
· release history
+LLM provider expansionshippedSupport for additional LLM providers including Amazon SageMaker, allowing agents to run against hosted endpoints.23 releases · 2 other sources · first seen Jun 2024▸
release
23 total
Adds support for LiteLLM-compatible kwargs on LLM calls.
1.15.29 · Oct 2026
· source
· release history
Switches context-window lookups to use the LiteLLM catalog instead of a hardcoded table.
1.15.28 · Oct 2026
· source
· release history
Adds deepinfra as an OpenAI-compatible provider, enabling DeepInfra-hosted models without a custom wrapper.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
1.15.27 · Oct 2026
· source
· release history
Pulls latest LLM models dynamically in the crew wizard.
1.15.2 · Jul 2026
· source
· release history
Adds Responses API support for the Azure OpenAI provider.
1.14.4 · Apr 2026
· source
· release history
Forwards credential_scopes to the Azure AI Inference client for scoped authentication.
1.14.4 · Apr 2026
· source
· release history
example
Use keyless Azure auth in environments where injecting an API key is not possible (e.g., managed identity on Azure).$ from crewai import LLM # No api_key provided — CrewAI falls back to DefaultAzureCredential automatically llm = LLM( model="azure/<your-deployment>",…
1.14.3 · Apr 2026
· source
Connect CrewAI to a self-hosted Ollama instance as a native OpenAI-compatible provider, bypassing LiteLLM.$ from crewai import LLM llm = LLM( model="ollama/llama3", base_url="http://localhost:11434" )
1.12.1 · Mar 2026
· source
+Knowledge retrieval enhancementsshippedEnhancements to knowledge setup including direct initialization, custom embedders, and multi-tab Excel processing for richer knowledge ingestion.21 releases · 2 other sources · first seen Jan 2025▸
release
21 total
Adds a read-only notebook text loader and a standard-library JSONL loader.
1.15.29 · Oct 2026
· source
· release history
Adds XPU to the OpenCLIP provider device options, broadening hardware acceleration support.
1.15.27 · Oct 2026
· source
· release history
Adds OpenRouter as a supported embedding provider.
1.15.22 · Sep 2026
· source
· release history
Adds OpenRouter as a supported embedding provider
1.15.22 · Sep 2026
· source
· release history
Enhances QdrantVectorSearchTool with new capabilities for vector search workflows.
1.4.0 · Nov 2025
· source
· release history
Enhances QdrantVectorSearchTool with expanded capabilities for vector-based semantic search.
1.3.0 · Nov 2025
· source
· release history
example
Set batch_size on an embedder to avoid hitting token limits when indexing large document sets.$ embedder_config = { "provider": "openai", "config": { "model": "text-embedding-3-small", "batch_size": 50 } }
0.201.0 · Sep 2025
· source
Search a Qdrant vector collection from within a CrewAI agent tool to ground responses in your own embeddings.$ from crewai_tools import QdrantVectorSearchTool tool = QdrantVectorSearchTool( collection_name="security-advisories", url="http://localhost:6333", api_key="<your-qdrant-api-key>" ) agent =…
0.102.0 · Feb 2025
· source
+Durable flow state persistenceshippedFlow execution state can be persisted across runs, enabling long-running workflows to resume after interruption using durable storage interfaces.15 releases · 4 other sources · first seen Jan 2025▸
release
15 total
Adds restore_from_state_id kickoff parameter to resume a Crew run from a previously saved state.
1.14.5 · May 2026
· source
· release history
Supports custom persistence keys in the @persist decorator for fine-grained checkpoint control.
1.14.4 · Apr 2026
· source
· release history
Adds lifecycle events for checkpoint operations, enabling observability hooks around checkpoint create, resume, and fork actions.
1.14.3 · Apr 2026
· source
· release history
Adds checkpoint forking with lineage tracking, enabling branched execution from any saved checkpoint.
1.14.2 · Apr 2026
· source
· release history
Adds checkpoint resume, diff, and prune commands for managing crew execution checkpoints.
1.14.2 · Apr 2026
· source
· release history
Adds from_checkpoint parameter to Agent.kickoff and related methods to restart runs from a saved state.
1.14.2 · Apr 2026
· source
· release history
example
Resume a long-running Crew from a checkpoint state ID instead of restarting from scratch.$ result = my_crew.kickoff(restore_from_state_id="<state_id>")
1.14.5 · May 2026
· source
Resume a failed crew run from a checkpoint instead of restarting from scratch.$ result = crew.kickoff(from_checkpoint=<checkpoint_id>)
1.14.2 · Apr 2026
· source
List all saved checkpoints for a crew run to find a resume point after an interrupted execution.$ crewai checkpoint list
1.14.0 · Apr 2026
· source
Persist flow state across runs so a long-running security workflow can resume where it left off after interruption.$ from crewai.flow.persistence import persist, FlowPersistence class MySecurityFlow(Flow): @persist def analyze_targets(self): # state is automatically saved after this method completes ...
0.98.0 · Jan 2025
· source
+Task tracing and run evaluationverifiedsuggestedTask tracing spans capture declared output format and results, and the `crewai eval` command evaluates the last traced run through AMP by recording it for review.12 releases · 2 other sources · first seen Feb 2024▸
Suggested capability: LLM application tracing. This is our guess, not confirmed.
Also counts toward: Command-line interface
release
12 total
Adds crewai eval command to report where a stopped model broke during a crew run.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
1.15.28 · Oct 2026
· source
· release history
Adds --models flag and llm_overlay option to crewai eval to swap LLM models and roles during evaluation runs.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
1.15.24 · Oct 2026
· source
· release history
Enables crewai eval to print a markdown brief when run by an agent.
1.15.24 · Oct 2026
· source
· release history
Enhances task tracing spans to include declared output format and results.
1.15.23 · Sep 2026
· source
· release history
Implements crewai eval evaluation of the last traced run through AMP, recording the run instead of printing it.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
1.15.23 · Sep 2026
· source
· release history
Reduces framework overhead via a lazy event bus and skips tracing entirely when disabled.
1.13.0 · Apr 2026
· source
· release history
command line
evaluation_id
1.15.29 · Oct 2026
example
Run an evaluation while swapping in a different model to compare output quality without changing your crew definition.$ crewai eval --models gpt-4o,claude-3-5-sonnet-20241022
1.15.24 · Oct 2026
· source
+Asynchronous crew executionshippedCrews can be kicked off asynchronously to allow non-blocking execution while other work continues.9 releases · 4 other sources · first seen Jun 2024▸
release
9 total
New endpoint documented: GET /status/{kickoff_id}
api-docs-a3e68250264d · Oct 2026
· source
· release history
Adds POST /kickoff endpoint to start a crew execution programmatically, returning a kickoff_id for tracking.
api-docs-a3e68250264d · Oct 2026
· source
· release history
Adds GET /status/{kickoff_id} endpoint to poll execution progress and retrieve final results.
api-docs-a3e68250264d · Oct 2026
· source
· release history
Adds async flow kickoff, enabling non-blocking orchestration of multi-agent pipelines.
1.7.0 · Dec 2025
· source
· release history
Adds async task support for individual task execution within crews.
1.7.0 · Dec 2025
· source
· release history
Adds async crew support so entire crews can be run concurrently without blocking the event loop.
1.7.0 · Dec 2025
· source
· release history
example
Kick off a crew execution and capture the kickoff_id so you can poll for results.$ curl -X POST https://your-crew-name.crewai.com/kickoff \ -H "Authorization: Bearer YOUR_CREW_TOKEN" \ -H "Content-Type: application/json" \ -d '{"inputs": {"topic": "quarterly risk report"}}'
api-docs-a3e68250264d · Oct 2026
· source
Kick off a Flow asynchronously so multiple flows can run concurrently in the same process.$ import asyncio from crewai.flow.flow import Flow, start class MyFlow(Flow): @start() async def run_step(self): return "done" async def main(): flow = MyFlow() result = await flow.kickoff_async()…
1.7.0 · Dec 2025
· source
Run a full crew asynchronously to avoid blocking the event loop in an async application or service.$ import asyncio from crewai import Crew, Agent, Task agent = Agent(role="Analyst", goal="Analyze data", backstory="Expert analyst") task = Task(description="Summarize the report", agent=agent,…
1.7.0 · Dec 2025
· source
Kick off a long-running crew without blocking — lets you launch a crew and continue other work while it runs.$ import asyncio async def main(): result = await my_crew.kickoff_async(inputs={"target": "host1"}) print(result) asyncio.run(main())
v0.32.0 · Jun 2024
· source
+Runtime run telemetryshippedRecords metadata about crew and flow runs, including presence of inputs, termination reasons, and trace batch handoffs.12 releases · 1 other source · first seen Sep 2024▸
release
12 total
Carries task_prompt and output fields in agent execution payloads.
1.15.22 · Sep 2026
· source
· release history
Collects human feedback and pause events in tracing for the CrewAI Platform.
1.15.22 · Sep 2026
· source
· release history
Adds telemetry to track checkpoint runtime and CLI usage.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
1.15.21 · Sep 2026
· source
· release history
telemetry captures checkpoint runtime metrics and CLI command usage data.
1.15.21 · Sep 2026
· source
· release history
Reports machine size as a coarse band rather than a raw core count in telemetry.
1.15.19 · Sep 2026
· source
· release history
Run telemetry now records whether a run had inputs, without recording the input values themselves.
1.15.18 · Aug 2026
· source
· release history
example
Diagnose exactly which step caused a model to stop mid-run, so you can pinpoint prompt or context issues without re-running the full crew.$ crewai eval
1.15.28 · Oct 2026
· source
+Guardrail enforcementshippedProgrammatic and no-code guardrails allow enforcing constraints on agent outputs, detecting hallucinations, and managing guardrail events for auditing.9 releases · 1 other source · first seen Jan 2025▸
release
9 total
Adds offline JEV routing and guardrail evaluation runner.
1.15.29 · Oct 2026
· source
· release history
Enhances knowledge and guardrail event handling in the Agent class for more robust agent lifecycle control.
1.0.0 · Oct 2025
· source
· release history
Adds crew context tracking for LLM guardrail events.
0.148.0 · Jul 2025
· source
· release history
Adds crew context tracking for LLM guardrail events, enabling richer auditability of guardrail decisions within a crew's execution context.
0.141.0 · Jul 2025
· source
· release history
Adds console logging for memory system and LLM guardrail events.
0.140.0 · Jul 2025
· source
· release history
Implements HallucinationGuardrail for detecting and guarding against hallucinated outputs.
0.121.0 · May 2025
· source
· release history
example
Inspect the full message history attached to a task result for auditing or downstream processing.$ result = crew.kickoff() for task_output in result.tasks_output: print(task_output.messages)
1.5.0 · Nov 2025
· source
+Agent reasoning and output controlshippedConfiguration of agent reasoning behavior, markdown output formatting, automatic date injection, and multimodal input processing capabilities.7 releases · 2 other sources · first seen Feb 2024▸
release
7 total
Declarative chat flows can name the router's response format via response_format
1.15.18 · Aug 2026
· source
· release history
Adds native multimodal file handling with OpenAI Responses API support.
1.9.0 · Jan 2026
· source
· release history
Adds reasoning attribute to the Agent class to enable or configure agent reasoning behavior.
0.121.0 · May 2025
· source
· release history
Adds markdown attribute to the Task class for controlling markdown-formatted output.
0.121.0 · May 2025
· source
· release history
Adds inject_date flag to Agent for automatic date injection into agent context.
0.121.0 · May 2025
· source
· release history
Adds ability to customize the output converter on agents/tasks.
v0.41.0 · Jul 2024
· source
· release history
example
Enable markdown output for a task so results are returned as formatted markdown.$ from crewai import Task task = Task( description="Summarize the latest threat intelligence report.", expected_output="A structured summary of key findings.", markdown=True )
0.121.0 · May 2025
· source
Enable reasoning on an agent and inject today's date automatically for time-sensitive analysis workflows.$ from crewai import Agent analyst = Agent( role="Threat Analyst", goal="Identify emerging threats from recent feeds.", backstory="Expert in cyber threat intelligence.", reasoning=True,…
0.121.0 · May 2025
· source
+A2A agent integrationshippedAgents can be exposed as A2A-compatible services with server configuration, agent card generation, and task execution utilities for orchestrating inter-agent workflows.8 releases · first seen Jan 2026▸
release
8 total
Adds A2UI extension with v0.8/v0.9 support, schemas, and documentation.
1.13.0 · Apr 2026
· source
· release history
Adds additional A2A transports for flexible agent-to-agent communication.
1.9.0 · Jan 2026
· source
· release history
Adds A2A server config and agent card generation for declaring and advertising agent capabilities.
1.9.0 · Jan 2026
· source
· release history
Adds A2A task execution utilities for orchestrating agent-to-agent workflows.
1.8.1 · Jan 2026
· source
· release history
Adds A2A server configuration and agent card generation to expose CrewAI agents as A2A-compatible services.
1.8.1 · Jan 2026
· source
· release history
Adds additional A2A transports, broadening connectivity options between agents.
1.8.1 · Jan 2026
· source
· release history
+Flow orchestration capabilitiesshippedSupport for multiple router calls within a single Flow, custom flow names, and improved state utilities for inspecting execution.8 releases · first seen Sep 2024▸
release
8 total
Adds flow_structure() serializer method to the Flow class for structured introspection of flow topology.
1.11.1 · Mar 2026
· source
· release history
Exposes messages to TaskOutput and LiteAgentOutputs, giving callers access to the full message history from a task run.
1.5.0 · Nov 2025
· source
· release history
Adds support for non-AST plot routes, expanding flow visualization options.
1.4.0 · Nov 2025
· source
· release history
Adds support for additional parameters in Flow.start() methods.
0.175.0 · Aug 2025
· source
· release history
Supports custom flow names on the Flow class for clearer identification of flows.
0.152.0 · Jul 2025
· source
· release history
Supports multiple router calls within a single Flow, enabling more complex routing logic.
0.105.0 · Mar 2025
· source
· release history
+Authentication & access controlshippedManages user authentication flows, SSO provider integrations, and workflow-level permissions for agent and task access.7 releases · first seen Jan 2025▸
Also counts toward: Command-line interface, Single sign-on
release
7 total
Supports two Bearer token scopes: organization-level Bearer Token for full crew operations and User Bearer Token for user-scoped, limited-permission access, both retrievable from the Status tab of the AMP dashboard.
api-docs-a3e68250264d · Oct 2026
· source
· release history
Adds organization selection during crewai login in the CLI.
1.15.29 · Oct 2026
· source
· release history
Adds Keycloak SSO provider support for enterprise authentication integration.
1.9.0 · Jan 2026
· source
· release history
Adds support to remove Auth0 and email entry on crewai login.
0.175.0 · Aug 2025
· source
· release history
Supports device authorization with Okta for authenticated flows.
0.157.0 · Aug 2025
· source
· release history
Adds workos login command to the CLI for WorkOS-based authentication.
0.140.0 · Jul 2025
· source
· release history
+CLI configuration managementshippedProvides CLI commands for managing configuration settings, enterprise setups, and stored authentication tokens.7 releases · first seen Aug 2025▸
Also counts toward: Command-line interface
release
7 total
Implements platform application search in the CLI.
1.15.29 · Oct 2026
· source
· release history
Adds a logout command to the CrewAI CLI.
1.12.0 · Mar 2026
· source
· release history
Adds docs-check command to analyze changes and generate docs with translations.
1.12.1 · Mar 2026
· source
· release history
Adds crewai config reset command to clear stored tokens.
0.175.0 · Aug 2025
· source
· release history
Adds enterprise configure CLI command for streamlined enterprise setup.
0.159.0 · Aug 2025
· source
· release history
+Standalone agent executionshippedAgents can be executed as atomic, standalone units without requiring a full Crew, supporting independent task execution within Flows or one-off tasks.6 releases · 1 other source · first seen Apr 2025▸
release
Implements message setup and feedback handling in AgentExecutor.
1.15.2 · Jul 2026
· source
· release history
Improves planning configuration and observation handling in agent execution.
1.14.6 · May 2026
· source
· release history
Defaults Crew agents to AgentExecutor, deprecating CrewAgentExecutor.
1.14.5 · May 2026
· source
· release history
Adds checkpoint and fork support to standalone agents, not just full crews.
1.14.3 · Apr 2026
· source
· release history
Enables setting an empty context for a Task.
0.120.0 · May 2025
· source
· release history
Enables agents as atomic, standalone units — call Agent(...).kickoff() without a full Crew.
0.114.0 · Apr 2025
· source
· release history
example
Run a single agent as a standalone unit — useful in Flows or one-off tasks without assembling a full Crew.$ from crewai import Agent researcher = Agent( role="Research Analyst", goal="Find the latest CVEs for Apache HTTP Server", backstory="You are an expert in vulnerability research.", llm="gpt-4o" )…
0.114.0 · Apr 2025
· source
+Task cachingshippedTool outputs are cached to avoid redundant tool calls during agent execution.4 releases · 3 other sources · first seen Dec 2023▸
release
CodeInterpreterTool is removed and code execution parameters are deprecated — any crew or agent config referencing CodeInterpreterTool or those parameters will break on upgrade.
1.14.0 · Apr 2026
· source
· release history
Adds cache_function attribute to tools for custom caching logic per tool invocation.
v0.27.0 · Apr 2024
· source
· release history
Rebuilt caching structure so multiple agents can share the same cache across a crew run.
v0.10.0 · Feb 2024
· source
· release history
Adds tool caching to avoid redundant tool calls during agent execution.
v0.1.14 · Dec 2023
· source
· release history
docs
Open-source Python framework for building multi-agent AI workflows using autonomous Crews and event-driven Flows.
example
Give agents the ability to generate images on demand during a workflow using the new DALL-E Tool.$ from crewai_tools import DallETool from crewai import Agent image_agent = Agent( role="Image Creator", goal="Generate visuals from descriptions", backstory="You create images for marketing…
v0.51.0 · Aug 2024
· source
Use a custom cache function on a tool to control exactly when results are cached, e.g. skipping cache for volatile data.$ from crewai_tools import tool @tool def my_tool(query: str) -> str: ... my_tool.cache_function = lambda args, result: 'volatile' not in args['query']
v0.27.0 · Apr 2024
· source
+Job lifecycle and runner subsystemshippedAn experimental job lifecycle and runner subsystem provides structured management of job execution state across crew and flow runs.4 releases · 2 other sources · first seen Jul 2024▸
release
Adds experimental job lifecycle and runner subsystem.
1.15.24 · Oct 2026
· source
· release history
Adds experimental turn and reply identity tracking.
1.15.24 · Oct 2026
· source
· release history
Introduces thread-safe platform context management for concurrent crew workflows.
0.201.0 · Sep 2025
· source
· release history
Adds LLM call retry support so a failed LLM call no longer halts crew execution.
v0.41.0 · Jul 2024
· source
· release history
example
Poll execution status until the crew finishes and the final output is available.$ curl -H "Authorization: Bearer YOUR_CREW_TOKEN" \ https://your-crew-name.crewai.com/status/<kickoff_id>
api-docs-a3e68250264d · Oct 2026
· source
Discover what inputs a deployed crew requires before submitting a job — useful at pipeline startup or in CI.$ curl -H "Authorization: Bearer YOUR_CREW_TOKEN" https://your-crew-name.crewai.com/inputs
api-docs-a3e68250264d · Oct 2026
· source
+Deployment provenance trackingshippedRecords the origin and start location of deployments across all platforms to support multi-origin analytics.3 releases · 2 other sources · first seen Aug 2026▸
release
Counts deployments from any origin and records where they started, broadening deployment provenance tracking.
1.15.16 · Aug 2026
· source
· release history
Counts deployments from any origin and records where they started, supporting multi-origin deployment tracking in AMP.
1.15.16 · Aug 2026
· source
· release history
Counts deployments from any origin and records where each deployment started, expanding deployment analytics across all launch surfaces.
1.15.16 · Aug 2026
· source
· release history
example
Deploy a project as a zip bundle and capture the exact commit it was built from for audit or rollback.$ crewai deploy create --zip
1.15.34 · Nov 2026
· source
Package the current working tree as a zip and deploy it, capturing the commit it was built from for audit trail.$ crewai deploy create --zip
1.15.33 · Oct 2026
· source
+Platform tool dependency injectionshippedAllows external provision of client dependencies for CrewAI platform tools to decouple tool implementations from their configuration.5 releases · first seen Sep 2026▸
release
Validates platform integrations during crew setup.
1.15.22 · Sep 2026
· source
· release history
Exposes the CrewAI Platform application catalog.
1.15.22 · Sep 2026
· source
· release history
Supports aliases as connection identifiers.
1.15.22 · Sep 2026
· source
· release history
Adds an injectable client for CrewAI platform tools, allowing platform tool dependencies to be supplied externally.
1.15.19 · Sep 2026
· source
· release history
Adds an injectable client for CrewAI platform tools to enable custom service wiring
1.15.19 · Sep 2026
· source
· release history
+Process orchestration modelsshippedCrews support hierarchical process modeling for structured workflow execution.4 releases · 1 other source · first seen Feb 2024▸
release
Introduces production-ready Flows and Crews architecture.
1.8.0 · Jan 2026
· source
· release history
New Flow feature enables structured, multi-step agentic pipelines.
0.70.1 · Oct 2024
· source
· release history
Introduces Pipeline structure for composing multi-crew workflows.
v0.51.0 · Aug 2024
· source
· release history
Adds support for a hierarchical process model for structuring agent workflows.
v0.5.0 · Feb 2024
· source
· release history
example
Add a new crew to an existing flow without manually editing boilerplate — useful when extending a flow with a parallel or sequential crew.$ crewai flow add-crew
0.76.9 · Oct 2024
· source
+Direct tool result mappingshippedThe output of a tool can be returned directly as the agent's final result without further processing.4 releases · 1 other source · first seen Jul 2024▸
release
Automatically injects crewai_trigger_payload into crew runs triggered externally.
0.165.0 · Aug 2025
· source
· release history
Automatically injects crewai_trigger_payload into crew execution context.
0.165.1 · Aug 2025
· source
· release history
Adds result_as_answer parameter to the @tool decorator, allowing a tool's output to be used directly as the agent's final answer.
0.117.0 · Apr 2025
· source
· release history
Adds the ability to return a tool's result directly as an agent result.
v0.36.0 · Jul 2024
· source
· release history
example
Return a tool's output directly as the agent's final answer, bypassing further LLM reasoning — useful for deterministic lookup tools where you trust the result completely.$ from crewai.tools import tool @tool(result_as_answer=True) def lookup_cve(cve_id: str) -> str: """Fetch CVE details from internal database.""" return fetch_cve_record(cve_id)
0.117.0 · Apr 2025
· source
+Infinite loop preventionshippedExecution logic includes safeguards to stop agents from cycling indefinitely.4 releases · 1 other source · first seen Dec 2023▸
release
Increases default max iterations from its previous limit to 20, enabling more complex agent reasoning loops out of the box.
0.64.0 · Sep 2024
· source
· release history
Adds a configurable maximum number of iterations before an agent is forced to produce a final answer.
v0.60.0 · Sep 2024
· source
· release history
Adds ability to limit the maximum number of iterations for an agent, preventing runaway agent loops.
v0.1.32 · Jan 2024
· source
· release history
Adds loop execution prevention to stop agents from cycling indefinitely.
v0.1.14 · Dec 2023
· source
· release history
example
Cap API usage and prevent runaway agent loops by setting rate limits and a max iteration count.$ from crewai import Agent agent = Agent( role="Researcher", goal="Find key insights", backstory="You are a senior researcher.", max_rpm=10, max_iter=5 )
v0.60.0 · Sep 2024
· source
+Delegated task executionshippedAgents can autonomously redistribute subtasks among team members at runtime based on defined delegation guidelines.5 releases · first seen Nov 2023▸
release
Adds cross-agent delegation, enabling smoother cooperation and task handoff between agents.
v0.27.0 · Apr 2024
· source
· release history
Enhances delegation capabilities for agents within a crew.
v0.19.0 · Mar 2024
· source
· release history
Improves reliability for inter-agent delegation.
v0.14.0rc0 · Feb 2024
· source
· release history
Expands delegation guidelines to give agents more precise rules for task hand-off.
v0.1.14 · Dec 2023
· source
· release history
Enables inter-agent delegation, allowing agents to autonomously redistribute subtasks among team members at runtime.
v0.1.0 · Nov 2023
· source
· release history
+Skill registry browsingshippedUsers can search and list skills registered in their organisation before wiring them into a crew.2 releases · 2 other sources · first seen Oct 2026▸
Also counts toward: Command-line interface
release
Search your organization's available skills from the CLI with crewai skill search.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
1.15.34 · Nov 2026
· source
· release history
List your organization's available skills with the new crewai skill search command.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
1.15.33 · Oct 2026
· source
· release history
example
Discover skills available in your organization before wiring them into an agent.$ crewai skill search
1.15.34 · Nov 2026
· source
Browse skills your organization has registered before wiring one into a crew.$ crewai skill search
1.15.33 · Oct 2026
· source
+Agent and Crew evaluationshippedFunctionality for evaluating Agent and LiteAgent outputs, supporting regression testing and experiment methods.4 releases · first seen Jul 2025▸
Also counts toward: Command-line interface
release
Enables crewai eval to run the crew itself and return a verdict from a single command, and to export evaluations as files.
1.15.29 · Oct 2026
· source
· release history
Implements per-run cost and time tracking in crewai eval --models, surfacing spend and latency per evaluation run without repeated progress lines.
1.15.27 · Oct 2026
· source
· release history
Adds Galileo integration for LLM evaluation and observability.
1.9.0 · Jan 2026
· source
· release history
Introduces Agent evaluation functionality with AgentEvaluator, supporting regression testing and experiment methods for both Agent and LiteAgent.
0.148.0 · Jul 2025
· source
· release history
+Agent executor configurationshippedConfigures the underlying agent execution engine, including defaults, planning behavior, and feedback message handling.4 releases · first seen May 2026▸
release
Promotes AgentExecutor out of experimental status to stable API.
1.15.29 · Oct 2026
· source
· release history
Implements message setup and feedback handling in AgentExecutor.
1.15.2 · Jul 2026
· source
· release history
Improves planning configuration and observation handling in agent execution.
1.14.6 · May 2026
· source
· release history
Defaults Crew agents to AgentExecutor, deprecating CrewAgentExecutor.
1.14.5 · May 2026
· source
· release history
+Agent identification and trackingshippedSecure fingerprints for agents, crews, tasks, and flows enable unique identity tracking across runs for better traceability.4 releases · first seen Mar 2025▸
release
Introduces execution context management with UUID support for tracking individual flow and agent executions.
1.15.16 · Aug 2026
· source
· release history
Surfaces AMP in AGENTS.md and adds coding-agent detection to telemetry.
1.15.11 · Aug 2026
· source
· release history
Introduces secure fingerprints for agents and crews to uniquely identify and track them.
0.114.0 · Apr 2025
· source
· release history
Adds fingerprints to agents/tasks for unique identity tracking across runs.
0.108.0 · Mar 2025
· source
· release history
+Crew training phaseshippedUsers can run a crew for a specified number of iterations before production execution to improve output consistency.4 releases · first seen Jun 2024▸
Also counts toward: Command-line interface
release
Adds native async tool support, allowing tools to be defined and invoked asynchronously.
1.7.0 · Dec 2025
· source
· release history
Exposes messages to TaskOutput and LiteAgentOutputs, giving callers access to the full message history from a task run.
1.5.0 · Nov 2025
· source
· release history
Improves data training support for models up to 7B parameters.
0.140.0 · Jul 2025
· source
· release history
New crewai train -n <X> CLI command lets you train a crew for a specified number of iterations before execution to produce more consistent results.
v0.35.0 · Jun 2024
· source
· release history
+Gemini LLM provider supportshippedNative Gemini models, including Gemini 3.8 Flash, are available as LLM providers for agents and crews.3 releases · first seen Jan 2025▸
release
Add support for native Gemini 3.8 Flash
1.15.23 · Sep 2026
· source
· release history
Supports new language models: GPT-4.1, Gemini-2.0, and Gemini-2.5 Pro.
0.117.0 · Apr 2025
· source
· release history
+Crew run checkpointingshippedEnables automatic checkpointing of crew runs, allowing users to inspect checkpoint details and resume execution from specific points.2 releases · 1 other source · first seen Apr 2026▸
release
Adds async checkpoint TUI browser for interactive inspection of crew checkpoints.
1.14.1 · Apr 2026
· source
· release history
Adds CheckpointConfig for configuring automatic checkpointing of crew runs.
1.14.0 · Apr 2026
· source
· release history
example
Inspect details of a specific checkpoint before deciding whether to resume from it.$ crewai checkpoint info <checkpoint-id>
1.14.0 · Apr 2026
· source
+Deployed crew endpoint discoveryshippedEach deployed crew exposes its own unique base URL and a dedicated endpoint to discover the input parameters it expects before a job is submitted.1 release · 1 other source · first seen Oct 2026▸
Also counts toward: REST API
release
Each deployed crew exposes its own unique base URL at https://your-crew-name.crewai.com, enabling direct server-to-server integration.
api-docs-a3e68250264d · Oct 2026
· source
· release history
docs
CrewAI AMP API Welcome to the CrewAI AMP API reference. This API allows you to programmatically interact with your deployed crews, enabling integration with your applications, workflows, and services.
api-docs-a3e68250264d · Oct 2026
· source
+LLM routing overlayshippedEnables runtime routing of specific agent roles to different LLM providers via the llm_overlay context variable.2 releases · first seen Sep 2026▸
release
Adds llm_overlay context variable to route agent roles to specific models
1.15.22 · Sep 2026
· source
· release history
Adds llm_overlay context variable to route specific agent roles to different models at runtime.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
1.15.22 · Sep 2026
· source
· release history
+Time-based CEL conditionsshippedAdds the now() function to the Common Expression Language (CEL) environment, enabling time-based conditional logic in flow routing.2 releases · first seen Sep 2026▸
release
Adds now() to the CEL expression environment, enabling time-based conditions in CEL policies.
1.15.19 · Sep 2026
· source
· release history
Adds now() function to the CEL expression environment for time-based logic
1.15.19 · Sep 2026
· source
· release history
+Repository-based agent deploymentshippedAllows agents to be loaded directly from external code repositories for streamlined distribution and version control.2 releases · first seen May 2025▸
release
Adds repository agents to flow definitions.
1.15.2 · Jul 2026
· source
· release history
Supports loading an Agent directly from a repository.
0.120.0 · May 2025
· source
· release history
+Third-party agent integrationshippedThe tool supports integrating agents from external frameworks like LlamaIndex, LangChain, and Autogen as crew members.2 releases · first seen Jun 2024▸
release
Implements the agent-to-agent (A2A) extensions API with async agent card caching.
1.7.0 · Dec 2025
· source
· release history
Supports integrating third-party agents — including LlamaIndex, LangChain, and Autogen agents — as first-class crew members.
v0.35.0 · Jun 2024
· source
· release history
+Lightweight agent supportshippedIntroduction of LiteAgent with built-in Guardrail integration for constrained, lightweight agent workflows.2 releases · first seen Jun 2025▸
release
Enables apps and MCPs (Model Context Protocol servers) as supported resources in LiteAgent.
1.2.1 · Oct 2025
· source
· release history
Introduces LiteAgent with built-in Guardrail integration for lightweight, constrained agent workflows.
0.130.0 · Jun 2025
· source
· release history
+Runtime & language version supportshippedDefines supported Python versions and runtime environment compatibility for AI tooling deployments.2 releases · first seen Mar 2025▸
Also counts toward: Python scripting support, Scripting language support
+Task replay capabilityshippedUsers can inspect the last run and re-execute from a specific task without restarting the entire crew.1 release · 1 other source · first seen Jul 2024▸
Also counts toward: Command-line interface
release
Introduces a CLI replay feature to list tasks from the last run and re-execute from a specific task.
v0.41.0 · Jul 2024
· source
· release history
example
Replay from a specific failed task after a partial run, without restarting the entire crew from scratch.$ crewai replay <task_id>
v0.41.0 · Jul 2024
· source
+Integration app action toolshippedA `call:` tool lets agents invoke integration application actions directly from within a workflow.1 release · first seen Oct 2026▸
release
Adds call: tool to run integration app actions directly from an agent.︀︄︇︀︅︉︀︅︀︀︃︀︀︅︅︀︅︊︀︄︆︀︃︄
1.15.29 · Oct 2026
· source
· release history
+Oracle database integrationshippedA built-in Oracle integration enables agents and crews to connect to and query Oracle databases within a workflow.1 release · first seen Oct 2026▸
release
Adds Oracle integrations to the CrewAI framework.
1.15.24 · Oct 2026
· source
· release history
+Conversational flow chunkingshippedHandles oversized messages during conversational processing by enabling payload chunking to exceed per-message size limits.1 release · first seen Aug 2026▸
release
Handles oversized single messages during chunking, enabling processing of payloads that previously exceeded per-message size limits.
1.15.17 · Aug 2026
· source
· release history
+Output aggregation and mergingshippedProvides handlers to combine and merge outputs from multiple agents or tasks into unified results.1 release · first seen Nov 2025▸
release
Adds Merge Agent Handler tool for combining agent outputs.
1.6.0 · Nov 2025
· source
· release history
+Bedrock AgentCore integrationshippedIntegration of Bedrock AgentCore browser and code interpreter toolkits for use with Bedrock agents.1 release · first seen Jul 2025▸
release
Integrates Bedrock AgentCore browser and code interpreter toolkits for use with Bedrock agents.
0.150.0 · Jul 2025
· source
· release history
+Interactive agent reasoning streamshippedAgents can stream every internal reasoning step in real time for debugging purposes.1 other source · first seen Feb 2024▸
example
Stream every agent reasoning step in real time — useful for debugging long-running autonomous crews.$ def my_callback(step): print(step) agent = Agent(..., step_callback=my_callback) crew = Crew(agents=[agent], ..., step_callback=my_callback)
v0.10.0 · Feb 2024
· source
+Observability platform integrationshippedretiredNative integration with AgentOps provides agent observability and monitoring capabilities.1 release · first seen Jul 2024▸
release
Adds native AgentOps integration for agent observability and monitoring.
v0.36.0 · Jul 2024
· source
· release history
Lines in monospace are the tool's own words: help text
parsed from its source, or an endpoint from its API document. Under
release, a line is our summary of a dated release. Under
docs, it is quoted from the tool's own documentation or
website. Each links back to the source it came from.
Command line
20 commands for CrewAI, each
with where it came from. This tool has no source analysis yet, so there
is no option reference and no captured run beside them.
View
Source
No command matches.
Conversation
community.crewai.com · since 2025 · active
What the CrewAI community has worked out wherever it talks: mailing lists,
forums, Q&A sites, issue trackers and discussion threads. These are the
conversations that explain a behaviour, settle a use, or flag a change you must
handle, summarised, with a link to the original.
The discussion highlights how network timeouts in CrewAI can cause non-idempotent tools to execute multiple times, leading to unintended duplicate side effects. It was determined that the most effective solution is implementing idempotency keys within the tool layer itself to safely handle retries. Readers should design their tools to be safe under at-least-once execution assumptions and use unique IDs for observability to detect duplicates.
Confirmed in the thread
In CrewAI crews, when a side-effecting tool call (e.g. create_ticket, send_email, charge, POST /orders, append_row) times out and the agent or framework retries, the original call may have already succeeded, causing the action to fire twice (or more with fan-out across agents).
Applies to
CrewAI crews using side-effecting tools that can be retried after timeouts or thrown errors; no specific CrewAI version, OS, or configuration given
What to do
Build idempotency into the tool layer, not the prompt: give each tool an idempotency key (hash of args or a caller-supplied request id) and have the tool dedupe repeated calls within a window, returning the stored result instead of re-executing. Treat a timeout as unknown, not failed, and check-before-write if the tool can't be made idempotent. Stamp a tool-call id on each logical invocation and carry it through retries so duplicates show up in your trace.
From the thread · checked Oct 2026
Give the tool an idempotency key (hash of the meaningful args, or a caller-supplied request id) and have the tool itself dedupe
This is the single highest-leverage change; it makes retries safe by construction.
We saw a “send the summary email” step fire four times from one logical request.
The thread identifies that CrewAI fails tool-calling with OpenAI GPT-5.6 models because the native provider defaults to the Chat Completions endpoint, which rejects tools for these reasoning-tier models. The root cause is determined to be missing support in the existing Responses API path: it does not recognize the correct tool-call shape and fails to convert message history properly for multi-turn interactions. Readers should expect that setting api='responses' manually bypasses the initial error but still results in silent failures or subsequent 400 errors until the provider correctly handles tool shapes and history translation.
Unconfirmed
CrewAI's native OpenAI provider fails tool-calling for the OpenAI GPT-5.6 family (gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna) when using the default chat-completions mode; setting LLM(api="responses") avoids the initial 400 error but the full tool-calling loop still fails due to unresolved provider-shape bugs.
Applies to
CrewAI native OpenAI provider (crewai/llms/providers/openai/completion.py) with OpenAI GPT-5.6-family models, crewai versions 1.15.1 through 1.15.3
What to do
If you must use GPT-5.6-family models with tools in CrewAI, pass LLM(..., api="responses") to avoid the immediate 400 error, but verify tool calls actually execute rather than assume the workaround is complete, since the agent-executor tool-call detection and history conversion for the Responses API path are not yet fixed.
Careful
Even with the api="responses" workaround, tool calls can go undetected by the agent executor and be returned as plain text with no error raised, producing silent wrong behavior instead of a visible failure.
From the thread · checked Oct 2026
This makes the entire GPT-5.6 family unusable for agentic workflows in crewAI today.
bypasses the original 400 — the endpoint issue is solved by a flag that already ships.
Today, even after setting api="responses" manually, a real tool-calling agent loop still fails.
The thread discusses preventing runaway costs in CrewAI by enforcing a shared budget ceiling through tool wrappers rather than agent prompts. Participants worked out that separating the system into an in-process reservation ledger for atomic holds and a durable spend ledger for persistent tracking solves concurrency issues across multiple crew instances. Readers should implement an estimate-reserve-execute-reconcile pattern with a shared, durable store to ensure accurate spending limits.
Unconfirmed
CrewAI has no built-in crew-wide spending ceiling for multi-agent delegation; when one agent delegates to others that call paid tools, nothing in CrewAI's config stops the group from collectively overspending, and the thread's proposed fix is to bolt on an external budget ledger that the tools check before each paid call.
Applies to
CrewAI multi-agent crews using task delegation where sub-agents invoke tools that call paid external services; version noted only as 'crewai 1.x' in one later post, OS unknown
What to do
Do not rely on CrewAI's agent reasoning or per-agent limits to cap crew spend. Wrap every paid tool call with an external, atomic estimate-reserve-execute-reconcile check against a shared ledger (a durable store like a database row with locking or Redis INCRBY/Lua), so the ceiling is enforced by the tool layer and shared across all agents in the crew, not by any single agent's prompt.
Careful
This is a workaround built outside CrewAI, not a feature the tool ships; a naive shared counter can race under concurrent agents or crew runs, and a crashed process between reserve and execute can leak budget permanently if reservations lack an expiry and reclaim step.
From the thread · checked Oct 2026
CrewAI doesn’t hand you this at the config level today as far as I can tell — you bolt it on by wrapping your paid tools with the reserve-check.
one chapter crew’s researcher issued the identical search 25 times in about two minutes before the writer took over
A local counter across two processes spent 1,000 units against a budget of 500, because neither process could see the other’s holds.
The thread discusses a CrewAI login failure on macOS caused by an SSL certificate verification error during the authentication process. It was determined that this is a local Python environment issue rather than a problem with the CrewAI service itself. To resolve this, you should run the Install Certificates.command script located in your Python installation directory to update the system's trusted root certificates.
Confirmed in the thread
On macOS, 'crewai login' can appear to succeed in the browser but fail in the CLI with an SSL certificate verification error, so later commands like 'crewai deploy create' report the user is not logged in.
Applies to
CrewAI CLI 'login' command on macOS (reported on OSX 26.2, Apple M1 Max) using a python.org-installed framework build of Python 3.11.3 with crewai-tools 1.81
What to do
Run the Python framework's Install Certificates.command script (e.g. /Applications/Python 3.11/Install Certificates.command, matching your installed Python version) to install root certificates, then retry 'crewai login'.
From the thread · checked Oct 2026
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1002)
Resolved by running /Applications/Python\ 3.11/Install\ Certificates.command (adjust version name as needed).
The thread discusses the release of CrewAI 1.1.0, highlighting new multi-provider LLM support and vector search upgrades while warning of unresolved high-severity bugs in memory management and tool integrations.
It was worked out that upgrading requires caution due to regressions in Qdrant and TXTSearch tools, as well as critical issues with agent memory resets and async deadlocks.
Readers should test the new version in a safe environment before production use, check open issues for blockers affecting their specific workflows, and monitor community forums for workarounds.
Shipped in 1.1.0
CrewAI v1.1.0 shipped with new multi-provider LLM support and Qdrant vector search improvements, but the same release carries several unresolved high-severity bugs: Qdrant and TXTSearch tool regressions, StageHand tool failures, memory reset failures, async deadlocks, and context window crashes.
Applies to
CrewAI core v1.1.0, including QdrantVectorSearchTool, TXTSearchTool, StageHand tool integration, and agent memory reset
What to do
Before upgrading to CrewAI 1.1.0, check the open issues list and test in an isolated environment, especially if you rely on Qdrant, TXTSearch, StageHand, or memory-intensive agents.
Careful
Several high-severity bugs remain open in 1.1.0, including memory reset failures, Qdrant/TXTSearch regressions, async deadlocks, and context window crashes; upgrading without testing could break existing workflows.
From the thread · checked Oct 2026
CrewAI version 1.1.0 (released 2025-10-21) delivers key enhancements for language model integration, developer experience, and vector search capabilities.
However, please note several unresolved high-severity bugs and known issues that may affect critical workflows.
Test CrewAI 1.1.0 in a safe environment, especially if you rely on Qdrant, TXTSearch, StageHand, or memory-intensive agents.
The discussion focused on enforcing hard spending limits in CrewAI production crews rather than just monitoring costs after the fact. It was determined that native runtime caps like max_iter and max_rpm help prevent aggressive looping, while a CI-based dollar ceiling using tokenscope provides true enforcement by blocking expensive changes before they reach production. Readers should implement pre-call budget checks and use independent state verification to detect stuck loops where individual steps appear valid but progress stalls.
Unconfirmed
CrewAI has native agent/crew settings max_iter and max_rpm. max_iter caps how many reasoning or tool loops an agent can take before being forced to stop, and max_rpm throttles the call rate at the agent or crew level. Neither of these settings caps actual dollar spend.
Applies to
CrewAI agents and crews, version unknown
What to do
Use max_iter and max_rpm as guardrails against runaway loops or call-rate spikes, but do not treat them as a budget limit. If you need a hard dollar ceiling, build that check outside CrewAI, for example by estimating and approving spend before each paid API call.
Careful
max_iter and max_rpm bound iterations and call rate, not dollars. A crew with a sane max_iter can still be expensive if each call carries a large context or big tool outputs, so these caps alone cannot guarantee a cost ceiling.
From the thread · checked Oct 2026
CrewAI does give you bounding knobs even if they aren’t framed as spend limits
The honest caveat: they bound iterations and rate , not dollars .
A crew with a sane max_iter can still be expensive if each call drags a huge accumulated context or fat tool outputs
The thread clarifies that CrewAI functions as a managed workflow of LLM calls unless specific autonomy features are enabled to create true agentic behavior. It was determined that enabling hierarchical planning, tool use, memory, and self-stopping criteria transforms the system from a linear pipeline into an autonomous agent framework. Readers should expect to configure process modes like hierarchical or continuous and define explicit termination conditions to achieve independent reasoning and error handling.
Unconfirmed
CrewAI behaves as a simple chained sequence of LLM calls (a managed workflow) unless you explicitly turn on its autonomy features; only then does it show agent-like behavior.
Applies to
CrewAI framework, general use, no specific version, OS, or deployment stated
What to do
To move a CrewAI setup from a linear script to real agent behavior, configure a process mode such as hierarchical so a manager agent plans and delegates, give agents memory/state to persist across steps, let them choose which tools to call, add reflection or retry loops (for example max_iter or verifier agents), and define explicit success or stopping criteria instead of a fixed number of steps.
Careful
Turning on retries and reflection loops without enforcing task ownership and role boundaries can let retries run unchecked and use far more tokens.
From the thread · checked Oct 2026
If crewai is not really an agent framework but an automated managed workflow of LLM calls, there is nothing wrong with that.
it becomes truly “agentic” only if you turn on autonomy features (planning, tool use, memory/state, reflection loops, delegation, and self-stop criteria)
Your current setup used it as a managed workflow; to see agents, you need to enable those behaviors.
The thread discusses how CrewAI agents can incur unexpected costs if spending limits and approval layers are not explicitly configured. Participants identified a race condition in post-execution budget checks and proposed using pre-execution reservations or static cost estimation to prevent concurrent overspending. Readers should implement both runtime gateways with reservation steps and pre-merge static analysis to manage financial risk effectively.
Proposed, not merged
CrewAI agents that can call paid APIs have no built-in spending limit or approval layer; without one, an agent can spend money without the user's permission. A proposed fix is a budget gateway with a pre-execution reservation step, but a simple post-execution budget check has a known race condition that lets concurrent requests exceed the limit.
Applies to
CrewAI agents that call external APIs or services with billing attached, when no custom spending limit or approval layer is configured
What to do
Do not rely on a post-execution budget check alone for CrewAI agents that spend money. Add an external gateway that reserves part of the budget before the task runs, and release the reservation if the task fails, to reduce (not eliminate) the risk of concurrent requests overspending.
Careful
A budget check that only looks at past spending, not the request in front of it, can let multiple simultaneous requests all pass the check and together exceed the intended limit.
From the thread · checked Oct 2026
If you have not explicitly set spending limits and an approval layer, the answer is probably yes.
the budget check ends up looking backward at everything that’s already happened, not forward at the request in front of it
gave an agent a budget for about one request, fired five at once, all five got through
Threads are ranked by how much they teach, not by date, from whichever source
carried them. Commands are shown as
posted, unrun, with the year they were written; a flag may have changed since.
Posters appear by role only.
Release-note detail over time
See how much detail CrewAI puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.