1919 from agents .run import AgentRunner
2020 from agents .run_context import TContext
2121 from agents .models .interface import Model
22+
2223 agents_available = True
2324except :
2425 agents_available = False
2526
27+
2628def is_agents_available ():
2729 if not agents_available :
2830 raise ImportError (
@@ -44,33 +46,37 @@ def _patch_default_agent_runner_get_model():
4446 global _PATCHED_DEFAULT_GET_MODEL
4547 if _PATCHED_DEFAULT_GET_MODEL :
4648 return
47-
49+
4850 original_get_model = AgentRunner ._get_model
49-
51+
5052 @classmethod
51- def patched_get_model (cls , agent : Agent [Any ], run_config : RunConfig ) -> Model :
53+ def patched_get_model (
54+ cls , agent : Agent [Any ], run_config : RunConfig
55+ ) -> Model :
5256 model = original_get_model (agent , run_config )
53-
57+
5458 # Extract attributes from agent if it's a DeepEvalAgent
55- llm_metrics = getattr (agent , ' llm_metrics' , None )
56- llm_metric_collection = getattr (agent , ' llm_metric_collection' , None )
57- confident_prompt = getattr (agent , ' confident_prompt' , None )
59+ llm_metrics = getattr (agent , " llm_metrics" , None )
60+ llm_metric_collection = getattr (agent , " llm_metric_collection" , None )
61+ confident_prompt = getattr (agent , " confident_prompt" , None )
5862 model = _ObservedModel (
5963 inner = model ,
6064 llm_metric_collection = llm_metric_collection ,
6165 llm_metrics = llm_metrics ,
6266 confident_prompt = confident_prompt ,
6367 )
64-
68+
6569 return model
66-
70+
6771 # Replace the method
6872 AgentRunner ._get_model = patched_get_model
6973 _PATCHED_DEFAULT_GET_MODEL = True
7074
75+
7176if agents_available :
7277 _patch_default_agent_runner_get_model ()
7378
79+
7480class Runner (AgentsRunner ):
7581
7682 @classmethod
@@ -86,15 +92,14 @@ async def run(
8692 previous_response_id : Optional [str ] = None ,
8793 conversation_id : Optional [str ] = None ,
8894 session : Optional [Session ] = None ,
89-
9095 metrics : Optional [List [BaseMetric ]] = None ,
9196 metric_collection : Optional [str ] = None ,
9297 name : Optional [str ] = None ,
9398 tags : Optional [List [str ]] = None ,
9499 metadata : Optional [dict ] = None ,
95100 thread_id : Optional [str ] = None ,
96101 user_id : Optional [str ] = None ,
97- ** kwargs , # backwards compatibility
102+ ** kwargs , # backwards compatibility
98103 ) -> RunResult :
99104 is_agents_available ()
100105 # _patch_default_agent_runner_get_model()
@@ -131,7 +136,7 @@ async def run(
131136 previous_response_id = previous_response_id ,
132137 conversation_id = conversation_id ,
133138 session = session ,
134- ** kwargs , # backwards compatibility
139+ ** kwargs , # backwards compatibility
135140 )
136141 _output = None
137142 if thread_id :
@@ -155,7 +160,6 @@ def run_sync(
155160 previous_response_id : Optional [str ] = None ,
156161 conversation_id : Optional [str ] = None ,
157162 session : Optional [Session ] = None ,
158-
159163 metrics : Optional [List [BaseMetric ]] = None ,
160164 metric_collection : Optional [str ] = None ,
161165 name : Optional [str ] = None ,
@@ -200,7 +204,7 @@ def run_sync(
200204 previous_response_id = previous_response_id ,
201205 conversation_id = conversation_id ,
202206 session = session ,
203- ** kwargs , # backwards compatibility
207+ ** kwargs , # backwards compatibility
204208 )
205209 _output = None
206210 if thread_id :
@@ -211,7 +215,7 @@ def run_sync(
211215 observer .result = _output
212216
213217 return res
214-
218+
215219 @classmethod
216220 def run_streamed (
217221 cls ,
@@ -225,15 +229,14 @@ def run_streamed(
225229 previous_response_id : Optional [str ] = None ,
226230 conversation_id : Optional [str ] = None ,
227231 session : Optional [Session ] = None ,
228-
229232 metrics : Optional [List [BaseMetric ]] = None ,
230233 metric_collection : Optional [str ] = None ,
231234 name : Optional [str ] = None ,
232235 tags : Optional [List [str ]] = None ,
233236 metadata : Optional [dict ] = None ,
234237 thread_id : Optional [str ] = None ,
235238 user_id : Optional [str ] = None ,
236- ** kwargs , # backwards compatibility
239+ ** kwargs , # backwards compatibility
237240 ) -> RunResultStreaming :
238241 is_agents_available ()
239242 # Manually enter observer; we'll exit when streaming finishes
@@ -271,7 +274,7 @@ def run_streamed(
271274 previous_response_id = previous_response_id ,
272275 conversation_id = conversation_id ,
273276 session = session ,
274- ** kwargs , # backwards compatibility
277+ ** kwargs , # backwards compatibility
275278 )
276279
277280 # Runtime-patch stream_events so the observer closes only after streaming completes
@@ -290,10 +293,11 @@ async def _patched_stream_events(self: RunResultStreaming):
290293 observer .__exit__ (None , None , None )
291294
292295 from types import MethodType as _MethodType
296+
293297 res .stream_events = _MethodType (_patched_stream_events , res )
294298
295299 return res
296-
300+
297301
298302def update_trace_attributes (
299303 input : Any = None ,
@@ -324,4 +328,4 @@ def update_trace_attributes(
324328 if metric_collection :
325329 current_trace .metric_collection = metric_collection
326330 if metrics :
327- current_trace .metrics = metrics
331+ current_trace .metrics = metrics
0 commit comments