Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.agentops.ai/llms.txt

Use this file to discover all available pages before exploring further.

AgentOps has first party support for SwarmZero via its Python SDK. Explore development with SwarmZero by visiting their docs.

Steps to integrate SwarmZero with AgentOps

1

Install SwarmZero

pip install swarmzero
2

Install the AgentOps SDK

pip install agentops
3

Install additional dependencies

pip install python-dotenv tavily-python
4

Add AgentOps to your code

Make sure to call agentops.init before calling any openai, cohere, crew, etc models.
import os
import agentops
from dotenv import load_dotenv
from swarmzero import Agent
from tavily import TavilyClient

# Load environment variables
load_dotenv()

# Initialize clients
agentops.init(os.getenv("AGENTOPS_API_KEY"))
tavily_client = TavilyClient(api_key=os.getenv("TAVILY_API_KEY"))

# Your SwarmZero agent code here...
Set your API key as an .env variable for easy access.
AGENTOPS_API_KEY=<YOUR API KEY>
TAVILY_API_KEY=<YOUR API KEY>
OPENAI_API_KEY=<YOUR API KEY>
Read more about environment variables in Advanced Configuration
5

Run your Agent

Execute your program and visit app.agentops.ai/drilldown to observe your Agent! 🕵️
After your run, AgentOps prints a clickable url to console linking directly to your session in the Dashboard

Full Example

import os
import agentops
from dotenv import load_dotenv
from swarmzero import Agent
from tavily import TavilyClient

load_dotenv()
agentops.init(os.getenv("AGENTOPS_API_KEY"))
tavily_client = TavilyClient(api_key=os.getenv("TAVILY_API_KEY"))

async def web_search(query: str) -> dict:
    response = tavily_client.search(query)
    results = []
    for result in response["results"][:3]:
        results.append({"title": result["title"], "url": result["url"], "content": result["content"]})
    return results

async def extract_from_urls(urls: list[str]) -> dict:
    response = tavily_client.extract(urls=urls)

    if response["failed_results"]:
        print(f"Failed to extract from {response['failed_results']}")

    results = []
    for result in response["results"]:
        results.append({"url": result["url"], "raw_content": result["raw_content"]})

    return results

my_agent = Agent(
    name="workflow-assistant",
    functions=[
        web_search,
        extract_from_urls,
    ],
    config_path="./swarmzero_config.toml", # see https://github.com/swarmzero/swarmzero/blob/main/swarmzero_config_example.toml
    instruction="You are a helpful assistant that can search the web and extract information from a given URL.",
    # chat_only_mode=True  # remove comment only if using `my_agent.chat()`
)

my_agent.run()  # see agent API at localhost:8000/docs

"""
# chat directly without starting the agent's server
import asyncio

response = asyncio.run(my_agent.chat(prompt="what is Decentralized-AI about about?"))
print(response)
"""

Using the Agent

Once your agent is running, you can interact with it using HTTP requests:
curl -X 'POST' \
  'http://localhost:8000/api/v1/chat' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F 'user_id=test_user' \
  -F 'session_id=test_web_search_agent' \
  -F 'chat_data={"messages":[{"role":"user","content":"what is Decentralized-AI about about?"}]}'
This example can be found in this notebook This full code for this example can be found in this repository.