1212# See the License for the specific language governing permissions and
1313# limitations under the License.
1414
15- import copy
1615
1716import pytest
17+
1818from autogen_agentchat .agents import AssistantAgent
1919from autogen_agentchat .base import TaskResult
2020from testing_support .fixtures import reset_core_stats_engine , validate_attributes
3434from newrelic .api .background_task import background_task
3535from newrelic .api .llm_custom_attributes import WithLlmCustomAttributes
3636from newrelic .common .object_names import callable_name
37+ from newrelic .common .package_version_utils import get_package_version_tuple
38+
39+
40+ AUTOGEN_VERSION = get_package_version_tuple ("autogen-agentchat" )
3741
3842tool_recorded_event = [
3943 (
7478]
7579
7680
81+ agent_recorded_event = [
82+ (
83+ {"type" : "LlmAgent" },
84+ {
85+ "id" : None ,
86+ "name" : "pirate_agent" ,
87+ "span_id" : None ,
88+ "trace_id" : "trace-id" ,
89+ "vendor" : "autogen" ,
90+ "ingest_source" : "Python" ,
91+ "duration" : None ,
92+ },
93+ )
94+ ]
95+
96+
7797# Example tool for testing purposes
7898def add_exclamation (message : str ) -> str :
7999 return f"{ message } !"
80100
81101
82102@reset_core_stats_engine ()
83- @validate_custom_events (events_with_context_attrs (tool_recorded_event ))
84- @validate_custom_event_count (count = 1 )
103+ @validate_custom_events (
104+ events_with_context_attrs (tool_recorded_event ) + events_with_context_attrs (agent_recorded_event )
105+ )
106+ @validate_custom_event_count (count = 2 )
85107@validate_transaction_metrics (
86108 "test_assistant_agent:test_run_assistant_agent" ,
87109 scoped_metrics = [
88- ("Llm/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" , 1 ),
110+ (
111+ "Llm/agent/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" ,
112+ 1 ,
113+ ),
89114 (
90115 "Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
91116 1 ,
92117 ),
93118 ],
94119 rollup_metrics = [
95- ("Llm/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" , 1 ),
120+ (
121+ "Llm/agent/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" ,
122+ 1 ,
123+ ),
96124 (
97125 "Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
98126 1 ,
@@ -117,19 +145,25 @@ async def _test():
117145
118146
119147@reset_core_stats_engine ()
120- @validate_custom_events (tool_recorded_event )
121- @validate_custom_event_count (count = 1 )
148+ @validate_custom_events (tool_recorded_event + agent_recorded_event )
149+ @validate_custom_event_count (count = 2 )
122150@validate_transaction_metrics (
123151 "test_assistant_agent:test_run_stream_assistant_agent" ,
124152 scoped_metrics = [
125- ("Llm/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" , 1 ),
153+ (
154+ "Llm/agent/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" ,
155+ 1 ,
156+ ),
126157 (
127158 "Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
128159 1 ,
129160 ),
130161 ],
131162 rollup_metrics = [
132- ("Llm/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" , 1 ),
163+ (
164+ "Llm/agent/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" ,
165+ 1 ,
166+ ),
133167 (
134168 "Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
135169 1 ,
@@ -162,19 +196,25 @@ async def _test():
162196
163197@reset_core_stats_engine ()
164198@disabled_ai_monitoring_record_content_settings
165- @validate_custom_events (tool_events_sans_content (tool_recorded_event ))
166- @validate_custom_event_count (count = 1 )
199+ @validate_custom_events (tool_events_sans_content (tool_recorded_event ) + agent_recorded_event )
200+ @validate_custom_event_count (count = 2 )
167201@validate_transaction_metrics (
168202 "test_assistant_agent:test_run_assistant_agent_no_content" ,
169203 scoped_metrics = [
170- ("Llm/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" , 1 ),
204+ (
205+ "Llm/agent/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" ,
206+ 1 ,
207+ ),
171208 (
172209 "Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
173210 1 ,
174211 ),
175212 ],
176213 rollup_metrics = [
177- ("Llm/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" , 1 ),
214+ (
215+ "Llm/agent/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" ,
216+ 1 ,
217+ ),
178218 (
179219 "Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
180220 1 ,
@@ -214,22 +254,35 @@ async def _test():
214254 loop .run_until_complete (_test ())
215255
216256
257+ SKIP_IF_AUTOGEN_062 = pytest .mark .skipif (
258+ AUTOGEN_VERSION > (0 , 6 , 1 ),
259+ reason = "Forcing invalid tool call arguments causes a hang on autogen versions above 0.6.1" ,
260+ )
261+
262+
263+ @SKIP_IF_AUTOGEN_062
217264@reset_core_stats_engine ()
218265@validate_transaction_error_event_count (1 )
219266@validate_error_trace_attributes (callable_name (TypeError ), exact_attrs = {"agent" : {}, "intrinsic" : {}, "user" : {}})
220267@validate_custom_events (tool_recorded_event_error )
221- @validate_custom_event_count (count = 1 )
268+ @validate_custom_event_count (count = 2 )
222269@validate_transaction_metrics (
223270 "test_assistant_agent:test_run_assistant_agent_error" ,
224271 scoped_metrics = [
225- ("Llm/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" , 1 ),
272+ (
273+ "Llm/agent/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" ,
274+ 1 ,
275+ ),
226276 (
227277 "Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
228278 1 ,
229279 ),
230280 ],
231281 rollup_metrics = [
232- ("Llm/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" , 1 ),
282+ (
283+ "Llm/agent/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent.on_messages_stream/pirate_agent" ,
284+ 1 ,
285+ ),
233286 (
234287 "Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
235288 1 ,
@@ -250,7 +303,7 @@ def test_run_assistant_agent_error(loop, set_trace_info, single_tool_model_clien
250303
251304 async def _test ():
252305 with pytest .raises (TypeError ):
253- response = await pirate_agent .run ()
306+ await pirate_agent .run ()
254307
255308 loop .run_until_complete (_test ())
256309
0 commit comments