1515import pytest
1616from langchain .messages import HumanMessage
1717from langchain .tools import tool
18- from testing_support .fixtures import reset_core_stats_engine , validate_attributes
18+ from testing_support .fixtures import dt_enabled , reset_core_stats_engine , validate_attributes
1919from testing_support .ml_testing_utils import (
2020 disabled_ai_monitoring_record_content_settings ,
2121 disabled_ai_monitoring_settings ,
@@ -77,6 +77,7 @@ def add_exclamation(message: str) -> str:
7777 return f"{ message } !"
7878
7979
80+ @dt_enabled
8081@reset_core_stats_engine ()
8182def test_agent (exercise_agent , create_agent_runnable , set_trace_info , method_name ):
8283 @validate_custom_events (events_with_context_attrs (agent_recorded_event ))
@@ -103,6 +104,7 @@ def _test():
103104 _test ()
104105
105106
107+ @dt_enabled
106108@reset_core_stats_engine ()
107109@disabled_ai_monitoring_record_content_settings
108110def test_agent_no_content (exercise_agent , create_agent_runnable , set_trace_info , method_name ):
@@ -128,13 +130,15 @@ def _test():
128130 _test ()
129131
130132
133+ @dt_enabled
131134@reset_core_stats_engine ()
132135@validate_custom_event_count (count = 0 )
133136def test_agent_outside_txn (exercise_agent , create_agent_runnable ):
134137 my_agent = create_agent_runnable (tools = [add_exclamation ], system_prompt = "You are a text manipulation algorithm." )
135138 exercise_agent (my_agent , PROMPT )
136139
137140
141+ @dt_enabled
138142@disabled_ai_monitoring_settings
139143@reset_core_stats_engine ()
140144@validate_custom_event_count (count = 0 )
@@ -145,6 +149,7 @@ def test_agent_disabled_ai_monitoring_events(exercise_agent, create_agent_runnab
145149 exercise_agent (my_agent , PROMPT )
146150
147151
152+ @dt_enabled
148153@reset_core_stats_engine ()
149154def test_agent_execution_error (exercise_agent , create_agent_runnable , set_trace_info , method_name , agent_runnable_type ):
150155 # Add a wrapper to intentionally force an error in the Agent code
@@ -164,8 +169,8 @@ def inject_exception(wrapped, instance, args, kwargs):
164169 background_task = True ,
165170 )
166171 @validate_attributes ("agent" , ["llm" ])
172+ # Only an agent span is expected here and not a tool because the error is injected before the tool is called
167173 @validate_span_events (count = 1 , exact_agents = {"subcomponent" : '{"type": "APM-AI_AGENT", "name": "my_agent"}' })
168- @validate_span_events (count = 1 , exact_agents = {"subcomponent" : '{"type": "APM-AI_TOOL", "name": "add_exclamation"}' })
169174 @background_task (name = "test_agent_execution_error" )
170175 def _test ():
171176 set_trace_info ()
0 commit comments