Skip to content

.NET: [Bug]: Telemetry incorrectly shows agent responses as user messages #5804

@hansmbakker

Description

@hansmbakker

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 User messages. I expected them to have the Assistant role.

It seems only some tool calls have the Assistant role

Code Sample

AppHost.cs:

var builder = DistributedApplication.CreateBuilder(args);

var apiKey = builder.AddParameter("github-models-key",
    value: "github_pat_mysecret",
    secret: true);

var openai = builder.AddOpenAI("openai")
                    .WithApiKey(apiKey)
                    .WithEndpoint("https://models.github.ai/inference");

var agentService = builder.AddProject<Projects.Handoff_AgentService>("agentservice")
        .WithReference(openai)
        .WithHttpHealthCheck("/health");

var devui = builder.AddDevUI("devui")
    .WithAgentService(agentService)
    .WaitFor(agentService);

builder.Build().Run();

Agent Service Program.cs:

var builder = WebApplication.CreateBuilder(args);

// Add service defaults & Aspire client integrations.
builder.AddServiceDefaults();

// Add services to the container.
builder.Services.AddProblemDetails();

// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
builder.Services.AddOpenApi();

builder.AddOpenAIClient(connectionName: "openai")
        .AddChatClient("openai/gpt-5-mini");

// In the agent service's Program.cs
//builder.AddAIAgent("agentservice", "You write short stories.");
builder.RegisterTravelBooking("agentservice");
builder.Services.AddOpenAIResponses();
builder.Services.AddOpenAIConversations();

var app = builder.Build();

app.MapOpenAIResponses();
app.MapOpenAIConversations();

// Configure the HTTP request pipeline.
app.UseExceptionHandler();

if (app.Environment.IsDevelopment())
{
    app.MapOpenApi();
}

app.MapDefaultEndpoints();

app.Run();

Agents and workflow registration:

using Microsoft.Agents.AI;
using Microsoft.Agents.AI.Hosting;
using Microsoft.Agents.AI.Workflows;
using Microsoft.Extensions.AI;
using Services;

public static class RegisterAgentsExtensions
{
    public static void RegisterTravelBooking(this IHostApplicationBuilder builder, string agentName)
    {
        builder.AddAIAgent(
            name: "HotelReservationAgent",
            //description: "An agent that finds and books a hotel room close to the concert location",
            instructions: """
                You are an expert in finding hotel rooms close to music concert locations.
                You provide some options what you have found and ask for approval before you 
                make the booking. You always suggest 3 options with different price ranges.
                You will ask for approval before you make the booking. 
                You are not allowed to make a booking without user confirmation!

                After you successfully booked the room you will respond with [** GOAL REACHED **] in your message.            
                """
            )
             .WithAITools([
                 AIFunctionFactory.Create(HotelBookingFunctions.SelectRoomPreference),
                 AIFunctionFactory.Create(HotelBookingFunctions.BookSelectedRoom),
                 AIFunctionFactory.Create(HotelBookingFunctions.GetApprovalForBooking)]
            );

        var rideInstructions = """
            You are an expert in finding transportation options from a given hotel location to the concert location.
            You will try to get the best options available for an affordable price. Make sure the customer will be there at least 30 minutes before the concert starts at the venue.
            You always suggest 3 options with different price ranges.
            You will ask for approval before you make the booking. 
            You are not allowed to make a booking without user confirmation!

            After you successfully booked the ride you will respond with [** GOAL REACHED **] in your message.            
            """;

        builder.AddAIAgent(
                name: "TransportationAgent",
                //description: "An agent that finds transportation options for the user from their hotel to the concert venue.",
                instructions: rideInstructions)
            .WithAITools([
                    AIFunctionFactory.Create(RideInformationSystemService.GetAvailableRides),
                    AIFunctionFactory.Create(RideInformationSystemService.BookARide)]);

        builder.AddAIAgent(
                name: "TravelConciergeAgent",
                instructions: """
                    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. 
                    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. 
                    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. 
                    You will also handle any follow-up questions or adjustments needed based on the user's feedback or changes in plans.
                    Your ultimate goal is to ensure that the user has a seamless and enjoyable experience planning their trip to the concert.
                """);

        builder.AddWorkflow("travel-booking-workflow", (sp, key) =>
         {
             var hotelAgent = sp.GetRequiredKeyedService<AIAgent>("HotelReservationAgent");
             var rideAgent = sp.GetRequiredKeyedService<AIAgent>("TransportationAgent");
             var travelAgent = sp.GetRequiredKeyedService<AIAgent>("TravelConciergeAgent");
#pragma warning disable MAAIW001 // This demo is specifically to show handoffs
             var workflow = AgentWorkflowBuilder
                .CreateHandoffBuilderWith(travelAgent)
                .WithHandoff(travelAgent, rideAgent, "Book a ride to the concert")
                .WithHandoff(travelAgent, hotelAgent, "Book a hotel room")
                .WithHandoffs(rideAgent, [travelAgent, hotelAgent])
                .WithHandoffs(hotelAgent, [travelAgent, rideAgent])
                .EnableReturnToPrevious()
                .Build();


             workflow.SetName("travel-booking-workflow");

             return workflow;
#pragma warning restore MAAIW001
         }).AddAsAIAgent(agentName);
    }
}

Error Messages / Stack Traces

Package Versions

  • Aspire.Hosting.AgentFramework.DevUI: 1.5.0-preview.260507.1
  • Aspire.Hosting.*: 13.3.0
  • Microsoft.Extensions.AI: 10.5.1
  • OpenTelemetry.*: 1.15.1
  • Aspire.OpenAI: 13.3.0-preview.1.26256.5
  • Microsoft.Agents.AI: 1.5.0
  • Microsoft.Agents.AI.DevUI: 1.5.0-preview.260507.1
  • Microsoft.Agents.AI.OpenAI: 1.5.0
  • Microsoft.Agents.AI.Workflows: 1.5.0
  • Microsoft.Agents.AI.Hosting.OpenAI: 1.5.0-alpha.260507.1

.NET Version

.NET 10.0

Additional Context

Aspire traces screenshot

Image

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"
            }
          }
        ]
      }
    }
  ]
}

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions