Solo Prompts to Symphonic AI: Building Multi‑Agent Workflows with CrewAI

Table of contents

CrewAI is an innovative open-source framework that revolutionizes how we approach complex tasks with AI. Instead of relying on a single, all-knowing AI, CrewAI empowers you to build sophisticated multi-agent systems where specialized Large Language Model (LLM) agents collaborate, mimicking the efficiency and expertise of a well-coordinated human team.
Why Multi-Agent Systems?
Imagine trying to run an entire company with just one employee. It would be inefficient and prone to errors. Similarly, single-prompting an LLM for complex tasks often falls short. Multi-agent systems, facilitated by CrewAI, offer significant advantages:
Divide and Conquer: Complex tasks are broken down into smaller, manageable sub-tasks, improving overall quality and making it easier to trace progress and identify issues.
Specialized Tools: Agents can be equipped with specific tools (like web scrapers or API connectors) to perform precise actions and ensure deterministic outputs.
Shared Memory & Caching: Agents can share and reuse information, optimizing performance and preventing redundant work.
Robust Guardrails: Implement rules and validations to maintain output quality and prevent agents from getting stuck in loops or making errors.
The Core Components of CrewAI: Agent, Task, and Crew
CrewAI is built around three fundamental Python constructs that work together seamlessly:
┌──────────┐ ┌────────┐ ┌──────────┐
│ Agent │◀──▶ │ Task ◀──▶ │ Tools │
└──────────┘ └────────┘ └──────────┘
▼
┌────────┐
│ Crew │ (Orchestrates tasks, manages memory & guardrails)
└────────┘
Agent: This is an autonomous entity designed to perform specific functions. Each agent has a defined role, a clear goal, and a backstory that provides context and influences its behavior. Agents are also assigned tools to interact with the external world.
Task: A task represents a specific assignment an agent needs to complete. Tasks have clear descriptions, explicit expected outcomes, and can have optional context dependencies from other tasks. They can also support asynchronous execution for greater efficiency.
Crew: The Crew is the orchestrator. It brings together a team of agents and a set of tasks, managing their collaboration, shared memory, and enforcing guardrails to ensure the overall workflow runs smoothly and achieves its common goal.
Designing Effective Agents and Tasks
To truly leverage CrewAI, careful design of your agents and tasks is crucial.
Six Pillars of Effective Agents:
Role Playing: Assigning a specific role (e.g., "Certified Travel Consultant" instead of a generic "Travel Agent") enhances context and relevance for the agent's actions.
Focus: Each agent should have clear, singular objectives.
Tools: Equipping agents with the right tools minimizes their cognitive load and ensures efficient execution. Tools should be versatile, fault-tolerant, and capable of caching to prevent redundant information gathering.
Cooperation: Define how agents will work together in a structured manner, allowing for seamless handoffs (e.g., a Flight Agent passing information to a Hotel Agent).
Guardrails: Set operational limits and validation rules (like
max_rounds
orretry_on_error=True
) to maintain quality and prevent issues.Memory: Providing agents with memory (
memory=True
) ensures context continuity throughout the workflow.
Designing Effective Tasks:
Tasks should be:
Clearly described: Leave no room for ambiguity about what needs to be done.
Explicitly defining expected outcomes: Specify the desired format and content of the task's output.
Leveraging context dependencies: Tasks can build upon the outputs of previous tasks, creating a logical flow.
Supporting asynchronous execution: For tasks that can run in parallel,
async_execution=True
can significantly speed up the process.
Process Topologies: How Crews Collaborate
CrewAI supports various collaboration patterns, allowing you to choose the best fit for your workflow:
Sequential: Tasks are executed one after another in a predefined order. The output of one task often serves as the input or context for the next. This is ideal for linear workflows where steps logically follow each other, like a "flight search" leading to "hotel search" and then "itinerary creation."
Hierarchical: In this topology, a designated "manager" or "coordinator" agent oversees the entire process. This manager agent is responsible for delegating tasks to specialized sub-agents, reviewing their outputs, and ensuring overall progress. It's akin to a project manager overseeing a team, suitable for workflows requiring oversight, validation, and complex decision-making. CrewAI can automatically generate this manager agent when a hierarchical process is selected.
Asynchronous Mesh: This is a more flexible and dynamic pattern where multiple agents can work simultaneously and coordinate their efforts in a less rigid structure. It's ideal for complex planning and open-ended research where tasks might not have strict sequential dependencies and can benefit from parallel execution and dynamic information sharing.
CrewAI supports all three approaches seamlessly, allowing you to select the most appropriate workflow for your specific problem.
Understanding Key Concepts: Guardrails and Memory
Beyond the core components and process topologies, two critical concepts enhance the robustness and efficiency of CrewAI applications: Guardrails and Memory.
Guardrails: Ensuring Quality and Preventing Errors
Guardrails are mechanisms within CrewAI that define operational boundaries and validation checks for agents. They are crucial for:
Maintaining Output Quality: Guardrails can enforce rules on the format, length, or content of an agent's output, ensuring it meets predefined standards.
Preventing Hallucinations: By setting constraints and validation checks, guardrails can help mitigate the risk of LLMs generating inaccurate or fabricated information.
Handling Errors Gracefully: Guardrails can be configured to
retry_on_error=True
, allowing agents to attempt to fix issues if a task fails or an output doesn't meet expectations. This makes the system more resilient.Avoiding Infinite Loops: Parameters like
max_rounds
can limit the number of iterations an agent or crew can perform, preventing them from getting stuck in repetitive or unproductive cycles.
Memory: Enabling Context Continuity
Memory in CrewAI allows agents to retain and recall information across different tasks and interactions within a workflow. This is vital for:
Context Continuity: Instead of starting each task from scratch, agents can leverage past information, leading to more coherent and relevant outputs.
Learning and Reuse: Agents can "learn" from previous steps and apply that knowledge to future tasks, reducing redundant computation and improving efficiency (e.g., an agent recalling a previously researched flight option for itinerary planning).
Collaboration: Shared memory enables agents to pass insights and results to one another seamlessly, fostering effective teamwork. By setting
memory=True
in yourCrew
definition, you enable this crucial functionality.
Best Practices for Building CrewAI Applications
Start Simple: Begin with a sequential process and a few agents, then gradually introduce complexity.
Clear and Concise Definitions: Ensure your agent roles, goals, backstories, task descriptions, and expected outputs are as clear and specific as possible. Ambiguity can lead to unexpected behaviors.
Iterate and Refine: AI agent systems often require fine-tuning. Test your crew with various inputs, analyze the verbose output, and refine agent and task definitions as needed.
Choose the Right Tools: Only provide agents with the tools they genuinely need for their assigned tasks to avoid unnecessary complexity and potential misuse.
Leverage Context: Effectively use the
context
parameter in tasks to ensure information flows correctly between agents and tasks.Monitor Verbosity: Set
verbose=2
during development to get detailed logs of agent thoughts and actions, which is invaluable for debugging and understanding the workflow.
A Comprehensive Example: The Travel Agent Crew
Let's illustrate CrewAI's power with a practical example: building a multi-agent travel planning system.
The Problem: Automated Travel Itinerary Creation
Planning a trip can be complex, involving researching flights, finding suitable hotels, checking weather forecasts, and compiling all this information into a cohesive itinerary. This is a perfect scenario for a multi-agent system, where specialized AI agents can collaborate to handle each aspect efficiently and accurately.
Initial Setup: Environment and Tools
Before defining our agents and tasks, we need to set up the environment, including API keys, and initialize the tools our agents will use for web searching and scraping.
import warnings
warnings.filterwarnings('ignore')
import os
from crewai_tools import (
ScrapeWebsiteTool,
SerperDevTool
)
# Search helpers for flight aggregation sites
def get_flight_search_queries(origin, destination, start_date, end_date):
"""Generate multiple search queries for different flight platforms."""
return [
f"flights {origin} to {destination} {start_date} {end_date}",
f"Kayak flights {origin} {destination} {start_date}",
f"Google Flights {origin} to {destination}",
f"Expedia flights {origin} {destination}",
f"cheap flights {origin} {destination} August 2025",
f"flight comparison {origin} {destination}"
]
def get_booking_search_query(destination, start_date, end_date, preferences=""):
"""Generate optimized search query for Booking.com."""
return f"site:booking.com hotels {destination} {start_date} {end_date} {preferences}"
# Configuration and Error Handling
def setup_environment():
"""Set up environment variables with proper error handling."""
# TODO: Replace with your actual OpenAI API key after adding credits
openai_key = "" # Update this with your new key
serper_key = "" # Update this with your Serper API key
if not openai_key.startswith('sk-'):
raise ValueError("Invalid OpenAI API key format")
# Set environment variables
os.environ["OPENAI_API_KEY"] = openai_key
os.environ["OPENAI_MODEL_NAME"] = 'gpt-3.5-turbo' # Cheaper alternative
os.environ["SERPER_API_KEY"] = serper_key
print("✅ Environment variables configured successfully")
# Initialize tools with error handling
def initialize_tools():
"""Initialize tools with proper error handling."""
try:
search_tool = SerperDevTool()
scrape_tool = ScrapeWebsiteTool()
print("✅ Tools initialized successfully")
return search_tool, scrape_tool
except Exception as e:
print(f"❌ Error initializing tools: {str(e)}")
raise
# Setup environment
setup_environment()
search_tool, scrape_tool = initialize_tools()
What Agents are Needed?
To build our travel planner, we need a team of specialized agents, each focusing on a distinct part of the travel planning process:
Flight Booking Specialist: To find the best flight options across multiple platforms.
Hotel Booking Specialist: To recommend suitable accommodations from Booking.com.
Weather Analyst: To provide accurate weather forecasts.
Travel Itinerary Creator: To compile all information into a comprehensive daily plan.
Defining the Agents
Each agent is given a role
, a goal
, and a backstory
to provide context and guide its behavior. They are also assigned the tools
they will need to perform their tasks. Notice the max_iter
parameter which acts as a guardrail to prevent an agent from getting stuck in an endless loop.
from crewai import Agent
flight_agent = Agent(
role="Flight Booking Specialist",
goal="Find optimal flights based on user preferences across various aggregation sites",
backstory="""You are an expert flight booking specialist with years of experience.
You excel at finding the best flight options considering cost, convenience, and travel time by
leveraging multiple flight comparison and booking websites.""",
tools=[search_tool, scrape_tool],
verbose=True,
allow_delegation=False,
max_iter=3
)
hotel_agent = Agent(
role="Hotel Booking Specialist",
goal="Find the best hotels on Booking.com based on traveler preferences",
backstory="""You are a seasoned hotel booking specialist with extensive expertise in using Booking.com.
You understand how to search, filter, and evaluate hotels on Booking.com's platform. You excel at
finding accommodations that match specific requirements like star ratings, location preferences,
amenities, and guest satisfaction scores using Booking.com's detailed listings and reviews.""",
tools=[search_tool, scrape_tool],
verbose=True,
allow_delegation=False,
max_iter=3
)
weather_agent = Agent(
role="Weather Analyst",
goal="Provide accurate weather forecasts for travel planning",
backstory="""You are a professional meteorologist specializing in travel weather forecasting.
Your forecasts help travelers plan activities and pack appropriately. You use web search to get the most
up-to-date weather data for specific locations and dates.""",
tools=[search_tool, scrape_tool],
verbose=True,
allow_delegation=False,
max_iter=3
)
itinerary_agent = Agent(
role="Travel Itinerary Creator",
goal="Create comprehensive day-by-day travel itineraries",
backstory="""You are an expert travel planner who creates detailed, practical,
and enjoyable travel itineraries by integrating all travel components: flights, hotels, and weather.
You synthesize information from other specialists to craft a seamless travel experience.""",
tools=[search_tool, scrape_tool],
verbose=True,
allow_delegation=False,
max_iter=3
)
How Tasks Can Be Defined
Tasks are the specific assignments given to agents. Each task has a description
outlining what needs to be done, an expected_output
defining the desired result, and is assigned to a specific agent
. Importantly, tasks can specify context
dependencies, meaning a task will only run once its prerequisite tasks are completed, allowing it to use their outputs.
from crewai import Task
flight_task = Task(
description="""Find the best flight options from {origin} to {destination} departing on {start_date}
and returning on {end_date}. Focus on {flight_preference}.
SEARCH STRATEGY: Use multiple flight aggregation and comparison websites for comprehensive results.
Search Process:
1. Start with general search queries for flights: "flights {origin} to {destination} {start_date} {end_date}"
2. Expand search to specific popular platforms like Kayak, Google Flights, Expedia, Momondo, and Skyscanner.
3. Look for flight comparison sites that consolidate results from various airlines.
4. Focus on finding round-trip flights with major airlines.
5. Compare prices, total duration of travel, number of layovers, and departure/arrival times across all gathered sources.
6. Use the scrape tool on the most promising flight search result pages to get detailed information.""",
expected_output="""Comprehensive flight recommendations from flight aggregation sites including:
- Top 3 flight options (airline, estimated price range, total duration, number of stops).
- Specific departure and arrival times for both outbound and return flights.
- Layover details and connecting airports if applicable.
- A summary of price comparisons across different booking platforms.
- A clear 'best value' recommendation based on the specified '{flight_preference}'.
- Suggestions for which booking platforms or airlines might offer the best deals.
- Alternative date suggestions if significantly better prices are identified around the travel dates.""",
agent=flight_agent
)
hotel_task = Task(
description="""Find hotels in {destination} for check-in on {start_date}
and check-out on {end_date}. Look for {hotel_preference}.
IMPORTANT: Search specifically on Booking.com for hotel information, focusing on quality and location.
Search Process:
1. Use the search tool to find "Booking.com hotels {destination} {start_date} {end_date} {hotel_preference}".
2. Use the scrape tool on relevant Booking.com URLs to get detailed hotel information.
3. Filter for hotels that strictly match the '{hotel_preference}' criteria (e.g., 4+ star ratings, close proximity to the city center).
4. Focus on key criteria: precise location, available amenities (e.g., free WiFi, breakfast, pool, gym),
recent guest rating scores, and pricing per night/total stay.
5. Prioritize hotels located directly in the city center or within easy access to major attractions.""",
expected_output="""A markdown-formatted list of hotel recommendations from Booking.com, including:
- Top 5 hotel options (name, actual star rating, estimated price per night, total estimated cost for the stay).
- Precise hotel location and approximate distance from the city center or key attractions.
- A clear list of key amenities available.
- Summarized guest rating scores and highlights from recent reviews.
- Information on booking availability and cancellation policies (if explicitly available on the scraped page).
- A 'best value' recommendation based on the specified '{hotel_preference}'.""",
agent=hotel_agent
)
weather_task = Task(
description="""Get a detailed weather forecast for {destination} from {start_date} to {end_date}.
Research and include:
- Daily temperature ranges (highs and lows) in Celsius.
- Expected weather conditions for each day (e.g., sunny, cloudy, rainy).
- Probability of rainfall for each day.
- General packing recommendations based on the forecast (e.g., 'pack light clothes and an umbrella').""",
expected_output="""A concise weather forecast for {destination} from {start_date} to {end_date}, including:
- Daily high and low temperatures (in Celsius).
- A description of the expected weather conditions for each day (e.g., 'Sunny', 'Partly Cloudy', 'Rain Showers').
- The probability of precipitation for each day.
- Tailored packing recommendations based on the overall weather outlook.""",
agent=weather_agent
)
itinerary_task = Task(
description="""Create a comprehensive, day-by-day travel itinerary for a trip to {destination}
from {start_date} to {end_date}. Incorporate details from the provided flight, hotel, and weather information.
The itinerary should be engaging, practical, and consider the user's '{travel_preference}' for local transportation.
Integrate the following:
- Precise flight arrival and departure times for both legs of the journey.
- The name and location of the recommended hotel, highlighting its key amenities.
- Daily activities planned with consideration for the weather forecast (e.g., indoor activities on rainy days).
- Clear suggestions for local transportation arrangements, aligning with '{travel_preference}'.
- Local insights and tips to enhance the travel experience.""",
expected_output="""A complete, markdown-formatted travel itinerary document, structured as follows:
## Travel Summary
- **Flight Details:** Inbound and outbound flight information (airlines, timings).
- **Hotel Information:** Name, location, and key features of the recommended hotel.
- **Overall Weather Outlook:** A summary of the expected weather during the trip.
## Daily Plan (Day 1 - Day X)
- **Each day will have:**
- Date and day of the week.
- Expected weather for the day.
- Suggested activities (e.g., "Morning: Visit the Colosseum," "Afternoon: Explore Trastevere").
- Recommended local transportation for the day's activities, considering '{travel_preference}'.
- Meal suggestions (e.g., "Lunch: Local trattoria," "Dinner: Rooftop restaurant").
## Travel Tips
- Practical local information (e.g., currency, emergency numbers).
- Useful recommendations for activities, food, or cultural etiquette.
- Advice on utilizing '{travel_preference}' effectively.""",
context=[flight_task, hotel_task, weather_task],
agent=itinerary_agent
)
Setting up the Crew and Inputs
The Crew
orchestrates the entire workflow. We define the list of agents
and tasks
it will manage. For this example, we'll use a sequential
process, meaning tasks run one after another. We also define a dictionary travel_inputs
to pass dynamic information to our tasks.
from crewai import Crew
# Create the crew with a sequential process
travel_crew = Crew(
agents=[flight_agent, hotel_agent, weather_agent, itinerary_agent],
tasks=[flight_task, hotel_task, weather_task, itinerary_task],
verbose=True,
memory=False,
process="sequential"
)
# Define the dynamic inputs for the travel planning
travel_inputs = {
"origin": "Perth",
"destination": "Delhi",
"start_date": "2025-08-15",
"end_date": "2025-08-25",
"flight_preference": "shortest duration",
"hotel_preference": "4+ star hotels, closer to city center",
"travel_preference": "Private taxi and ride-sharing services"
}
Running the Crew
To initiate the travel planning, we call the kickoff()
method on the travel_crew
object, passing in our travel_inputs
. The crew will then manage the agents and tasks, executing them in the defined sequence, and producing the final itinerary. The plan_travel_safe
function wraps this execution with helpful print statements and basic error handling.
The following is an excerpt from a successful run of the TravelPlanner.py
script, demonstrating the agents' collaboration and the final generated travel itinerary:
✅ Environment variables configured successfully
✅ Tools initialized successfully
🌍 CrewAI Travel Planner - Multi-Platform Search
==============================
✈️ Flight searches: Multiple aggregation sites (Kayak, Google Flights, Expedia, etc.)
🏨 Hotel searches: Booking.com
==============================
🚀 Starting travel planning process...
Planning trip from Perth to Delhi
Travel dates: 2025-08-15 to 2025-08-25
--------------------------------------------------
🔧 Testing crew configuration...
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── Crew Execution Started ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Crew Execution Started │
│ Name: crew │
│ ID: bf25a25b-5c00-48c8-858c-0d66fe29b4d1 │
│ Tool Args: │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
🚀 Crew: crew
└── 📋 Task: 3a0347c5-a121-4adf-aaec-ddb38d827fee
Status: Executing Task...
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 🤖 Agent Started ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Agent: Flight Booking Specialist │
│ │
│ Task: Find the best flight options from Perth to Delhi departing on 2025-08-15 │
│ and returning on 2025-08-25. Focus on shortest duration. │
│ │
│ SEARCH STRATEGY: Use multiple flight aggregation and comparison websites for comprehensive results. │
│ │
│ Search Process: │
│ 1. Start with general search: "flights Perth to Delhi 2025-08-15 2025-08-25" │
│ 2. Search specific platforms: "Kayak flights Perth Delhi", "Google Flights Perth to Delhi" │
│ 3. Try alternative searches: "Expedia flights", "Momondo flights", "Skyscanner flights" │
│ 4. Look for flight comparison sites and travel booking platforms │
│ 5. Focus on round-trip flights with major airlines │
│ 6. Compare prices, duration, layovers, and departure times across sources │
│ 7. Use scrape tool on the best flight search result pages found │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
... (Agent thoughts and tool usage logs omitted for brevity) ...
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ✅ Agent Final Answer ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Agent: Flight Booking Specialist │
│ │
│ Final Answer: │
│ Comprehensive flight recommendations from flight aggregation sites including: │
│ - Top 3 flight options (airline, price range, duration, number of stops) │
│ 1. **Singapore Airlines** │
│ - Airline: Singapore Airlines │
│ - Price Range: From AUD 756* │
│ - Duration: Varies │
│ - Number of Stops: Direct and layover options │
│ - Departure and Arrival Times: Flexible │
│ - Best Value Recommendation: Competitive prices │
│ 2. **Thai Airways** │
│ - Airline: Thai Airways │
│ - Price Range: From AUD 731* │
│ - Duration: Varies │
│ - Number of Stops: Direct and layover options │
│ - Departure and Arrival Times: Flexible │
│ - Best Value Recommendation: Affordable with good service │
│ 3. **Emirates** │
│ - Airline: Emirates │
│ - Price Range: From AUD 1,000* │
│ - Duration: Varies │
│ - Number of Stops: Direct and layover options │
│ - Departure and Arrival Times: Flexible │
│ - Best Value Recommendation: Premium services │
│ - Departure and arrival times for outbound and return flights: Specific times vary by chosen flight, please check booking links. │
│ - Layover details and connecting airports if applicable: Depends on chosen flight, direct options available. │
│ - Price comparison across different booking platforms: Prices from various sites like Kayak, Skyscanner, Expedia are considered and the above recommendations are based on competitive findings. │
│ - Best value recommendation based on shortest duration: Singapore Airlines and Thai Airways often offer shorter durations with competitive pricing. │
│ - Booking platform recommendations (which site had the best deals): Kayak.com, Skyscanner.com, Google Flights, Expedia.com, Momondo.com are recommended for booking. │
│ - Alternative date suggestions if better prices available: No alternative date suggestions for better prices found within the specified range. │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
🚀 Crew: crew
└── 📋 Task: 3a0347c5-a121-4adf-aaec-ddb38d827fee
Assigned to: Flight Booking Specialist
Status: ✅ Completed
├── 🔧 Used Search the internet with Serper (1)
├── 🔧 Used Read website content (1)
└── 🔧 Used Search the internet with Serper (2)
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── Task Completion ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Task Completed │
│ Name: 3a0347c5-a121-4adf-aaec-ddb38d827fee │
│ Agent: Flight Booking Specialist │
│ Tool Args: │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
🚀 Crew: crew
├── 📋 Task: 3a0347c5-a121-4adf-aaec-ddb38d827fee
│ Assigned to: Flight Booking Specialist
│ Status: ✅ Completed
│ ├── 🔧 Used Search the internet with Serper (1)
│ ├── 🔧 Used Read website content (1)
│ └── 🔧 Used Search the internet with Serper (2)
└── 📋 Task: cee258c3-d452-4f07-b637-59425412a9a5
Status: Executing Task...
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 🤖 Agent Started ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Agent: Hotel Booking Specialist │
│ │
│ Task: Find hotels in Delhi for check-in on 2025-08-15 │
│ and check-out on 2025-08-25. Look for 4+ star hotels, closer to city center. │
│ │
│ IMPORTANT: Search specifically on Booking.com for hotel information. │
│ │
│ Search Process: │
│ 1. Use search tool to find "Booking.com hotels Delhi 2025-08-15 2025-08-25" │
│ 2. Use scrape tool on Booking.com URLs to get detailed hotel information │
│ 3. Filter for hotels matching 4+ star hotels, closer to city center │
│ 4. Focus on location, amenities, guest ratings, and pricing │
│ 5. Look for hotels in city center or near major attractions │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
... (Agent thoughts and tool usage logs omitted for brevity) ...
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ✅ Agent Final Answer ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Agent: Hotel Booking Specialist │
│ │
│ Final Answer: │
│ Hotel recommendations from Booking.com with: │
│ - Top 5 hotel options (name, star rating, price per night, total cost) │
│ 1. **ibis New Delhi Aerocity - An Accor Brand** │
│ - Price per Night: AUD 84.29 │
│ - Location: Aerocity, New Delhi │
│ - Guest Rating: 6.9/10 │
│ 2. **Novotel New Delhi Aerocity** │
│ - Price per Night: AUD 166.83 │
│ - Location: Aerocity, New Delhi │
│ - Guest Rating: 7.8/10 │
│ 3. **Aloft New Delhi Aerocity** │
│ - Price per Night: AUD 190.30 │
│ - Location: Aerocity, New Delhi │
│ - Guest Rating: 8.4/10 │
│ 4. **The Ashok, New Delhi** │
│ - Price per Night: AUD 164.44 │
│ - Location: Chanakyapuri, New Delhi │
│ - Guest Rating: 5.9/10 │
│ 5. **Radisson Blu Hotel New Delhi Dwarka** │
│ - Price per Night: AUD 226.92 │
│ - Location: Dwarka, New Delhi │
│ - Guest Rating: 7.8/10 │
│ - Hotel location and distance from city center: Locations are provided above. Further details can be found on Booking.com. │
│ - Key amenities (WiFi, breakfast, pool, gym, etc.): Specific amenities vary by hotel, please check detailed listings on Booking.com. │
│ - Guest rating scores and review highlights: Ratings provided above. Highlights available on Booking.com. │
│ - Booking availability and cancellation policies: Available on Booking.com for specific dates. │
│ - Best value recommendation based on 4+ star hotels, closer to city center: Aloft New Delhi Aerocity (highest rating among 4+ star options listed). │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
🚀 Crew: crew
└── 📋 Task: cee258c3-d452-4f07-b637-59425412a9a5
Assigned to: Hotel Booking Specialist
Status: ✅ Completed
├── 🔧 Used Search the internet with Serper (3)
└── 🔧 Used Read website content (2)
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── Task Completion ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Task Completed │
│ Name: cee258c3-d452-4f07-b637-59425412a9a5 │
│ Agent: Hotel Booking Specialist │
│ Tool Args: │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
🚀 Crew: crew
├── 📋 Task: 3a0347c5-a121-4adf-aaec-ddb38d827fee
│ Assigned to: Flight Booking Specialist
│ Status: ✅ Completed
│ ├── 🔧 Used Search the internet with Serper (1)
│ ├── 🔧 Used Read website content (1)
│ └── 🔧 Used Search the internet with Serper (2)
├── 📋 Task: cee258c3-d452-4f07-b637-59425412a9a5
│ Assigned to: Hotel Booking Specialist
│ Status: ✅ Completed
│ ├── 🔧 Used Search the internet with Serper (3)
│ └── 🔧 Used Read website content (2)
└── 📋 Task: 673fdd9f-5668-4da7-8755-b8aca950deaf
Status: Executing Task...
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 🤖 Agent Started ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Agent: Weather Analyst │
│ │
│ Task: Get weather forecast for Delhi from 2025-08-15 to 2025-08-25. │
│ │
│ Research: │
│ - Daily temperature ranges │
│ - Expected weather conditions │
│ - Rainfall probability │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
... (Agent thoughts and tool usage logs omitted for brevity) ...
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ✅ Agent Final Answer ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Agent: Weather Analyst │
│ │
│ Final Answer: │
│ Weather in Delhi for August 2025 │
│ Your guide to Delhi weather in August - trends and predictions │
│ │
│ Temperatures: │
│ In general, the average temperature in Delhi at the beginning of August is 34.9 °C. As the month progresses, temperatures tend to moderately rise, reaching an average of 36.6 °C by the end of August. │
│ │
│ Rain: │
│ Delhi experiences heavy rainfall in August, with over 20 rainy days and an average total precipitation of 208 mm. Take preparations for wet conditions when planning activities. │
│ │
│ Packing Recommendations: │
│ Given the high temperatures and significant rainfall, it is advisable to pack light clothing that is breathable and water-resistant. Carry an umbrella or a raincoat in case of sudden showers. │
│ │
│ Please note that weather conditions can vary, so it's recommended to check the forecast closer to your planned date for the most up-to-date information. │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
🚀 Crew: crew
└── 📋 Task: 673fdd9f-5668-4da7-8755-b8aca950deaf
Assigned to: Weather Analyst
Status: ✅ Completed
├── 🔧 Used Search the internet with Serper (4)
└── 🔧 Used Read website content (3)
╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── Task Completion ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Task Completed │
│ Name: 673fdd9f-5668-4da7-8755-b8aca950deaf │
│ Agent: Weather Analyst │
│ Tool Args: │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
🚀 Crew: crew
├── 📋 Task: 3a0347c5-a121-4adf-aaec-ddb38d827fee
│ Assigned to: Flight Booking Specialist
│ Status: ✅ Completed
│ ├── 🔧 Used Search the internet with Serper (1)
│ ├── 🔧 Used Read website content (1)
│ └── 🔧 Used Search the internet with Serper (2)
├── 📋 Task: cee258c3-d452-4f07-b637-59425412a9a5
│ Assigned to: Hotel Booking Specialist
│ Status: ✅ Completed
│ ├── 🔧 Used Search the internet with Serper (3)
│ └── 🔧 Used Read website content (2)
├── 📋 Task: 673fdd9f-5668-4da7-8755-b8aca950deaf
│ Assigned to: Weather Analyst
│ Status: ✅ Completed
│ ├── 🔧 Used Search the internet with Serper (4)
│ └── 🔧 Used Read website content (3)
└── 📋 Task: aabee7c3-e7ee-48ca-a7e4-dc47c66c3ee1
Status: Executing Task...
╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 🤖 Agent Started ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Agent: Travel Itinerary Creator │
│ │
│ Task: Create a travel itinerary combining flights, hotels, and weather information. │
│ Include Private taxi and ride-sharing services for local transportation. │
│ │
│ Integrate: │
│ - Flight arrival/departure times │
│ - Hotel location and amenities │
│ - Weather-appropriate activities │
│ - Transportation options │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
... (Agent thoughts and tool usage logs omitted for brevity) ...
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ✅ Agent Final Answer ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Agent: Travel Itinerary Creator │
│ │
│ Final Answer: │
│ ## Travel Summary │
│ - **Flight Details:** │
│ 1. **Singapore Airlines** │
│ - Airline: Singapore Airlines │
│ - Price Range: From AUD 756* │
│ - Duration: Varies │
│ - Number of Stops: Direct and layover options │
│ - Departure and Arrival Times: Flexible │
│ - Best Value Recommendation: Competitive prices │
│ 2. **Thai Airways** │
│ - Airline: Thai Airways │
│ - Price Range: From AUD 731* │
│ - Duration: Varies │
│ - Number of Stops: Direct and layover options │
│ - Departure and Arrival Times: Flexible │
│ - Best Value Recommendation: Affordable with good service │
│ 3. **Emirates** │
│ - Airline: Emirates │
│ - Price Range: From AUD 1,000* │
│ - Duration: Varies │
│ - Number of Stops: Direct and layover options │
│ - Departure and Arrival Times: Flexible │
│ - Best Value Recommendation: Premium services │
│ │
│ - **Hotel Information:** │
│ 1. **ibis New Delhi Aerocity - An Accor Brand** │
│ - Price per Night: AUD 84.29 │
│ - Location: Aerocity, New Delhi │
│ - Guest Rating: 6.9/10 │
│ 2. **Novotel New Delhi Aerocity** │
│ - Price per Night: AUD 166.83 │
│ - Location: Aerocity, New Delhi │
│ - Guest Rating: 7.8/10 │
│ 3. **Aloft New Delhi Aerocity** │
│ - Price per Night: AUD 190.30 │
│ - Location: Aerocity, New Delhi │
│ - Guest Rating: 8.4/10 │
│ 4. **The Ashok, New Delhi** │
│ - Price per Night: AUD 164.44 │
│ - Location: Chanakyapuri, New Delhi │
│ - Guest Rating: 5.9/10 │
│ 5. **Radisson Blu Hotel New Delhi Dwarka** │
│ - Price per Night: AUD 226.92 │
│ - Location: Dwarka, New Delhi │
│ - Guest Rating: 7.8/10 │
│ │
│ ## Daily Plan │
│ - **Day 1: Arrival in Delhi** │
│ - Check-in at the chosen hotel in Aerocity, New Delhi │
│ - Relax and unwind after the flight │
│ - Weather conditions: High temperature ranging from 25.8°C to 32.3°C with occasional rainfall │
│ │
│ - **Day 2-9: Stay in Delhi** │
│ - Explore the local attractions like Qutub Minar, India Gate, and Lotus Temple │
│ - Enjoy shopping at Chandni Chowk and Dilli Haat │
│ - Sample delicious street food and traditional Indian cuisine │
│ - Weather conditions: High temperatures between 84°F and 96°F, staying hydrated is essential │
│ │
│ - **Day 10: Departure from Delhi** │
│ - Transfer to the airport for your return flight │
│ │
│ ## Travel Tips │
│ - Carry lightweight and breathable clothing for the hot weather in Delhi │
│ - Stay hydrated and protect yourself from the sun │
│ - Use private taxis or ride-sharing services for convenient transportation within the city │
│ │
│ Enjoy your trip to Delhi in August 2025! │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✅ Travel planning completed successfully!
==================================================
## Travel Summary
- **Flight Details:**
1. **Singapore Airlines**
- Airline: Singapore Airlines
- Price Range: From AUD 756*
- Duration: Varies
- Number of Stops: Direct and layover options
- Departure and Arrival Times: Flexible
- Best Value Recommendation: Competitive prices
2. **Thai Airways**
- Airline: Thai Airways
- Price Range: From AUD 731*
- Duration: Varies
- Number of Stops: Direct and layover options
- Departure and Arrival Times: Flexible
- Best Value Recommendation: Affordable with good service
3. **Emirates**
- Airline: Emirates
- Price Range: From AUD 1,000*
- Duration: Varies
- Number of Stops: Direct and layover options
- Departure and Arrival Times: Flexible
- Best Value Recommendation: Premium services
- **Hotel Information:**
1. **ibis New Delhi Aerocity - An Accor Brand**
- Price per Night: AUD 84.29
- Location: Aerocity, New Delhi
- Guest Rating: 6.9/10
2. **Novotel New Delhi Aerocity**
- Price per Night: AUD 166.83
- Location: Aerocity, New Delhi
- Guest Rating: 7.8/10
3. **Aloft New Delhi Aerocity**
- Price per Night: AUD 190.30
- Location: Aerocity, New Delhi
- Guest Rating: 8.4/10
4. **The Ashok, New Delhi**
- Price per Night: AUD 164.44
- Location: Chanakyapuri, New Delhi
- Guest Rating: 5.9/10
5. **Radisson Blu Hotel New Delhi Dwarka**
- Price per Night: AUD 226.92
- Location: Dwarka, New Delhi
- Guest Rating: 7.8/10
## Daily Plan
- **Day 1: Arrival in Delhi**
- Check-in at the chosen hotel in Aerocity, New Delhi
- Relax and unwind after the flight
- Weather conditions: High temperature ranging from 25.8°C to 32.3°C with occasional rainfall
- **Day 2-9: Stay in Delhi**
- Explore the local attractions like Qutub Minar, India Gate, and Lotus Temple
- Enjoy shopping at Chandni Chowk and Dilli Haat
- Sample delicious street food and traditional Indian cuisine
- Weather conditions: High temperatures between 84°F and 96°F, staying hydrated is essential
- **Day 10: Departure from Delhi**
- Transfer to the airport for your return flight
## Travel Tips
- Carry lightweight and breathable clothing for the hot weather in Delhi
- Stay hydrated and protect yourself from the sun
- Use private taxis or ride-sharing services for convenient transportation within the city
Enjoy your trip to Delhi in August 2025!
Subscribe to my newsletter
Read articles from sambit choudhury directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
