Skip to main content
All operations are automatically associated with the agent that originated them. Agents are given a name which is what you will see in the dashboard.
The example below creates an agent class with a custom name:
from agentops.sdk.decorators import agent

@agent(name='ResearchAgent')
class MyAgent:
    def __init__(self):
        # Agent initialization
        pass
        
    # Agent methods
If you don’t specify a name, the agent will use the class name by default:
@agent
class ResearchAgent:
    # This agent will have the name "ResearchAgent"
    pass

Nesting Operations Under Agents

Operations performed by an agent should be decorated with the @operation decorator to ensure they’re properly nested under the agent:
from agentops.sdk.decorators import agent, operation

@agent
class ResearchAgent:
    @operation
    def search_web(self, query):
        # Search implementation
        return results
        
    @operation
    def analyze_data(self, data):
        # Analysis implementation
        return analysis

Session Context

Agents should be created within a session context to ensure proper tracing:
from agentops.sdk.decorators import session, agent, operation

@agent
class ResearchAgent:
    @operation
    def perform_research(self, topic):
        # Research implementation
        return results

@session
def research_workflow(topic):
    agent = ResearchAgent()
    return agent.perform_research(topic)
    
# Run the session
result = research_workflow("quantum computing")