agentops/examples/agno/agno_basic_agents.ipynb

217 lines
6.8 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "8b2111ae",
"metadata": {},
"source": [
"# Basic Agents and Teams with Agno\n",
"\n",
"This example demonstrates the fundamentals of creating AI agents and organizing them into collaborative teams using the Agno framework.\n",
"\n",
"## Overview\n",
"\n",
"In this example, you'll learn how to:\n",
"- **Create specialized AI agents** with specific roles and expertise\n",
"- **Organize agents into teams** for collaborative problem-solving\n",
"- **Use coordination modes** for effective agent communication\n",
"- **Monitor agent interactions** with AgentOps integration\n",
"\n",
"## Key Concepts\n",
"\n",
"### Agents\n",
"Individual AI entities with specific roles and capabilities. Each agent can be assigned a particular area of expertise, making them specialists in their domain.\n",
"\n",
"### Teams\n",
"Collections of agents that work together to solve complex tasks. Teams can coordinate their responses, share information, and delegate tasks based on each agent's expertise.\n",
"\n",
"### Coordination Modes\n",
"Different strategies for how agents within a team interact and collaborate. The \"coordinate\" mode enables intelligent task routing and information sharing."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d087e416",
"metadata": {},
"outputs": [],
"source": [
"# Install the required dependencies\n",
"%pip install agentops\n",
"%pip install agno\n",
"%pip install python-dotenv"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "39ad00cb",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"from dotenv import load_dotenv\n",
"\n",
"import agentops\n",
"from agno.agent import Agent\n",
"from agno.team import Team\n",
"from agno.models.openai import OpenAIChat"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f733e281",
"metadata": {},
"outputs": [],
"source": [
"load_dotenv()\n",
"os.environ[\"OPENAI_API_KEY\"] = os.getenv(\"OPENAI_API_KEY\", \"your_openai_api_key_here\")\n",
"os.environ[\"AGENTOPS_API_KEY\"] = os.getenv(\"AGENTOPS_API_KEY\", \"your_agentops_api_key_here\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fb37819a",
"metadata": {},
"outputs": [],
"source": [
"agentops.init(auto_start_session=False, tags=[\"agno-example\", \"basics\", \"agents-and-teams\"])"
]
},
{
"cell_type": "markdown",
"id": "e954b898",
"metadata": {
"vscode": {
"languageId": "raw"
}
},
"source": [
"## Creating Agents and Teams\n",
"\n",
"Now let's create our specialized agents and organize them into a collaborative team:\n",
"\n",
"### Step 1: Create Individual Agents\n",
"We'll create two agents with different specializations:\n",
"- **News Agent**: Specializes in gathering and analyzing news\n",
"- **Weather Agent**: Specializes in weather forecasting and analysis\n",
"\n",
"### Step 2: Form a Team\n",
"We'll combine these agents into a team using the \"coordinate\" mode, which enables:\n",
"- Intelligent task routing based on agent expertise\n",
"- Information sharing between agents\n",
"- Collaborative problem-solving\n",
"\n",
"### Step 3: Execute Tasks\n",
"The team will automatically delegate tasks to the most appropriate agent(s) based on the query.\n"
]
},
{
"cell_type": "markdown",
"id": "c12702d0",
"metadata": {},
"source": [
"Here's the code to implement this:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f872be2e",
"metadata": {},
"outputs": [],
"source": [
"def demonstrate_basic_agents():\n",
" \"\"\"\n",
" Demonstrate basic agent creation and team coordination.\n",
"\n",
" This function shows how to:\n",
" 1. Create specialized agents with specific roles\n",
" 2. Organize agents into a team\n",
" 3. Use the team to solve tasks that require multiple perspectives\n",
" \"\"\"\n",
" tracer = agentops.start_trace(\n",
" trace_name=\"Agno Basic Agents and Teams Demonstration\",\n",
" )\n",
"\n",
" try:\n",
" # Create individual agents with specific roles\n",
" # Each agent has a name and a role that defines its expertise\n",
"\n",
" # News Agent: Specializes in gathering and analyzing news information\n",
" news_agent = Agent(\n",
" name=\"News Agent\", role=\"Get the latest news and provide news analysis\", model=OpenAIChat(id=\"gpt-4o-mini\")\n",
" )\n",
"\n",
" # Weather Agent: Specializes in weather forecasting and analysis\n",
" weather_agent = Agent(\n",
" name=\"Weather Agent\",\n",
" role=\"Get weather forecasts and provide weather analysis\",\n",
" model=OpenAIChat(id=\"gpt-4o-mini\"),\n",
" )\n",
"\n",
" # Create a team with coordination mode\n",
" # The \"coordinate\" mode allows agents to work together and share information\n",
" team = Team(\n",
" name=\"News and Weather Team\",\n",
" mode=\"coordinate\", # Agents will coordinate their responses\n",
" members=[news_agent, weather_agent],\n",
" )\n",
"\n",
" # Run a task that requires team coordination\n",
" # The team will automatically determine which agent(s) should respond\n",
" response = team.run(\"What is the weather in Tokyo?\")\n",
"\n",
" print(\"\\nTeam Response:\")\n",
" print(\"-\" * 60)\n",
" print(f\"{response.content}\")\n",
" print(\"-\" * 60)\n",
"\n",
" agentops.end_trace(tracer, end_state=\"Success\")\n",
"\n",
" except Exception as e:\n",
" print(f\"An error occurred: {e}\")\n",
" agentops.end_trace(tracer, end_state=\"Error\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ca13c9b0",
"metadata": {},
"outputs": [],
"source": [
"demonstrate_basic_agents()"
]
}
],
"metadata": {
"jupytext": {
"cell_metadata_filter": "-all",
"main_language": "python",
"notebook_metadata_filter": "-all"
},
"kernelspec": {
"display_name": "agentops (3.11.11)",
"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.11.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}