I created an Aspire AppHost with DevUI, and added an Agent Service project to it.
The Agent Service is an ASP.NET Core project with OpenAI-compatible endpoints and it contains a multi-agent Handoff orchestration which is itself exposed as an agent.
I see the OpenTelemetry traces in the Aspire dashboard, but all written answer messages from the agents are marked as User messages. I expected them to have the Assistant role.
{
"resourceSpans": [
{
"scopeSpans": [
{
"scope": {
"name": "Microsoft.AspNetCore"
},
"spans": [
{
"traceId": "6be57f480e4f4538cb3726f305950638",
"spanId": "8dd53400c067b312",
"name": "POST /v1/responses/",
"kind": 2,
"startTimeUnixNano": "1778603322086444700",
"endTimeUnixNano": "1778603395633448400",
"attributes": [
{
"key": "server.address",
"value": {
"stringValue": "localhost"
}
},
{
"key": "server.port",
"value": {
"stringValue": "5347"
}
},
{
"key": "http.request.method",
"value": {
"stringValue": "POST"
}
},
{
"key": "url.scheme",
"value": {
"stringValue": "http"
}
},
{
"key": "url.path",
"value": {
"stringValue": "/v1/responses"
}
},
{
"key": "network.protocol.version",
"value": {
"stringValue": "1.1"
}
},
{
"key": "user_agent.original",
"value": {
"stringValue": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36 Edg/148.0.0.0"
}
},
{
"key": "http.route",
"value": {
"stringValue": "/v1/responses/"
}
},
{
"key": "http.response.status_code",
"value": {
"stringValue": "200"
}
},
{
"key": "aspire.destination",
"value": {
"stringValue": "agentservice"
}
}
]
}
]
},
{
"scope": {
"name": "Experimental.Microsoft.Extensions.AI"
},
"spans": [
{
"traceId": "6be57f480e4f4538cb3726f305950638",
"spanId": "02272dc32aada4af",
"parentSpanId": "8dd53400c067b312",
"name": "orchestrate_tools",
"kind": 1,
"startTimeUnixNano": "1778603322088262300",
"endTimeUnixNano": "1778603352190739600",
"attributes": [
{
"key": "gen_ai.usage.input_tokens",
"value": {
"stringValue": "1595"
}
},
{
"key": "gen_ai.usage.output_tokens",
"value": {
"stringValue": "1062"
}
}
]
},
{
"traceId": "6be57f480e4f4538cb3726f305950638",
"spanId": "369db56ce8239c46",
"parentSpanId": "02272dc32aada4af",
"name": "chat openai/gpt-5-mini",
"kind": 3,
"startTimeUnixNano": "1778603322088288200",
"endTimeUnixNano": "1778603352189131700",
"attributes": [
{
"key": "gen_ai.operation.name",
"value": {
"stringValue": "chat"
}
},
{
"key": "gen_ai.request.model",
"value": {
"stringValue": "openai/gpt-5-mini"
}
},
{
"key": "gen_ai.provider.name",
"value": {
"stringValue": "openai"
}
},
{
"key": "gen_ai.request.stream",
"value": {
"stringValue": "true"
}
},
{
"key": "server.address",
"value": {
"stringValue": "models.github.ai"
}
},
{
"key": "server.port",
"value": {
"stringValue": "443"
}
},
{
"key": "gen_ai.tool.definitions",
"value": {
"stringValue": "[\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"handoff_to_1\",\r\n \"description\": \"Book a ride to the concert\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"reasonForHandoff\": {\r\n \"description\": \"The reason for the handoff\",\r\n \"type\": [\r\n \"string\",\r\n \"null\"\r\n ]\r\n }\r\n },\r\n \"required\": [\r\n \"reasonForHandoff\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"handoff_to_2\",\r\n \"description\": \"Book a hotel room\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"reasonForHandoff\": {\r\n \"description\": \"The reason for the handoff\",\r\n \"type\": [\r\n \"string\",\r\n \"null\"\r\n ]\r\n }\r\n },\r\n \"required\": [\r\n \"reasonForHandoff\"\r\n ]\r\n }\r\n }\r\n]"
}
},
{
"key": "gen_ai.system_instructions",
"value": {
"stringValue": "[\r\n {\r\n \"type\": \"text\",\r\n \"content\": \" You are a helpful and efficient travel concierge agent. Your main goal is to assist users in planning their trips by coordinating with specialized agents for different tasks, such as booking hotels and arranging transportation. \\r\\n You will work with the HotelReservationAgent to find and book a hotel room close to the concert location, and with the TransportationAgent to find and book transportation options from the hotel to the concert venue. \\r\\n You will coordinate the flow of information between the user and the specialized agents, ensuring that all necessary details are collected and that the user's preferences are taken into account. \\r\\n You will also handle any follow-up questions or adjustments needed based on the user's feedback or changes in plans.\\r\\n Your ultimate goal is to ensure that the user has a seamless and enjoyable experience planning their trip to the concert.\\nYou are one agent in a multi-agent system. You can hand off the conversation to another agent if appropriate. Handoffs are achieved\\nby calling a handoff function, named in the form `handoff_to_<agent_id>`; the description of the function provides details on the\\ntarget agent of that handoff. Handoffs between agents are handled seamlessly in the background; never mention or narrate these handoffs\\nin your conversation with the user.\"\r\n }\r\n]"
}
},
{
"key": "gen_ai.input.messages",
"value": {
"stringValue": "[\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"I am going to a concert that is held at the Seattle Kraken Stadium. The Concert starts at 7:30 pm and is November 20th this year.\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Great — I can take care of the hotel and transportation for your concert at the Seattle Kraken stadium (Climate Pledge Arena) on November 20 (7:30 PM). Before I hand things off to the hotel and transportation specialists, a few quick questions so I can find the best options for you:\\n\\n1. Travel and hotel basics\\n- Where are you coming from (city or airport)? Do you need hotel nights before and/or after the concert? (Common choice: check in Nov 20, check out Nov 21.)\\n- How many guests/rooms and bed preference?\\n- Budget per night (economy / mid-range / premium / luxury)?\\n- Any must-have hotel amenities (parking, free breakfast, gym, early check-in, pet-friendly, accessible room)?\\n- Do you prefer a refundable rate or a cheaper non-refundable special?\\n\\n2. Location and walking preference\\n- How close to Climate Pledge Arena would you like the hotel? (within walking distance ~0–0.5 miles, short ride ~0.5–1.5 miles, no preference)\\n\\n3. Transportation details\\n- Do you want transportation only from the hotel to the arena for the concert, round-trip the same night, also airport-to-hotel, or all of the above?\\n- Preferred transport type: rideshare/taxi, private car, limo, shuttle, public transit (monorail/light rail), or flexible?\\n- Any accessibility needs (wheelchair-accessible vehicle)?\\n- Do you want a scheduled pickup at a set time or an on-demand ride? (I recommend leaving the hotel about 60–90 minutes before the 7:30 PM start — so around 5:45–6:30 PM — to allow for traffic and entry lines. Tell me your preference.)\\n\\n4. Anything else\\n- Any loyalty programs or specific hotel chains you prefer?\\n- Will you need parking at the hotel?\\n\\nIf you’d like, I can suggest a few nearby hotels across different budgets right now and recommend a pickup time. Once you confirm the answers above (or tell me to proceed with defaults), I’ll contact the HotelReservationAgent to find and hold rooms and the TransportationAgent to reserve your ride. Which details would you like to confirm first?\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Coming from the airport, arriving 2pm. Checkout 21 november. Budget per night is $200. 2 people.\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Great — thanks, that helps a lot. I’ve noted: arriving from the airport at 2:00 PM on Nov 20, check‑out Nov 21, budget about $200/night, 2 people.\\n\\nA few quick clarifying items so I can book the best hotel and transfers (I can proceed with sensible defaults if you prefer — see defaults I propose at the end):\\n\\n1) Airport — which airport are you arriving into? (I assume Seattle–Tacoma Intl / SEA unless you tell me otherwise.)\\n\\n2) Room & bed\\n- One room for 2 people OK? Bed preference: 1 king/queen or 2 beds?\\n\\n3) Rate type & amenities\\n- Refundable flexibility: prefer refundable or cheaper non‑refundable?\\n- Must-have amenities? (examples: free breakfast, on-site parking, gym/fitness center, early check‑in, pet‑friendly, accessible room)\\n\\n4) Location / walking preference\\n- How close to Climate Pledge Arena would you like the hotel? Options: within walking distance (~0–0.5 miles), short ride (~0.5–1.5 miles), no preference.\\n\\n5) Transportation scope & preferences\\n- Which transfers do you want booked? (airport → hotel only; hotel → arena only; round‑trip hotel↔arena same night; airport→hotel + hotel↔arena roundtrip; or all including return to airport)\\n- Vehicle type preference: rideshare/taxi, private car, shuttle, public transit, or flexible?\\n- Accessibility needs? (wheelchair‑accessible vehicle needed?)\\n- Pickup timing: for the concert I recommend leaving the hotel ~60–90 minutes before the 7:30 PM start — I suggest a 6:00 PM pickup. For your airport arrival (2:00 PM), would you like a scheduled pickup at 2:30 PM (gives time for deplaning and luggage) or do you prefer on‑demand when you land?\\n\\n6) Other\\n- Any hotel loyalty program or preferred chain?\\n- Will you need parking at the hotel?\\n- Any other requests (early check‑in, crib, smoking/non-smoking, pets)?\\n\\nIf you’d like me to proceed now with defaults, I’ll hand off to the hotel and transportation agents. My recommended defaults (tell me “go ahead” to use these):\\n- Airport: SEA\\n- Room: 1 room for 2 guests, 1 king bed\\n- Rate: refundable\\n- Amenities: free Wi‑Fi + gym + breakfast if available\\n- Location: within walking distance (0–0.5 mi)\\n- Transfers: airport→hotel (scheduled at 2:30 PM) and hotel→arena roundtrip same night (pickup at 6:00 PM, return after show to hotel)\\n- Vehicle: private car (can change to rideshare)\\n\\nWhich of the above would you like to confirm or change?\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Go ahead\"\r\n }\r\n ]\r\n }\r\n]"
}
},
{
"key": "openai.api.type",
"value": {
"stringValue": "chat_completions"
}
},
{
"key": "openai.response.service_tier",
"value": {
"stringValue": "default"
}
},
{
"key": "gen_ai.output.messages",
"value": {
"stringValue": "[\r\n {\r\n \"role\": \"assistant\",\r\n \"name\": \"TravelConciergeAgent\",\r\n \"parts\": [\r\n {\r\n \"type\": \"tool_call\",\r\n \"id\": \"call_zLrBszDbO0WdnNHghaRxeipu\",\r\n \"name\": \"handoff_to_2\",\r\n \"arguments\": {\r\n \"reasonForHandoff\": \"Please find and hold a hotel room near Climate Pledge Arena (Seattle, Climate Pledge Arena / Seattle Kraken Stadium) for Nov 20 check‑in and Nov 21 check‑out. Guest details: arriving from SEA (Seattle–Tacoma Intl) with flight arrival ~2:00 PM on Nov 20. Room: 1 room for 2 guests, 1 king bed. Budget: about $200/night. Rate preference: refundable. Amenities requested: free Wi‑Fi, gym/fitness center, complimentary breakfast if available; best effort for early check‑in at ~2:30 PM. Location: within walking distance (0–0.5 miles) of Climate Pledge Arena. No specific loyalty program or parking required. Please provide 2–3 available options that meet the budget and preferences, nightly rates, refundable vs non‑refundable rate differences, distance to arena (walking time), and any hold/guarantee policy so we can confirm. Thank you.\"\r\n }\r\n }\r\n ],\r\n \"finish_reason\": \"tool_call\"\r\n }\r\n]"
}
},
{
"key": "gen_ai.response.finish_reasons",
"value": {
"stringValue": "[\"tool_calls\"]"
}
},
{
"key": "gen_ai.response.id",
"value": {
"stringValue": "chatcmpl-DekGICEfr44XDnw1FPcaqeH1kzmHm"
}
},
{
"key": "gen_ai.response.model",
"value": {
"stringValue": ""
}
},
{
"key": "gen_ai.response.time_to_first_chunk",
"value": {
"stringValue": "25.1720917"
}
},
{
"key": "gen_ai.usage.input_tokens",
"value": {
"stringValue": "1595"
}
},
{
"key": "gen_ai.usage.output_tokens",
"value": {
"stringValue": "1062"
}
},
{
"key": "gen_ai.usage.cache_read.input_tokens",
"value": {
"stringValue": "0"
}
},
{
"key": "gen_ai.usage.reasoning.output_tokens",
"value": {
"stringValue": "832"
}
},
{
"key": "aspire.destination",
"value": {
"stringValue": "openai"
}
}
]
},
{
"traceId": "6be57f480e4f4538cb3726f305950638",
"spanId": "457e2c269f12daae",
"parentSpanId": "8dd53400c067b312",
"name": "orchestrate_tools",
"kind": 1,
"startTimeUnixNano": "1778603352193720700",
"endTimeUnixNano": "1778603395628189300",
"attributes": [
{
"key": "gen_ai.usage.input_tokens",
"value": {
"stringValue": "3597"
}
},
{
"key": "gen_ai.usage.output_tokens",
"value": {
"stringValue": "1665"
}
}
]
},
{
"traceId": "6be57f480e4f4538cb3726f305950638",
"spanId": "9257fed0d615bf9f",
"parentSpanId": "457e2c269f12daae",
"name": "chat openai/gpt-5-mini",
"kind": 3,
"startTimeUnixNano": "1778603352193735500",
"endTimeUnixNano": "1778603362226907900",
"attributes": [
{
"key": "gen_ai.operation.name",
"value": {
"stringValue": "chat"
}
},
{
"key": "gen_ai.request.model",
"value": {
"stringValue": "openai/gpt-5-mini"
}
},
{
"key": "gen_ai.provider.name",
"value": {
"stringValue": "openai"
}
},
{
"key": "gen_ai.request.stream",
"value": {
"stringValue": "true"
}
},
{
"key": "server.address",
"value": {
"stringValue": "models.github.ai"
}
},
{
"key": "server.port",
"value": {
"stringValue": "443"
}
},
{
"key": "gen_ai.tool.definitions",
"value": {
"stringValue": "[\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"handoff_to_1\",\r\n \"description\": \"handoff to TravelConciergeAgent\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"reasonForHandoff\": {\r\n \"description\": \"The reason for the handoff\",\r\n \"type\": [\r\n \"string\",\r\n \"null\"\r\n ]\r\n }\r\n },\r\n \"required\": [\r\n \"reasonForHandoff\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"handoff_to_2\",\r\n \"description\": \"handoff to TransportationAgent\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"reasonForHandoff\": {\r\n \"description\": \"The reason for the handoff\",\r\n \"type\": [\r\n \"string\",\r\n \"null\"\r\n ]\r\n }\r\n },\r\n \"required\": [\r\n \"reasonForHandoff\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"SelectRoomPreference\",\r\n \"description\": \"Returns available rooms in a city for a date\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"city\": {\r\n \"description\": \"City where you need an hotel\",\r\n \"type\": \"string\"\r\n },\r\n \"dateOfBooking\": {\r\n \"description\": \"Date the hotel night is required\",\r\n \"type\": \"string\",\r\n \"format\": \"date-time\"\r\n }\r\n },\r\n \"required\": [\r\n \"city\",\r\n \"dateOfBooking\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"BookSelectedRoom\",\r\n \"description\": \"Books a room previously selected from available rooms\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"id\": {\r\n \"description\": \"id of the room to be booked\",\r\n \"type\": \"integer\"\r\n }\r\n },\r\n \"required\": [\r\n \"id\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"GetApprovalForBooking\",\r\n \"description\": \"Provides approval from the user for making a suggested booking based on the room id\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"id\": {\r\n \"description\": \"id of the room to be booked\",\r\n \"type\": \"integer\"\r\n }\r\n },\r\n \"required\": [\r\n \"id\"\r\n ]\r\n }\r\n }\r\n]"
}
},
{
"key": "gen_ai.system_instructions",
"value": {
"stringValue": "[\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"You are an expert in finding hotel rooms close to music concert locations.\\r\\nYou provide some options what you have found and ask for approval before you \\r\\nmake the booking. You always suggest 3 options with different price ranges.\\r\\nYou will ask for approval before you make the booking. \\r\\nYou are not allowed to make a booking without user confirmation!\\r\\n\\r\\nAfter you successfully booked the room you will respond with [** GOAL REACHED **] in your message. \\nYou are one agent in a multi-agent system. You can hand off the conversation to another agent if appropriate. Handoffs are achieved\\nby calling a handoff function, named in the form `handoff_to_<agent_id>`; the description of the function provides details on the\\ntarget agent of that handoff. Handoffs between agents are handled seamlessly in the background; never mention or narrate these handoffs\\nin your conversation with the user.\"\r\n }\r\n]"
}
},
{
"key": "gen_ai.input.messages",
"value": {
"stringValue": "[\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"I am going to a concert that is held at the Seattle Kraken Stadium. The Concert starts at 7:30 pm and is November 20th this year.\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Great — I can take care of the hotel and transportation for your concert at the Seattle Kraken stadium (Climate Pledge Arena) on November 20 (7:30 PM). Before I hand things off to the hotel and transportation specialists, a few quick questions so I can find the best options for you:\\n\\n1. Travel and hotel basics\\n- Where are you coming from (city or airport)? Do you need hotel nights before and/or after the concert? (Common choice: check in Nov 20, check out Nov 21.)\\n- How many guests/rooms and bed preference?\\n- Budget per night (economy / mid-range / premium / luxury)?\\n- Any must-have hotel amenities (parking, free breakfast, gym, early check-in, pet-friendly, accessible room)?\\n- Do you prefer a refundable rate or a cheaper non-refundable special?\\n\\n2. Location and walking preference\\n- How close to Climate Pledge Arena would you like the hotel? (within walking distance ~0–0.5 miles, short ride ~0.5–1.5 miles, no preference)\\n\\n3. Transportation details\\n- Do you want transportation only from the hotel to the arena for the concert, round-trip the same night, also airport-to-hotel, or all of the above?\\n- Preferred transport type: rideshare/taxi, private car, limo, shuttle, public transit (monorail/light rail), or flexible?\\n- Any accessibility needs (wheelchair-accessible vehicle)?\\n- Do you want a scheduled pickup at a set time or an on-demand ride? (I recommend leaving the hotel about 60–90 minutes before the 7:30 PM start — so around 5:45–6:30 PM — to allow for traffic and entry lines. Tell me your preference.)\\n\\n4. Anything else\\n- Any loyalty programs or specific hotel chains you prefer?\\n- Will you need parking at the hotel?\\n\\nIf you’d like, I can suggest a few nearby hotels across different budgets right now and recommend a pickup time. Once you confirm the answers above (or tell me to proceed with defaults), I’ll contact the HotelReservationAgent to find and hold rooms and the TransportationAgent to reserve your ride. Which details would you like to confirm first?\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Coming from the airport, arriving 2pm. Checkout 21 november. Budget per night is $200. 2 people.\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Great — thanks, that helps a lot. I’ve noted: arriving from the airport at 2:00 PM on Nov 20, check‑out Nov 21, budget about $200/night, 2 people.\\n\\nA few quick clarifying items so I can book the best hotel and transfers (I can proceed with sensible defaults if you prefer — see defaults I propose at the end):\\n\\n1) Airport — which airport are you arriving into? (I assume Seattle–Tacoma Intl / SEA unless you tell me otherwise.)\\n\\n2) Room & bed\\n- One room for 2 people OK? Bed preference: 1 king/queen or 2 beds?\\n\\n3) Rate type & amenities\\n- Refundable flexibility: prefer refundable or cheaper non‑refundable?\\n- Must-have amenities? (examples: free breakfast, on-site parking, gym/fitness center, early check‑in, pet‑friendly, accessible room)\\n\\n4) Location / walking preference\\n- How close to Climate Pledge Arena would you like the hotel? Options: within walking distance (~0–0.5 miles), short ride (~0.5–1.5 miles), no preference.\\n\\n5) Transportation scope & preferences\\n- Which transfers do you want booked? (airport → hotel only; hotel → arena only; round‑trip hotel↔arena same night; airport→hotel + hotel↔arena roundtrip; or all including return to airport)\\n- Vehicle type preference: rideshare/taxi, private car, shuttle, public transit, or flexible?\\n- Accessibility needs? (wheelchair‑accessible vehicle needed?)\\n- Pickup timing: for the concert I recommend leaving the hotel ~60–90 minutes before the 7:30 PM start — I suggest a 6:00 PM pickup. For your airport arrival (2:00 PM), would you like a scheduled pickup at 2:30 PM (gives time for deplaning and luggage) or do you prefer on‑demand when you land?\\n\\n6) Other\\n- Any hotel loyalty program or preferred chain?\\n- Will you need parking at the hotel?\\n- Any other requests (early check‑in, crib, smoking/non-smoking, pets)?\\n\\nIf you’d like me to proceed now with defaults, I’ll hand off to the hotel and transportation agents. My recommended defaults (tell me “go ahead” to use these):\\n- Airport: SEA\\n- Room: 1 room for 2 guests, 1 king bed\\n- Rate: refundable\\n- Amenities: free Wi‑Fi + gym + breakfast if available\\n- Location: within walking distance (0–0.5 mi)\\n- Transfers: airport→hotel (scheduled at 2:30 PM) and hotel→arena roundtrip same night (pickup at 6:00 PM, return after show to hotel)\\n- Vehicle: private car (can change to rideshare)\\n\\nWhich of the above would you like to confirm or change?\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Go ahead\"\r\n }\r\n ]\r\n }\r\n]"
}
},
{
"key": "openai.api.type",
"value": {
"stringValue": "chat_completions"
}
},
{
"key": "openai.response.service_tier",
"value": {
"stringValue": "default"
}
},
{
"key": "gen_ai.output.messages",
"value": {
"stringValue": "[\r\n {\r\n \"role\": \"assistant\",\r\n \"name\": \"HotelReservationAgent\",\r\n \"parts\": [\r\n {\r\n \"type\": \"tool_call\",\r\n \"id\": \"call_i7rlVbqa1SgTAokKzcqLFhji\",\r\n \"name\": \"SelectRoomPreference\",\r\n \"arguments\": {\r\n \"city\": \"Seattle\",\r\n \"dateOfBooking\": \"2026-11-20T14:00:00\"\r\n }\r\n }\r\n ],\r\n \"finish_reason\": \"tool_call\"\r\n }\r\n]"
}
},
{
"key": "gen_ai.response.finish_reasons",
"value": {
"stringValue": "[\"tool_calls\"]"
}
},
{
"key": "gen_ai.response.id",
"value": {
"stringValue": "chatcmpl-DekGmP8LKwvM1I91CDm75mG4g7Haf"
}
},
{
"key": "gen_ai.response.model",
"value": {
"stringValue": ""
}
},
{
"key": "gen_ai.response.time_to_first_chunk",
"value": {
"stringValue": "9.5677046"
}
},
{
"key": "gen_ai.usage.input_tokens",
"value": {
"stringValue": "1655"
}
},
{
"key": "gen_ai.usage.output_tokens",
"value": {
"stringValue": "362"
}
},
{
"key": "gen_ai.usage.cache_read.input_tokens",
"value": {
"stringValue": "0"
}
},
{
"key": "gen_ai.usage.reasoning.output_tokens",
"value": {
"stringValue": "320"
}
},
{
"key": "aspire.destination",
"value": {
"stringValue": "openai"
}
}
]
},
{
"traceId": "6be57f480e4f4538cb3726f305950638",
"spanId": "1ff16399041d7c4a",
"parentSpanId": "457e2c269f12daae",
"name": "execute_tool SelectRoomPreference",
"kind": 1,
"startTimeUnixNano": "1778603362233392200",
"endTimeUnixNano": "1778603362243723200",
"attributes": [
{
"key": "gen_ai.operation.name",
"value": {
"stringValue": "execute_tool"
}
},
{
"key": "gen_ai.tool.type",
"value": {
"stringValue": "function"
}
},
{
"key": "gen_ai.tool.call.id",
"value": {
"stringValue": "call_i7rlVbqa1SgTAokKzcqLFhji"
}
},
{
"key": "gen_ai.tool.name",
"value": {
"stringValue": "SelectRoomPreference"
}
},
{
"key": "gen_ai.tool.description",
"value": {
"stringValue": "Returns available rooms in a city for a date"
}
},
{
"key": "gen_ai.tool.call.arguments",
"value": {
"stringValue": "{\r\n \"city\": \"Seattle\",\r\n \"dateOfBooking\": \"2026-11-20T14:00:00\"\r\n}"
}
},
{
"key": "gen_ai.tool.call.result",
"value": {
"stringValue": "[\r\n {\r\n \"roomId\": 309,\r\n \"roomType\": \"Suite\",\r\n \"pricePerNight\": 320.00,\r\n \"hotelName\": \"Budget Stay\",\r\n \"numberOfAdultsAllowedInRoom\": 4,\r\n \"amenities\": \"Free WiFi, TV, Air Conditioning, Kitchenette\",\r\n \"city\": \"Seattle\"\r\n },\r\n {\r\n \"roomId\": 318,\r\n \"roomType\": \"Suite\",\r\n \"pricePerNight\": 410.00,\r\n \"hotelName\": \"Mountain Lodge\",\r\n \"numberOfAdultsAllowedInRoom\": 4,\r\n \"amenities\": \"Free WiFi, TV, Mini Bar, Kitchenette, Fireplace\",\r\n \"city\": \"Seattle\"\r\n },\r\n {\r\n \"roomId\": 339,\r\n \"roomType\": \"Suite\",\r\n \"pricePerNight\": 355.00,\r\n \"hotelName\": \"Opera Hotel\",\r\n \"numberOfAdultsAllowedInRoom\": 4,\r\n \"amenities\": \"Free WiFi, TV, Mini Bar, Kitchenette\",\r\n \"city\": \"Seattle\"\r\n }\r\n]"
}
}
]
},
{
"traceId": "6be57f480e4f4538cb3726f305950638",
"spanId": "dcdd5f6a3481f2ad",
"parentSpanId": "457e2c269f12daae",
"name": "chat openai/gpt-5-mini",
"kind": 3,
"startTimeUnixNano": "1778603362245392100",
"endTimeUnixNano": "1778603395628169200",
"attributes": [
{
"key": "gen_ai.operation.name",
"value": {
"stringValue": "chat"
}
},
{
"key": "gen_ai.request.model",
"value": {
"stringValue": "openai/gpt-5-mini"
}
},
{
"key": "gen_ai.provider.name",
"value": {
"stringValue": "openai"
}
},
{
"key": "gen_ai.request.stream",
"value": {
"stringValue": "true"
}
},
{
"key": "server.address",
"value": {
"stringValue": "models.github.ai"
}
},
{
"key": "server.port",
"value": {
"stringValue": "443"
}
},
{
"key": "gen_ai.tool.definitions",
"value": {
"stringValue": "[\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"handoff_to_1\",\r\n \"description\": \"handoff to TravelConciergeAgent\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"reasonForHandoff\": {\r\n \"description\": \"The reason for the handoff\",\r\n \"type\": [\r\n \"string\",\r\n \"null\"\r\n ]\r\n }\r\n },\r\n \"required\": [\r\n \"reasonForHandoff\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"handoff_to_2\",\r\n \"description\": \"handoff to TransportationAgent\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"reasonForHandoff\": {\r\n \"description\": \"The reason for the handoff\",\r\n \"type\": [\r\n \"string\",\r\n \"null\"\r\n ]\r\n }\r\n },\r\n \"required\": [\r\n \"reasonForHandoff\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"SelectRoomPreference\",\r\n \"description\": \"Returns available rooms in a city for a date\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"city\": {\r\n \"description\": \"City where you need an hotel\",\r\n \"type\": \"string\"\r\n },\r\n \"dateOfBooking\": {\r\n \"description\": \"Date the hotel night is required\",\r\n \"type\": \"string\",\r\n \"format\": \"date-time\"\r\n }\r\n },\r\n \"required\": [\r\n \"city\",\r\n \"dateOfBooking\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"BookSelectedRoom\",\r\n \"description\": \"Books a room previously selected from available rooms\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"id\": {\r\n \"description\": \"id of the room to be booked\",\r\n \"type\": \"integer\"\r\n }\r\n },\r\n \"required\": [\r\n \"id\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"GetApprovalForBooking\",\r\n \"description\": \"Provides approval from the user for making a suggested booking based on the room id\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"id\": {\r\n \"description\": \"id of the room to be booked\",\r\n \"type\": \"integer\"\r\n }\r\n },\r\n \"required\": [\r\n \"id\"\r\n ]\r\n }\r\n }\r\n]"
}
},
{
"key": "gen_ai.system_instructions",
"value": {
"stringValue": "[\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"You are an expert in finding hotel rooms close to music concert locations.\\r\\nYou provide some options what you have found and ask for approval before you \\r\\nmake the booking. You always suggest 3 options with different price ranges.\\r\\nYou will ask for approval before you make the booking. \\r\\nYou are not allowed to make a booking without user confirmation!\\r\\n\\r\\nAfter you successfully booked the room you will respond with [** GOAL REACHED **] in your message. \\nYou are one agent in a multi-agent system. You can hand off the conversation to another agent if appropriate. Handoffs are achieved\\nby calling a handoff function, named in the form `handoff_to_<agent_id>`; the description of the function provides details on the\\ntarget agent of that handoff. Handoffs between agents are handled seamlessly in the background; never mention or narrate these handoffs\\nin your conversation with the user.\"\r\n }\r\n]"
}
},
{
"key": "gen_ai.input.messages",
"value": {
"stringValue": "[\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"I am going to a concert that is held at the Seattle Kraken Stadium. The Concert starts at 7:30 pm and is November 20th this year.\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Great — I can take care of the hotel and transportation for your concert at the Seattle Kraken stadium (Climate Pledge Arena) on November 20 (7:30 PM). Before I hand things off to the hotel and transportation specialists, a few quick questions so I can find the best options for you:\\n\\n1. Travel and hotel basics\\n- Where are you coming from (city or airport)? Do you need hotel nights before and/or after the concert? (Common choice: check in Nov 20, check out Nov 21.)\\n- How many guests/rooms and bed preference?\\n- Budget per night (economy / mid-range / premium / luxury)?\\n- Any must-have hotel amenities (parking, free breakfast, gym, early check-in, pet-friendly, accessible room)?\\n- Do you prefer a refundable rate or a cheaper non-refundable special?\\n\\n2. Location and walking preference\\n- How close to Climate Pledge Arena would you like the hotel? (within walking distance ~0–0.5 miles, short ride ~0.5–1.5 miles, no preference)\\n\\n3. Transportation details\\n- Do you want transportation only from the hotel to the arena for the concert, round-trip the same night, also airport-to-hotel, or all of the above?\\n- Preferred transport type: rideshare/taxi, private car, limo, shuttle, public transit (monorail/light rail), or flexible?\\n- Any accessibility needs (wheelchair-accessible vehicle)?\\n- Do you want a scheduled pickup at a set time or an on-demand ride? (I recommend leaving the hotel about 60–90 minutes before the 7:30 PM start — so around 5:45–6:30 PM — to allow for traffic and entry lines. Tell me your preference.)\\n\\n4. Anything else\\n- Any loyalty programs or specific hotel chains you prefer?\\n- Will you need parking at the hotel?\\n\\nIf you’d like, I can suggest a few nearby hotels across different budgets right now and recommend a pickup time. Once you confirm the answers above (or tell me to proceed with defaults), I’ll contact the HotelReservationAgent to find and hold rooms and the TransportationAgent to reserve your ride. Which details would you like to confirm first?\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Coming from the airport, arriving 2pm. Checkout 21 november. Budget per night is $200. 2 people.\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Great — thanks, that helps a lot. I’ve noted: arriving from the airport at 2:00 PM on Nov 20, check‑out Nov 21, budget about $200/night, 2 people.\\n\\nA few quick clarifying items so I can book the best hotel and transfers (I can proceed with sensible defaults if you prefer — see defaults I propose at the end):\\n\\n1) Airport — which airport are you arriving into? (I assume Seattle–Tacoma Intl / SEA unless you tell me otherwise.)\\n\\n2) Room & bed\\n- One room for 2 people OK? Bed preference: 1 king/queen or 2 beds?\\n\\n3) Rate type & amenities\\n- Refundable flexibility: prefer refundable or cheaper non‑refundable?\\n- Must-have amenities? (examples: free breakfast, on-site parking, gym/fitness center, early check‑in, pet‑friendly, accessible room)\\n\\n4) Location / walking preference\\n- How close to Climate Pledge Arena would you like the hotel? Options: within walking distance (~0–0.5 miles), short ride (~0.5–1.5 miles), no preference.\\n\\n5) Transportation scope & preferences\\n- Which transfers do you want booked? (airport → hotel only; hotel → arena only; round‑trip hotel↔arena same night; airport→hotel + hotel↔arena roundtrip; or all including return to airport)\\n- Vehicle type preference: rideshare/taxi, private car, shuttle, public transit, or flexible?\\n- Accessibility needs? (wheelchair‑accessible vehicle needed?)\\n- Pickup timing: for the concert I recommend leaving the hotel ~60–90 minutes before the 7:30 PM start — I suggest a 6:00 PM pickup. For your airport arrival (2:00 PM), would you like a scheduled pickup at 2:30 PM (gives time for deplaning and luggage) or do you prefer on‑demand when you land?\\n\\n6) Other\\n- Any hotel loyalty program or preferred chain?\\n- Will you need parking at the hotel?\\n- Any other requests (early check‑in, crib, smoking/non-smoking, pets)?\\n\\nIf you’d like me to proceed now with defaults, I’ll hand off to the hotel and transportation agents. My recommended defaults (tell me “go ahead” to use these):\\n- Airport: SEA\\n- Room: 1 room for 2 guests, 1 king bed\\n- Rate: refundable\\n- Amenities: free Wi‑Fi + gym + breakfast if available\\n- Location: within walking distance (0–0.5 mi)\\n- Transfers: airport→hotel (scheduled at 2:30 PM) and hotel→arena roundtrip same night (pickup at 6:00 PM, return after show to hotel)\\n- Vehicle: private car (can change to rideshare)\\n\\nWhich of the above would you like to confirm or change?\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Go ahead\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"assistant\",\r\n \"name\": \"HotelReservationAgent\",\r\n \"parts\": [\r\n {\r\n \"type\": \"tool_call\",\r\n \"id\": \"call_i7rlVbqa1SgTAokKzcqLFhji\",\r\n \"name\": \"SelectRoomPreference\",\r\n \"arguments\": {\r\n \"city\": \"Seattle\",\r\n \"dateOfBooking\": \"2026-11-20T14:00:00\"\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"tool\",\r\n \"parts\": [\r\n {\r\n \"type\": \"tool_call_response\",\r\n \"id\": \"call_i7rlVbqa1SgTAokKzcqLFhji\",\r\n \"response\": [\r\n {\r\n \"roomId\": 309,\r\n \"roomType\": \"Suite\",\r\n \"pricePerNight\": 320.00,\r\n \"hotelName\": \"Budget Stay\",\r\n \"numberOfAdultsAllowedInRoom\": 4,\r\n \"amenities\": \"Free WiFi, TV, Air Conditioning, Kitchenette\",\r\n \"city\": \"Seattle\"\r\n },\r\n {\r\n \"roomId\": 318,\r\n \"roomType\": \"Suite\",\r\n \"pricePerNight\": 410.00,\r\n \"hotelName\": \"Mountain Lodge\",\r\n \"numberOfAdultsAllowedInRoom\": 4,\r\n \"amenities\": \"Free WiFi, TV, Mini Bar, Kitchenette, Fireplace\",\r\n \"city\": \"Seattle\"\r\n },\r\n {\r\n \"roomId\": 339,\r\n \"roomType\": \"Suite\",\r\n \"pricePerNight\": 355.00,\r\n \"hotelName\": \"Opera Hotel\",\r\n \"numberOfAdultsAllowedInRoom\": 4,\r\n \"amenities\": \"Free WiFi, TV, Mini Bar, Kitchenette\",\r\n \"city\": \"Seattle\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n]"
}
},
{
"key": "openai.api.type",
"value": {
"stringValue": "chat_completions"
}
},
{
"key": "openai.response.service_tier",
"value": {
"stringValue": "default"
}
},
{
"key": "gen_ai.output.messages",
"value": {
"stringValue": "[\r\n {\r\n \"role\": \"assistant\",\r\n \"name\": \"HotelReservationAgent\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Thanks — I found 3 nearby hotel options for Nov 20 → Nov 21 (check‑in Nov 20). Note: these are the available rooms returned by the hotel search and they are above your $200/night budget — they’re all suites. Do you want to book one of these, or should I broaden the search to find more budget options?\\n\\nHere are the three options (one night rates shown):\\n\\n1) ID 309 — Budget Stay — Suite — $320.00/night\\n - Amenities: Free Wi‑Fi, TV, A/C, Kitchenette\\n - Notes: Most affordable of the three, suite layout\\n\\n2) ID 339 — Opera Hotel — Suite — $355.00/night\\n - Amenities: Free Wi‑Fi, TV, Mini Bar, Kitchenette\\n\\n3) ID 318 — Mountain Lodge — Suite — $410.00/night\\n - Amenities: Free Wi‑Fi, TV, Mini Bar, Kitchenette, Fireplace\\n - Notes: Most premium of the three\\n\\nQuick confirmations before I proceed (I’ll hold rooms only after you confirm which one and that you want me to book):\\n- Room: 1 room for 2 people, 1 king bed (confirm or request 2 beds)\\n- Rate flexibility: prefer refundable (default) — OK?\\n- Transportation to book as well? (defaults I’ll use unless you change them)\\n - Airport (SEA) → hotel private car scheduled for 2:30 PM on Nov 20\\n - Hotel → Climate Pledge Arena round‑trip same night; pickup at 6:00 PM, return after show\\n - Vehicle: private car (no accessibility requested)\\n\\nWhat would you like to do?\\n- Option A: Book room ID 309 / 339 / or 318 as-is (tell me the room ID to book and confirm transportation)\\n- Option B: Broaden search to find cheaper hotels (I can expand distance or include standard rooms)\\n- Option C: Increase budget (tell me new budget)\\n- Or make any other changes (beds, refundable vs non‑refundable, or transport type/time)\\n\\nTell me which room ID to reserve or which change you prefer — I will not make the booking until you explicitly approve.\"\r\n }\r\n ],\r\n \"finish_reason\": \"stop\"\r\n }\r\n]"
}
},
{
"key": "gen_ai.response.finish_reasons",
"value": {
"stringValue": "[\"stop\"]"
}
},
{
"key": "gen_ai.response.id",
"value": {
"stringValue": "chatcmpl-DekGxIr0tJwexzgifZwDGK744SZRK"
}
},
{
"key": "gen_ai.response.model",
"value": {
"stringValue": ""
}
},
{
"key": "gen_ai.response.time_to_first_chunk",
"value": {
"stringValue": "22.6755606"
}
},
{
"key": "gen_ai.usage.input_tokens",
"value": {
"stringValue": "1942"
}
},
{
"key": "gen_ai.usage.output_tokens",
"value": {
"stringValue": "1303"
}
},
{
"key": "gen_ai.usage.cache_read.input_tokens",
"value": {
"stringValue": "1536"
}
},
{
"key": "gen_ai.usage.reasoning.output_tokens",
"value": {
"stringValue": "832"
}
},
{
"key": "aspire.destination",
"value": {
"stringValue": "openai"
}
}
]
}
]
},
{
"scope": {
"name": "System.Net.Http"
},
"spans": [
{
"traceId": "6be57f480e4f4538cb3726f305950638",
"spanId": "400af98fb09a6147",
"parentSpanId": "369db56ce8239c46",
"name": "POST",
"kind": 3,
"startTimeUnixNano": "1778603322088722700",
"endTimeUnixNano": "1778603347260230800",
"attributes": [
{
"key": "http.request.method",
"value": {
"stringValue": "POST"
}
},
{
"key": "server.address",
"value": {
"stringValue": "models.github.ai"
}
},
{
"key": "server.port",
"value": {
"stringValue": "443"
}
},
{
"key": "url.full",
"value": {
"stringValue": "https://models.github.ai/inference/chat/completions"
}
},
{
"key": "http.response.status_code",
"value": {
"stringValue": "200"
}
},
{
"key": "network.protocol.version",
"value": {
"stringValue": "1.1"
}
},
{
"key": "aspire.destination",
"value": {
"stringValue": "openai"
}
}
]
},
{
"traceId": "6be57f480e4f4538cb3726f305950638",
"spanId": "bfe69846cd3fea78",
"parentSpanId": "9257fed0d615bf9f",
"name": "POST",
"kind": 3,
"startTimeUnixNano": "1778603352194222800",
"endTimeUnixNano": "1778603361761376600",
"attributes": [
{
"key": "http.request.method",
"value": {
"stringValue": "POST"
}
},
{
"key": "server.address",
"value": {
"stringValue": "models.github.ai"
}
},
{
"key": "server.port",
"value": {
"stringValue": "443"
}
},
{
"key": "url.full",
"value": {
"stringValue": "https://models.github.ai/inference/chat/completions"
}
},
{
"key": "http.response.status_code",
"value": {
"stringValue": "200"
}
},
{
"key": "network.protocol.version",
"value": {
"stringValue": "1.1"
}
},
{
"key": "aspire.destination",
"value": {
"stringValue": "openai"
}
}
]
},
{
"traceId": "6be57f480e4f4538cb3726f305950638",
"spanId": "161dada409dd1087",
"parentSpanId": "dcdd5f6a3481f2ad",
"name": "POST",
"kind": 3,
"startTimeUnixNano": "1778603362251012800",
"endTimeUnixNano": "1778603384920586600",
"attributes": [
{
"key": "http.request.method",
"value": {
"stringValue": "POST"
}
},
{
"key": "server.address",
"value": {
"stringValue": "models.github.ai"
}
},
{
"key": "server.port",
"value": {
"stringValue": "443"
}
},
{
"key": "url.full",
"value": {
"stringValue": "https://models.github.ai/inference/chat/completions"
}
},
{
"key": "http.response.status_code",
"value": {
"stringValue": "200"
}
},
{
"key": "network.protocol.version",
"value": {
"stringValue": "1.1"
}
},
{
"key": "aspire.destination",
"value": {
"stringValue": "openai"
}
}
]
}
]
}
],
"resource": {
"attributes": [
{
"key": "service.name",
"value": {
"stringValue": "agentservice"
}
},
{
"key": "service.instance.id",
"value": {
"stringValue": "pjkbvbmf"
}
},
{
"key": "telemetry.sdk.language",
"value": {
"stringValue": "dotnet"
}
},
{
"key": "telemetry.sdk.name",
"value": {
"stringValue": "opentelemetry"
}
},
{
"key": "telemetry.sdk.version",
"value": {
"stringValue": "1.15.3"
}
}
]
}
}
]
}
Description
I created an Aspire AppHost with DevUI, and added an Agent Service project to it.
The Agent Service is an ASP.NET Core project with OpenAI-compatible endpoints and it contains a multi-agent Handoff orchestration which is itself exposed as an agent.
I see the OpenTelemetry traces in the Aspire dashboard, but all written answer messages from the agents are marked as
Usermessages. I expected them to have theAssistantrole.It seems only some tool calls have the
AssistantroleCode Sample
AppHost.cs:
Agent Service
Program.cs:Agents and workflow registration:
Error Messages / Stack Traces
Package Versions
.NET Version
.NET 10.0
Additional Context
Aspire traces screenshot
OpenTelemetry json:
{ "resourceSpans": [ { "scopeSpans": [ { "scope": { "name": "Microsoft.AspNetCore" }, "spans": [ { "traceId": "6be57f480e4f4538cb3726f305950638", "spanId": "8dd53400c067b312", "name": "POST /v1/responses/", "kind": 2, "startTimeUnixNano": "1778603322086444700", "endTimeUnixNano": "1778603395633448400", "attributes": [ { "key": "server.address", "value": { "stringValue": "localhost" } }, { "key": "server.port", "value": { "stringValue": "5347" } }, { "key": "http.request.method", "value": { "stringValue": "POST" } }, { "key": "url.scheme", "value": { "stringValue": "http" } }, { "key": "url.path", "value": { "stringValue": "/v1/responses" } }, { "key": "network.protocol.version", "value": { "stringValue": "1.1" } }, { "key": "user_agent.original", "value": { "stringValue": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36 Edg/148.0.0.0" } }, { "key": "http.route", "value": { "stringValue": "/v1/responses/" } }, { "key": "http.response.status_code", "value": { "stringValue": "200" } }, { "key": "aspire.destination", "value": { "stringValue": "agentservice" } } ] } ] }, { "scope": { "name": "Experimental.Microsoft.Extensions.AI" }, "spans": [ { "traceId": "6be57f480e4f4538cb3726f305950638", "spanId": "02272dc32aada4af", "parentSpanId": "8dd53400c067b312", "name": "orchestrate_tools", "kind": 1, "startTimeUnixNano": "1778603322088262300", "endTimeUnixNano": "1778603352190739600", "attributes": [ { "key": "gen_ai.usage.input_tokens", "value": { "stringValue": "1595" } }, { "key": "gen_ai.usage.output_tokens", "value": { "stringValue": "1062" } } ] }, { "traceId": "6be57f480e4f4538cb3726f305950638", "spanId": "369db56ce8239c46", "parentSpanId": "02272dc32aada4af", "name": "chat openai/gpt-5-mini", "kind": 3, "startTimeUnixNano": "1778603322088288200", "endTimeUnixNano": "1778603352189131700", "attributes": [ { "key": "gen_ai.operation.name", "value": { "stringValue": "chat" } }, { "key": "gen_ai.request.model", "value": { "stringValue": "openai/gpt-5-mini" } }, { "key": "gen_ai.provider.name", "value": { "stringValue": "openai" } }, { "key": "gen_ai.request.stream", "value": { "stringValue": "true" } }, { "key": "server.address", "value": { "stringValue": "models.github.ai" } }, { "key": "server.port", "value": { "stringValue": "443" } }, { "key": "gen_ai.tool.definitions", "value": { "stringValue": "[\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"handoff_to_1\",\r\n \"description\": \"Book a ride to the concert\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"reasonForHandoff\": {\r\n \"description\": \"The reason for the handoff\",\r\n \"type\": [\r\n \"string\",\r\n \"null\"\r\n ]\r\n }\r\n },\r\n \"required\": [\r\n \"reasonForHandoff\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"handoff_to_2\",\r\n \"description\": \"Book a hotel room\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"reasonForHandoff\": {\r\n \"description\": \"The reason for the handoff\",\r\n \"type\": [\r\n \"string\",\r\n \"null\"\r\n ]\r\n }\r\n },\r\n \"required\": [\r\n \"reasonForHandoff\"\r\n ]\r\n }\r\n }\r\n]" } }, { "key": "gen_ai.system_instructions", "value": { "stringValue": "[\r\n {\r\n \"type\": \"text\",\r\n \"content\": \" You are a helpful and efficient travel concierge agent. Your main goal is to assist users in planning their trips by coordinating with specialized agents for different tasks, such as booking hotels and arranging transportation. \\r\\n You will work with the HotelReservationAgent to find and book a hotel room close to the concert location, and with the TransportationAgent to find and book transportation options from the hotel to the concert venue. \\r\\n You will coordinate the flow of information between the user and the specialized agents, ensuring that all necessary details are collected and that the user's preferences are taken into account. \\r\\n You will also handle any follow-up questions or adjustments needed based on the user's feedback or changes in plans.\\r\\n Your ultimate goal is to ensure that the user has a seamless and enjoyable experience planning their trip to the concert.\\nYou are one agent in a multi-agent system. You can hand off the conversation to another agent if appropriate. Handoffs are achieved\\nby calling a handoff function, named in the form `handoff_to_<agent_id>`; the description of the function provides details on the\\ntarget agent of that handoff. Handoffs between agents are handled seamlessly in the background; never mention or narrate these handoffs\\nin your conversation with the user.\"\r\n }\r\n]" } }, { "key": "gen_ai.input.messages", "value": { "stringValue": "[\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"I am going to a concert that is held at the Seattle Kraken Stadium. The Concert starts at 7:30 pm and is November 20th this year.\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Great — I can take care of the hotel and transportation for your concert at the Seattle Kraken stadium (Climate Pledge Arena) on November 20 (7:30 PM). Before I hand things off to the hotel and transportation specialists, a few quick questions so I can find the best options for you:\\n\\n1. Travel and hotel basics\\n- Where are you coming from (city or airport)? Do you need hotel nights before and/or after the concert? (Common choice: check in Nov 20, check out Nov 21.)\\n- How many guests/rooms and bed preference?\\n- Budget per night (economy / mid-range / premium / luxury)?\\n- Any must-have hotel amenities (parking, free breakfast, gym, early check-in, pet-friendly, accessible room)?\\n- Do you prefer a refundable rate or a cheaper non-refundable special?\\n\\n2. Location and walking preference\\n- How close to Climate Pledge Arena would you like the hotel? (within walking distance ~0–0.5 miles, short ride ~0.5–1.5 miles, no preference)\\n\\n3. Transportation details\\n- Do you want transportation only from the hotel to the arena for the concert, round-trip the same night, also airport-to-hotel, or all of the above?\\n- Preferred transport type: rideshare/taxi, private car, limo, shuttle, public transit (monorail/light rail), or flexible?\\n- Any accessibility needs (wheelchair-accessible vehicle)?\\n- Do you want a scheduled pickup at a set time or an on-demand ride? (I recommend leaving the hotel about 60–90 minutes before the 7:30 PM start — so around 5:45–6:30 PM — to allow for traffic and entry lines. Tell me your preference.)\\n\\n4. Anything else\\n- Any loyalty programs or specific hotel chains you prefer?\\n- Will you need parking at the hotel?\\n\\nIf you’d like, I can suggest a few nearby hotels across different budgets right now and recommend a pickup time. Once you confirm the answers above (or tell me to proceed with defaults), I’ll contact the HotelReservationAgent to find and hold rooms and the TransportationAgent to reserve your ride. Which details would you like to confirm first?\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Coming from the airport, arriving 2pm. Checkout 21 november. Budget per night is $200. 2 people.\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Great — thanks, that helps a lot. I’ve noted: arriving from the airport at 2:00 PM on Nov 20, check‑out Nov 21, budget about $200/night, 2 people.\\n\\nA few quick clarifying items so I can book the best hotel and transfers (I can proceed with sensible defaults if you prefer — see defaults I propose at the end):\\n\\n1) Airport — which airport are you arriving into? (I assume Seattle–Tacoma Intl / SEA unless you tell me otherwise.)\\n\\n2) Room & bed\\n- One room for 2 people OK? Bed preference: 1 king/queen or 2 beds?\\n\\n3) Rate type & amenities\\n- Refundable flexibility: prefer refundable or cheaper non‑refundable?\\n- Must-have amenities? (examples: free breakfast, on-site parking, gym/fitness center, early check‑in, pet‑friendly, accessible room)\\n\\n4) Location / walking preference\\n- How close to Climate Pledge Arena would you like the hotel? Options: within walking distance (~0–0.5 miles), short ride (~0.5–1.5 miles), no preference.\\n\\n5) Transportation scope & preferences\\n- Which transfers do you want booked? (airport → hotel only; hotel → arena only; round‑trip hotel↔arena same night; airport→hotel + hotel↔arena roundtrip; or all including return to airport)\\n- Vehicle type preference: rideshare/taxi, private car, shuttle, public transit, or flexible?\\n- Accessibility needs? (wheelchair‑accessible vehicle needed?)\\n- Pickup timing: for the concert I recommend leaving the hotel ~60–90 minutes before the 7:30 PM start — I suggest a 6:00 PM pickup. For your airport arrival (2:00 PM), would you like a scheduled pickup at 2:30 PM (gives time for deplaning and luggage) or do you prefer on‑demand when you land?\\n\\n6) Other\\n- Any hotel loyalty program or preferred chain?\\n- Will you need parking at the hotel?\\n- Any other requests (early check‑in, crib, smoking/non-smoking, pets)?\\n\\nIf you’d like me to proceed now with defaults, I’ll hand off to the hotel and transportation agents. My recommended defaults (tell me “go ahead” to use these):\\n- Airport: SEA\\n- Room: 1 room for 2 guests, 1 king bed\\n- Rate: refundable\\n- Amenities: free Wi‑Fi + gym + breakfast if available\\n- Location: within walking distance (0–0.5 mi)\\n- Transfers: airport→hotel (scheduled at 2:30 PM) and hotel→arena roundtrip same night (pickup at 6:00 PM, return after show to hotel)\\n- Vehicle: private car (can change to rideshare)\\n\\nWhich of the above would you like to confirm or change?\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Go ahead\"\r\n }\r\n ]\r\n }\r\n]" } }, { "key": "openai.api.type", "value": { "stringValue": "chat_completions" } }, { "key": "openai.response.service_tier", "value": { "stringValue": "default" } }, { "key": "gen_ai.output.messages", "value": { "stringValue": "[\r\n {\r\n \"role\": \"assistant\",\r\n \"name\": \"TravelConciergeAgent\",\r\n \"parts\": [\r\n {\r\n \"type\": \"tool_call\",\r\n \"id\": \"call_zLrBszDbO0WdnNHghaRxeipu\",\r\n \"name\": \"handoff_to_2\",\r\n \"arguments\": {\r\n \"reasonForHandoff\": \"Please find and hold a hotel room near Climate Pledge Arena (Seattle, Climate Pledge Arena / Seattle Kraken Stadium) for Nov 20 check‑in and Nov 21 check‑out. Guest details: arriving from SEA (Seattle–Tacoma Intl) with flight arrival ~2:00 PM on Nov 20. Room: 1 room for 2 guests, 1 king bed. Budget: about $200/night. Rate preference: refundable. Amenities requested: free Wi‑Fi, gym/fitness center, complimentary breakfast if available; best effort for early check‑in at ~2:30 PM. Location: within walking distance (0–0.5 miles) of Climate Pledge Arena. No specific loyalty program or parking required. Please provide 2–3 available options that meet the budget and preferences, nightly rates, refundable vs non‑refundable rate differences, distance to arena (walking time), and any hold/guarantee policy so we can confirm. Thank you.\"\r\n }\r\n }\r\n ],\r\n \"finish_reason\": \"tool_call\"\r\n }\r\n]" } }, { "key": "gen_ai.response.finish_reasons", "value": { "stringValue": "[\"tool_calls\"]" } }, { "key": "gen_ai.response.id", "value": { "stringValue": "chatcmpl-DekGICEfr44XDnw1FPcaqeH1kzmHm" } }, { "key": "gen_ai.response.model", "value": { "stringValue": "" } }, { "key": "gen_ai.response.time_to_first_chunk", "value": { "stringValue": "25.1720917" } }, { "key": "gen_ai.usage.input_tokens", "value": { "stringValue": "1595" } }, { "key": "gen_ai.usage.output_tokens", "value": { "stringValue": "1062" } }, { "key": "gen_ai.usage.cache_read.input_tokens", "value": { "stringValue": "0" } }, { "key": "gen_ai.usage.reasoning.output_tokens", "value": { "stringValue": "832" } }, { "key": "aspire.destination", "value": { "stringValue": "openai" } } ] }, { "traceId": "6be57f480e4f4538cb3726f305950638", "spanId": "457e2c269f12daae", "parentSpanId": "8dd53400c067b312", "name": "orchestrate_tools", "kind": 1, "startTimeUnixNano": "1778603352193720700", "endTimeUnixNano": "1778603395628189300", "attributes": [ { "key": "gen_ai.usage.input_tokens", "value": { "stringValue": "3597" } }, { "key": "gen_ai.usage.output_tokens", "value": { "stringValue": "1665" } } ] }, { "traceId": "6be57f480e4f4538cb3726f305950638", "spanId": "9257fed0d615bf9f", "parentSpanId": "457e2c269f12daae", "name": "chat openai/gpt-5-mini", "kind": 3, "startTimeUnixNano": "1778603352193735500", "endTimeUnixNano": "1778603362226907900", "attributes": [ { "key": "gen_ai.operation.name", "value": { "stringValue": "chat" } }, { "key": "gen_ai.request.model", "value": { "stringValue": "openai/gpt-5-mini" } }, { "key": "gen_ai.provider.name", "value": { "stringValue": "openai" } }, { "key": "gen_ai.request.stream", "value": { "stringValue": "true" } }, { "key": "server.address", "value": { "stringValue": "models.github.ai" } }, { "key": "server.port", "value": { "stringValue": "443" } }, { "key": "gen_ai.tool.definitions", "value": { "stringValue": "[\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"handoff_to_1\",\r\n \"description\": \"handoff to TravelConciergeAgent\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"reasonForHandoff\": {\r\n \"description\": \"The reason for the handoff\",\r\n \"type\": [\r\n \"string\",\r\n \"null\"\r\n ]\r\n }\r\n },\r\n \"required\": [\r\n \"reasonForHandoff\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"handoff_to_2\",\r\n \"description\": \"handoff to TransportationAgent\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"reasonForHandoff\": {\r\n \"description\": \"The reason for the handoff\",\r\n \"type\": [\r\n \"string\",\r\n \"null\"\r\n ]\r\n }\r\n },\r\n \"required\": [\r\n \"reasonForHandoff\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"SelectRoomPreference\",\r\n \"description\": \"Returns available rooms in a city for a date\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"city\": {\r\n \"description\": \"City where you need an hotel\",\r\n \"type\": \"string\"\r\n },\r\n \"dateOfBooking\": {\r\n \"description\": \"Date the hotel night is required\",\r\n \"type\": \"string\",\r\n \"format\": \"date-time\"\r\n }\r\n },\r\n \"required\": [\r\n \"city\",\r\n \"dateOfBooking\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"BookSelectedRoom\",\r\n \"description\": \"Books a room previously selected from available rooms\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"id\": {\r\n \"description\": \"id of the room to be booked\",\r\n \"type\": \"integer\"\r\n }\r\n },\r\n \"required\": [\r\n \"id\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"GetApprovalForBooking\",\r\n \"description\": \"Provides approval from the user for making a suggested booking based on the room id\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"id\": {\r\n \"description\": \"id of the room to be booked\",\r\n \"type\": \"integer\"\r\n }\r\n },\r\n \"required\": [\r\n \"id\"\r\n ]\r\n }\r\n }\r\n]" } }, { "key": "gen_ai.system_instructions", "value": { "stringValue": "[\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"You are an expert in finding hotel rooms close to music concert locations.\\r\\nYou provide some options what you have found and ask for approval before you \\r\\nmake the booking. You always suggest 3 options with different price ranges.\\r\\nYou will ask for approval before you make the booking. \\r\\nYou are not allowed to make a booking without user confirmation!\\r\\n\\r\\nAfter you successfully booked the room you will respond with [** GOAL REACHED **] in your message. \\nYou are one agent in a multi-agent system. You can hand off the conversation to another agent if appropriate. Handoffs are achieved\\nby calling a handoff function, named in the form `handoff_to_<agent_id>`; the description of the function provides details on the\\ntarget agent of that handoff. Handoffs between agents are handled seamlessly in the background; never mention or narrate these handoffs\\nin your conversation with the user.\"\r\n }\r\n]" } }, { "key": "gen_ai.input.messages", "value": { "stringValue": "[\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"I am going to a concert that is held at the Seattle Kraken Stadium. The Concert starts at 7:30 pm and is November 20th this year.\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Great — I can take care of the hotel and transportation for your concert at the Seattle Kraken stadium (Climate Pledge Arena) on November 20 (7:30 PM). Before I hand things off to the hotel and transportation specialists, a few quick questions so I can find the best options for you:\\n\\n1. Travel and hotel basics\\n- Where are you coming from (city or airport)? Do you need hotel nights before and/or after the concert? (Common choice: check in Nov 20, check out Nov 21.)\\n- How many guests/rooms and bed preference?\\n- Budget per night (economy / mid-range / premium / luxury)?\\n- Any must-have hotel amenities (parking, free breakfast, gym, early check-in, pet-friendly, accessible room)?\\n- Do you prefer a refundable rate or a cheaper non-refundable special?\\n\\n2. Location and walking preference\\n- How close to Climate Pledge Arena would you like the hotel? (within walking distance ~0–0.5 miles, short ride ~0.5–1.5 miles, no preference)\\n\\n3. Transportation details\\n- Do you want transportation only from the hotel to the arena for the concert, round-trip the same night, also airport-to-hotel, or all of the above?\\n- Preferred transport type: rideshare/taxi, private car, limo, shuttle, public transit (monorail/light rail), or flexible?\\n- Any accessibility needs (wheelchair-accessible vehicle)?\\n- Do you want a scheduled pickup at a set time or an on-demand ride? (I recommend leaving the hotel about 60–90 minutes before the 7:30 PM start — so around 5:45–6:30 PM — to allow for traffic and entry lines. Tell me your preference.)\\n\\n4. Anything else\\n- Any loyalty programs or specific hotel chains you prefer?\\n- Will you need parking at the hotel?\\n\\nIf you’d like, I can suggest a few nearby hotels across different budgets right now and recommend a pickup time. Once you confirm the answers above (or tell me to proceed with defaults), I’ll contact the HotelReservationAgent to find and hold rooms and the TransportationAgent to reserve your ride. Which details would you like to confirm first?\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Coming from the airport, arriving 2pm. Checkout 21 november. Budget per night is $200. 2 people.\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Great — thanks, that helps a lot. I’ve noted: arriving from the airport at 2:00 PM on Nov 20, check‑out Nov 21, budget about $200/night, 2 people.\\n\\nA few quick clarifying items so I can book the best hotel and transfers (I can proceed with sensible defaults if you prefer — see defaults I propose at the end):\\n\\n1) Airport — which airport are you arriving into? (I assume Seattle–Tacoma Intl / SEA unless you tell me otherwise.)\\n\\n2) Room & bed\\n- One room for 2 people OK? Bed preference: 1 king/queen or 2 beds?\\n\\n3) Rate type & amenities\\n- Refundable flexibility: prefer refundable or cheaper non‑refundable?\\n- Must-have amenities? (examples: free breakfast, on-site parking, gym/fitness center, early check‑in, pet‑friendly, accessible room)\\n\\n4) Location / walking preference\\n- How close to Climate Pledge Arena would you like the hotel? Options: within walking distance (~0–0.5 miles), short ride (~0.5–1.5 miles), no preference.\\n\\n5) Transportation scope & preferences\\n- Which transfers do you want booked? (airport → hotel only; hotel → arena only; round‑trip hotel↔arena same night; airport→hotel + hotel↔arena roundtrip; or all including return to airport)\\n- Vehicle type preference: rideshare/taxi, private car, shuttle, public transit, or flexible?\\n- Accessibility needs? (wheelchair‑accessible vehicle needed?)\\n- Pickup timing: for the concert I recommend leaving the hotel ~60–90 minutes before the 7:30 PM start — I suggest a 6:00 PM pickup. For your airport arrival (2:00 PM), would you like a scheduled pickup at 2:30 PM (gives time for deplaning and luggage) or do you prefer on‑demand when you land?\\n\\n6) Other\\n- Any hotel loyalty program or preferred chain?\\n- Will you need parking at the hotel?\\n- Any other requests (early check‑in, crib, smoking/non-smoking, pets)?\\n\\nIf you’d like me to proceed now with defaults, I’ll hand off to the hotel and transportation agents. My recommended defaults (tell me “go ahead” to use these):\\n- Airport: SEA\\n- Room: 1 room for 2 guests, 1 king bed\\n- Rate: refundable\\n- Amenities: free Wi‑Fi + gym + breakfast if available\\n- Location: within walking distance (0–0.5 mi)\\n- Transfers: airport→hotel (scheduled at 2:30 PM) and hotel→arena roundtrip same night (pickup at 6:00 PM, return after show to hotel)\\n- Vehicle: private car (can change to rideshare)\\n\\nWhich of the above would you like to confirm or change?\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Go ahead\"\r\n }\r\n ]\r\n }\r\n]" } }, { "key": "openai.api.type", "value": { "stringValue": "chat_completions" } }, { "key": "openai.response.service_tier", "value": { "stringValue": "default" } }, { "key": "gen_ai.output.messages", "value": { "stringValue": "[\r\n {\r\n \"role\": \"assistant\",\r\n \"name\": \"HotelReservationAgent\",\r\n \"parts\": [\r\n {\r\n \"type\": \"tool_call\",\r\n \"id\": \"call_i7rlVbqa1SgTAokKzcqLFhji\",\r\n \"name\": \"SelectRoomPreference\",\r\n \"arguments\": {\r\n \"city\": \"Seattle\",\r\n \"dateOfBooking\": \"2026-11-20T14:00:00\"\r\n }\r\n }\r\n ],\r\n \"finish_reason\": \"tool_call\"\r\n }\r\n]" } }, { "key": "gen_ai.response.finish_reasons", "value": { "stringValue": "[\"tool_calls\"]" } }, { "key": "gen_ai.response.id", "value": { "stringValue": "chatcmpl-DekGmP8LKwvM1I91CDm75mG4g7Haf" } }, { "key": "gen_ai.response.model", "value": { "stringValue": "" } }, { "key": "gen_ai.response.time_to_first_chunk", "value": { "stringValue": "9.5677046" } }, { "key": "gen_ai.usage.input_tokens", "value": { "stringValue": "1655" } }, { "key": "gen_ai.usage.output_tokens", "value": { "stringValue": "362" } }, { "key": "gen_ai.usage.cache_read.input_tokens", "value": { "stringValue": "0" } }, { "key": "gen_ai.usage.reasoning.output_tokens", "value": { "stringValue": "320" } }, { "key": "aspire.destination", "value": { "stringValue": "openai" } } ] }, { "traceId": "6be57f480e4f4538cb3726f305950638", "spanId": "1ff16399041d7c4a", "parentSpanId": "457e2c269f12daae", "name": "execute_tool SelectRoomPreference", "kind": 1, "startTimeUnixNano": "1778603362233392200", "endTimeUnixNano": "1778603362243723200", "attributes": [ { "key": "gen_ai.operation.name", "value": { "stringValue": "execute_tool" } }, { "key": "gen_ai.tool.type", "value": { "stringValue": "function" } }, { "key": "gen_ai.tool.call.id", "value": { "stringValue": "call_i7rlVbqa1SgTAokKzcqLFhji" } }, { "key": "gen_ai.tool.name", "value": { "stringValue": "SelectRoomPreference" } }, { "key": "gen_ai.tool.description", "value": { "stringValue": "Returns available rooms in a city for a date" } }, { "key": "gen_ai.tool.call.arguments", "value": { "stringValue": "{\r\n \"city\": \"Seattle\",\r\n \"dateOfBooking\": \"2026-11-20T14:00:00\"\r\n}" } }, { "key": "gen_ai.tool.call.result", "value": { "stringValue": "[\r\n {\r\n \"roomId\": 309,\r\n \"roomType\": \"Suite\",\r\n \"pricePerNight\": 320.00,\r\n \"hotelName\": \"Budget Stay\",\r\n \"numberOfAdultsAllowedInRoom\": 4,\r\n \"amenities\": \"Free WiFi, TV, Air Conditioning, Kitchenette\",\r\n \"city\": \"Seattle\"\r\n },\r\n {\r\n \"roomId\": 318,\r\n \"roomType\": \"Suite\",\r\n \"pricePerNight\": 410.00,\r\n \"hotelName\": \"Mountain Lodge\",\r\n \"numberOfAdultsAllowedInRoom\": 4,\r\n \"amenities\": \"Free WiFi, TV, Mini Bar, Kitchenette, Fireplace\",\r\n \"city\": \"Seattle\"\r\n },\r\n {\r\n \"roomId\": 339,\r\n \"roomType\": \"Suite\",\r\n \"pricePerNight\": 355.00,\r\n \"hotelName\": \"Opera Hotel\",\r\n \"numberOfAdultsAllowedInRoom\": 4,\r\n \"amenities\": \"Free WiFi, TV, Mini Bar, Kitchenette\",\r\n \"city\": \"Seattle\"\r\n }\r\n]" } } ] }, { "traceId": "6be57f480e4f4538cb3726f305950638", "spanId": "dcdd5f6a3481f2ad", "parentSpanId": "457e2c269f12daae", "name": "chat openai/gpt-5-mini", "kind": 3, "startTimeUnixNano": "1778603362245392100", "endTimeUnixNano": "1778603395628169200", "attributes": [ { "key": "gen_ai.operation.name", "value": { "stringValue": "chat" } }, { "key": "gen_ai.request.model", "value": { "stringValue": "openai/gpt-5-mini" } }, { "key": "gen_ai.provider.name", "value": { "stringValue": "openai" } }, { "key": "gen_ai.request.stream", "value": { "stringValue": "true" } }, { "key": "server.address", "value": { "stringValue": "models.github.ai" } }, { "key": "server.port", "value": { "stringValue": "443" } }, { "key": "gen_ai.tool.definitions", "value": { "stringValue": "[\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"handoff_to_1\",\r\n \"description\": \"handoff to TravelConciergeAgent\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"reasonForHandoff\": {\r\n \"description\": \"The reason for the handoff\",\r\n \"type\": [\r\n \"string\",\r\n \"null\"\r\n ]\r\n }\r\n },\r\n \"required\": [\r\n \"reasonForHandoff\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"handoff_to_2\",\r\n \"description\": \"handoff to TransportationAgent\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"reasonForHandoff\": {\r\n \"description\": \"The reason for the handoff\",\r\n \"type\": [\r\n \"string\",\r\n \"null\"\r\n ]\r\n }\r\n },\r\n \"required\": [\r\n \"reasonForHandoff\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"SelectRoomPreference\",\r\n \"description\": \"Returns available rooms in a city for a date\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"city\": {\r\n \"description\": \"City where you need an hotel\",\r\n \"type\": \"string\"\r\n },\r\n \"dateOfBooking\": {\r\n \"description\": \"Date the hotel night is required\",\r\n \"type\": \"string\",\r\n \"format\": \"date-time\"\r\n }\r\n },\r\n \"required\": [\r\n \"city\",\r\n \"dateOfBooking\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"BookSelectedRoom\",\r\n \"description\": \"Books a room previously selected from available rooms\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"id\": {\r\n \"description\": \"id of the room to be booked\",\r\n \"type\": \"integer\"\r\n }\r\n },\r\n \"required\": [\r\n \"id\"\r\n ]\r\n }\r\n },\r\n {\r\n \"type\": \"function\",\r\n \"name\": \"GetApprovalForBooking\",\r\n \"description\": \"Provides approval from the user for making a suggested booking based on the room id\",\r\n \"parameters\": {\r\n \"type\": \"object\",\r\n \"properties\": {\r\n \"id\": {\r\n \"description\": \"id of the room to be booked\",\r\n \"type\": \"integer\"\r\n }\r\n },\r\n \"required\": [\r\n \"id\"\r\n ]\r\n }\r\n }\r\n]" } }, { "key": "gen_ai.system_instructions", "value": { "stringValue": "[\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"You are an expert in finding hotel rooms close to music concert locations.\\r\\nYou provide some options what you have found and ask for approval before you \\r\\nmake the booking. You always suggest 3 options with different price ranges.\\r\\nYou will ask for approval before you make the booking. \\r\\nYou are not allowed to make a booking without user confirmation!\\r\\n\\r\\nAfter you successfully booked the room you will respond with [** GOAL REACHED **] in your message. \\nYou are one agent in a multi-agent system. You can hand off the conversation to another agent if appropriate. Handoffs are achieved\\nby calling a handoff function, named in the form `handoff_to_<agent_id>`; the description of the function provides details on the\\ntarget agent of that handoff. Handoffs between agents are handled seamlessly in the background; never mention or narrate these handoffs\\nin your conversation with the user.\"\r\n }\r\n]" } }, { "key": "gen_ai.input.messages", "value": { "stringValue": "[\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"I am going to a concert that is held at the Seattle Kraken Stadium. The Concert starts at 7:30 pm and is November 20th this year.\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Great — I can take care of the hotel and transportation for your concert at the Seattle Kraken stadium (Climate Pledge Arena) on November 20 (7:30 PM). Before I hand things off to the hotel and transportation specialists, a few quick questions so I can find the best options for you:\\n\\n1. Travel and hotel basics\\n- Where are you coming from (city or airport)? Do you need hotel nights before and/or after the concert? (Common choice: check in Nov 20, check out Nov 21.)\\n- How many guests/rooms and bed preference?\\n- Budget per night (economy / mid-range / premium / luxury)?\\n- Any must-have hotel amenities (parking, free breakfast, gym, early check-in, pet-friendly, accessible room)?\\n- Do you prefer a refundable rate or a cheaper non-refundable special?\\n\\n2. Location and walking preference\\n- How close to Climate Pledge Arena would you like the hotel? (within walking distance ~0–0.5 miles, short ride ~0.5–1.5 miles, no preference)\\n\\n3. Transportation details\\n- Do you want transportation only from the hotel to the arena for the concert, round-trip the same night, also airport-to-hotel, or all of the above?\\n- Preferred transport type: rideshare/taxi, private car, limo, shuttle, public transit (monorail/light rail), or flexible?\\n- Any accessibility needs (wheelchair-accessible vehicle)?\\n- Do you want a scheduled pickup at a set time or an on-demand ride? (I recommend leaving the hotel about 60–90 minutes before the 7:30 PM start — so around 5:45–6:30 PM — to allow for traffic and entry lines. Tell me your preference.)\\n\\n4. Anything else\\n- Any loyalty programs or specific hotel chains you prefer?\\n- Will you need parking at the hotel?\\n\\nIf you’d like, I can suggest a few nearby hotels across different budgets right now and recommend a pickup time. Once you confirm the answers above (or tell me to proceed with defaults), I’ll contact the HotelReservationAgent to find and hold rooms and the TransportationAgent to reserve your ride. Which details would you like to confirm first?\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Coming from the airport, arriving 2pm. Checkout 21 november. Budget per night is $200. 2 people.\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Great — thanks, that helps a lot. I’ve noted: arriving from the airport at 2:00 PM on Nov 20, check‑out Nov 21, budget about $200/night, 2 people.\\n\\nA few quick clarifying items so I can book the best hotel and transfers (I can proceed with sensible defaults if you prefer — see defaults I propose at the end):\\n\\n1) Airport — which airport are you arriving into? (I assume Seattle–Tacoma Intl / SEA unless you tell me otherwise.)\\n\\n2) Room & bed\\n- One room for 2 people OK? Bed preference: 1 king/queen or 2 beds?\\n\\n3) Rate type & amenities\\n- Refundable flexibility: prefer refundable or cheaper non‑refundable?\\n- Must-have amenities? (examples: free breakfast, on-site parking, gym/fitness center, early check‑in, pet‑friendly, accessible room)\\n\\n4) Location / walking preference\\n- How close to Climate Pledge Arena would you like the hotel? Options: within walking distance (~0–0.5 miles), short ride (~0.5–1.5 miles), no preference.\\n\\n5) Transportation scope & preferences\\n- Which transfers do you want booked? (airport → hotel only; hotel → arena only; round‑trip hotel↔arena same night; airport→hotel + hotel↔arena roundtrip; or all including return to airport)\\n- Vehicle type preference: rideshare/taxi, private car, shuttle, public transit, or flexible?\\n- Accessibility needs? (wheelchair‑accessible vehicle needed?)\\n- Pickup timing: for the concert I recommend leaving the hotel ~60–90 minutes before the 7:30 PM start — I suggest a 6:00 PM pickup. For your airport arrival (2:00 PM), would you like a scheduled pickup at 2:30 PM (gives time for deplaning and luggage) or do you prefer on‑demand when you land?\\n\\n6) Other\\n- Any hotel loyalty program or preferred chain?\\n- Will you need parking at the hotel?\\n- Any other requests (early check‑in, crib, smoking/non-smoking, pets)?\\n\\nIf you’d like me to proceed now with defaults, I’ll hand off to the hotel and transportation agents. My recommended defaults (tell me “go ahead” to use these):\\n- Airport: SEA\\n- Room: 1 room for 2 guests, 1 king bed\\n- Rate: refundable\\n- Amenities: free Wi‑Fi + gym + breakfast if available\\n- Location: within walking distance (0–0.5 mi)\\n- Transfers: airport→hotel (scheduled at 2:30 PM) and hotel→arena roundtrip same night (pickup at 6:00 PM, return after show to hotel)\\n- Vehicle: private car (can change to rideshare)\\n\\nWhich of the above would you like to confirm or change?\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"user\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Go ahead\"\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"assistant\",\r\n \"name\": \"HotelReservationAgent\",\r\n \"parts\": [\r\n {\r\n \"type\": \"tool_call\",\r\n \"id\": \"call_i7rlVbqa1SgTAokKzcqLFhji\",\r\n \"name\": \"SelectRoomPreference\",\r\n \"arguments\": {\r\n \"city\": \"Seattle\",\r\n \"dateOfBooking\": \"2026-11-20T14:00:00\"\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n \"role\": \"tool\",\r\n \"parts\": [\r\n {\r\n \"type\": \"tool_call_response\",\r\n \"id\": \"call_i7rlVbqa1SgTAokKzcqLFhji\",\r\n \"response\": [\r\n {\r\n \"roomId\": 309,\r\n \"roomType\": \"Suite\",\r\n \"pricePerNight\": 320.00,\r\n \"hotelName\": \"Budget Stay\",\r\n \"numberOfAdultsAllowedInRoom\": 4,\r\n \"amenities\": \"Free WiFi, TV, Air Conditioning, Kitchenette\",\r\n \"city\": \"Seattle\"\r\n },\r\n {\r\n \"roomId\": 318,\r\n \"roomType\": \"Suite\",\r\n \"pricePerNight\": 410.00,\r\n \"hotelName\": \"Mountain Lodge\",\r\n \"numberOfAdultsAllowedInRoom\": 4,\r\n \"amenities\": \"Free WiFi, TV, Mini Bar, Kitchenette, Fireplace\",\r\n \"city\": \"Seattle\"\r\n },\r\n {\r\n \"roomId\": 339,\r\n \"roomType\": \"Suite\",\r\n \"pricePerNight\": 355.00,\r\n \"hotelName\": \"Opera Hotel\",\r\n \"numberOfAdultsAllowedInRoom\": 4,\r\n \"amenities\": \"Free WiFi, TV, Mini Bar, Kitchenette\",\r\n \"city\": \"Seattle\"\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n]" } }, { "key": "openai.api.type", "value": { "stringValue": "chat_completions" } }, { "key": "openai.response.service_tier", "value": { "stringValue": "default" } }, { "key": "gen_ai.output.messages", "value": { "stringValue": "[\r\n {\r\n \"role\": \"assistant\",\r\n \"name\": \"HotelReservationAgent\",\r\n \"parts\": [\r\n {\r\n \"type\": \"text\",\r\n \"content\": \"Thanks — I found 3 nearby hotel options for Nov 20 → Nov 21 (check‑in Nov 20). Note: these are the available rooms returned by the hotel search and they are above your $200/night budget — they’re all suites. Do you want to book one of these, or should I broaden the search to find more budget options?\\n\\nHere are the three options (one night rates shown):\\n\\n1) ID 309 — Budget Stay — Suite — $320.00/night\\n - Amenities: Free Wi‑Fi, TV, A/C, Kitchenette\\n - Notes: Most affordable of the three, suite layout\\n\\n2) ID 339 — Opera Hotel — Suite — $355.00/night\\n - Amenities: Free Wi‑Fi, TV, Mini Bar, Kitchenette\\n\\n3) ID 318 — Mountain Lodge — Suite — $410.00/night\\n - Amenities: Free Wi‑Fi, TV, Mini Bar, Kitchenette, Fireplace\\n - Notes: Most premium of the three\\n\\nQuick confirmations before I proceed (I’ll hold rooms only after you confirm which one and that you want me to book):\\n- Room: 1 room for 2 people, 1 king bed (confirm or request 2 beds)\\n- Rate flexibility: prefer refundable (default) — OK?\\n- Transportation to book as well? (defaults I’ll use unless you change them)\\n - Airport (SEA) → hotel private car scheduled for 2:30 PM on Nov 20\\n - Hotel → Climate Pledge Arena round‑trip same night; pickup at 6:00 PM, return after show\\n - Vehicle: private car (no accessibility requested)\\n\\nWhat would you like to do?\\n- Option A: Book room ID 309 / 339 / or 318 as-is (tell me the room ID to book and confirm transportation)\\n- Option B: Broaden search to find cheaper hotels (I can expand distance or include standard rooms)\\n- Option C: Increase budget (tell me new budget)\\n- Or make any other changes (beds, refundable vs non‑refundable, or transport type/time)\\n\\nTell me which room ID to reserve or which change you prefer — I will not make the booking until you explicitly approve.\"\r\n }\r\n ],\r\n \"finish_reason\": \"stop\"\r\n }\r\n]" } }, { "key": "gen_ai.response.finish_reasons", "value": { "stringValue": "[\"stop\"]" } }, { "key": "gen_ai.response.id", "value": { "stringValue": "chatcmpl-DekGxIr0tJwexzgifZwDGK744SZRK" } }, { "key": "gen_ai.response.model", "value": { "stringValue": "" } }, { "key": "gen_ai.response.time_to_first_chunk", "value": { "stringValue": "22.6755606" } }, { "key": "gen_ai.usage.input_tokens", "value": { "stringValue": "1942" } }, { "key": "gen_ai.usage.output_tokens", "value": { "stringValue": "1303" } }, { "key": "gen_ai.usage.cache_read.input_tokens", "value": { "stringValue": "1536" } }, { "key": "gen_ai.usage.reasoning.output_tokens", "value": { "stringValue": "832" } }, { "key": "aspire.destination", "value": { "stringValue": "openai" } } ] } ] }, { "scope": { "name": "System.Net.Http" }, "spans": [ { "traceId": "6be57f480e4f4538cb3726f305950638", "spanId": "400af98fb09a6147", "parentSpanId": "369db56ce8239c46", "name": "POST", "kind": 3, "startTimeUnixNano": "1778603322088722700", "endTimeUnixNano": "1778603347260230800", "attributes": [ { "key": "http.request.method", "value": { "stringValue": "POST" } }, { "key": "server.address", "value": { "stringValue": "models.github.ai" } }, { "key": "server.port", "value": { "stringValue": "443" } }, { "key": "url.full", "value": { "stringValue": "https://models.github.ai/inference/chat/completions" } }, { "key": "http.response.status_code", "value": { "stringValue": "200" } }, { "key": "network.protocol.version", "value": { "stringValue": "1.1" } }, { "key": "aspire.destination", "value": { "stringValue": "openai" } } ] }, { "traceId": "6be57f480e4f4538cb3726f305950638", "spanId": "bfe69846cd3fea78", "parentSpanId": "9257fed0d615bf9f", "name": "POST", "kind": 3, "startTimeUnixNano": "1778603352194222800", "endTimeUnixNano": "1778603361761376600", "attributes": [ { "key": "http.request.method", "value": { "stringValue": "POST" } }, { "key": "server.address", "value": { "stringValue": "models.github.ai" } }, { "key": "server.port", "value": { "stringValue": "443" } }, { "key": "url.full", "value": { "stringValue": "https://models.github.ai/inference/chat/completions" } }, { "key": "http.response.status_code", "value": { "stringValue": "200" } }, { "key": "network.protocol.version", "value": { "stringValue": "1.1" } }, { "key": "aspire.destination", "value": { "stringValue": "openai" } } ] }, { "traceId": "6be57f480e4f4538cb3726f305950638", "spanId": "161dada409dd1087", "parentSpanId": "dcdd5f6a3481f2ad", "name": "POST", "kind": 3, "startTimeUnixNano": "1778603362251012800", "endTimeUnixNano": "1778603384920586600", "attributes": [ { "key": "http.request.method", "value": { "stringValue": "POST" } }, { "key": "server.address", "value": { "stringValue": "models.github.ai" } }, { "key": "server.port", "value": { "stringValue": "443" } }, { "key": "url.full", "value": { "stringValue": "https://models.github.ai/inference/chat/completions" } }, { "key": "http.response.status_code", "value": { "stringValue": "200" } }, { "key": "network.protocol.version", "value": { "stringValue": "1.1" } }, { "key": "aspire.destination", "value": { "stringValue": "openai" } } ] } ] } ], "resource": { "attributes": [ { "key": "service.name", "value": { "stringValue": "agentservice" } }, { "key": "service.instance.id", "value": { "stringValue": "pjkbvbmf" } }, { "key": "telemetry.sdk.language", "value": { "stringValue": "dotnet" } }, { "key": "telemetry.sdk.name", "value": { "stringValue": "opentelemetry" } }, { "key": "telemetry.sdk.version", "value": { "stringValue": "1.15.3" } } ] } } ] }