multi_tool_streaming.yaml

  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: 867
 10    host: ""
 11    body: '{"messages":[{"content":"You are a helpful assistant. Always use both add and multiply at the same time.","role":"system"},{"content":"Add and multiply the number 2 and 3","role":"user"}],"model":"anthropic/claude-sonnet-4","max_tokens":4000,"stream_options":{"include_usage":true},"tool_choice":"auto","tools":[{"function":{"name":"add","strict":false,"description":"Add two numbers","parameters":{"properties":{"a":{"description":"first number","type":"integer"},"b":{"description":"second number","type":"integer"}},"required":["a","b"],"type":"object"}},"type":"function"},{"function":{"name":"multiply","strict":false,"description":"Multiply two numbers","parameters":{"properties":{"a":{"description":"first number","type":"integer"},"b":{"description":"second number","type":"integer"}},"required":["a","b"],"type":"object"}},"type":"function"}],"stream":true}'
 12    headers:
 13      Accept:
 14      - application/json
 15      Content-Type:
 16      - application/json
 17      User-Agent:
 18      - Charm-Fantasy/0.12.2 (https://charm.land/fantasy)
 19    url: https://ai-gateway.vercel.sh/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    body: |+
 27      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"role":"assistant"},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 28
 29      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"content":"I'll add and"},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 30
 31      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"content":" multiply the numbers"},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 32
 33      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"content":" 2 and 3 for"},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 34
 35      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"content":" you."},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 36
 37      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"id":"toolu_01QU6XHH6Ct5srCeCZJztb1y","type":"function","function":{"name":"add","arguments":""}}]},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 38
 39      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\"a\": 2"}}]},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 40
 41      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":", "}}]},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 42
 43      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"b\": 3}"}}]},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 44
 45      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"id":"toolu_01Efj1TvKTdgHLoko7KWUMVE","type":"function","function":{"name":"multiply","arguments":""}}]},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 46
 47      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"{\"a\": 2"}}]},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 48
 49      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":", "}}]},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 50
 51      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"\"b\": 3}"}}]},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_g0zfy07qs0"}
 52
 53      data: {"id":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","object":"chat.completion.chunk","created":1773346172,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"provider_metadata":{"anthropic":{"usage":{"input_tokens":502,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":137,"service_tier":"standard","inference_geo":"not_available"},"cacheCreationInputTokens":0,"stopSequence":null,"iterations":null,"container":null,"contextManagement":null},"gateway":{"routing":{"originalModelId":"anthropic/claude-sonnet-4","resolvedProvider":"anthropic","resolvedProviderApiModelId":"claude-sonnet-4-20250514","internalResolvedModelId":"anthropic:claude-sonnet-4-20250514","fallbacksAvailable":["vertexAnthropic","bedrock"],"internalReasoning":"Selected anthropic as preferred provider for claude-sonnet-4. 2 fallback(s) available: vertexAnthropic, bedrock","planningReasoning":"System credentials planned for: anthropic, vertexAnthropic, bedrock. Total execution order: anthropic(system) → vertexAnthropic(system) → bedrock(system)","canonicalSlug":"anthropic/claude-sonnet-4","finalProvider":"anthropic","attempts":[{"provider":"anthropic","internalModelId":"anthropic:claude-sonnet-4-20250514","providerApiModelId":"claude-sonnet-4-20250514","credentialType":"system","success":true,"startTime":322008.401321,"endTime":323988.444712,"providerRequestId":"req_011CYynuqMab2kEubp15EEeP","statusCode":200,"providerResponseId":"msg_01GVmJLZY3oQqZBgtYeWjoaj"}],"modelAttemptCount":1,"modelAttempts":[{"modelId":"anthropic:claude-sonnet-4-20250514","canonicalSlug":"anthropic/claude-sonnet-4","success":true,"providerAttemptCount":1,"providerAttempts":[{"provider":"anthropic","internalModelId":"anthropic:claude-sonnet-4-20250514","providerApiModelId":"claude-sonnet-4-20250514","credentialType":"system","success":true,"startTime":322008.401321,"endTime":323988.444712,"providerRequestId":"req_011CYynuqMab2kEubp15EEeP","statusCode":200,"providerResponseId":"msg_01GVmJLZY3oQqZBgtYeWjoaj"}]}],"totalProviderAttemptCount":1},"cost":"0.003561","marketCost":"0.003561","generationId":"gen_01KKHTPB0VVB4G1GX21F4H7EN4","billableWebSearchCalls":0}}},"logprobs":null,"finish_reason":"tool_calls"}],"usage":{"prompt_tokens":502,"completion_tokens":137,"total_tokens":639,"cost":0.003561,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0,"upstream_inference_completions_cost":0},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0},"cache_creation_input_tokens":0,"market_cost":0.003561},"system_fingerprint":"fp_g0zfy07qs0","generationId":"gen_01KKHTPB0VVB4G1GX21F4H7EN4"}
 54
 55      data: [DONE]
 56
 57    headers:
 58      Content-Type:
 59      - text/event-stream
 60    status: 200 OK
 61    code: 200
 62    duration: 1.084668208s
 63- id: 1
 64  request:
 65    proto: HTTP/1.1
 66    proto_major: 1
 67    proto_minor: 1
 68    content_length: 1365
 69    host: ""
 70    body: '{"messages":[{"content":"You are a helpful assistant. Always use both add and multiply at the same time.","role":"system"},{"content":"Add and multiply the number 2 and 3","role":"user"},{"content":"I''ll add and multiply the numbers 2 and 3 for you.","tool_calls":[{"id":"toolu_01QU6XHH6Ct5srCeCZJztb1y","function":{"arguments":"{\"a\": 2, \"b\": 3}","name":"add"},"type":"function"},{"id":"toolu_01Efj1TvKTdgHLoko7KWUMVE","function":{"arguments":"{\"a\": 2, \"b\": 3}","name":"multiply"},"type":"function"}],"role":"assistant"},{"content":"5","tool_call_id":"toolu_01QU6XHH6Ct5srCeCZJztb1y","role":"tool"},{"content":"6","tool_call_id":"toolu_01Efj1TvKTdgHLoko7KWUMVE","role":"tool"}],"model":"anthropic/claude-sonnet-4","max_tokens":4000,"stream_options":{"include_usage":true},"tool_choice":"auto","tools":[{"function":{"name":"add","strict":false,"description":"Add two numbers","parameters":{"properties":{"a":{"description":"first number","type":"integer"},"b":{"description":"second number","type":"integer"}},"required":["a","b"],"type":"object"}},"type":"function"},{"function":{"name":"multiply","strict":false,"description":"Multiply two numbers","parameters":{"properties":{"a":{"description":"first number","type":"integer"},"b":{"description":"second number","type":"integer"}},"required":["a","b"],"type":"object"}},"type":"function"}],"stream":true}'
 71    headers:
 72      Accept:
 73      - application/json
 74      Content-Type:
 75      - application/json
 76      User-Agent:
 77      - Charm-Fantasy/0.12.2 (https://charm.land/fantasy)
 78    url: https://ai-gateway.vercel.sh/v1/chat/completions
 79    method: POST
 80  response:
 81    proto: HTTP/2.0
 82    proto_major: 2
 83    proto_minor: 0
 84    content_length: -1
 85    body: |+
 86      data: {"id":"gen_01KKHTPD4B8EC5DPE1V21FFEHA","object":"chat.completion.chunk","created":1773346175,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"role":"assistant"},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_diny0qxnxu"}
 87
 88      data: {"id":"gen_01KKHTPD4B8EC5DPE1V21FFEHA","object":"chat.completion.chunk","created":1773346175,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"content":"The"},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_diny0qxnxu"}
 89
 90      data: {"id":"gen_01KKHTPD4B8EC5DPE1V21FFEHA","object":"chat.completion.chunk","created":1773346175,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"content":" results"},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_diny0qxnxu"}
 91
 92      data: {"id":"gen_01KKHTPD4B8EC5DPE1V21FFEHA","object":"chat.completion.chunk","created":1773346175,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"content":" are:\n- "},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_diny0qxnxu"}
 93
 94      data: {"id":"gen_01KKHTPD4B8EC5DPE1V21FFEHA","object":"chat.completion.chunk","created":1773346175,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"content":"2 + 3 = "},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_diny0qxnxu"}
 95
 96      data: {"id":"gen_01KKHTPD4B8EC5DPE1V21FFEHA","object":"chat.completion.chunk","created":1773346175,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"content":"5\n- 2 × "},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_diny0qxnxu"}
 97
 98      data: {"id":"gen_01KKHTPD4B8EC5DPE1V21FFEHA","object":"chat.completion.chunk","created":1773346175,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"content":"3 = 6"},"logprobs":null,"finish_reason":null}],"system_fingerprint":"fp_diny0qxnxu"}
 99
100      data: {"id":"gen_01KKHTPD4B8EC5DPE1V21FFEHA","object":"chat.completion.chunk","created":1773346175,"model":"anthropic/claude-sonnet-4","choices":[{"index":0,"delta":{"provider_metadata":{"anthropic":{"usage":{"input_tokens":700,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":31,"service_tier":"standard","inference_geo":"not_available"},"cacheCreationInputTokens":0,"stopSequence":null,"iterations":null,"container":null,"contextManagement":null},"gateway":{"routing":{"originalModelId":"anthropic/claude-sonnet-4","resolvedProvider":"anthropic","resolvedProviderApiModelId":"claude-sonnet-4-20250514","internalResolvedModelId":"anthropic:claude-sonnet-4-20250514","fallbacksAvailable":["vertexAnthropic","bedrock"],"internalReasoning":"Selected anthropic as preferred provider for claude-sonnet-4. 2 fallback(s) available: vertexAnthropic, bedrock","planningReasoning":"System credentials planned for: anthropic, vertexAnthropic, bedrock. Total execution order: anthropic(system) → vertexAnthropic(system) → bedrock(system)","canonicalSlug":"anthropic/claude-sonnet-4","finalProvider":"anthropic","attempts":[{"provider":"anthropic","internalModelId":"anthropic:claude-sonnet-4-20250514","providerApiModelId":"claude-sonnet-4-20250514","credentialType":"system","success":true,"startTime":245859.354233,"endTime":247201.752003,"providerRequestId":"req_011CYynuzpbf9jXGQ2TuLRiX","statusCode":200,"providerResponseId":"msg_018nPp2hwwQ3fxxrWh11hrV2"}],"modelAttemptCount":1,"modelAttempts":[{"modelId":"anthropic:claude-sonnet-4-20250514","canonicalSlug":"anthropic/claude-sonnet-4","success":true,"providerAttemptCount":1,"providerAttempts":[{"provider":"anthropic","internalModelId":"anthropic:claude-sonnet-4-20250514","providerApiModelId":"claude-sonnet-4-20250514","credentialType":"system","success":true,"startTime":245859.354233,"endTime":247201.752003,"providerRequestId":"req_011CYynuzpbf9jXGQ2TuLRiX","statusCode":200,"providerResponseId":"msg_018nPp2hwwQ3fxxrWh11hrV2"}]}],"totalProviderAttemptCount":1},"cost":"0.002565","marketCost":"0.002565","generationId":"gen_01KKHTPD4B8EC5DPE1V21FFEHA","billableWebSearchCalls":0}}},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":700,"completion_tokens":31,"total_tokens":731,"cost":0.002565,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0,"upstream_inference_completions_cost":0},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0},"cache_creation_input_tokens":0,"market_cost":0.002565},"system_fingerprint":"fp_diny0qxnxu","generationId":"gen_01KKHTPD4B8EC5DPE1V21FFEHA"}
101
102      data: [DONE]
103
104    headers:
105      Content-Type:
106      - text/event-stream
107    status: 200 OK
108    code: 200
109    duration: 1.158283792s