From 76ad0e0a10682f5c80d98332b3d030af0615586b Mon Sep 17 00:00:00 2001 From: Greyson LaLonde Date: Fri, 26 Sep 2025 22:21:46 -0400 Subject: [PATCH] test: re-record async tool test cassettes with proper mocking --- ...sync_tool_using_decorator_within_flow.yaml | 309 ++++++++++++++++++ ..._using_decorator_within_isolated_crew.yaml | 307 +++++++++++++++++ ...async_tool_using_within_isolated_crew.yaml | 308 +++++++++++++++++ .../test_async_tool_within_flow.yaml | 308 +++++++++++++++++ 4 files changed, 1232 insertions(+) create mode 100644 tests/cassettes/test_async_tool_using_decorator_within_flow.yaml create mode 100644 tests/cassettes/test_async_tool_using_decorator_within_isolated_crew.yaml create mode 100644 tests/cassettes/test_async_tool_using_within_isolated_crew.yaml create mode 100644 tests/cassettes/test_async_tool_within_flow.yaml diff --git a/tests/cassettes/test_async_tool_using_decorator_within_flow.yaml b/tests/cassettes/test_async_tool_using_decorator_within_flow.yaml new file mode 100644 index 000000000..dd369d4f4 --- /dev/null +++ b/tests/cassettes/test_async_tool_using_decorator_within_flow.yaml @@ -0,0 +1,309 @@ +interactions: +- request: + body: '{"trace_id": "86058d86-5f11-4f29-b210-ed00d85e80b8", "execution_type": + "flow", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": null, "flow_name": "StructuredExampleFlow", "crewai_version": "0.201.1", + "privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate": + 300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": + "2025-09-27T02:21:06.004460+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '445' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Version: + - 0.201.1 + method: POST + uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"error":"bad_credentials","message":"Bad credentials"}' + headers: + Connection: + - keep-alive + Content-Length: + - '55' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sat, 27 Sep 2025 02:21:06 GMT + cache-control: + - no-cache + content-security-policy: + - 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self'' + ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts + https://www.gstatic.com https://run.pstmn.io https://js.hubspot.com http://js-na1.hs-scripts.com + https://bat.bing.com https://browser.sentry-cdn.com https://cdn.amplitude.com + https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/ https://descriptusercontent.com + https://edge.fullstory.com https://googleads.g.doubleclick.net https://js-na1.hs-scripts.com + https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net + https://js.hscollectedforms.net https://js.sentry-cdn.com https://js.usemessages.com + https://snap.licdn.com https://static.cloudflareinsights.com https://static.reo.dev + https://www.google-analytics.com https://www.googletagmanager.com https://share.descript.com/; + style-src ''self'' ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.app.crewai.com app.crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net https://forms.hsforms.com + https://track.hubspot.com https://px.ads.linkedin.com https://px4.ads.linkedin.com + https://www.google.com https://www.google.com.br; font-src ''self'' data: + *.app.crewai.com app.crewai.com; connect-src ''self'' *.app.crewai.com app.crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://www.google-analytics.com https://edge.fullstory.com https://rs.fullstory.com + https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com + https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509 + https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect + https://*.sentry.io https://worker-actionkit.tools.crewai.com https://api.reo.dev; + frame-src ''self'' *.app.crewai.com app.crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/ + https://www.youtube.com https://share.descript.com' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + referrer-policy: + - strict-origin-when-cross-origin + strict-transport-security: + - max-age=63072000; includeSubDomains + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - c2242399-d632-4b1d-88d6-49c02e0fbae2 + x-runtime: + - '0.647395' + x-xss-protection: + - 1; mode=block + status: + code: 401 + message: Unauthorized +- request: + body: '{"messages": [{"role": "system", "content": "You are Simple role. Simple + backstory\nYour personal goal is: Simple goal\nYou ONLY have access to the following + tools, and should NEVER make up tools that are not listed here:\n\nTool Name: + custom_tool\nTool Arguments: {}\nTool Description: This is a tool that does + something\n\nIMPORTANT: Use the following format in your response:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, only one + name of [custom_tool], just the name, exactly as it''s written.\nAction Input: + the input to the action, just a simple JSON object, enclosed in curly braces, + using \" to wrap keys and values.\nObservation: the result of the action\n```\n\nOnce + all necessary information is gathered, return the following format:\n\n```\nThought: + I now know the final answer\nFinal Answer: the final answer to the original + input question\n```"}, {"role": "user", "content": "\nCurrent Task: Use the + custom tool result as answer.\n\nThis is the expected criteria for your final + answer: Use the tool result\nyou MUST return the actual complete content as + the final answer, not a summary.\n\nBegin! This is VERY important to you, use + the tools available and give your best Final Answer, your job depends on it!\n\nThought:"}], + "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '1330' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.109.1 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.109.1 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.18 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-CKEqZ6S4IvZkvkB7qplEA4gpBo6Si\",\n \"object\": + \"chat.completion\",\n \"created\": 1758939667,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"Thought: I should perform the action + with the custom tool to obtain the needed result. \\nAction: custom_tool \\nAction + Input: {} \",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 262,\n \"completion_tokens\": 30,\n + \ \"total_tokens\": 292,\n \"prompt_tokens_details\": {\n \"cached_tokens\": + 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n + \ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\": + 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\": + \"default\",\n \"system_fingerprint\": \"fp_560af6e559\"\n}\n" + headers: + CF-RAY: + - 98578697dcb64b05-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 27 Sep 2025 02:21:08 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=GwxP5Tdf4dj8xNWN1YbbxoMqJrN4iORmRzQe7C46Dr8-1758939668-1.0.1.1-w_Ykm3.ObuKQNdTKwhVCht0v949Bed5CgRoG8DEByL.F5BXKvoLKPkSQeYVeijwbx.q_vdk7y5qjyr3YDsNdwr68r04_gfDIiAesjb_SLdg; + path=/; expires=Sat, 27-Sep-25 02:51:08 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=Tc_gAnOE9Q7RUaSqg2MaeorQxiBKljQveLzmZ9kwknM-1758939668403-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '721' + openai-project: + - proj_xitITlrFeen7zjNSzML82h9x + openai-version: + - '2020-10-01' + x-envoy-upstream-service-time: + - '741' + x-openai-proxy-wasm: + - v0.1 + x-ratelimit-limit-project-tokens: + - '150000000' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-project-tokens: + - '149999707' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999705' + x-ratelimit-reset-project-tokens: + - 0s + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_de94bc35e190418fbb8266055408b40d + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"status": "failed", "failure_reason": "Error sending events to backend"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '73' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches/None + response: + body: + string: '{"error":"bad_credentials","message":"Bad credentials"}' + headers: + Connection: + - keep-alive + Content-Length: + - '55' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sat, 27 Sep 2025 02:21:09 GMT + cache-control: + - no-cache + content-security-policy: + - 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self'' + ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts + https://www.gstatic.com https://run.pstmn.io https://js.hubspot.com http://js-na1.hs-scripts.com + https://bat.bing.com https://browser.sentry-cdn.com https://cdn.amplitude.com + https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/ https://descriptusercontent.com + https://edge.fullstory.com https://googleads.g.doubleclick.net https://js-na1.hs-scripts.com + https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net + https://js.hscollectedforms.net https://js.sentry-cdn.com https://js.usemessages.com + https://snap.licdn.com https://static.cloudflareinsights.com https://static.reo.dev + https://www.google-analytics.com https://www.googletagmanager.com https://share.descript.com/; + style-src ''self'' ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.app.crewai.com app.crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net https://forms.hsforms.com + https://track.hubspot.com https://px.ads.linkedin.com https://px4.ads.linkedin.com + https://www.google.com https://www.google.com.br; font-src ''self'' data: + *.app.crewai.com app.crewai.com; connect-src ''self'' *.app.crewai.com app.crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://www.google-analytics.com https://edge.fullstory.com https://rs.fullstory.com + https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com + https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509 + https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect + https://*.sentry.io https://worker-actionkit.tools.crewai.com https://api.reo.dev; + frame-src ''self'' *.app.crewai.com app.crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/ + https://www.youtube.com https://share.descript.com' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + referrer-policy: + - strict-origin-when-cross-origin + strict-transport-security: + - max-age=63072000; includeSubDomains + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 3a2edc3b-9e24-47e3-b5ba-f68de2d1f2e8 + x-runtime: + - '0.630561' + x-xss-protection: + - 1; mode=block + status: + code: 401 + message: Unauthorized +version: 1 diff --git a/tests/cassettes/test_async_tool_using_decorator_within_isolated_crew.yaml b/tests/cassettes/test_async_tool_using_decorator_within_isolated_crew.yaml new file mode 100644 index 000000000..bd06763d3 --- /dev/null +++ b/tests/cassettes/test_async_tool_using_decorator_within_isolated_crew.yaml @@ -0,0 +1,307 @@ +interactions: +- request: + body: '{"trace_id": "f38e7d5d-60a0-42f0-90ce-6068c76b11b6", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-27T02:21:27.156380+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Version: + - 0.201.1 + method: POST + uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"error":"bad_credentials","message":"Bad credentials"}' + headers: + Connection: + - keep-alive + Content-Length: + - '55' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sat, 27 Sep 2025 02:21:27 GMT + cache-control: + - no-cache + content-security-policy: + - 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self'' + ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts + https://www.gstatic.com https://run.pstmn.io https://js.hubspot.com http://js-na1.hs-scripts.com + https://bat.bing.com https://browser.sentry-cdn.com https://cdn.amplitude.com + https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/ https://descriptusercontent.com + https://edge.fullstory.com https://googleads.g.doubleclick.net https://js-na1.hs-scripts.com + https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net + https://js.hscollectedforms.net https://js.sentry-cdn.com https://js.usemessages.com + https://snap.licdn.com https://static.cloudflareinsights.com https://static.reo.dev + https://www.google-analytics.com https://www.googletagmanager.com https://share.descript.com/; + style-src ''self'' ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.app.crewai.com app.crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net https://forms.hsforms.com + https://track.hubspot.com https://px.ads.linkedin.com https://px4.ads.linkedin.com + https://www.google.com https://www.google.com.br; font-src ''self'' data: + *.app.crewai.com app.crewai.com; connect-src ''self'' *.app.crewai.com app.crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://www.google-analytics.com https://edge.fullstory.com https://rs.fullstory.com + https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com + https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509 + https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect + https://*.sentry.io https://worker-actionkit.tools.crewai.com https://api.reo.dev; + frame-src ''self'' *.app.crewai.com app.crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/ + https://www.youtube.com https://share.descript.com' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + referrer-policy: + - strict-origin-when-cross-origin + strict-transport-security: + - max-age=63072000; includeSubDomains + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 7876673c-6e05-41ab-852f-96d345d9a09c + x-runtime: + - '0.356038' + x-xss-protection: + - 1; mode=block + status: + code: 401 + message: Unauthorized +- request: + body: '{"messages": [{"role": "system", "content": "You are Simple role. Simple + backstory\nYour personal goal is: Simple goal\nYou ONLY have access to the following + tools, and should NEVER make up tools that are not listed here:\n\nTool Name: + custom_tool\nTool Arguments: {}\nTool Description: This is a tool that does + something\n\nIMPORTANT: Use the following format in your response:\n\n```\nThought: + you should always think about what to do\nAction: the action to take, only one + name of [custom_tool], just the name, exactly as it''s written.\nAction Input: + the input to the action, just a simple JSON object, enclosed in curly braces, + using \" to wrap keys and values.\nObservation: the result of the action\n```\n\nOnce + all necessary information is gathered, return the following format:\n\n```\nThought: + I now know the final answer\nFinal Answer: the final answer to the original + input question\n```"}, {"role": "user", "content": "\nCurrent Task: Use the + custom tool result as answer.\n\nThis is the expected criteria for your final + answer: Use the tool result\nyou MUST return the actual complete content as + the final answer, not a summary.\n\nBegin! This is VERY important to you, use + the tools available and give your best Final Answer, your job depends on it!\n\nThought:"}], + "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '1330' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.109.1 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.109.1 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.18 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-CKEquCzUmMUfWTHClkIbgjk15t6ou\",\n \"object\": + \"chat.completion\",\n \"created\": 1758939688,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"you should always think about what to + do \\nAction: custom_tool \\nAction Input: {} \",\n \"refusal\": null,\n + \ \"annotations\": []\n },\n \"logprobs\": null,\n \"finish_reason\": + \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 262,\n \"completion_tokens\": + 21,\n \"total_tokens\": 283,\n \"prompt_tokens_details\": {\n \"cached_tokens\": + 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n + \ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\": + 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\": + \"default\",\n \"system_fingerprint\": \"fp_560af6e559\"\n}\n" + headers: + CF-RAY: + - 98578719be713d64-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 27 Sep 2025 02:21:28 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=p7cFjSGOM3U5mDyvwV5Px5is8FQQCloQgT7fv2pBZRc-1758939688-1.0.1.1-DCGJbrogbaGwdgdqATp_ypPeo3URWlbxsRSc2XvLeygVRg16eJ_F8RabK4YdsFzxu0.O2oV4OwPdHZmULI0D3W9e5JgsCixmSGLTv1Mew4w; + path=/; expires=Sat, 27-Sep-25 02:51:28 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=gNZ7I4LvMD4B3s3Y4jeIiOB91Z6HQXsgLMIwqM2NhN4-1758939688676-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '634' + openai-project: + - proj_xitITlrFeen7zjNSzML82h9x + openai-version: + - '2020-10-01' + x-envoy-upstream-service-time: + - '669' + x-openai-proxy-wasm: + - v0.1 + x-ratelimit-limit-project-tokens: + - '150000000' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-project-tokens: + - '149999705' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999705' + x-ratelimit-reset-project-tokens: + - 0s + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_9a2b30c7f1cd40658e96603e430c98ad + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"status": "failed", "failure_reason": "Error sending events to backend"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '73' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches/None + response: + body: + string: '{"error":"bad_credentials","message":"Bad credentials"}' + headers: + Connection: + - keep-alive + Content-Length: + - '55' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sat, 27 Sep 2025 02:21:29 GMT + cache-control: + - no-cache + content-security-policy: + - 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self'' + ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts + https://www.gstatic.com https://run.pstmn.io https://js.hubspot.com http://js-na1.hs-scripts.com + https://bat.bing.com https://browser.sentry-cdn.com https://cdn.amplitude.com + https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/ https://descriptusercontent.com + https://edge.fullstory.com https://googleads.g.doubleclick.net https://js-na1.hs-scripts.com + https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net + https://js.hscollectedforms.net https://js.sentry-cdn.com https://js.usemessages.com + https://snap.licdn.com https://static.cloudflareinsights.com https://static.reo.dev + https://www.google-analytics.com https://www.googletagmanager.com https://share.descript.com/; + style-src ''self'' ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.app.crewai.com app.crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net https://forms.hsforms.com + https://track.hubspot.com https://px.ads.linkedin.com https://px4.ads.linkedin.com + https://www.google.com https://www.google.com.br; font-src ''self'' data: + *.app.crewai.com app.crewai.com; connect-src ''self'' *.app.crewai.com app.crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://www.google-analytics.com https://edge.fullstory.com https://rs.fullstory.com + https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com + https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509 + https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect + https://*.sentry.io https://worker-actionkit.tools.crewai.com https://api.reo.dev; + frame-src ''self'' *.app.crewai.com app.crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/ + https://www.youtube.com https://share.descript.com' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + referrer-policy: + - strict-origin-when-cross-origin + strict-transport-security: + - max-age=63072000; includeSubDomains + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - b60a33f7-da10-46f1-882b-899c1be6d9c1 + x-runtime: + - '0.258700' + x-xss-protection: + - 1; mode=block + status: + code: 401 + message: Unauthorized +version: 1 diff --git a/tests/cassettes/test_async_tool_using_within_isolated_crew.yaml b/tests/cassettes/test_async_tool_using_within_isolated_crew.yaml new file mode 100644 index 000000000..e845a6e4d --- /dev/null +++ b/tests/cassettes/test_async_tool_using_within_isolated_crew.yaml @@ -0,0 +1,308 @@ +interactions: +- request: + body: '{"trace_id": "81a3325e-8a7a-4c3c-9559-7220013689d8", "execution_type": + "crew", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": "crew", "flow_name": null, "crewai_version": "0.201.1", "privacy_level": + "standard"}, "execution_metadata": {"expected_duration_estimate": 300, "agent_count": + 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": "2025-09-27T02:21:16.381781+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '428' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Version: + - 0.201.1 + method: POST + uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"error":"bad_credentials","message":"Bad credentials"}' + headers: + Connection: + - keep-alive + Content-Length: + - '55' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sat, 27 Sep 2025 02:21:16 GMT + cache-control: + - no-cache + content-security-policy: + - 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self'' + ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts + https://www.gstatic.com https://run.pstmn.io https://js.hubspot.com http://js-na1.hs-scripts.com + https://bat.bing.com https://browser.sentry-cdn.com https://cdn.amplitude.com + https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/ https://descriptusercontent.com + https://edge.fullstory.com https://googleads.g.doubleclick.net https://js-na1.hs-scripts.com + https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net + https://js.hscollectedforms.net https://js.sentry-cdn.com https://js.usemessages.com + https://snap.licdn.com https://static.cloudflareinsights.com https://static.reo.dev + https://www.google-analytics.com https://www.googletagmanager.com https://share.descript.com/; + style-src ''self'' ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.app.crewai.com app.crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net https://forms.hsforms.com + https://track.hubspot.com https://px.ads.linkedin.com https://px4.ads.linkedin.com + https://www.google.com https://www.google.com.br; font-src ''self'' data: + *.app.crewai.com app.crewai.com; connect-src ''self'' *.app.crewai.com app.crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://www.google-analytics.com https://edge.fullstory.com https://rs.fullstory.com + https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com + https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509 + https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect + https://*.sentry.io https://worker-actionkit.tools.crewai.com https://api.reo.dev; + frame-src ''self'' *.app.crewai.com app.crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/ + https://www.youtube.com https://share.descript.com' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + referrer-policy: + - strict-origin-when-cross-origin + strict-transport-security: + - max-age=63072000; includeSubDomains + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 2bcc5550-6cbd-4c58-a1ef-cbe204ec0c25 + x-runtime: + - '0.361490' + x-xss-protection: + - 1; mode=block + status: + code: 401 + message: Unauthorized +- request: + body: '{"messages": [{"role": "system", "content": "You are Simple role. Simple + backstory\nYour personal goal is: Simple goal\nYou ONLY have access to the following + tools, and should NEVER make up tools that are not listed here:\n\nTool Name: + my_tool\nTool Arguments: {}\nTool Description: This is a tool that does something\n\nIMPORTANT: + Use the following format in your response:\n\n```\nThought: you should always + think about what to do\nAction: the action to take, only one name of [my_tool], + just the name, exactly as it''s written.\nAction Input: the input to the action, + just a simple JSON object, enclosed in curly braces, using \" to wrap keys and + values.\nObservation: the result of the action\n```\n\nOnce all necessary information + is gathered, return the following format:\n\n```\nThought: I now know the final + answer\nFinal Answer: the final answer to the original input question\n```"}, + {"role": "user", "content": "\nCurrent Task: Use the custom tool result as answer.\n\nThis + is the expected criteria for your final answer: Use the tool result\nyou MUST + return the actual complete content as the final answer, not a summary.\n\nBegin! + This is VERY important to you, use the tools available and give your best Final + Answer, your job depends on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": + ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '1322' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.109.1 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.109.1 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.18 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-CKEqkvOQvLv9Kd0yLJRjcU0wWVnJS\",\n \"object\": + \"chat.completion\",\n \"created\": 1758939678,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"Thought: I need to gather information + using the available tool to provide a complete answer.\\nAction: my_tool\\nAction + Input: {}\",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 262,\n \"completion_tokens\": 28,\n + \ \"total_tokens\": 290,\n \"prompt_tokens_details\": {\n \"cached_tokens\": + 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n + \ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\": + 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\": + \"default\",\n \"system_fingerprint\": \"fp_560af6e559\"\n}\n" + headers: + CF-RAY: + - 985786d6bb03c698-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 27 Sep 2025 02:21:19 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=g6w90fWY0stD2h_FGp3W5ikeAmMklxuEdbOvCBlOi7o-1758939679-1.0.1.1-PW.zX09HnaT4Yit3swc4mhSo1i13RdWod1LGrN2cTaMeeO.StwlX998juT.FZ51zF.Bnxo69zY8PErxgN_4yromHIewXn0GKfhrvCc0wEIo; + path=/; expires=Sat, 27-Sep-25 02:51:19 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=2Ae4qQv4dGxcSDdGih9CxrU2csNTKCZYrswQvZZLnm0-1758939679098-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '709' + openai-project: + - proj_xitITlrFeen7zjNSzML82h9x + openai-version: + - '2020-10-01' + x-envoy-upstream-service-time: + - '1110' + x-openai-proxy-wasm: + - v0.1 + x-ratelimit-limit-project-tokens: + - '150000000' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-project-tokens: + - '149999707' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999705' + x-ratelimit-reset-project-tokens: + - 0s + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_f4aca296ded34bdea35dbf53a6237d74 + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"status": "failed", "failure_reason": "Error sending events to backend"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '73' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches/None + response: + body: + string: '{"error":"bad_credentials","message":"Bad credentials"}' + headers: + Connection: + - keep-alive + Content-Length: + - '55' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sat, 27 Sep 2025 02:21:19 GMT + cache-control: + - no-cache + content-security-policy: + - 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self'' + ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts + https://www.gstatic.com https://run.pstmn.io https://js.hubspot.com http://js-na1.hs-scripts.com + https://bat.bing.com https://browser.sentry-cdn.com https://cdn.amplitude.com + https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/ https://descriptusercontent.com + https://edge.fullstory.com https://googleads.g.doubleclick.net https://js-na1.hs-scripts.com + https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net + https://js.hscollectedforms.net https://js.sentry-cdn.com https://js.usemessages.com + https://snap.licdn.com https://static.cloudflareinsights.com https://static.reo.dev + https://www.google-analytics.com https://www.googletagmanager.com https://share.descript.com/; + style-src ''self'' ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.app.crewai.com app.crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net https://forms.hsforms.com + https://track.hubspot.com https://px.ads.linkedin.com https://px4.ads.linkedin.com + https://www.google.com https://www.google.com.br; font-src ''self'' data: + *.app.crewai.com app.crewai.com; connect-src ''self'' *.app.crewai.com app.crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://www.google-analytics.com https://edge.fullstory.com https://rs.fullstory.com + https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com + https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509 + https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect + https://*.sentry.io https://worker-actionkit.tools.crewai.com https://api.reo.dev; + frame-src ''self'' *.app.crewai.com app.crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/ + https://www.youtube.com https://share.descript.com' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + referrer-policy: + - strict-origin-when-cross-origin + strict-transport-security: + - max-age=63072000; includeSubDomains + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 2fbcf509-77be-49ad-a7c8-157c96d3da03 + x-runtime: + - '0.272332' + x-xss-protection: + - 1; mode=block + status: + code: 401 + message: Unauthorized +version: 1 diff --git a/tests/cassettes/test_async_tool_within_flow.yaml b/tests/cassettes/test_async_tool_within_flow.yaml new file mode 100644 index 000000000..8c58ec39e --- /dev/null +++ b/tests/cassettes/test_async_tool_within_flow.yaml @@ -0,0 +1,308 @@ +interactions: +- request: + body: '{"trace_id": "7c485e13-ef80-4538-bf92-7eb3b934c575", "execution_type": + "flow", "user_identifier": null, "execution_context": {"crew_fingerprint": null, + "crew_name": null, "flow_name": "StructuredExampleFlow", "crewai_version": "0.201.1", + "privacy_level": "standard"}, "execution_metadata": {"expected_duration_estimate": + 300, "agent_count": 0, "task_count": 0, "flow_method_count": 0, "execution_started_at": + "2025-09-27T02:20:49.155297+00:00"}}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '445' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Version: + - 0.201.1 + method: POST + uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches + response: + body: + string: '{"error":"bad_credentials","message":"Bad credentials"}' + headers: + Connection: + - keep-alive + Content-Length: + - '55' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sat, 27 Sep 2025 02:20:49 GMT + cache-control: + - no-cache + content-security-policy: + - 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self'' + ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts + https://www.gstatic.com https://run.pstmn.io https://js.hubspot.com http://js-na1.hs-scripts.com + https://bat.bing.com https://browser.sentry-cdn.com https://cdn.amplitude.com + https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/ https://descriptusercontent.com + https://edge.fullstory.com https://googleads.g.doubleclick.net https://js-na1.hs-scripts.com + https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net + https://js.hscollectedforms.net https://js.sentry-cdn.com https://js.usemessages.com + https://snap.licdn.com https://static.cloudflareinsights.com https://static.reo.dev + https://www.google-analytics.com https://www.googletagmanager.com https://share.descript.com/; + style-src ''self'' ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.app.crewai.com app.crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net https://forms.hsforms.com + https://track.hubspot.com https://px.ads.linkedin.com https://px4.ads.linkedin.com + https://www.google.com https://www.google.com.br; font-src ''self'' data: + *.app.crewai.com app.crewai.com; connect-src ''self'' *.app.crewai.com app.crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://www.google-analytics.com https://edge.fullstory.com https://rs.fullstory.com + https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com + https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509 + https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect + https://*.sentry.io https://worker-actionkit.tools.crewai.com https://api.reo.dev; + frame-src ''self'' *.app.crewai.com app.crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/ + https://www.youtube.com https://share.descript.com' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + referrer-policy: + - strict-origin-when-cross-origin + strict-transport-security: + - max-age=63072000; includeSubDomains + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 4df7340d-fbbf-46c7-844c-defb31e7fe74 + x-runtime: + - '0.310036' + x-xss-protection: + - 1; mode=block + status: + code: 401 + message: Unauthorized +- request: + body: '{"messages": [{"role": "system", "content": "You are Simple role. Simple + backstory\nYour personal goal is: Simple goal\nYou ONLY have access to the following + tools, and should NEVER make up tools that are not listed here:\n\nTool Name: + my_tool\nTool Arguments: {}\nTool Description: This is a tool that does something\n\nIMPORTANT: + Use the following format in your response:\n\n```\nThought: you should always + think about what to do\nAction: the action to take, only one name of [my_tool], + just the name, exactly as it''s written.\nAction Input: the input to the action, + just a simple JSON object, enclosed in curly braces, using \" to wrap keys and + values.\nObservation: the result of the action\n```\n\nOnce all necessary information + is gathered, return the following format:\n\n```\nThought: I now know the final + answer\nFinal Answer: the final answer to the original input question\n```"}, + {"role": "user", "content": "\nCurrent Task: Use the custom tool result as answer.\n\nThis + is the expected criteria for your final answer: Use the tool result\nyou MUST + return the actual complete content as the final answer, not a summary.\n\nBegin! + This is VERY important to you, use the tools available and give your best Final + Answer, your job depends on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": + ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '1322' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.109.1 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.109.1 + x-stainless-raw-response: + - 'true' + x-stainless-read-timeout: + - '600.0' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.10.18 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-CKEqILwLthxtKdEkwpgMrliVzZEUy\",\n \"object\": + \"chat.completion\",\n \"created\": 1758939650,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"Thought: I need to determine what action + to take with the tool available to me.\\nAction: my_tool\\nAction Input: {}\",\n + \ \"refusal\": null,\n \"annotations\": []\n },\n \"logprobs\": + null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": + 262,\n \"completion_tokens\": 28,\n \"total_tokens\": 290,\n \"prompt_tokens_details\": + {\n \"cached_tokens\": 0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": + {\n \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\": + 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\": + \"default\",\n \"system_fingerprint\": \"fp_560af6e559\"\n}\n" + headers: + CF-RAY: + - 9857862d9f463d85-EWR + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Sat, 27 Sep 2025 02:20:51 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=rjf4Vi1dgpltOKXqaRmpawAtCa8rlUHViU_wMG9MD8M-1758939651-1.0.1.1-QS4gg_7Bpb8TmgSl4uPgZ9RHmf..IapQgfwZgf65hm8HaXDw_kvdVlYPKzjMi3U2i3fYi1PFPDtW0SqbvNkin5oAwWtcT_xRA_AwdYR26z8; + path=/; expires=Sat, 27-Sep-25 02:50:51 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=tR2TSZHxA7Oep_kiIZUZ8go6JUi.1BEitplLpxcxou0-1758939651227-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '695' + openai-project: + - proj_xitITlrFeen7zjNSzML82h9x + openai-version: + - '2020-10-01' + x-envoy-upstream-service-time: + - '718' + x-openai-proxy-wasm: + - v0.1 + x-ratelimit-limit-project-tokens: + - '150000000' + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-project-tokens: + - '149999707' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999705' + x-ratelimit-reset-project-tokens: + - 0s + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_e994550a31034b43b500f0d9dd58f039 + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"status": "failed", "failure_reason": "Error sending events to backend"}' + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + Content-Length: + - '73' + Content-Type: + - application/json + User-Agent: + - CrewAI-CLI/0.201.1 + X-Crewai-Version: + - 0.201.1 + method: PATCH + uri: https://app.crewai.com/crewai_plus/api/v1/tracing/batches/None + response: + body: + string: '{"error":"bad_credentials","message":"Bad credentials"}' + headers: + Connection: + - keep-alive + Content-Length: + - '55' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sat, 27 Sep 2025 02:20:51 GMT + cache-control: + - no-cache + content-security-policy: + - 'default-src ''self'' *.app.crewai.com app.crewai.com; script-src ''self'' + ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts + https://www.gstatic.com https://run.pstmn.io https://js.hubspot.com http://js-na1.hs-scripts.com + https://bat.bing.com https://browser.sentry-cdn.com https://cdn.amplitude.com + https://cdn.segment.com https://d1d3n03t5zntha.cloudfront.net/ https://descriptusercontent.com + https://edge.fullstory.com https://googleads.g.doubleclick.net https://js-na1.hs-scripts.com + https://js.hs-analytics.net https://js.hs-banner.com https://js.hsadspixel.net + https://js.hscollectedforms.net https://js.sentry-cdn.com https://js.usemessages.com + https://snap.licdn.com https://static.cloudflareinsights.com https://static.reo.dev + https://www.google-analytics.com https://www.googletagmanager.com https://share.descript.com/; + style-src ''self'' ''unsafe-inline'' *.app.crewai.com app.crewai.com https://cdn.jsdelivr.net/npm/apexcharts; + img-src ''self'' data: *.app.crewai.com app.crewai.com https://zeus.tools.crewai.com + https://dashboard.tools.crewai.com https://cdn.jsdelivr.net https://forms.hsforms.com + https://track.hubspot.com https://px.ads.linkedin.com https://px4.ads.linkedin.com + https://www.google.com https://www.google.com.br; font-src ''self'' data: + *.app.crewai.com app.crewai.com; connect-src ''self'' *.app.crewai.com app.crewai.com + https://zeus.tools.crewai.com https://connect.useparagon.com/ https://zeus.useparagon.com/* + https://*.useparagon.com/* https://run.pstmn.io https://connect.tools.crewai.com/ + https://www.google-analytics.com https://edge.fullstory.com https://rs.fullstory.com + https://api.hubspot.com https://forms.hscollectedforms.net https://api.hubapi.com + https://px.ads.linkedin.com https://px4.ads.linkedin.com https://google.com/pagead/form-data/16713662509 + https://google.com/ccm/form-data/16713662509 https://www.google.com/ccm/collect + https://*.sentry.io https://worker-actionkit.tools.crewai.com https://api.reo.dev; + frame-src ''self'' *.app.crewai.com app.crewai.com https://connect.useparagon.com/ + https://zeus.tools.crewai.com https://zeus.useparagon.com/* https://connect.tools.crewai.com/ + https://app.hubspot.com/ https://td.doubleclick.net https://www.googletagmanager.com/ + https://www.youtube.com https://share.descript.com' + permissions-policy: + - camera=(), microphone=(self), geolocation=() + referrer-policy: + - strict-origin-when-cross-origin + strict-transport-security: + - max-age=63072000; includeSubDomains + vary: + - Accept + x-content-type-options: + - nosniff + x-frame-options: + - SAMEORIGIN + x-permitted-cross-domain-policies: + - none + x-request-id: + - 37fdc472-2954-4ddb-af4b-e21d03853655 + x-runtime: + - '0.279310' + x-xss-protection: + - 1; mode=block + status: + code: 401 + message: Unauthorized +version: 1