11import asyncio
22import random
3- from typing import Any
3+ from typing import Any , Optional
44
55from pydantic import BaseModel
66
77from agents import Agent , RunContextWrapper , RunHooks , Runner , Tool , Usage , function_tool
8+ from agents .items import ModelResponse , TResponseInputItem
89
910
1011class ExampleHooks (RunHooks ):
@@ -20,6 +21,22 @@ async def on_agent_start(self, context: RunContextWrapper, agent: Agent) -> None
2021 f"### { self .event_counter } : Agent { agent .name } started. Usage: { self ._usage_to_str (context .usage )} "
2122 )
2223
24+ async def on_llm_start (
25+ self ,
26+ context : RunContextWrapper ,
27+ agent : Agent ,
28+ system_prompt : Optional [str ],
29+ input_items : list [TResponseInputItem ],
30+ ) -> None :
31+ self .event_counter += 1
32+ print (f"### { self .event_counter } : LLM started. Usage: { self ._usage_to_str (context .usage )} " )
33+
34+ async def on_llm_end (
35+ self , context : RunContextWrapper , agent : Agent , response : ModelResponse
36+ ) -> None :
37+ self .event_counter += 1
38+ print (f"### { self .event_counter } : LLM ended. Usage: { self ._usage_to_str (context .usage )} " )
39+
2340 async def on_agent_end (self , context : RunContextWrapper , agent : Agent , output : Any ) -> None :
2441 self .event_counter += 1
2542 print (
@@ -109,13 +126,21 @@ async def main() -> None:
109126
110127Enter a max number: 250
111128### 1: Agent Start Agent started. Usage: 0 requests, 0 input tokens, 0 output tokens, 0 total tokens
112- ### 2: Tool random_number started. Usage: 1 requests, 148 input tokens, 15 output tokens, 163 total tokens
113- ### 3: Tool random_number ended with result 101. Usage: 1 requests, 148 input tokens, 15 output tokens, 163 total token
114- ### 4: Handoff from Start Agent to Multiply Agent. Usage: 2 requests, 323 input tokens, 30 output tokens, 353 total tokens
115- ### 5: Agent Multiply Agent started. Usage: 2 requests, 323 input tokens, 30 output tokens, 353 total tokens
116- ### 6: Tool multiply_by_two started. Usage: 3 requests, 504 input tokens, 46 output tokens, 550 total tokens
117- ### 7: Tool multiply_by_two ended with result 202. Usage: 3 requests, 504 input tokens, 46 output tokens, 550 total tokens
118- ### 8: Agent Multiply Agent ended with output number=202. Usage: 4 requests, 714 input tokens, 63 output tokens, 777 total tokens
129+ ### 2: LLM started. Usage: 0 requests, 0 input tokens, 0 output tokens, 0 total tokens
130+ ### 3: LLM ended. Usage: 1 requests, 143 input tokens, 15 output tokens, 158 total tokens
131+ ### 4: Tool random_number started. Usage: 1 requests, 143 input tokens, 15 output tokens, 158 total tokens
132+ ### 5: Tool random_number ended with result 69. Usage: 1 requests, 143 input tokens, 15 output tokens, 158 total tokens
133+ ### 6: LLM started. Usage: 1 requests, 143 input tokens, 15 output tokens, 158 total tokens
134+ ### 7: LLM ended. Usage: 2 requests, 310 input tokens, 29 output tokens, 339 total tokens
135+ ### 8: Handoff from Start Agent to Multiply Agent. Usage: 2 requests, 310 input tokens, 29 output tokens, 339 total tokens
136+ ### 9: Agent Multiply Agent started. Usage: 2 requests, 310 input tokens, 29 output tokens, 339 total tokens
137+ ### 10: LLM started. Usage: 2 requests, 310 input tokens, 29 output tokens, 339 total tokens
138+ ### 11: LLM ended. Usage: 3 requests, 472 input tokens, 45 output tokens, 517 total tokens
139+ ### 12: Tool multiply_by_two started. Usage: 3 requests, 472 input tokens, 45 output tokens, 517 total tokens
140+ ### 13: Tool multiply_by_two ended with result 138. Usage: 3 requests, 472 input tokens, 45 output tokens, 517 total tokens
141+ ### 14: LLM started. Usage: 3 requests, 472 input tokens, 45 output tokens, 517 total tokens
142+ ### 15: LLM ended. Usage: 4 requests, 660 input tokens, 56 output tokens, 716 total tokens
143+ ### 16: Agent Multiply Agent ended with output number=138. Usage: 4 requests, 660 input tokens, 56 output tokens, 716 total tokens
119144Done!
120145
121146"""
0 commit comments