import asyncio
from agents import Agent, Runner, AgentHooks
from config import config
from pydantic import BaseModel
class UserData(BaseModel):
name: str
height: float
class CustomAgentHooks(AgentHooks):
async def on_start(
self, context, agent: Agent
) -> None: # Context is accessible without RunContextWrapper
"""Called before the agent is invoked. Called each time the running agent is changed to this agent."""
print(f"Agent {agent.name} started with context: {context.context}")
async def main():
agent = Agent(
name="Super Assistant",
instructions="You are a helpful assistant.",
hooks=CustomAgentHooks(),
)
userdata = UserData(name="Daniel", height=5.11)
result = await Runner.run(
agent, input="how are you?", context=userdata, run_config=config
)
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())