{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Build your first Agent with memory ft. MCP" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from crewai import Crew, Process, Task, Agent\n", "from dotenv import load_dotenv\n", "\n", "load_dotenv()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Setup a local LLM" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "from crewai import LLM\n", "\n", "llm = LLM(\n", " model=\"ollama/llama3.2\",\n", " base_url=\"http://localhost:11434\"\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simple QA crew" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
╭──────────────────────────────────────────── Crew Execution Started ─────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Crew Execution Started                                                                                         \n",
       "  Name: crew                                                                                                     \n",
       "  ID: 205863a2-c452-466a-82f4-c6c3f3620ea7                                                                       \n",
       "  Tool Args:                                                                                                     \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[36m╭─\u001b[0m\u001b[36m───────────────────────────────────────────\u001b[0m\u001b[36m Crew Execution Started \u001b[0m\u001b[36m────────────────────────────────────────────\u001b[0m\u001b[36m─╮\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[1;36mCrew Execution Started\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[36mcrew\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[37mID: \u001b[0m\u001b[36m205863a2-c452-466a-82f4-c6c3f3620ea7\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭─────────────────────────────────────────────── 🤖 Agent Started ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Virtual Assistant                                                                                       \n",
       "                                                                                                                 \n",
       "  Task: Provide an answer to the user's What is the capital of Spain?.                                           \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[35m╭─\u001b[0m\u001b[35m──────────────────────────────────────────────\u001b[0m\u001b[35m 🤖 Agent Started \u001b[0m\u001b[35m───────────────────────────────────────────────\u001b[0m\u001b[35m─╮\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mVirtual Assistant\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mTask: \u001b[0m\u001b[92mProvide an answer to the user's What is the capital of Spain?.\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭───────────────────────────────────────────── ✅ Agent Final Answer ─────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Virtual Assistant                                                                                       \n",
       "                                                                                                                 \n",
       "  Final Answer:                                                                                                  \n",
       "  The capital of Spain is Madrid.                                                                                \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m────────────────────────────────────────────\u001b[0m\u001b[32m ✅ Agent Final Answer \u001b[0m\u001b[32m────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mVirtual Assistant\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mFinal Answer:\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mThe capital of Spain is Madrid.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭──────────────────────────────────────────────── Task Completion ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Task Completed                                                                                                 \n",
       "  Name: 4e42aeb2-594b-4018-9890-5e061311221f                                                                     \n",
       "  Agent: Virtual Assistant                                                                                       \n",
       "  Tool Args:                                                                                                     \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m Task Completion \u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[1;32mTask Completed\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[32m4e42aeb2-594b-4018-9890-5e061311221f\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[32mVirtual Assistant\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
╭──────────────────────────────────────────────── Crew Completion ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Crew Execution Completed                                                                                       \n",
       "  Name: crew                                                                                                     \n",
       "  ID: 205863a2-c452-466a-82f4-c6c3f3620ea7                                                                       \n",
       "  Tool Args:                                                                                                     \n",
       "  Final Output: The capital of Spain is Madrid.                                                                  \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m Crew Completion \u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[1;32mCrew Execution Completed\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[32mcrew\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mID: \u001b[0m\u001b[32m205863a2-c452-466a-82f4-c6c3f3620ea7\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mFinal Output: The capital of Spain is Madrid.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The capital of Spain is Madrid.\n" ] } ], "source": [ "virtual_assistant = Agent(\n", " role=\"Virtual Assistant\",\n", " goal=\"Help the user with their questions\",\n", " backstory=\"You are an agent that can help the user with their questions.\",\n", " allow_delegation=False,\n", " llm=llm\n", ")\n", "\n", "assistant_task = Task(\n", " description=\"Provide an answer to the user's {query}.\",\n", " agent=virtual_assistant,\n", " expected_output=\"A concise answer to the user's query.\",\n", ")\n", "\n", "crew = Crew(\n", " agents=[virtual_assistant],\n", " tasks=[assistant_task],\n", " verbose=True,\n", ")\n", "\n", "result = crew.kickoff(inputs={\"query\": \"What is the capital of Spain?\"})\n", "print(result)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Tracing and observability" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "OPIK: Existing Opik clients will not use updated values for \"url\", \"api_key\", \"workspace\".\n", "OPIK: Opik is already configured. You can check the settings by viewing the config file at /Users/akshay/.opik.config\n" ] } ], "source": [ "import opik\n", "\n", "opik.configure(use_local=False)\n", "\n", "from opik.integrations.crewai import track_crewai\n", "\n", "track_crewai(project_name=\"crewai-integration-demo\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Web Search tool" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import os\n", "print(os.getenv(\"LINKUP_API_KEY\"))\n" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [], "source": [ "from pydantic import BaseModel, Field\n", "from linkup import LinkupClient\n", "from typing import Type\n", "from crewai.tools import BaseTool\n", "import os\n", "\n", "class LinkUpSearchInput(BaseModel):\n", " \"\"\"Input schema for LinkUp Search Tool.\"\"\"\n", " query: str = Field(description=\"The search query to perform\")\n", " depth: str = Field(default=\"standard\",\n", " description=\"Depth of search: 'standard' or 'deep'\")\n", " output_type: str = Field(\n", " default=\"searchResults\", description=\"Output type: 'searchResults', 'sourcedAnswer', or 'structured'\")\n", "\n", "\n", "class LinkUpSearchTool(BaseTool):\n", " name: str = \"LinkUp Search\"\n", " description: str = \"Search the web for information using LinkUp and return comprehensive results\"\n", " args_schema: Type[BaseModel] = LinkUpSearchInput\n", "\n", " def __init__(self):\n", " super().__init__()\n", "\n", " def _run(self, query: str, depth: str = \"standard\", output_type: str = \"searchResults\") -> str:\n", " \"\"\"Execute LinkUp search and return results.\"\"\"\n", " try:\n", " # Initialize LinkUp client with API key from environment variables\n", " linkup_client = LinkupClient(api_key=os.getenv(\"LINKUP_API_KEY\"))\n", "\n", " # Perform search\n", " search_response = linkup_client.search(\n", " query=query,\n", " depth=depth,\n", " output_type=output_type\n", " )\n", "\n", " return str(search_response)\n", " except Exception as e:\n", " return f\"Error occurred while searching: {str(e)}\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Crew with tools" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
╭──────────────────────────────────────────── Crew Execution Started ─────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Crew Execution Started                                                                                         \n",
       "  Name: crew                                                                                                     \n",
       "  ID: 779faaeb-5a67-41e0-9f33-35282486146b                                                                       \n",
       "  Tool Args:                                                                                                     \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[36m╭─\u001b[0m\u001b[36m───────────────────────────────────────────\u001b[0m\u001b[36m Crew Execution Started \u001b[0m\u001b[36m────────────────────────────────────────────\u001b[0m\u001b[36m─╮\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[1;36mCrew Execution Started\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[36mcrew\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[37mID: \u001b[0m\u001b[36m779faaeb-5a67-41e0-9f33-35282486146b\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭─────────────────────────────────────────────── 🤖 Agent Started ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Web Search Agent                                                                                        \n",
       "                                                                                                                 \n",
       "  Task: Search the web for information about Give me a summary of what is happening in Wimbeldon 2025?.          \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[35m╭─\u001b[0m\u001b[35m──────────────────────────────────────────────\u001b[0m\u001b[35m 🤖 Agent Started \u001b[0m\u001b[35m───────────────────────────────────────────────\u001b[0m\u001b[35m─╮\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mWeb Search Agent\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mTask: \u001b[0m\u001b[92mSearch the web for information about Give me a summary of what is happening in Wimbeldon 2025?.\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
/Users/akshay/Eigen/ai-engineering-hub/agent-with-mcp-memory/.venv/lib/python3.12/site-packages/rich/live.py:231: \n",
       "UserWarning: install \"ipywidgets\" for Jupyter support\n",
       "  warnings.warn('install \"ipywidgets\" for Jupyter support')\n",
       "
\n" ], "text/plain": [ "/Users/akshay/Eigen/ai-engineering-hub/agent-with-mcp-memory/.venv/lib/python3.12/site-packages/rich/live.py:231: \n", "UserWarning: install \"ipywidgets\" for Jupyter support\n", " warnings.warn('install \"ipywidgets\" for Jupyter support')\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭──────────────────────────────────────────── 🔧 Agent Tool Execution ────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Web Search Agent                                                                                        \n",
       "                                                                                                                 \n",
       "  Thought: Action: LinkUp Search                                                                                 \n",
       "                                                                                                                 \n",
       "  Using Tool: LinkUp Search                                                                                      \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[35m╭─\u001b[0m\u001b[35m───────────────────────────────────────────\u001b[0m\u001b[35m 🔧 Agent Tool Execution \u001b[0m\u001b[35m───────────────────────────────────────────\u001b[0m\u001b[35m─╮\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mWeb Search Agent\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mThought: \u001b[0m\u001b[92mAction: LinkUp Search\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mUsing Tool: \u001b[0m\u001b[1;92mLinkUp Search\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
╭────────────────────────────────────────────────── Tool Input ───────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  \"{\\\"query\\\": \\\"Wimbledon 2025 latest news\\\", \\\"depth\\\": \\\"standard\\\", \\\"output_type\\\": \\\"searchResults\\\"}\"     \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[34m╭─\u001b[0m\u001b[34m─────────────────────────────────────────────────\u001b[0m\u001b[34m Tool Input \u001b[0m\u001b[34m──────────────────────────────────────────────────\u001b[0m\u001b[34m─╮\u001b[0m\n", "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", "\u001b[34m│\u001b[0m \u001b[38;2;230;219;116;49m\"{\\\"query\\\": \\\"Wimbledon 2025 latest news\\\", \\\"depth\\\": \\\"standard\\\", \\\"output_type\\\": \\\"searchResults\\\"}\"\u001b[0m \u001b[34m│\u001b[0m\n", "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", "\u001b[34m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
╭────────────────────────────────────────────────── Tool Output ──────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  results=[LinkupSearchTextResult(type='text', name='Schedule - The Championships, Wimbledon',                   \n",
       "  url='https://www.wimbledon.com/en_GB/atoz/schedule.html', content='We cannot provide a description for this    \n",
       "  page right now\\nundefined'), LinkupSearchTextResult(type='text', name='Wimbledon 2025: Results & updates',     \n",
       "  url='https://www.lta.org.uk/fan-zone/wimbledon-championships/news/wimbledon-2025-results-updates/',            \n",
       "  content='Emma Raducanu, Cam Norrie & Sonay Kartal Into The Third Round 🍓 | Wimbledon 2025 Highlights |    \n",
       "  LTA · Draper, Evans & Pinnington Jones Storm Into Round Two 🔥 | Wimbledon 2025 Highlights | LTA\\nFollow   \n",
       "  the results and draws for every British player competing at Wimbledon 2025.\\nFind out everything you need to   \n",
       "  know about The Championships, Wimbledon 2025 including key dates, draws, order of play, scores and who is set  \n",
       "  to play.\\nEmma Raducanu, Cam Norrie & Sonay Kartal Into The Third Round 🍓 | Wimbledon 2025 Highlights | LTA   \n",
       "  · Draper, Evans & Pinnington Jones Storm Into Round Two 🔥 | Wimbledon 2025 Highlights | LTA\\nRaducanu,        \n",
       "  Boulter, Kartal, Fery, Harris, Norrie Win on Big Day for Brits | Wimbledon 2025 Highlights'),                  \n",
       "  LinkupSearchTextResult(type='text', name='Wimbledon 2025: London weather results in multiple fan-related heat  \n",
       "  delays, with Aryna Sabalenka stepping in to help - Yahoo Sports',                                              \n",
       "  url='https://sports.yahoo.com/tennis/breaking-news/article/wimbledon-2025-london-weather-results-in-multiple-  \n",
       "  fan-related-heat-delays-with-aryna-sabalenka-stepping-in-to-help-133351232.html', content=\"Sabalenka fought    \n",
       "  back in the second set, taking it 6-4 to take the game to a final set. After a fantastic, back-and-forth       \n",
       "  match, it was Anisimova who prevailed. She took down the No. 1 women's player 6-4, 4-6, 6-4 to advance    \n",
       "  to her first Wimbledon final.\\nSabalenka fought back in the second set, taking it 6-4 to take the game to a    \n",
       "  final set. After a fantastic, back-and-forth match, it was Anisimova who prevailed. She took down the No. 1    \n",
       "  women's player 6-4, 4-6, 6-4...                                                                                \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m─────────────────────────────────────────────────\u001b[0m\u001b[32m Tool Output \u001b[0m\u001b[32m─────────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mresults=[LinkupSearchTextResult(type='text', name='Schedule - The Championships, Wimbledon', \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92murl='https://www.wimbledon.com/en_GB/atoz/schedule.html', content='We cannot provide a description for this \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mpage right now\\nundefined'), LinkupSearchTextResult(type='text', name='Wimbledon 2025: Results & updates', \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92murl='https://www.lta.org.uk/fan-zone/wimbledon-championships/news/wimbledon-2025-results-updates/', \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mcontent='Emma Raducanu, Cam Norrie & Sonay Kartal Into The Third Round 🍓 | Wimbledon 2025 Highlights | \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mLTA · Draper, Evans & Pinnington Jones Storm Into Round Two 🔥 | Wimbledon 2025 Highlights | LTA\\nFollow \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mthe results and draws for every British player competing at Wimbledon 2025.\\nFind out everything you need to \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mknow about The Championships, Wimbledon 2025 including key dates, draws, order of play, scores and who is set\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mto play.\\nEmma Raducanu, Cam Norrie & Sonay Kartal Into The Third Round 🍓 | Wimbledon 2025 Highlights | LTA \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m· Draper, Evans & Pinnington Jones Storm Into Round Two 🔥 | Wimbledon 2025 Highlights | LTA\\nRaducanu, \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mBoulter, Kartal, Fery, Harris, Norrie Win on Big Day for Brits | Wimbledon 2025 Highlights'), \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mLinkupSearchTextResult(type='text', name='Wimbledon 2025: London weather results in multiple fan-related heat\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mdelays, with Aryna Sabalenka stepping in to help - Yahoo Sports', \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92murl='https://sports.yahoo.com/tennis/breaking-news/article/wimbledon-2025-london-weather-results-in-multiple-\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mfan-related-heat-delays-with-aryna-sabalenka-stepping-in-to-help-133351232.html', content=\"Sabalenka fought \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mback in the second set, taking it 6-4 to take the game to a final set. After a fantastic, back-and-forth \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mmatch, it was Anisimova who prevailed. She took down the No. 1 women's player 6-4, 4-6, 6-4 to advance \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mto her first Wimbledon final.\\nSabalenka fought back in the second set, taking it 6-4 to take the game to a \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mfinal set. After a fantastic, back-and-forth match, it was Anisimova who prevailed. She took down the No. 1 \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mwomen's player 6-4, 4-6, 6-4...\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭───────────────────────────────────────────── ✅ Agent Final Answer ─────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Web Search Agent                                                                                        \n",
       "                                                                                                                 \n",
       "  Final Answer:                                                                                                  \n",
       "  Wimbledon 2025 is underway at the All England Club in London, running from June 30 to July 13. The tournament  \n",
       "  has experienced some weather-related heat delays affecting matches. In the women's singles, Amanda Anisimova   \n",
       "  defeated top seed Aryna Sabalenka in a thrilling three-set match (6-4, 4-6, 6-4) to advance to her first       \n",
       "  Wimbledon final, while Iga Swiatek also reached the final after a dominant win (6-2, 6-0) over Belinda         \n",
       "  Bencic. This ensures a first-time women's Wimbledon champion in 2025, as defending champions have exited       \n",
       "  early. On the men's side, Carlos Alcaraz, the two-time defending champion aiming for a three-peat, advanced    \n",
       "  to the semifinals alongside Novak Djokovic, who will face Jannik Sinner in the other semifinal. Other notable  \n",
       "  performances include American Taylor Fritz reaching the men's semifinals and British players like Cameron      \n",
       "  Norrie having strong runs before being eliminated. The tournament has drawn a mix of sports stars,             \n",
       "  celebrities, and royalty to the royal box. Wimbledon 2025 continues to deliver historic and exciting moments   \n",
       "  with the finals imminent.                                                                                      \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m────────────────────────────────────────────\u001b[0m\u001b[32m ✅ Agent Final Answer \u001b[0m\u001b[32m────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mWeb Search Agent\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mFinal Answer:\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mWimbledon 2025 is underway at the All England Club in London, running from June 30 to July 13. The tournament\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mhas experienced some weather-related heat delays affecting matches. In the women's singles, Amanda Anisimova \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mdefeated top seed Aryna Sabalenka in a thrilling three-set match (6-4, 4-6, 6-4) to advance to her first \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mWimbledon final, while Iga Swiatek also reached the final after a dominant win (6-2, 6-0) over Belinda \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mBencic. This ensures a first-time women's Wimbledon champion in 2025, as defending champions have exited \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mearly. On the men's side, Carlos Alcaraz, the two-time defending champion aiming for a three-peat, advanced \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mto the semifinals alongside Novak Djokovic, who will face Jannik Sinner in the other semifinal. Other notable\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mperformances include American Taylor Fritz reaching the men's semifinals and British players like Cameron \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mNorrie having strong runs before being eliminated. The tournament has drawn a mix of sports stars, \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mcelebrities, and royalty to the royal box. Wimbledon 2025 continues to deliver historic and exciting moments \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mwith the finals imminent.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭──────────────────────────────────────────────── Task Completion ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Task Completed                                                                                                 \n",
       "  Name: 8e9b17ee-4cbc-4000-8524-59c7364c18a7                                                                     \n",
       "  Agent: Web Search Agent                                                                                        \n",
       "  Tool Args:                                                                                                     \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m Task Completion \u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[1;32mTask Completed\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[32m8e9b17ee-4cbc-4000-8524-59c7364c18a7\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[32mWeb Search Agent\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
╭──────────────────────────────────────────────── Crew Completion ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Crew Execution Completed                                                                                       \n",
       "  Name: crew                                                                                                     \n",
       "  ID: 779faaeb-5a67-41e0-9f33-35282486146b                                                                       \n",
       "  Tool Args:                                                                                                     \n",
       "  Final Output: Wimbledon 2025 is underway at the All England Club in London, running from June 30 to July 13.   \n",
       "  The tournament has experienced some weather-related heat delays affecting matches. In the women's singles,     \n",
       "  Amanda Anisimova defeated top seed Aryna Sabalenka in a thrilling three-set match (6-4, 4-6, 6-4) to advance   \n",
       "  to her first Wimbledon final, while Iga Swiatek also reached the final after a dominant win (6-2, 6-0) over    \n",
       "  Belinda Bencic. This ensures a first-time women's Wimbledon champion in 2025, as defending champions have      \n",
       "  exited early. On the men's side, Carlos Alcaraz, the two-time defending champion aiming for a three-peat,      \n",
       "  advanced to the semifinals alongside Novak Djokovic, who will face Jannik Sinner in the other semifinal.       \n",
       "  Other notable performances include American Taylor Fritz reaching the men's semifinals and British players     \n",
       "  like Cameron Norrie having strong runs before being eliminated. The tournament has drawn a mix of sports       \n",
       "  stars, celebrities, and royalty to the royal box. Wimbledon 2025 continues to deliver historic and exciting    \n",
       "  moments with the finals imminent.                                                                              \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m Crew Completion \u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[1;32mCrew Execution Completed\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[32mcrew\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mID: \u001b[0m\u001b[32m779faaeb-5a67-41e0-9f33-35282486146b\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mFinal Output: Wimbledon 2025 is underway at the All England Club in London, running from June 30 to July 13. \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mThe tournament has experienced some weather-related heat delays affecting matches. In the women's singles, \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAmanda Anisimova defeated top seed Aryna Sabalenka in a thrilling three-set match (6-4, 4-6, 6-4) to advance \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mto her first Wimbledon final, while Iga Swiatek also reached the final after a dominant win (6-2, 6-0) over \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mBelinda Bencic. This ensures a first-time women's Wimbledon champion in 2025, as defending champions have \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mexited early. On the men's side, Carlos Alcaraz, the two-time defending champion aiming for a three-peat, \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37madvanced to the semifinals alongside Novak Djokovic, who will face Jannik Sinner in the other semifinal. \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mOther notable performances include American Taylor Fritz reaching the men's semifinals and British players \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mlike Cameron Norrie having strong runs before being eliminated. The tournament has drawn a mix of sports \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mstars, celebrities, and royalty to the royal box. Wimbledon 2025 continues to deliver historic and exciting \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mmoments with the finals imminent.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Wimbledon 2025 is underway at the All England Club in London, running from June 30 to July 13. The tournament has experienced some weather-related heat delays affecting matches. In the women's singles, Amanda Anisimova defeated top seed Aryna Sabalenka in a thrilling three-set match (6-4, 4-6, 6-4) to advance to her first Wimbledon final, while Iga Swiatek also reached the final after a dominant win (6-2, 6-0) over Belinda Bencic. This ensures a first-time women's Wimbledon champion in 2025, as defending champions have exited early. On the men's side, Carlos Alcaraz, the two-time defending champion aiming for a three-peat, advanced to the semifinals alongside Novak Djokovic, who will face Jannik Sinner in the other semifinal. Other notable performances include American Taylor Fritz reaching the men's semifinals and British players like Cameron Norrie having strong runs before being eliminated. The tournament has drawn a mix of sports stars, celebrities, and royalty to the royal box. Wimbledon 2025 continues to deliver historic and exciting moments with the finals imminent.\n" ] } ], "source": [ "web_search_agent = Agent(\n", " role=\"Web Search Agent\",\n", " goal=\"Search the web for information\",\n", " backstory=\"You are an agent that can search the web for information.\",\n", " allow_delegation=False,\n", " tools=[LinkUpSearchTool()],\n", ")\n", "\n", "web_search_task = Task(\n", " description=\"Search the web for information about {query}.\",\n", " agent=web_search_agent,\n", " expected_output=\"A concise answer to the user's query based on the search results.\",\n", ")\n", "\n", "crew = Crew(\n", " agents=[web_search_agent],\n", " tasks=[web_search_task],\n", " verbose=True,\n", ")\n", "\n", "result = crew.kickoff(inputs={\"query\": \"Give me a summary of what is happening in Wimbeldon 2025?\"})\n", "print(result)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### CrewAI meets MCP\n", "\n", "Using MCP servers as tools with Crew Agents" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Available tools: ['web_search']\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/akshay/Eigen/ai-engineering-hub/agent-with-mcp-memory/.venv/lib/python3.12/site-packages/pydantic/fields.py:1093: PydanticDeprecatedSince20: Using extra keyword arguments on `Field` is deprecated and will be removed. Use `json_schema_extra` instead. (Extra keys: 'items', 'anyOf', 'enum', 'properties'). Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.11/migration/\n", " warn(\n" ] } ], "source": [ "from crewai import Agent\n", "from crewai_tools import MCPServerAdapter\n", "\n", "\n", "# 2. SSE Server:\n", "server_params = {\n", " \"url\": \"http://localhost:8080/sse\",\n", " \"transport\": \"sse\"\n", "}\n", "\n", "with MCPServerAdapter(server_params) as mcp_tools:\n", " print(f\"Available tools: {[tool.name for tool in mcp_tools]}\")" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Available tools: ['web_search']\n" ] }, { "data": { "text/html": [ "
╭──────────────────────────────────────────── Crew Execution Started ─────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Crew Execution Started                                                                                         \n",
       "  Name: crew                                                                                                     \n",
       "  ID: 13cf4d2e-3e8e-40fe-9918-8446032896ce                                                                       \n",
       "  Tool Args:                                                                                                     \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[36m╭─\u001b[0m\u001b[36m───────────────────────────────────────────\u001b[0m\u001b[36m Crew Execution Started \u001b[0m\u001b[36m────────────────────────────────────────────\u001b[0m\u001b[36m─╮\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[1;36mCrew Execution Started\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[36mcrew\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[37mID: \u001b[0m\u001b[36m13cf4d2e-3e8e-40fe-9918-8446032896ce\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭─────────────────────────────────────────────── 🤖 Agent Started ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Web Search Agent                                                                                        \n",
       "                                                                                                                 \n",
       "  Task: Search the web for information about Give me a summary of what is happening in Wimbledon 2025?.          \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[35m╭─\u001b[0m\u001b[35m──────────────────────────────────────────────\u001b[0m\u001b[35m 🤖 Agent Started \u001b[0m\u001b[35m───────────────────────────────────────────────\u001b[0m\u001b[35m─╮\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mWeb Search Agent\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mTask: \u001b[0m\u001b[92mSearch the web for information about Give me a summary of what is happening in Wimbledon 2025?.\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
/Users/akshay/Eigen/ai-engineering-hub/agent-with-mcp-memory/.venv/lib/python3.12/site-packages/rich/live.py:231: \n",
       "UserWarning: install \"ipywidgets\" for Jupyter support\n",
       "  warnings.warn('install \"ipywidgets\" for Jupyter support')\n",
       "
\n" ], "text/plain": [ "/Users/akshay/Eigen/ai-engineering-hub/agent-with-mcp-memory/.venv/lib/python3.12/site-packages/rich/live.py:231: \n", "UserWarning: install \"ipywidgets\" for Jupyter support\n", " warnings.warn('install \"ipywidgets\" for Jupyter support')\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭──────────────────────────────────────────── 🔧 Agent Tool Execution ────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Web Search Agent                                                                                        \n",
       "                                                                                                                 \n",
       "  Thought: Thought: I need to search for current information about what is happening in Wimbledon 2025 to        \n",
       "  provide an accurate and detailed summary.                                                                      \n",
       "                                                                                                                 \n",
       "  Using Tool: web_search                                                                                         \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[35m╭─\u001b[0m\u001b[35m───────────────────────────────────────────\u001b[0m\u001b[35m 🔧 Agent Tool Execution \u001b[0m\u001b[35m───────────────────────────────────────────\u001b[0m\u001b[35m─╮\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mWeb Search Agent\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mThought: \u001b[0m\u001b[92mThought: I need to search for current information about what is happening in Wimbledon 2025 to \u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[92mprovide an accurate and detailed summary.\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mUsing Tool: \u001b[0m\u001b[1;92mweb_search\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
╭────────────────────────────────────────────────── Tool Input ───────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  \"{\\\"query\\\": \\\"Wimbledon 2025 latest updates\\\"}\"                                                               \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[34m╭─\u001b[0m\u001b[34m─────────────────────────────────────────────────\u001b[0m\u001b[34m Tool Input \u001b[0m\u001b[34m──────────────────────────────────────────────────\u001b[0m\u001b[34m─╮\u001b[0m\n", "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", "\u001b[34m│\u001b[0m \u001b[38;2;230;219;116;49m\"{\\\"query\\\": \\\"Wimbledon 2025 latest updates\\\"}\"\u001b[0m \u001b[34m│\u001b[0m\n", "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", "\u001b[34m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
╭────────────────────────────────────────────────── Tool Output ──────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  answer=\"Wimbledon 2025 is underway from June 30 to July 13. Key updates include:\\n\\n- Women's semifinals took  \n",
       "  place on July 10, with Amanda Anisimova defeating top seed Aryna Sabalenka 6-4, 4-6, 6-4 to reach her first    \n",
       "  Wimbledon final. Iga Swiatek also advanced to the final after a 6-2, 6-0 win over Belinda Bencic.\\n- Men's     \n",
       "  semifinals are scheduled for July 11, featuring Novak Djokovic vs. Jannik Sinner and Carlos Alcaraz vs.        \n",
       "  Taylor Fritz.\\n- Several British players, including Emma Raducanu, Cameron Norrie, and Sonay Kartal, have      \n",
       "  progressed to later rounds.\\n- The tournament has seen many upsets, with only nine of the top 32 seeds in      \n",
       "  both men's and women's draws reaching the fourth round.\\n- Weather has caused some heat-related delays,        \n",
       "  notably during the Sabalenka-Anisimova match.\\n- Celebrity and royal attendance continues, with notable        \n",
       "  figures appearing in the Royal Box.\\n- Tickets remain available primarily through debenture holders, with      \n",
       "  prices varying by court and match day.\\n\\nFor live scores, draws, and detailed schedules, official Wimbledon   \n",
       "  and LTA websites provide continuous updates.\" sources=[LinkupSource(name='Schedule - The Championships,        \n",
       "  Wimbledon', url='https://www.wimbledon.com/en_GB/atoz/schedule.html', snippet='We cannot provide a             \n",
       "  description for this page right now\\nundefined'), LinkupSource(name='Wimbledon 2025: Results & updates',       \n",
       "  url='https://www.lta.org.uk/fan-zone/wimbledon-championships/news/wimbledon-2025-results-updates/',            \n",
       "  snippet='Emma Raducanu, Cam Norrie & Sonay Kartal Into The Third Round 🍓 | Wimbledon 2025 Highlights |    \n",
       "  LTA · Draper, Evans & Pinnington Jones Storm Into Round Two 🔥 | Wimbledon 2025 Highlights | LTA\\nFollow   \n",
       "  the results and draws for every British player competing at Wimbledon 2025.\\nFind out everything you need to   \n",
       "  know about The Championships, Wimbledon 2025 including key dates, draws, order of play, scores and who is set  \n",
       "  to play.\\nEmma Raducanu, Cam Norrie & Sonay Kartal Into The Third Round 🍓 | Wimbledon 2025 ...                \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m─────────────────────────────────────────────────\u001b[0m\u001b[32m Tool Output \u001b[0m\u001b[32m─────────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92manswer=\"Wimbledon 2025 is underway from June 30 to July 13. Key updates include:\\n\\n- Women's semifinals took\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mplace on July 10, with Amanda Anisimova defeating top seed Aryna Sabalenka 6-4, 4-6, 6-4 to reach her first \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mWimbledon final. Iga Swiatek also advanced to the final after a 6-2, 6-0 win over Belinda Bencic.\\n- Men's \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92msemifinals are scheduled for July 11, featuring Novak Djokovic vs. Jannik Sinner and Carlos Alcaraz vs. \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mTaylor Fritz.\\n- Several British players, including Emma Raducanu, Cameron Norrie, and Sonay Kartal, have \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mprogressed to later rounds.\\n- The tournament has seen many upsets, with only nine of the top 32 seeds in \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mboth men's and women's draws reaching the fourth round.\\n- Weather has caused some heat-related delays, \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mnotably during the Sabalenka-Anisimova match.\\n- Celebrity and royal attendance continues, with notable \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mfigures appearing in the Royal Box.\\n- Tickets remain available primarily through debenture holders, with \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mprices varying by court and match day.\\n\\nFor live scores, draws, and detailed schedules, official Wimbledon \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mand LTA websites provide continuous updates.\" sources=[LinkupSource(name='Schedule - The Championships, \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mWimbledon', url='https://www.wimbledon.com/en_GB/atoz/schedule.html', snippet='We cannot provide a \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mdescription for this page right now\\nundefined'), LinkupSource(name='Wimbledon 2025: Results & updates', \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92murl='https://www.lta.org.uk/fan-zone/wimbledon-championships/news/wimbledon-2025-results-updates/', \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92msnippet='Emma Raducanu, Cam Norrie & Sonay Kartal Into The Third Round 🍓 | Wimbledon 2025 Highlights | \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mLTA · Draper, Evans & Pinnington Jones Storm Into Round Two 🔥 | Wimbledon 2025 Highlights | LTA\\nFollow \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mthe results and draws for every British player competing at Wimbledon 2025.\\nFind out everything you need to \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mknow about The Championships, Wimbledon 2025 including key dates, draws, order of play, scores and who is set\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mto play.\\nEmma Raducanu, Cam Norrie & Sonay Kartal Into The Third Round 🍓 | Wimbledon 2025 ...\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭───────────────────────────────────────────── ✅ Agent Final Answer ─────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Web Search Agent                                                                                        \n",
       "                                                                                                                 \n",
       "  Final Answer:                                                                                                  \n",
       "  Wimbledon 2025 is currently taking place from June 30 to July 13. The women's semifinals were held on July     \n",
       "  10, where Amanda Anisimova defeated top seed Aryna Sabalenka 6-4, 4-6, 6-4 to reach her first Wimbledon        \n",
       "  final, and Iga Swiatek advanced after a 6-2, 6-0 win over Belinda Bencic. The men's semifinals are scheduled   \n",
       "  for July 11, featuring Novak Djokovic vs. Jannik Sinner and Carlos Alcaraz vs. Taylor Fritz. Several British   \n",
       "  players, including Emma Raducanu, Cameron Norrie, and Sonay Kartal, have progressed to later rounds. The       \n",
       "  tournament has seen many upsets, with only nine of the top 32 seeds in both the men's and women's draws        \n",
       "  reaching the fourth round. Weather delays due to heat have occurred, especially during the                     \n",
       "  Sabalenka-Anisimova match. Celebrity and royal attendance continues, with notable figures appearing in the     \n",
       "  Royal Box. Tickets mostly remain available through debenture holders, with prices varying. For live scores,    \n",
       "  draws, and detailed schedules, the official Wimbledon and LTA websites provide continuous updates.             \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m────────────────────────────────────────────\u001b[0m\u001b[32m ✅ Agent Final Answer \u001b[0m\u001b[32m────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mWeb Search Agent\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mFinal Answer:\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mWimbledon 2025 is currently taking place from June 30 to July 13. The women's semifinals were held on July \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m10, where Amanda Anisimova defeated top seed Aryna Sabalenka 6-4, 4-6, 6-4 to reach her first Wimbledon \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mfinal, and Iga Swiatek advanced after a 6-2, 6-0 win over Belinda Bencic. The men's semifinals are scheduled \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mfor July 11, featuring Novak Djokovic vs. Jannik Sinner and Carlos Alcaraz vs. Taylor Fritz. Several British \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mplayers, including Emma Raducanu, Cameron Norrie, and Sonay Kartal, have progressed to later rounds. The \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mtournament has seen many upsets, with only nine of the top 32 seeds in both the men's and women's draws \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mreaching the fourth round. Weather delays due to heat have occurred, especially during the \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mSabalenka-Anisimova match. Celebrity and royal attendance continues, with notable figures appearing in the \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mRoyal Box. Tickets mostly remain available through debenture holders, with prices varying. For live scores, \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mdraws, and detailed schedules, the official Wimbledon and LTA websites provide continuous updates.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭──────────────────────────────────────────────── Task Completion ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Task Completed                                                                                                 \n",
       "  Name: ef7546f4-67ef-4759-a2ca-f1edcb2e8980                                                                     \n",
       "  Agent: Web Search Agent                                                                                        \n",
       "  Tool Args:                                                                                                     \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m Task Completion \u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[1;32mTask Completed\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[32mef7546f4-67ef-4759-a2ca-f1edcb2e8980\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[32mWeb Search Agent\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
╭──────────────────────────────────────────────── Crew Completion ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Crew Execution Completed                                                                                       \n",
       "  Name: crew                                                                                                     \n",
       "  ID: 13cf4d2e-3e8e-40fe-9918-8446032896ce                                                                       \n",
       "  Tool Args:                                                                                                     \n",
       "  Final Output: Wimbledon 2025 is currently taking place from June 30 to July 13. The women's semifinals were    \n",
       "  held on July 10, where Amanda Anisimova defeated top seed Aryna Sabalenka 6-4, 4-6, 6-4 to reach her first     \n",
       "  Wimbledon final, and Iga Swiatek advanced after a 6-2, 6-0 win over Belinda Bencic. The men's semifinals are   \n",
       "  scheduled for July 11, featuring Novak Djokovic vs. Jannik Sinner and Carlos Alcaraz vs. Taylor Fritz.         \n",
       "  Several British players, including Emma Raducanu, Cameron Norrie, and Sonay Kartal, have progressed to later   \n",
       "  rounds. The tournament has seen many upsets, with only nine of the top 32 seeds in both the men's and women's  \n",
       "  draws reaching the fourth round. Weather delays due to heat have occurred, especially during the               \n",
       "  Sabalenka-Anisimova match. Celebrity and royal attendance continues, with notable figures appearing in the     \n",
       "  Royal Box. Tickets mostly remain available through debenture holders, with prices varying. For live scores,    \n",
       "  draws, and detailed schedules, the official Wimbledon and LTA websites provide continuous updates.             \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m Crew Completion \u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[1;32mCrew Execution Completed\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[32mcrew\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mID: \u001b[0m\u001b[32m13cf4d2e-3e8e-40fe-9918-8446032896ce\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mFinal Output: Wimbledon 2025 is currently taking place from June 30 to July 13. The women's semifinals were \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mheld on July 10, where Amanda Anisimova defeated top seed Aryna Sabalenka 6-4, 4-6, 6-4 to reach her first \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mWimbledon final, and Iga Swiatek advanced after a 6-2, 6-0 win over Belinda Bencic. The men's semifinals are \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mscheduled for July 11, featuring Novak Djokovic vs. Jannik Sinner and Carlos Alcaraz vs. Taylor Fritz. \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mSeveral British players, including Emma Raducanu, Cameron Norrie, and Sonay Kartal, have progressed to later \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mrounds. The tournament has seen many upsets, with only nine of the top 32 seeds in both the men's and women's\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mdraws reaching the fourth round. Weather delays due to heat have occurred, especially during the \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mSabalenka-Anisimova match. Celebrity and royal attendance continues, with notable figures appearing in the \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mRoyal Box. Tickets mostly remain available through debenture holders, with prices varying. For live scores, \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mdraws, and detailed schedules, the official Wimbledon and LTA websites provide continuous updates.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Wimbledon 2025 is currently taking place from June 30 to July 13. The women's semifinals were held on July 10, where Amanda Anisimova defeated top seed Aryna Sabalenka 6-4, 4-6, 6-4 to reach her first Wimbledon final, and Iga Swiatek advanced after a 6-2, 6-0 win over Belinda Bencic. The men's semifinals are scheduled for July 11, featuring Novak Djokovic vs. Jannik Sinner and Carlos Alcaraz vs. Taylor Fritz. Several British players, including Emma Raducanu, Cameron Norrie, and Sonay Kartal, have progressed to later rounds. The tournament has seen many upsets, with only nine of the top 32 seeds in both the men's and women's draws reaching the fourth round. Weather delays due to heat have occurred, especially during the Sabalenka-Anisimova match. Celebrity and royal attendance continues, with notable figures appearing in the Royal Box. Tickets mostly remain available through debenture holders, with prices varying. For live scores, draws, and detailed schedules, the official Wimbledon and LTA websites provide continuous updates.\n" ] } ], "source": [ "# Example usage (uncomment and adapt once server_params is set):\n", "with MCPServerAdapter(server_params) as mcp_tools:\n", " print(f\"Available tools: {[tool.name for tool in mcp_tools]}\")\n", "\n", " web_search_agent = Agent(\n", " role=\"Web Search Agent\",\n", " goal=\"Search the web for information\",\n", " backstory=\"You are an agent that can search the web for information.\",\n", " allow_delegation=False,\n", " tools=[mcp_tools[\"web_search\"]],\n", " )\n", "\n", " web_search_task = Task(\n", " description=\"Search the web for information about {query}.\",\n", " agent=web_search_agent,\n", " expected_output=\"A concise answer to the user's query based on the search results.\",\n", " )\n", "\n", " crew = Crew(\n", " agents=[web_search_agent],\n", " tasks=[web_search_task],\n", " verbose=True,\n", " )\n", "\n", " result = crew.kickoff(inputs={\"query\": \"Give me a summary of what is happening in Wimbledon 2025?\"})\n", " print(result)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Knowledge graph based human like memory for Agents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Agents with knowledge graph memory\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/akshay/Eigen/ai-engineering-hub/agent-with-mcp-memory/.venv/lib/python3.12/site-packages/pydantic/fields.py:1093: PydanticDeprecatedSince20: Using extra keyword arguments on `Field` is deprecated and will be removed. Use `json_schema_extra` instead. (Extra keys: 'items', 'anyOf', 'enum', 'properties'). Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.11/migration/\n", " warn(\n" ] }, { "data": { "text/html": [ "
╭──────────────────────────────────────────── Crew Execution Started ─────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Crew Execution Started                                                                                         \n",
       "  Name: crew                                                                                                     \n",
       "  ID: 40ed7443-2bf9-4a19-b9ca-b9caf3d7280a                                                                       \n",
       "  Tool Args:                                                                                                     \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[36m╭─\u001b[0m\u001b[36m───────────────────────────────────────────\u001b[0m\u001b[36m Crew Execution Started \u001b[0m\u001b[36m────────────────────────────────────────────\u001b[0m\u001b[36m─╮\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[1;36mCrew Execution Started\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[36mcrew\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[37mID: \u001b[0m\u001b[36m40ed7443-2bf9-4a19-b9ca-b9caf3d7280a\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m│\u001b[0m \u001b[36m│\u001b[0m\n", "\u001b[36m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭─────────────────────────────────────────────── 🤖 Agent Started ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Helpful Assistant                                                                                       \n",
       "                                                                                                                 \n",
       "  Task: Process the user query 'What is happening in FIFA club world cup 2025?' and provide a helpful response.  \n",
       "  Search the web if needed.                                                                                      \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[35m╭─\u001b[0m\u001b[35m──────────────────────────────────────────────\u001b[0m\u001b[35m 🤖 Agent Started \u001b[0m\u001b[35m───────────────────────────────────────────────\u001b[0m\u001b[35m─╮\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mHelpful Assistant\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mTask: \u001b[0m\u001b[92mProcess the user query 'What is happening in FIFA club world cup 2025?' and provide a helpful response.\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[92mSearch the web if needed.\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
/Users/akshay/Eigen/ai-engineering-hub/agent-with-mcp-memory/.venv/lib/python3.12/site-packages/rich/live.py:231: \n",
       "UserWarning: install \"ipywidgets\" for Jupyter support\n",
       "  warnings.warn('install \"ipywidgets\" for Jupyter support')\n",
       "
\n" ], "text/plain": [ "/Users/akshay/Eigen/ai-engineering-hub/agent-with-mcp-memory/.venv/lib/python3.12/site-packages/rich/live.py:231: \n", "UserWarning: install \"ipywidgets\" for Jupyter support\n", " warnings.warn('install \"ipywidgets\" for Jupyter support')\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭──────────────────────────────────────────── 🔧 Agent Tool Execution ────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Helpful Assistant                                                                                       \n",
       "                                                                                                                 \n",
       "  Thought: Thought: To provide a detailed and accurate response about what is happening in the FIFA Club World   \n",
       "  Cup 2025, I need to gather the latest information about the event. I will search the web for updates, news,    \n",
       "  and details about the FIFA Club World Cup 2025.                                                                \n",
       "                                                                                                                 \n",
       "  Using Tool: web_search                                                                                         \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[35m╭─\u001b[0m\u001b[35m───────────────────────────────────────────\u001b[0m\u001b[35m 🔧 Agent Tool Execution \u001b[0m\u001b[35m───────────────────────────────────────────\u001b[0m\u001b[35m─╮\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mHelpful Assistant\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mThought: \u001b[0m\u001b[92mThought: To provide a detailed and accurate response about what is happening in the FIFA Club World \u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[92mCup 2025, I need to gather the latest information about the event. I will search the web for updates, news, \u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[92mand details about the FIFA Club World Cup 2025.\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mUsing Tool: \u001b[0m\u001b[1;92mweb_search\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
╭────────────────────────────────────────────────── Tool Input ───────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  \"{\\\"query\\\": \\\"FIFA Club World Cup 2025 latest news and updates\\\"}\"                                            \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[34m╭─\u001b[0m\u001b[34m─────────────────────────────────────────────────\u001b[0m\u001b[34m Tool Input \u001b[0m\u001b[34m──────────────────────────────────────────────────\u001b[0m\u001b[34m─╮\u001b[0m\n", "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", "\u001b[34m│\u001b[0m \u001b[38;2;230;219;116;49m\"{\\\"query\\\": \\\"FIFA Club World Cup 2025 latest news and updates\\\"}\"\u001b[0m \u001b[34m│\u001b[0m\n", "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", "\u001b[34m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
╭────────────────────────────────────────────────── Tool Output ──────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  answer=\"The 2025 FIFA Club World Cup is being held in the United States from June 14 to July 13, 2025,         \n",
       "  featuring an expanded format with 32 clubs competing in 12 venues across 11 US cities. The tournament serves   \n",
       "  as a prelude to the 2026 FIFA World Cup. Notable teams include Chelsea, Manchester City, and Lionel Messi's    \n",
       "  Inter Miami. The knockout stage began on June 28, with Chelsea and Paris Saint-Germain reaching the final      \n",
       "  after PSG defeated Real Madrid 4-0 and Chelsea beat Fluminense 2-0 in the semifinals. Matches are broadcast    \n",
       "  in China by Migu and in South Korea by Coupang Play. The tournament has faced challenges such as a US heat     \n",
       "  wave affecting players and coaches. Referees are using body cameras, with some footage shown to audiences.     \n",
       "  The final is scheduled for July 13 in New Jersey.\" sources=[LinkupSource(name='FIFA Club World Cup 2025™',     \n",
       "  url='https://www.fifa.com/en/tournaments/mens/club-world-cup/usa-2025', snippet='We cannot provide a           \n",
       "  description for this page right now\\nundefined'), LinkupSource(name='2025 FIFA Club World Cup - Wikipedia',    \n",
       "  url='https://en.wikipedia.org/wiki/2025_FIFA_Club_World_Cup', snippet='The expanded format and schedule ...    \n",
       "  2021 event was canceled due to the COVID-19 pandemic. On June 23, 2023, FIFA confirmed that the United States  \n",
       "  would host the 2025 tournament as a prelude to the 2026 FIFA World Cup....\\nThe expanded format and schedule   \n",
       "  of Club World Cup, to be played in June and July 2021, was confirmed at the March 2019 FIFA Council meeting    \n",
       "  in Miami. China was appointed as host in October 2019, but the 2021 event was canceled due to the COVID-19     \n",
       "  pandemic. On June 23, 2023, FIFA confirmed that the United States would host the 2025 tournament as a prelude  \n",
       "  to the 2026 FIFA World Cup.\\nOn April 10, 2025, Chinese streaming platform Migu acquired broadcast rights in   \n",
       "  China to the FIFA Club World Cup in a direct deal spanning two editions.\\nOn June 11, 2025, Coupang Play in    \n",
       "  South Korea announced it would provide coverage of the FIFA Club...                                            \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m─────────────────────────────────────────────────\u001b[0m\u001b[32m Tool Output \u001b[0m\u001b[32m─────────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92manswer=\"The 2025 FIFA Club World Cup is being held in the United States from June 14 to July 13, 2025, \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mfeaturing an expanded format with 32 clubs competing in 12 venues across 11 US cities. The tournament serves \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mas a prelude to the 2026 FIFA World Cup. Notable teams include Chelsea, Manchester City, and Lionel Messi's \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mInter Miami. The knockout stage began on June 28, with Chelsea and Paris Saint-Germain reaching the final \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mafter PSG defeated Real Madrid 4-0 and Chelsea beat Fluminense 2-0 in the semifinals. Matches are broadcast \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92min China by Migu and in South Korea by Coupang Play. The tournament has faced challenges such as a US heat \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mwave affecting players and coaches. Referees are using body cameras, with some footage shown to audiences. \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mThe final is scheduled for July 13 in New Jersey.\" sources=[LinkupSource(name='FIFA Club World Cup 2025™', \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92murl='https://www.fifa.com/en/tournaments/mens/club-world-cup/usa-2025', snippet='We cannot provide a \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mdescription for this page right now\\nundefined'), LinkupSource(name='2025 FIFA Club World Cup - Wikipedia', \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92murl='https://en.wikipedia.org/wiki/2025_FIFA_Club_World_Cup', snippet='The expanded format and schedule ... \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m2021 event was canceled due to the COVID-19 pandemic. On June 23, 2023, FIFA confirmed that the United States\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mwould host the 2025 tournament as a prelude to the 2026 FIFA World Cup....\\nThe expanded format and schedule \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mof Club World Cup, to be played in June and July 2021, was confirmed at the March 2019 FIFA Council meeting \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92min Miami. China was appointed as host in October 2019, but the 2021 event was canceled due to the COVID-19 \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mpandemic. On June 23, 2023, FIFA confirmed that the United States would host the 2025 tournament as a prelude\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mto the 2026 FIFA World Cup.\\nOn April 10, 2025, Chinese streaming platform Migu acquired broadcast rights in \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mChina to the FIFA Club World Cup in a direct deal spanning two editions.\\nOn June 11, 2025, Coupang Play in \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mSouth Korea announced it would provide coverage of the FIFA Club...\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭───────────────────────────────────────────── ✅ Agent Final Answer ─────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Helpful Assistant                                                                                       \n",
       "                                                                                                                 \n",
       "  Final Answer:                                                                                                  \n",
       "  The 2025 FIFA Club World Cup is currently taking place in the United States from June 14 to July 13, 2025.     \n",
       "  This edition of the tournament features a significant change with an expanded format including 32 clubs        \n",
       "  competing in 12 venues across 11 US cities. It is designed as a prelude to the 2026 FIFA World Cup.            \n",
       "                                                                                                                 \n",
       "  Key details and happenings in the tournament:                                                                  \n",
       "                                                                                                                 \n",
       "  - The tournament format mirrors that of the FIFA World Cup, with a round-robin group stage followed by         \n",
       "  knockout rounds, but without a third place playoff.                                                            \n",
       "                                                                                                                 \n",
       "  - Notable clubs participating include European giants Chelsea and Paris Saint-Germain (PSG), as well as        \n",
       "  Manchester City and Lionel Messi’s Inter Miami from MLS.                                                       \n",
       "                                                                                                                 \n",
       "  - The knockout phase started on June 28, 2025.                                                                 \n",
       "                                                                                                                 \n",
       "  - Chelsea advanced to the final after defeating Fluminense 2-0 in the semifinals.                              \n",
       "                                                                                                                 \n",
       "  - PSG reached the final by delivering a dominant 4-0 victory over Real Madrid.                                 \n",
       "                                                                                                                 \n",
       "  - The final match of the Club World Cup is scheduled for July 13, 2025, in New Jersey.                         \n",
       "                                                                                                                 \n",
       "  - Broadcast rights are held in China by the streaming platform Migu and in South Korea by Coupang Play.        \n",
       "                                                                                                                 \n",
       "  - The tournament has faced challenges such as a severe heat wave in the US affecting players and coaches.      \n",
       "                                                                                                                 \n",
       "  - An innovative feature introduced this year is referees wearing body cameras, with some footage shared with   \n",
       "  audiences, adding a new perspective to refereeing.                                                             \n",
       "                                                                                                                 \n",
       "  - There was some team reshuffling as Club Leon was removed from the tournament due to multi-club ownership     \n",
       "  criteria violations and will be replaced accordingly.                                                          \n",
       "                                                                                                                 \n",
       "  - The venues for the event are spread along the US East Coast, to better accommodate European broadcasters     \n",
       "  and avoid scheduling conflicts with other major tournaments like the 2025 CONCACAF Gold Cup.                   \n",
       "                                                                                                                 \n",
       "  This tournament represents a new milestone for the FIFA Club World Cup with its large scale and high-profile   \n",
       "  teams, offering fans a month-long festival of top-level club football across multiple major US cities.         \n",
       "                                                                                                                 \n",
       "  For more detailed schedules, results, and news updates, you can visit FIFA’s official page:                    \n",
       "  https://www.fifa.com/en/tournaments/mens/club-world-cup/usa-2025                                               \n",
       "                                                                                                                 \n",
       "  This comprehensive overview should keep you well informed about what is happening in the FIFA Club World Cup   \n",
       "  2025.                                                                                                          \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m────────────────────────────────────────────\u001b[0m\u001b[32m ✅ Agent Final Answer \u001b[0m\u001b[32m────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mHelpful Assistant\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mFinal Answer:\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mThe 2025 FIFA Club World Cup is currently taking place in the United States from June 14 to July 13, 2025. \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mThis edition of the tournament features a significant change with an expanded format including 32 clubs \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mcompeting in 12 venues across 11 US cities. It is designed as a prelude to the 2026 FIFA World Cup.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mKey details and happenings in the tournament:\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The tournament format mirrors that of the FIFA World Cup, with a round-robin group stage followed by \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mknockout rounds, but without a third place playoff.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- Notable clubs participating include European giants Chelsea and Paris Saint-Germain (PSG), as well as \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mManchester City and Lionel Messi’s Inter Miami from MLS.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The knockout phase started on June 28, 2025.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- Chelsea advanced to the final after defeating Fluminense 2-0 in the semifinals.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- PSG reached the final by delivering a dominant 4-0 victory over Real Madrid.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The final match of the Club World Cup is scheduled for July 13, 2025, in New Jersey.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- Broadcast rights are held in China by the streaming platform Migu and in South Korea by Coupang Play.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The tournament has faced challenges such as a severe heat wave in the US affecting players and coaches.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- An innovative feature introduced this year is referees wearing body cameras, with some footage shared with \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92maudiences, adding a new perspective to refereeing.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- There was some team reshuffling as Club Leon was removed from the tournament due to multi-club ownership \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mcriteria violations and will be replaced accordingly.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The venues for the event are spread along the US East Coast, to better accommodate European broadcasters \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mand avoid scheduling conflicts with other major tournaments like the 2025 CONCACAF Gold Cup.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mThis tournament represents a new milestone for the FIFA Club World Cup with its large scale and high-profile \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mteams, offering fans a month-long festival of top-level club football across multiple major US cities.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mFor more detailed schedules, results, and news updates, you can visit FIFA’s official page: \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mhttps://www.fifa.com/en/tournaments/mens/club-world-cup/usa-2025\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mThis comprehensive overview should keep you well informed about what is happening in the FIFA Club World Cup \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m2025.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭──────────────────────────────────────────────── Task Completion ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Task Completed                                                                                                 \n",
       "  Name: a9de3850-d80b-44ad-b376-50d94583f94a                                                                     \n",
       "  Agent: Helpful Assistant                                                                                       \n",
       "  Tool Args:                                                                                                     \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m Task Completion \u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[1;32mTask Completed\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[32ma9de3850-d80b-44ad-b376-50d94583f94a\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[32mHelpful Assistant\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭─────────────────────────────────────────────── 🤖 Agent Started ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Memory Manager                                                                                          \n",
       "                                                                                                                 \n",
       "  Task: Store the query 'What is happening in FIFA club world cup 2025?' and response in memory for future       \n",
       "  reference                                                                                                      \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[35m╭─\u001b[0m\u001b[35m──────────────────────────────────────────────\u001b[0m\u001b[35m 🤖 Agent Started \u001b[0m\u001b[35m───────────────────────────────────────────────\u001b[0m\u001b[35m─╮\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mMemory Manager\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mTask: \u001b[0m\u001b[92mStore the query 'What is happening in FIFA club world cup 2025?' and response in memory for future \u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[92mreference\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
/Users/akshay/Eigen/ai-engineering-hub/agent-with-mcp-memory/.venv/lib/python3.12/site-packages/rich/live.py:231: \n",
       "UserWarning: install \"ipywidgets\" for Jupyter support\n",
       "  warnings.warn('install \"ipywidgets\" for Jupyter support')\n",
       "
\n" ], "text/plain": [ "/Users/akshay/Eigen/ai-engineering-hub/agent-with-mcp-memory/.venv/lib/python3.12/site-packages/rich/live.py:231: \n", "UserWarning: install \"ipywidgets\" for Jupyter support\n", " warnings.warn('install \"ipywidgets\" for Jupyter support')\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭──────────────────────────────────────────── 🔧 Agent Tool Execution ────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Memory Manager                                                                                          \n",
       "                                                                                                                 \n",
       "  Thought: Thought: I need to store both the query 'What is happening in FIFA club world cup 2025?' and the      \n",
       "  detailed response about the event in memory for future reference. I will add this as an episode in the memory  \n",
       "  with the content fully included.                                                                               \n",
       "                                                                                                                 \n",
       "  Using Tool: add_memory                                                                                         \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[35m╭─\u001b[0m\u001b[35m───────────────────────────────────────────\u001b[0m\u001b[35m 🔧 Agent Tool Execution \u001b[0m\u001b[35m───────────────────────────────────────────\u001b[0m\u001b[35m─╮\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mMemory Manager\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mThought: \u001b[0m\u001b[92mThought: I need to store both the query 'What is happening in FIFA club world cup 2025?' and the \u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[92mdetailed response about the event in memory for future reference. I will add this as an episode in the memory\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[92mwith the content fully included.\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mUsing Tool: \u001b[0m\u001b[1;92madd_memory\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
╭────────────────────────────────────────────────── Tool Input ───────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  \"{\\\"name\\\": \\\"FIFA Club World Cup 2025 Overview\\\", \\\"episode_body\\\": \\\"Query: What is happening in FIFA club   \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[34m╭─\u001b[0m\u001b[34m─────────────────────────────────────────────────\u001b[0m\u001b[34m Tool Input \u001b[0m\u001b[34m──────────────────────────────────────────────────\u001b[0m\u001b[34m─╮\u001b[0m\n", "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", "\u001b[34m│\u001b[0m \u001b[38;2;230;219;116;49m\"{\\\"name\\\": \\\"FIFA Club World Cup 2025 Overview\\\", \\\"episode_body\\\": \\\"Query: What is happening in FIFA club \u001b[0m \u001b[34m│\u001b[0m\n", "\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n", "\u001b[34m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
╭────────────────────────────────────────────────── Tool Output ──────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  {                                                                                                              \n",
       "    \"message\": \"Episode 'FIFA Club World Cup 2025 Overview' queued for processing (position: 1)\"                 \n",
       "  }                                                                                                              \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m─────────────────────────────────────────────────\u001b[0m\u001b[32m Tool Output \u001b[0m\u001b[32m─────────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m{\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m \"message\": \"Episode 'FIFA Club World Cup 2025 Overview' queued for processing (position: 1)\"\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m}\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭───────────────────────────────────────────── ✅ Agent Final Answer ─────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Memory Manager                                                                                          \n",
       "                                                                                                                 \n",
       "  Final Answer:                                                                                                  \n",
       "  Query: What is happening in FIFA club world cup 2025?                                                          \n",
       "  Response: The 2025 FIFA Club World Cup is currently taking place in the United States from June 14 to July     \n",
       "  13, 2025. This edition of the tournament features a significant change with an expanded format including 32    \n",
       "  clubs competing in 12 venues across 11 US cities. It is designed as a prelude to the 2026 FIFA World Cup.      \n",
       "  Key details and happenings in the tournament:                                                                  \n",
       "  - The tournament format mirrors that of the FIFA World Cup, with a round-robin group stage followed by         \n",
       "  knockout rounds, but without a third place playoff.                                                            \n",
       "  - Notable clubs participating include European giants Chelsea and Paris Saint-Germain (PSG), as well as        \n",
       "  Manchester City and Lionel Messi’s Inter Miami from MLS.                                                       \n",
       "  - The knockout phase started on June 28, 2025.                                                                 \n",
       "  - Chelsea advanced to the final after defeating Fluminense 2-0 in the semifinals.                              \n",
       "  - PSG reached the final by delivering a dominant 4-0 victory over Real Madrid.                                 \n",
       "  - The final match of the Club World Cup is scheduled for July 13, 2025, in New Jersey.                         \n",
       "  - Broadcast rights are held in China by the streaming platform Migu and in South Korea by Coupang Play.        \n",
       "  - The tournament has faced challenges such as a severe heat wave in the US affecting players and coaches.      \n",
       "  - An innovative feature introduced this year is referees wearing body cameras, with some footage shared with   \n",
       "  audiences, adding a new perspective to refereeing.                                                             \n",
       "  - There was some team reshuffling as Club Leon was removed from the tournament due to multi-club ownership     \n",
       "  criteria violations and will be replaced accordingly.                                                          \n",
       "  - The venues for the event are spread along the US East Coast, to better accommodate European broadcasters     \n",
       "  and avoid scheduling conflicts with other major tournaments like the 2025 CONCACAF Gold Cup.                   \n",
       "  This tournament represents a new milestone for the FIFA Club World Cup with its large scale and high-profile   \n",
       "  teams, offering fans a month-long festival of top-level club football across multiple major US cities.         \n",
       "  For more detailed schedules, results, and news updates, you can visit FIFA’s official page:                    \n",
       "  https://www.fifa.com/en/tournaments/mens/club-world-cup/usa-2025                                               \n",
       "  This comprehensive overview should keep you well informed about what is happening in the FIFA Club World Cup   \n",
       "  2025.                                                                                                          \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m────────────────────────────────────────────\u001b[0m\u001b[32m ✅ Agent Final Answer \u001b[0m\u001b[32m────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mMemory Manager\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mFinal Answer:\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mQuery: What is happening in FIFA club world cup 2025?\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mResponse: The 2025 FIFA Club World Cup is currently taking place in the United States from June 14 to July \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m13, 2025. This edition of the tournament features a significant change with an expanded format including 32 \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mclubs competing in 12 venues across 11 US cities. It is designed as a prelude to the 2026 FIFA World Cup.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mKey details and happenings in the tournament:\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The tournament format mirrors that of the FIFA World Cup, with a round-robin group stage followed by \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mknockout rounds, but without a third place playoff.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- Notable clubs participating include European giants Chelsea and Paris Saint-Germain (PSG), as well as \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mManchester City and Lionel Messi’s Inter Miami from MLS.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The knockout phase started on June 28, 2025.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- Chelsea advanced to the final after defeating Fluminense 2-0 in the semifinals.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- PSG reached the final by delivering a dominant 4-0 victory over Real Madrid.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The final match of the Club World Cup is scheduled for July 13, 2025, in New Jersey.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- Broadcast rights are held in China by the streaming platform Migu and in South Korea by Coupang Play.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The tournament has faced challenges such as a severe heat wave in the US affecting players and coaches.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- An innovative feature introduced this year is referees wearing body cameras, with some footage shared with \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92maudiences, adding a new perspective to refereeing.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- There was some team reshuffling as Club Leon was removed from the tournament due to multi-club ownership \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mcriteria violations and will be replaced accordingly.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The venues for the event are spread along the US East Coast, to better accommodate European broadcasters \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mand avoid scheduling conflicts with other major tournaments like the 2025 CONCACAF Gold Cup.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mThis tournament represents a new milestone for the FIFA Club World Cup with its large scale and high-profile \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mteams, offering fans a month-long festival of top-level club football across multiple major US cities.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mFor more detailed schedules, results, and news updates, you can visit FIFA’s official page: \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mhttps://www.fifa.com/en/tournaments/mens/club-world-cup/usa-2025\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mThis comprehensive overview should keep you well informed about what is happening in the FIFA Club World Cup \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m2025.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭──────────────────────────────────────────────── Task Completion ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Task Completed                                                                                                 \n",
       "  Name: efd6fc35-95ef-4f0d-b5fb-5bce7ed0f0a9                                                                     \n",
       "  Agent: Memory Manager                                                                                          \n",
       "  Tool Args:                                                                                                     \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m Task Completion \u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[1;32mTask Completed\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[32mefd6fc35-95ef-4f0d-b5fb-5bce7ed0f0a9\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[32mMemory Manager\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭─────────────────────────────────────────────── 🤖 Agent Started ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Response Generator                                                                                      \n",
       "                                                                                                                 \n",
       "  Task: Generate a response for 'What is happening in FIFA club world cup 2025?' using relevant information      \n",
       "  from memory                                                                                                    \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[35m╭─\u001b[0m\u001b[35m──────────────────────────────────────────────\u001b[0m\u001b[35m 🤖 Agent Started \u001b[0m\u001b[35m───────────────────────────────────────────────\u001b[0m\u001b[35m─╮\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mResponse Generator\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[37mTask: \u001b[0m\u001b[92mGenerate a response for 'What is happening in FIFA club world cup 2025?' using relevant information \u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[92mfrom memory\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m│\u001b[0m \u001b[35m│\u001b[0m\n", "\u001b[35m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭───────────────────────────────────────────── ✅ Agent Final Answer ─────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Agent: Response Generator                                                                                      \n",
       "                                                                                                                 \n",
       "  Final Answer:                                                                                                  \n",
       "  The 2025 FIFA Club World Cup is currently taking place in the United States from June 14 to July 13, 2025.     \n",
       "  This edition of the tournament features a significant change with an expanded format including 32 clubs        \n",
       "  competing in 12 venues across 11 US cities. It is designed as a prelude to the 2026 FIFA World Cup.            \n",
       "                                                                                                                 \n",
       "  Key details and happenings in the tournament include:                                                          \n",
       "                                                                                                                 \n",
       "  - The tournament format mirrors that of the FIFA World Cup, with a round-robin group stage followed by         \n",
       "  knockout rounds, but without a third-place playoff.                                                            \n",
       "                                                                                                                 \n",
       "  - Notable clubs participating include European giants Chelsea and Paris Saint-Germain (PSG), alongside         \n",
       "  Manchester City and Lionel Messi’s Inter Miami from MLS.                                                       \n",
       "                                                                                                                 \n",
       "  - The knockout phase began on June 28, 2025.                                                                   \n",
       "                                                                                                                 \n",
       "  - Chelsea advanced to the final after defeating Fluminense 2-0 in the semifinals.                              \n",
       "                                                                                                                 \n",
       "  - PSG reached the final by delivering a dominant 4-0 victory over Real Madrid.                                 \n",
       "                                                                                                                 \n",
       "  - The final match of the Club World Cup is scheduled for July 13, 2025, in New Jersey.                         \n",
       "                                                                                                                 \n",
       "  - Broadcast rights are held in China by the streaming platform Migu and in South Korea by Coupang Play.        \n",
       "                                                                                                                 \n",
       "  - The tournament has faced challenges such as a severe heat wave across the US, impacting players and          \n",
       "  coaches.                                                                                                       \n",
       "                                                                                                                 \n",
       "  - An innovative feature introduced this year is that referees are wearing body cameras, and some footage is    \n",
       "  being shared with audiences, providing a new perspective on refereeing.                                        \n",
       "                                                                                                                 \n",
       "  - There was team reshuffling prior to the tournament as Club Leon was removed due to violations of multi-club  \n",
       "  ownership criteria and will be replaced accordingly.                                                           \n",
       "                                                                                                                 \n",
       "  - Venues for the event are spread along the US East Coast to better accommodate European broadcasters and      \n",
       "  avoid schedule conflicts with other major tournaments like the 2025 CONCACAF Gold Cup.                         \n",
       "                                                                                                                 \n",
       "  This tournament represents a new milestone for the FIFA Club World Cup, showcasing a large scale and           \n",
       "  high-profile teams, offering fans a month-long festival of top-level club football across multiple major US    \n",
       "  cities.                                                                                                        \n",
       "                                                                                                                 \n",
       "  For more detailed schedules, results, and news updates, fans can visit FIFA’s official page at                 \n",
       "  https://www.fifa.com/en/tournaments/mens/club-world-cup/usa-2025.                                              \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m────────────────────────────────────────────\u001b[0m\u001b[32m ✅ Agent Final Answer \u001b[0m\u001b[32m────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[1;92mResponse Generator\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mFinal Answer:\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mThe 2025 FIFA Club World Cup is currently taking place in the United States from June 14 to July 13, 2025. \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mThis edition of the tournament features a significant change with an expanded format including 32 clubs \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mcompeting in 12 venues across 11 US cities. It is designed as a prelude to the 2026 FIFA World Cup.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mKey details and happenings in the tournament include:\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The tournament format mirrors that of the FIFA World Cup, with a round-robin group stage followed by \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mknockout rounds, but without a third-place playoff.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- Notable clubs participating include European giants Chelsea and Paris Saint-Germain (PSG), alongside \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mManchester City and Lionel Messi’s Inter Miami from MLS.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The knockout phase began on June 28, 2025.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- Chelsea advanced to the final after defeating Fluminense 2-0 in the semifinals.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- PSG reached the final by delivering a dominant 4-0 victory over Real Madrid.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The final match of the Club World Cup is scheduled for July 13, 2025, in New Jersey.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- Broadcast rights are held in China by the streaming platform Migu and in South Korea by Coupang Play.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- The tournament has faced challenges such as a severe heat wave across the US, impacting players and \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mcoaches.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- An innovative feature introduced this year is that referees are wearing body cameras, and some footage is \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mbeing shared with audiences, providing a new perspective on refereeing.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- There was team reshuffling prior to the tournament as Club Leon was removed due to violations of multi-club\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mownership criteria and will be replaced accordingly.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92m- Venues for the event are spread along the US East Coast to better accommodate European broadcasters and \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mavoid schedule conflicts with other major tournaments like the 2025 CONCACAF Gold Cup.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mThis tournament represents a new milestone for the FIFA Club World Cup, showcasing a large scale and \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mhigh-profile teams, offering fans a month-long festival of top-level club football across multiple major US \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mcities.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mFor more detailed schedules, results, and news updates, fans can visit FIFA’s official page at \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[92mhttps://www.fifa.com/en/tournaments/mens/club-world-cup/usa-2025.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
╭──────────────────────────────────────────────── Task Completion ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Task Completed                                                                                                 \n",
       "  Name: 8f249a12-4e54-4d74-afe8-7d10eed56cf7                                                                     \n",
       "  Agent: Response Generator                                                                                      \n",
       "  Tool Args:                                                                                                     \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m Task Completion \u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[1;32mTask Completed\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[32m8f249a12-4e54-4d74-afe8-7d10eed56cf7\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mAgent: \u001b[0m\u001b[32mResponse Generator\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
╭──────────────────────────────────────────────── Crew Completion ────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       "  Crew Execution Completed                                                                                       \n",
       "  Name: crew                                                                                                     \n",
       "  ID: 40ed7443-2bf9-4a19-b9ca-b9caf3d7280a                                                                       \n",
       "  Tool Args:                                                                                                     \n",
       "  Final Output: The 2025 FIFA Club World Cup is currently taking place in the United States from June 14 to      \n",
       "  July 13, 2025. This edition of the tournament features a significant change with an expanded format including  \n",
       "  32 clubs competing in 12 venues across 11 US cities. It is designed as a prelude to the 2026 FIFA World Cup.   \n",
       "                                                                                                                 \n",
       "  Key details and happenings in the tournament include:                                                          \n",
       "                                                                                                                 \n",
       "  - The tournament format mirrors that of the FIFA World Cup, with a round-robin group stage followed by         \n",
       "  knockout rounds, but without a third-place playoff.                                                            \n",
       "                                                                                                                 \n",
       "  - Notable clubs participating include European giants Chelsea and Paris Saint-Germain (PSG), alongside         \n",
       "  Manchester City and Lionel Messi’s Inter Miami from MLS.                                                       \n",
       "                                                                                                                 \n",
       "  - The knockout phase began on June 28, 2025.                                                                   \n",
       "                                                                                                                 \n",
       "  - Chelsea advanced to the final after defeating Fluminense 2-0 in the semifinals.                              \n",
       "                                                                                                                 \n",
       "  - PSG reached the final by delivering a dominant 4-0 victory over Real Madrid.                                 \n",
       "                                                                                                                 \n",
       "  - The final match of the Club World Cup is scheduled for July 13, 2025, in New Jersey.                         \n",
       "                                                                                                                 \n",
       "  - Broadcast rights are held in China by the streaming platform Migu and in South Korea by Coupang Play.        \n",
       "                                                                                                                 \n",
       "  - The tournament has faced challenges such as a severe heat wave across the US, impacting players and          \n",
       "  coaches.                                                                                                       \n",
       "                                                                                                                 \n",
       "  - An innovative feature introduced this year is that referees are wearing body cameras, and some footage is    \n",
       "  being shared with audiences, providing a new perspective on refereeing.                                        \n",
       "                                                                                                                 \n",
       "  - There was team reshuffling prior to the tournament as Club Leon was removed due to violations of multi-club  \n",
       "  ownership criteria and will be replaced accordingly.                                                           \n",
       "                                                                                                                 \n",
       "  - Venues for the event are spread along the US East Coast to better accommodate European broadcasters and      \n",
       "  avoid schedule conflicts with other major tournaments like the 2025 CONCACAF Gold Cup.                         \n",
       "                                                                                                                 \n",
       "  This tournament represents a new milestone for the FIFA Club World Cup, showcasing a large scale and           \n",
       "  high-profile teams, offering fans a month-long festival of top-level club football across multiple major US    \n",
       "  cities.                                                                                                        \n",
       "                                                                                                                 \n",
       "  For more detailed schedules, results, and news updates, fans can visit FIFA’s official page at                 \n",
       "  https://www.fifa.com/en/tournaments/mens/club-world-cup/usa-2025.                                              \n",
       "                                                                                                                 \n",
       "                                                                                                                 \n",
       "╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[32m╭─\u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m Crew Completion \u001b[0m\u001b[32m───────────────────────────────────────────────\u001b[0m\u001b[32m─╮\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[1;32mCrew Execution Completed\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mName: \u001b[0m\u001b[32mcrew\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mID: \u001b[0m\u001b[32m40ed7443-2bf9-4a19-b9ca-b9caf3d7280a\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mTool Args: \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mFinal Output: The 2025 FIFA Club World Cup is currently taking place in the United States from June 14 to \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mJuly 13, 2025. This edition of the tournament features a significant change with an expanded format including\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37m32 clubs competing in 12 venues across 11 US cities. It is designed as a prelude to the 2026 FIFA World Cup.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mKey details and happenings in the tournament include:\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37m- The tournament format mirrors that of the FIFA World Cup, with a round-robin group stage followed by \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mknockout rounds, but without a third-place playoff.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37m- Notable clubs participating include European giants Chelsea and Paris Saint-Germain (PSG), alongside \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mManchester City and Lionel Messi’s Inter Miami from MLS.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37m- The knockout phase began on June 28, 2025.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37m- Chelsea advanced to the final after defeating Fluminense 2-0 in the semifinals.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37m- PSG reached the final by delivering a dominant 4-0 victory over Real Madrid.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37m- The final match of the Club World Cup is scheduled for July 13, 2025, in New Jersey.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37m- Broadcast rights are held in China by the streaming platform Migu and in South Korea by Coupang Play.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37m- The tournament has faced challenges such as a severe heat wave across the US, impacting players and \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mcoaches.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37m- An innovative feature introduced this year is that referees are wearing body cameras, and some footage is \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mbeing shared with audiences, providing a new perspective on refereeing.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37m- There was team reshuffling prior to the tournament as Club Leon was removed due to violations of multi-club\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mownership criteria and will be replaced accordingly.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37m- Venues for the event are spread along the US East Coast to better accommodate European broadcasters and \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mavoid schedule conflicts with other major tournaments like the 2025 CONCACAF Gold Cup.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mThis tournament represents a new milestone for the FIFA Club World Cup, showcasing a large scale and \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mhigh-profile teams, offering fans a month-long festival of top-level club football across multiple major US \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mcities.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mFor more detailed schedules, results, and news updates, fans can visit FIFA’s official page at \u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[37mhttps://www.fifa.com/en/tournaments/mens/club-world-cup/usa-2025.\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m│\u001b[0m \u001b[32m│\u001b[0m\n", "\u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The 2025 FIFA Club World Cup is currently taking place in the United States from June 14 to July 13, 2025. This edition of the tournament features a significant change with an expanded format including 32 clubs competing in 12 venues across 11 US cities. It is designed as a prelude to the 2026 FIFA World Cup.\n", "\n", "Key details and happenings in the tournament include:\n", "\n", "- The tournament format mirrors that of the FIFA World Cup, with a round-robin group stage followed by knockout rounds, but without a third-place playoff.\n", "\n", "- Notable clubs participating include European giants Chelsea and Paris Saint-Germain (PSG), alongside Manchester City and Lionel Messi’s Inter Miami from MLS.\n", "\n", "- The knockout phase began on June 28, 2025.\n", "\n", "- Chelsea advanced to the final after defeating Fluminense 2-0 in the semifinals.\n", "\n", "- PSG reached the final by delivering a dominant 4-0 victory over Real Madrid.\n", "\n", "- The final match of the Club World Cup is scheduled for July 13, 2025, in New Jersey.\n", "\n", "- Broadcast rights are held in China by the streaming platform Migu and in South Korea by Coupang Play.\n", "\n", "- The tournament has faced challenges such as a severe heat wave across the US, impacting players and coaches.\n", "\n", "- An innovative feature introduced this year is that referees are wearing body cameras, and some footage is being shared with audiences, providing a new perspective on refereeing.\n", "\n", "- There was team reshuffling prior to the tournament as Club Leon was removed due to violations of multi-club ownership criteria and will be replaced accordingly.\n", "\n", "- Venues for the event are spread along the US East Coast to better accommodate European broadcasters and avoid schedule conflicts with other major tournaments like the 2025 CONCACAF Gold Cup.\n", "\n", "This tournament represents a new milestone for the FIFA Club World Cup, showcasing a large scale and high-profile teams, offering fans a month-long festival of top-level club football across multiple major US cities.\n", "\n", "For more detailed schedules, results, and news updates, fans can visit FIFA’s official page at https://www.fifa.com/en/tournaments/mens/club-world-cup/usa-2025.\n" ] } ], "source": [ "from crewai import Agent, Task, Crew\n", "\n", "from crewai_tools import MCPServerAdapter\n", "\n", "# MCP configuration for websearch and memory MCP servers\n", "server_params = [\n", " {\n", " \"url\": \"http://localhost:8000/sse\",\n", " \"transport\": \"sse\"\n", " },\n", " {\n", " \"url\": \"http://localhost:8080/sse\",\n", " \"transport\": \"sse\"\n", " }\n", " ]\n", "\n", "# Create agents under the MCP context manager\n", "with MCPServerAdapter(server_params) as mcp_tools:\n", " # Assistant Agent\n", " assistant_agent = Agent(\n", " role=\"Helpful Assistant\",\n", " goal=\"Provide accurate and helpful responses to user queries\",\n", " backstory=\"I am a helpful AI assistant that can search the web when needed to provide accurate information.\",\n", " allow_delegation=False,\n", " tools=[mcp_tools[\"web_search\"]]\n", " )\n", "\n", " # Memory Manager Agent \n", " memory_manager = Agent(\n", " role=\"Memory Manager\",\n", " goal=\"Store and manage conversation history\",\n", " backstory=\"I am responsible for maintaining the conversation memory by storing relevant information.\",\n", " allow_delegation=False,\n", " tools=[mcp_tools[\"add_memory\"]]\n", " )\n", "\n", " # Response Generator Agent\n", " response_generator = Agent(\n", " role=\"Response Generator\",\n", " goal=\"Generate coherent responses using memory context\",\n", " backstory=\"I analyze memory nodes to generate contextually relevant responses.\",\n", " allow_delegation=False,\n", " tools=[mcp_tools[\"search_memory_nodes\"]]\n", " )\n", "\n", " # Define tasks\n", " assistant_task = Task(\n", " description=\"Process the user query '{query}' and provide a helpful response. Search the web if needed.\",\n", " agent=assistant_agent,\n", " expected_output=\"A detailed response addressing the user's query\"\n", " )\n", "\n", " memory_task = Task(\n", " description=\"Store the query '{query}' and response in memory for future reference\",\n", " agent=memory_manager,\n", " expected_output=\"Confirmation of memory storage\"\n", " )\n", "\n", " response_gen_task = Task(\n", " description=\"Generate a response for '{query}' using relevant information from memory\",\n", " agent=response_generator,\n", " expected_output=\"A coherent response incorporating context from memory\"\n", " )\n", "\n", " # Create crew with all agents and tasks\n", " crew = Crew(\n", " agents=[assistant_agent, memory_manager, response_generator],\n", " tasks=[assistant_task, memory_task, response_gen_task],\n", " verbose=True\n", " )\n", "\n", " # Example usage\n", " result = crew.kickoff(\n", " inputs={\n", " \"query\": \"What is happening in FIFA club world cup 2025?\",\n", " }\n", " )\n", " print(result)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from crewai import Agent\n", "from crewai_tools import MCPServerAdapter\n", "\n", "\n", "server_params = [\n", " {\n", " \"url\": \"http://localhost:8000/sse\",\n", " \"transport\": \"sse\"\n", " },\n", " {\n", " \"url\": \"http://localhost:8080/sse\",\n", " \"transport\": \"sse\"\n", " }\n", " ]\n", "\n", "\n", "# Example usage (uncomment and adapt once server_params is set):\n", "with MCPServerAdapter(server_params) as mcp_tools:\n", " print(f\"Available tools: {[tool.name for tool in mcp_tools]}\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from crewai import Agent\n", "from crewai_tools import MCPServerAdapter\n", "\n", "\n", "# 2. SSE Server:\n", "server_params = {\n", " \"url\": \"http://localhost:8000/sse\",\n", " \"transport\": \"sse\"\n", "}\n", "\n", "with MCPServerAdapter(server_params) as mcp_tools:\n", " print(f\"Available tools: {[tool.name for tool in mcp_tools]}\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from crewai import Agent, Task, Crew\n", "\n", "from crewai_tools import MCPServerAdapter\n", "\n", "# MCP configuration for websearch and memory MCP servers\n", "server_params = [\n", " {\n", " \"url\": \"http://localhost:8000/sse\",\n", " \"transport\": \"sse\"\n", " }\n", " ]\n", "\n", "# Create agents under the MCP context manager\n", "with MCPServerAdapter(server_params) as mcp_tools:\n", " print(f\"Available tools: {[tool.name for tool in mcp_tools]}\")\n", " # Assistant Agent\n", " memory_manager = Agent(\n", " role=\"Clears memory\",\n", " goal=\"Clear the memory\",\n", " backstory=\"I am a helpful AI assistant that can clear the memory.\",\n", " allow_delegation=False,\n", " tools=[mcp_tools[\"clear_graph\"]]\n", " )\n", "\n", "\n", " memory_task = Task(\n", " description=\"Clear the memory\",\n", " agent=memory_manager,\n", " expected_output=\"Confirmation of memory cleared\"\n", " )\n", "\n", " # Create crew with all agents and tasks\n", " crew = Crew(\n", " agents=[memory_manager],\n", " tasks=[ memory_task],\n", " verbose=True\n", " )\n", "\n", " # Example usage\n", " result = crew.kickoff(\n", " inputs={\n", " \n", " }\n", " )\n", " print(result)\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from crewai import Agent, Task, Crew\n", "\n", "from crewai_tools import MCPServerAdapter\n", "\n", "# MCP configuration for websearch and memory MCP servers\n", "server_params = [\n", " {\n", " \"url\": \"http://localhost:8000/sse\",\n", " \"transport\": \"sse\"\n", " }\n", " ]\n", "\n", "# Create agents under the MCP context manager\n", "with MCPServerAdapter(server_params) as mcp_tools:\n", " print(f\"Available tools: {[tool.name for tool in mcp_tools]}\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": ".venv", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.9" } }, "nbformat": 4, "nbformat_minor": 2 }