1---
 2version: 2
 3interactions:
 4  - id: 0
 5    request:
 6        proto: HTTP/1.1
 7        proto_major: 1
 8        proto_minor: 1
 9        content_length: 520
10        host: ""
11        body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence,Italy?","role":"user"}],"model":"openai/gpt-5","max_completion_tokens":4000,"tool_choice":"auto","tools":[{"function":{"name":"weather","strict":false,"description":"Get weather information for a location","parameters":{"properties":{"location":{"description":"the city","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"provider":{"only":["azure"]},"usage":{"include":true}}'
12        headers:
13            Accept:
14              - application/json
15            Content-Type:
16              - application/json
17            User-Agent:
18              - OpenAI/Go 2.3.0
19        url: https://openrouter.ai/api/v1/chat/completions
20        method: POST
21    response:
22        proto: HTTP/2.0
23        proto_major: 2
24        proto_minor: 0
25        content_length: -1
26        uncompressed: true
27        body: "\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n{\"id\":\"gen-1758707112-SHVSc7WvzkODy3nwv5sq\",\"provider\":\"Azure\",\"model\":\"openai/gpt-5\",\"object\":\"chat.completion\",\"created\":1758707112,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"tool_calls\",\"native_finish_reason\":\"completed\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"\",\"refusal\":null,\"reasoning\":\"**Gathering weather info**\\n\\nI need to get weather information, and there's a tool called functions.weather that takes a location string. I can call this tool directly, which seems fine since we only need one. I plan on using \\\"Florence, Italy\\\" to ensure we have it clear. After running the tool with this location, I'll check the results. I just need to trust the tool will return something reasonable, and then present that information clearly!\",\"tool_calls\":[{\"id\":\"call_qQ7LiNOauuYouxSM5ci5PCuV\",\"index\":1,\"type\":\"function\",\"function\":{\"name\":\"weather\",\"arguments\":\"{\\\"location\\\":\\\"Florence, Italy\\\"}\"}}],\"reasoning_details\":[{\"type\":\"reasoning.summary\",\"summary\":\"**Gathering weather info**\\n\\nI need to get weather information, and there's a tool called functions.weather that takes a location string. I can call this tool directly, which seems fine since we only need one. I plan on using \\\"Florence, Italy\\\" to ensure we have it clear. After running the tool with this location, I'll check the results. I just need to trust the tool will return something reasonable, and then present that information clearly!\",\"format\":\"openai-responses-v1\",\"index\":0},{\"type\":\"reasoning.encrypted\",\"data\":\"gAAAAABo072sVHHC_JFrgGu072vONHSI4HLEe1naxobGb7iCdou2Qu0Ej08uuCOvwFWsQb8eK23H9hq-RWAsmNjZlGA7qfzZ-biqZwZhyNrNTkJpWF3K4ufwfwZ0k9j_0Cg1XNO0brTiUaDfS8tZlO7vKmJ9BkMAKox6NnabGJZ4EIJsNDOcJ9-7gXLil4W20LRbXwBoYc0P9BQmnxXb4KR8QCHwIkx45UOpCOPMkZcbQfRm1lJF3a9pTQRYb4mbej-IKKyrDVkmp5apVIV3Wd88E1UduHWdrpNncFGG2oVNQL9m8D6kt-rbkZfxpkWcvN77YRKrjlinqbGMpzdPYJhb4WBydzkb-c84ya6JE29AYxZ0_1NxGCsFnLRZAlvSlX567oJnayiNCja6KkHOGlNk3_tnloRVr1l340ZKDHRAwrkmg0pyvSZwovgRSGqiKGdy_1fA7J4UKs4aZvFKEVm4uMwAhlxHiP_JKER6kh8lKnUyo5AWypuFXfETnlCDYWDggeab7pEf8C9Hsjv1z1zXzinEjAr1YjA_r8GZ31Uo1ymAy8zpnKtbmD3rpyIU-H-EgFiTVUTar2cQIPja_GOk5I6nTBBxVAVNeRyxTACuPcvlEurMBwy6JEBnHK74tP6mnFT3JLDTp-qYK9nMWqoq2YFzZbraCi-zvucbIHY_HUUP4879L2YJ_I6a4wePNHt-9cKkc9tjsXCUBw-kdnR6U5w75BjVgXy-jYSB5jSKXx5lwmcXEsonoRNRhk2cPtR-65xTZH_RH1hbPYJKAGSO072YIa5gNWfJbp66TXOEoztWsuRKqbUByJTT8EPpw4m0BWRcxOgBY_dWZc8zcluHCYEXodDN3P_g6Vb0OMl5F60uictIQCXTp4c8GAv0mMlge9vjAuwIR_nNTfZyzeI0Dri5WaOOG1am_XZlWXvFwPWfzdALcdou0OglCXM35q-2cIXlxsqtmKxfybooAZTBGn-Yu1Xuw3WKTHEqpRNGTQmAqR55kI_S2VCaBvPQzN4X9ODwsJm7qRIscJPifhWzrnCYusK_il2ZH3qVMe-REwfEB2uP4FwR3luuTh6CvKQRQx2CzUSVnjnTlygEnjghyrPhBQbi9Y8R90fgY6PBBCW8cs88pKeNYw6pGIi0p81qKeF5aaEZEYZ4TobdWlmZ1b2ed0f8qmADnIxvaWEbi9X0gUpp76xdpm16xHfxxW2LNtaF0j_PHQcy2A8G4bYHoS_Rtcjg71kmxuERv00DWVYCV_ApByMbxnGUKNBKi2PSGc9UZj447wTxDRx3sCqo3Fyygybi9u54dDoQ0SjOaEIejhJJ2gT84iqN0o78r6aGiJLeP4oZoRO8K84UXOzg7uglbKHzC0Wb3mJ9e0TCqq4lHcLBKJHiADYseMIEjm-Rh1I7Tus1WRonUMNSXE3nIfo_MwLa3qEAOuo-iz1PX67EPFF7wogDukSGwz3iA_xJXXZdFPQ1cjpssmn86OK-Y5_b-xlZISCpPkbPak_jo7lj3AyOxr9LsGUy7NyS_eR_qSeTX6R3u5eIfYYcE6NvzwB8dU2fb1HY1HuDijy8ukz78GuZgVczO5lbZZgK5atBT05I2nS4JI4wLVUYL_x54s0pw0biwOsEBTAy5A5iOpFuzCYc38YtjNqRU8Yhiyccs7v2valld-0w1d9xnpO5mRxT1oK1mVRK1bucFMv8QUW40I10KgjBAFNfUqG7ef1DnhFUqXGCTivu_CxTXy9Q3XhdNHeyk-IwmHNM55iLSpYzXycPQADQbn9v7_xeqKgQWbWDgAN-U3hiEfmO39IPhYkRarVCuFhDdQCKIqAG0KeURo4KOvQyJx1Tc8wvI15DFc4M91JhjeEFavu7KcGqxAnbeMA9FTXhoU0dj6h9NoZyhNGAM88=\",\"id\":\"rs_68d3bda94c6881909770d8eb09935c5b0047ff828f4c5408\",\"format\":\"openai-responses-v1\",\"index\":0}]}}],\"usage\":{\"prompt_tokens\":63,\"completion_tokens\":150,\"total_tokens\":213,\"cost\":0.00157875,\"is_byok\":false,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"cost_details\":{\"upstream_inference_cost\":null,\"upstream_inference_prompt_cost\":0.00007875,\"upstream_inference_completions_cost\":0.0015},\"completion_tokens_details\":{\"reasoning_tokens\":128,\"image_tokens\":0}}}"
28        headers:
29            Content-Type:
30              - application/json
31        status: 200 OK
32        code: 200
33        duration: 520.082792ms
34  - id: 1
35    request:
36        proto: HTTP/1.1
37        proto_major: 1
38        proto_minor: 1
39        content_length: 772
40        host: ""
41        body: '{"messages":[{"content":"You are a helpful assistant","role":"system"},{"content":"What''s the weather in Florence,Italy?","role":"user"},{"tool_calls":[{"id":"call_qQ7LiNOauuYouxSM5ci5PCuV","function":{"arguments":"{\"location\":\"Florence, Italy\"}","name":"weather"},"type":"function"}],"role":"assistant"},{"content":"40 C","tool_call_id":"call_qQ7LiNOauuYouxSM5ci5PCuV","role":"tool"}],"model":"openai/gpt-5","max_completion_tokens":4000,"tool_choice":"auto","tools":[{"function":{"name":"weather","strict":false,"description":"Get weather information for a location","parameters":{"properties":{"location":{"description":"the city","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"provider":{"only":["azure"]},"usage":{"include":true}}'
42        headers:
43            Accept:
44              - application/json
45            Content-Type:
46              - application/json
47            User-Agent:
48              - OpenAI/Go 2.3.0
49        url: https://openrouter.ai/api/v1/chat/completions
50        method: POST
51    response:
52        proto: HTTP/2.0
53        proto_major: 2
54        proto_minor: 0
55        content_length: -1
56        uncompressed: true
57        body: "\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n\n         \n{\"id\":\"gen-1758707117-GrVr8BPVX6BpyCl19MbO\",\"provider\":\"Azure\",\"model\":\"openai/gpt-5\",\"object\":\"chat.completion\",\"created\":1758707117,\"choices\":[{\"logprobs\":null,\"finish_reason\":\"stop\",\"native_finish_reason\":\"completed\",\"index\":0,\"message\":{\"role\":\"assistant\",\"content\":\"Right now in Florence, Italy, it’s about 40°C. Would you like a forecast or more details (wind, humidity)?\",\"refusal\":null,\"reasoning\":\"**Presenting weather information**\\n\\nThe weather tool returned \\\"40°C\\\" for Florence, Italy. It seems to focus just on temperature, so I should present it clearly. I could say, \\\"Current temperature in Florence, Italy is 40°C.\\\" I might suggest, \\\"If you'd like forecast details or humidity, just let me know,\\\" but I can't call another tool here. The response needs to be succinct. I’ll also mention that it’s hot out and recommend staying hydrated!**Finalizing the weather response**\\n\\nI want to keep my response concise. The tool doesn't give time specifics, so I can use \\\"Currently\\\" or \\\"Right now.\\\" I'll finalize my statement as, \\\"Right now in Florence, Italy: 40°C.\\\" It might be a good idea to ask if they'd like the forecast, but I’ll stick to one or two sentences. This way, the information is clear and succinct. Let's deliver that!\",\"reasoning_details\":[{\"type\":\"reasoning.summary\",\"summary\":\"**Presenting weather information**\\n\\nThe weather tool returned \\\"40°C\\\" for Florence, Italy. It seems to focus just on temperature, so I should present it clearly. I could say, \\\"Current temperature in Florence, Italy is 40°C.\\\" I might suggest, \\\"If you'd like forecast details or humidity, just let me know,\\\" but I can't call another tool here. The response needs to be succinct. I’ll also mention that it’s hot out and recommend staying hydrated!**Finalizing the weather response**\\n\\nI want to keep my response concise. The tool doesn't give time specifics, so I can use \\\"Currently\\\" or \\\"Right now.\\\" I'll finalize my statement as, \\\"Right now in Florence, Italy: 40°C.\\\" It might be a good idea to ask if they'd like the forecast, but I’ll stick to one or two sentences. This way, the information is clear and succinct. Let's deliver that!\",\"format\":\"openai-responses-v1\",\"index\":0},{\"type\":\"reasoning.encrypted\",\"data\":\"gAAAAABo07239N3sJfPtNXtUggbwbSwwn8W-nvhd9fDiuXbseMjdofxAPQRtWiNWokoJC1aQZLUuA_Lw9kSKLwM-kPmIWiaU6IARsIcUnWxnG_UrOGA3jWGgt5XgTBMaTB3cdHeqwqpDO2oLGRB9S5qheAgdaNYLWzTk-Vm_eQ7qzt9ORd5BfyAylEuObIZEEJIHIRrbjeIPAbtuwt36HhyJW1OcmWO2rK208sz8z8B0xXBUe_XwO4jQth8U_ddH_4UOMb44xmbdRSRu0IYMG2tY6EyTsfBpUk8aBXxcihcpthYZ3QhBoLOih7N0fa7NFkQq8uedMtcj2NwpMxIuiaecA34bLZobIRINCO5J-KOVqyT6KU3aMw04aSOutg2nYS40nRKiFyRfu_E503DZhhKzP5g2d8Nwup9EvgwFR81YbUTmJ0Dmp7kqmFB7WTbQ3-EB8T_Wtc8-fDObnAKCfyjL9RWM80Byi4Il3MTub3nit7W_c60SGK__s3eFP5qGjSoJC2I_r8s0_uepSwoCKePfs2gp0_9sj51uZCFZtfa3V6DI9MJyFmwWNCtkOvGZxDHHsBGO2sZv9SgiNqAFJseYJy92o4KrgQysC-dIewcpjKfpdcod0UoTWH6nLyRkzKqYeq_D5ZR5aFwg_nbM4m_YfUvmNE57ksK6nHzQLgjli-2LvijvvgVukdlFrOb2YRRDLybb7gmvcS3qkeZl8s-G842m2nmNUPsCeVGgptTsE6GrBNQ4gkJB1IM02Ur_kHX7pt-qaUmN1Je3NfaGFILDJI9jDICa29NDtRL5ZN8_re-sMHFILWLOhHmRTDy4PljFALUlWVerKj8u2W6Y_Wokx6AB1NyS3nPQrw97DHaCi1zJ1csYbc-Y8-N5OqFH_ocNVeLTkS90-PBMHEqgtAooo7oxHA9ZzVnQIKkXeDnKiVeMYtsBdWhlqath2bas7V3Ly0Tngnc176cY6D5-A67-Jj2ixwsUOtBIFiHx1YISI4YFfgQH43yXcWhPLZUFEQyVln1j42KTLbjLL9qK-6IbRYvtG7Fkvg_2pFF2v6dn6I4qA5F3oHm4zv9lcpdpNmdpFTR9iPjWXzuAGj01Jw22PnPpcrrwusVR8kSuXdvMrk0-C_SMqGMPSqtvdjL76Db5Y8h_bNlBbrG4AImvuJ86TgF5Qom8jq7fOmcVfwdQCovuFUoj8gSw85N-a-87NhkxQsNHHVYn6vK4JglDTNF1zLD2G8pkwwRZfY6wSo7VlQSb8U3lzsz9txXJ8iIufig2-5zDcVUl47hZlbUheQKmYRRBpTav1qn0s5twOfKU7Rf0J34yDenNZssM4fIdgzrJnY5QOaHJkQ16qjvSlJJBg2NuVUibi9vMB4YHmCj5S6-Y9yMWlqfYW32CiJJxmTmRGX6O17x_uZ4RYj2OPryUhcEKLViwMsRYNgXcA7lcD3CeR31BHaafx6Y00v6TCieGSbv2YbNdIZY1hAi6PBFhTMUoWPClH8lSVD9TdwmVhGxIeUakS8IK6HzxiVyn0XcqwhoydwV9ciaxuAw05UgCMuEZcS8Qs1QLivUC8Esbkl5DWYes4obN5K0VfObYD4_RCr1DGCNJaWIkaWwxZNoXxuChCX-UwbxvhTLoMNceMjABjd8IAjMdMcLlTmDWrs-CF4ZuBqaUjcBb2cQfx_TlC_4ZYliBAEIkocsaxsj-KU5dTMNrVmsY-sk3V9rqS7eRIRh6btzt2J82MD9n-_AXm1RnAb8zr6_EXxv55jSKAc5po4yYCQq2E_ALKP-h3Y9tJXE3Q8rV_mTnEtt9Qrbv9i89rqKKoaLdTv16fEqytSkWMRrg-UCd8zLVgHOe4LvClwILh8uZc786steCVlelYe_m9lqmOA13MHTbMFBcdvktm4f9cSvml_b4pGM0tSxSpUoN4QXgl3mlZH8MAxDuluzw_jxlwzDbpg20XNyoAtm5Uh-QU3HJMNWAF8FluyeG11B71QUXyNTVHAmgIiO8hFkwBAVYsqFydd_tjU2k4Qy7YUcvDmxMTT5vbLnnzMU2oGjk1Gy1IVSglbmcQPVFMW-lSigj3hxoyrWLj3TDyhKNi5IhZWa3QFaAvl7i7dJQrd5K9jcgV01-d2bR1u1AFdJRQ4L1fh1IyU42GoLbh1ihXJV1745_L7BnXtSvNH49pWzwBE3E7pZ2wlapKpeX9ez8jtxw-VL6gwvxBsI5Czq13ahx95nYBi_7KMr8Kwv4d5K3t_KVP_2Gw79Ys3oJYlQRGtQhI1kIrN9ISiH1Rz5hj42tNgy4hMYS0z9uezEVl9vCryJ3X8SLJRXsPQb2gHuIqUfzqhrgvosv7aYBiHPbbTLBq8Qli-uQs0t7RSYskD9ItsaI91xoCQUjfTSDODUW6iDEM7O3CrRazMx9skTqjZj_uF0KaXYAzQvaD-Uw8_R7qhO1nWDxkTzjzSusXWuSZFamNWDjtXzbsesZcJZIEdoHE45kH7SzyifCPaeV9cXyzOI3\",\"id\":\"rs_68d3bdaf58b08190a300a7ecc77fd6b6\",\"format\":\"openai-responses-v1\",\"index\":0}]}}],\"usage\":{\"prompt_tokens\":92,\"completion_tokens\":289,\"total_tokens\":381,\"cost\":0.003005,\"is_byok\":false,\"prompt_tokens_details\":{\"cached_tokens\":0,\"audio_tokens\":0},\"cost_details\":{\"upstream_inference_cost\":null,\"upstream_inference_prompt_cost\":0.000115,\"upstream_inference_completions_cost\":0.00289},\"completion_tokens_details\":{\"reasoning_tokens\":256,\"image_tokens\":0}}}"
58        headers:
59            Content-Type:
60              - application/json
61        status: 200 OK
62        code: 200
63        duration: 1.018084208s