FAQs ↗
noOriginal Documentation
Documentation Index#
Fetch the complete documentation index at: https://docs.crewai.com/llms.txt Use this file to discover all available pages before exploring further.
Frequently asked questions about CrewAI AMP
- Tasks are delegated and executed based on a structured chain of command
- A manager language model (
manager_llm) must be specified for the manager agent - Manager agent oversees task execution, planning, delegation, and validation
- Tasks are not pre-assigned; the manager allocates tasks to agents based on their capabilities
Sequential Process:#
- Tasks are executed one after another, ensuring tasks are completed in an orderly progression
- Output of one task serves as context for the next
- Task execution follows the predefined order in the task list
Which Process is Better for Complex Projects?#
The hierarchical process is better suited for complex projects because it allows for:
Dynamic task allocation and delegation: Manager agent can assign tasks based on agent capabilities
Structured validation and oversight: Manager agent reviews task outputs and ensures completion
Complex task management: Precise control over tool availability at the agent level
Adaptive Learning: Crews become more efficient over time, adapting to new information and refining their approach to tasks
Enhanced Personalization: Memory enables agents to remember user preferences and historical interactions, leading to personalized experiences
Improved Problem Solving: Access to a rich memory store aids agents in making more informed decisions, drawing on past learnings and contextual insights
Setting a maximum RPM limit for an agent prevents the agent from making too many requests to external services, which can help to avoid rate limits and improve performance.
To integrate human input into agent execution, set the human_input flag in the task definition. When enabled, the agent prompts the user for input before delivering its final answer. This input can provide extra context, clarify ambiguities, or validate the agent’s output.
For detailed implementation guidance, see our Human-in-the-Loop guide.
Language Model Customization: Agents can be customized with specific language models (
llm) and function-calling language models (function_calling_llm)Performance and Debugging Settings: Adjust an agent’s performance and monitor its operations
Verbose Mode: Enables detailed logging of an agent’s actions, useful for debugging and optimization
RPM Limit: Sets the maximum number of requests per minute (
max_rpm)Maximum Iterations: The
max_iterattribute allows users to define the maximum number of iterations an agent can perform for a single taskDelegation and Autonomy: Control an agent’s ability to delegate or ask questions with the
allow_delegationattribute (default: True)Human Input Integration: Agents can request additional information or clarification when necessary
Human input is particularly useful when:
Agents require additional information or clarification: When agents encounter ambiguity or incomplete data
Agents need to make complex or sensitive decisions: Human input can assist in ethical or nuanced decision-making
Oversight and validation of agent output: Human input can help validate results and prevent errors
Customizing agent behavior: Human input can provide feedback to refine agent responses over time
Identifying and resolving errors or limitations: Human input helps address agent capability gaps
The different types of memory available in CrewAI are:
- Short-term memory: Temporary storage for immediate context
- Long-term memory: Persistent storage for learned patterns and information
- Entity memory: Focused storage for specific entities and their attributes
- Contextual memory: Memory that maintains context across interactions
Learn more about the different types of memory: <span class=“card-start” data-card-raw=“href=“https://docs.crewai.com/concepts/memory" icon=“brain”">CrewAI Memory
```python from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
```
```python from crewai import Task, Crew, Agent from my_models import User
task = Task(
description="Create a user with the provided name and age",
expected_output=User, # This is the Pydantic model
agent=agent,
tools=[tool1, tool2]
)
```
```python from crewai import Agent from my_models import User
agent = Agent(
role='User Creator',
goal='Create users',
backstory='I am skilled in creating user accounts',
tools=[tool1, tool2],
output_pydantic=User
)
```
Here’s a tutorial on how to consistently get structured outputs from your agents:
<span class=“card-start” data-card-raw=“href="/en/learn/create-custom-tools” icon=“code”">CrewAI Tools Guide