12
12
# See the License for the specific language governing permissions and
13
13
# limitations under the License.
14
14
15
- import copy
16
15
17
16
import pytest
17
+
18
18
from autogen_agentchat .agents import AssistantAgent
19
19
from autogen_agentchat .base import TaskResult
20
20
from testing_support .fixtures import reset_core_stats_engine , validate_attributes
34
34
from newrelic .api .background_task import background_task
35
35
from newrelic .api .llm_custom_attributes import WithLlmCustomAttributes
36
36
from 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" )
37
41
38
42
tool_recorded_event = [
39
43
(
74
78
]
75
79
76
80
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
+
77
97
# Example tool for testing purposes
78
98
def add_exclamation (message : str ) -> str :
79
99
return f"{ message } !"
80
100
81
101
82
102
@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 )
85
107
@validate_transaction_metrics (
86
108
"test_assistant_agent:test_run_assistant_agent" ,
87
109
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
+ ),
89
114
(
90
115
"Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
91
116
1 ,
92
117
),
93
118
],
94
119
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
+ ),
96
124
(
97
125
"Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
98
126
1 ,
@@ -117,19 +145,25 @@ async def _test():
117
145
118
146
119
147
@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 )
122
150
@validate_transaction_metrics (
123
151
"test_assistant_agent:test_run_stream_assistant_agent" ,
124
152
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
+ ),
126
157
(
127
158
"Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
128
159
1 ,
129
160
),
130
161
],
131
162
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
+ ),
133
167
(
134
168
"Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
135
169
1 ,
@@ -162,19 +196,25 @@ async def _test():
162
196
163
197
@reset_core_stats_engine ()
164
198
@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 )
167
201
@validate_transaction_metrics (
168
202
"test_assistant_agent:test_run_assistant_agent_no_content" ,
169
203
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
+ ),
171
208
(
172
209
"Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
173
210
1 ,
174
211
),
175
212
],
176
213
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
+ ),
178
218
(
179
219
"Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
180
220
1 ,
@@ -214,22 +254,35 @@ async def _test():
214
254
loop .run_until_complete (_test ())
215
255
216
256
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
217
264
@reset_core_stats_engine ()
218
265
@validate_transaction_error_event_count (1 )
219
266
@validate_error_trace_attributes (callable_name (TypeError ), exact_attrs = {"agent" : {}, "intrinsic" : {}, "user" : {}})
220
267
@validate_custom_events (tool_recorded_event_error )
221
- @validate_custom_event_count (count = 1 )
268
+ @validate_custom_event_count (count = 2 )
222
269
@validate_transaction_metrics (
223
270
"test_assistant_agent:test_run_assistant_agent_error" ,
224
271
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
+ ),
226
276
(
227
277
"Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
228
278
1 ,
229
279
),
230
280
],
231
281
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
+ ),
233
286
(
234
287
"Llm/tool/Autogen/autogen_agentchat.agents._assistant_agent:AssistantAgent._execute_tool_call/add_exclamation" ,
235
288
1 ,
@@ -250,7 +303,7 @@ def test_run_assistant_agent_error(loop, set_trace_info, single_tool_model_clien
250
303
251
304
async def _test ():
252
305
with pytest .raises (TypeError ):
253
- response = await pirate_agent .run ()
306
+ await pirate_agent .run ()
254
307
255
308
loop .run_until_complete (_test ())
256
309
0 commit comments