1
1
import asyncio
2
2
import random
3
- from typing import Any
3
+ from typing import Any , Optional
4
4
5
5
from pydantic import BaseModel
6
6
7
7
from agents import Agent , RunContextWrapper , RunHooks , Runner , Tool , Usage , function_tool
8
+ from agents .items import ModelResponse , TResponseInputItem
8
9
9
10
10
11
class ExampleHooks (RunHooks ):
@@ -20,6 +21,22 @@ async def on_agent_start(self, context: RunContextWrapper, agent: Agent) -> None
20
21
f"### { self .event_counter } : Agent { agent .name } started. Usage: { self ._usage_to_str (context .usage )} "
21
22
)
22
23
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
+
23
40
async def on_agent_end (self , context : RunContextWrapper , agent : Agent , output : Any ) -> None :
24
41
self .event_counter += 1
25
42
print (
@@ -109,13 +126,21 @@ async def main() -> None:
109
126
110
127
Enter a max number: 250
111
128
### 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
119
144
Done!
120
145
121
146
"""
0 commit comments