from opper_agents import Agent, hook
from opper_agents.base.context import AgentContext
@hook("agent_start")
async def on_start(context: AgentContext, agent, **kwargs):
print(f"🚀 Agent {agent.name} starting")
print(f"Session: {context.session_id}")
@hook("agent_end")
async def on_end(context: AgentContext, agent, **kwargs):
print(f"✅ Agent {agent.name} completed")
print(f"Total tokens: {context.usage.total_tokens}")
@hook("tool_call")
async def on_tool(context: AgentContext, agent, tool, parameters, **kwargs):
print(f"🔧 Calling {tool.name} with {parameters}")
@hook("tool_result")
async def on_result(context: AgentContext, agent, tool, result, **kwargs):
print(f"📤 {tool.name} returned: {result.result}")
agent = Agent(
name="MyAgent",
hooks=[on_start, on_end, on_tool, on_result],
tools=[my_tool]
)