|
18 | 18 | from strands.handlers.callback_handler import PrintingCallbackHandler, null_callback_handler
|
19 | 19 | from strands.models.bedrock import DEFAULT_BEDROCK_MODEL_ID, BedrockModel
|
20 | 20 | from strands.session.repository_session_manager import RepositorySessionManager
|
| 21 | +from strands.telemetry.tracer import serialize |
21 | 22 | from strands.types.content import Messages
|
22 | 23 | from strands.types.exceptions import ContextWindowOverflowException, EventLoopException
|
23 | 24 | from strands.types.session import Session, SessionAgent, SessionMessage, SessionType
|
@@ -1028,6 +1029,23 @@ def test_agent_structured_output(agent, system_prompt, user, agenerator):
|
1028 | 1029 | }
|
1029 | 1030 | )
|
1030 | 1031 |
|
| 1032 | + if system_prompt: |
| 1033 | + mock_span.add_event.assert_any_call( |
| 1034 | + "gen_ai.system.message", |
| 1035 | + attributes={"role": "system", "content": serialize([{"text": system_prompt}])}, |
| 1036 | + ) |
| 1037 | + |
| 1038 | + calls = mock_span.add_event.call_args_list |
| 1039 | + system_call_index = None |
| 1040 | + user_call_index = None |
| 1041 | + |
| 1042 | + for i, call in enumerate(calls): |
| 1043 | + if call[0][0] == "gen_ai.system.message": |
| 1044 | + system_call_index = i |
| 1045 | + elif call[0][0] == "gen_ai.user.message" and user_call_index is None: |
| 1046 | + user_call_index = i |
| 1047 | + assert system_call_index < user_call_index, "gen_ai.system.message should come before gen_ai.user.message" |
| 1048 | + |
1031 | 1049 | mock_span.add_event.assert_any_call(
|
1032 | 1050 | "gen_ai.user.message",
|
1033 | 1051 | attributes={ "role": "user", "content": '[{"text": "Jane Doe is 30 years old and her email is [email protected]"}]'},
|
|
0 commit comments