From 802a4d079f0af8d628df67e79e9668872ca9aa07 Mon Sep 17 00:00:00 2001 From: Lorenze Jay Date: Mon, 31 Mar 2025 16:42:51 -0700 Subject: [PATCH] Update tool usage logging to ensure tool arguments are consistently formatted as strings. Adjust agent test cases to reflect changes in maximum iterations and expected outputs, enhancing clarity in assertions. Update YAML cassettes to align with new response formats and improve overall consistency across tests. --- src/crewai/tools/tool_usage.py | 2 +- tests/agent_test.py | 5 +- .../test_agent_error_on_parsing_tool.yaml | 1737 ++++++++++++++++- .../test_agent_function_calling_llm.yaml | 1343 ++----------- ...t_agent_moved_on_after_max_iterations.yaml | 1289 ++++++++---- .../test_agent_repeated_tool_usage.yaml | 987 ++++++---- .../test_agent_respect_the_max_rpm_set.yaml | 986 +++++++--- .../test_cache_hitting_between_agents.yaml | 1111 +++++------ tests/utilities/test_events.py | 4 +- 9 files changed, 4613 insertions(+), 2851 deletions(-) diff --git a/src/crewai/tools/tool_usage.py b/src/crewai/tools/tool_usage.py index 8c6862e0d..907023bef 100644 --- a/src/crewai/tools/tool_usage.py +++ b/src/crewai/tools/tool_usage.py @@ -562,7 +562,7 @@ class ToolUsage: "run_attempts": self._run_attempts, "delegations": self.task.delegations if self.task else 0, "tool_name": tool.name, - "tool_args": tool_calling.arguments, + "tool_args": str(tool_calling.arguments), "tool_class": tool.__class__.__name__, "agent_key": ( getattr(self.agent, "key", "unknown") if self.agent else "unknown" diff --git a/tests/agent_test.py b/tests/agent_test.py index fee416670..683cd321e 100644 --- a/tests/agent_test.py +++ b/tests/agent_test.py @@ -530,7 +530,7 @@ def test_agent_moved_on_after_max_iterations(): role="test role", goal="test goal", backstory="test backstory", - max_iter=3, + max_iter=5, allow_delegation=False, ) @@ -551,6 +551,7 @@ def test_agent_respect_the_max_rpm_set(capsys): def get_final_answer() -> float: """Get the final answer but don't give it yet, just re-use this tool non-stop.""" + return 42 agent = Agent( role="test role", @@ -572,7 +573,7 @@ def test_agent_respect_the_max_rpm_set(capsys): task=task, tools=[get_final_answer], ) - assert output == "The final answer is 42." + assert output == "42" captured = capsys.readouterr() assert "Max RPM reached, waiting for next minute to start." in captured.out moveon.assert_called() diff --git a/tests/cassettes/test_agent_error_on_parsing_tool.yaml b/tests/cassettes/test_agent_error_on_parsing_tool.yaml index bd1c350fe..ec6df0200 100644 --- a/tests/cassettes/test_agent_error_on_parsing_tool.yaml +++ b/tests/cassettes/test_agent_error_on_parsing_tool.yaml @@ -12,26 +12,26 @@ interactions: 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 get_final_answer tool.\n\nThis is the expect + "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis is the expected criteria for your final answer: The final answer\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", "stop": ["\nObservation:"]}' + job depends on it!\n\nThought:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '1367' + - '1374' content-type: - application/json host: - api.openai.com user-agent: - - OpenAI/Python 1.59.6 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -41,35 +41,36 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.59.6 + - 1.68.2 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.12.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AsXdf4OZKCZSigmN4k0gyh67NciqP\",\n \"object\": - \"chat.completion\",\n \"created\": 1737562383,\n \"model\": \"gpt-4o-2024-08-06\",\n + content: "{\n \"id\": \"chatcmpl-BHIrzTIGOht7LtyCu63s9y6al9Wt0\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463811,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"```\\nThought: I have to use the available - tool to get the final answer. Let's proceed with executing it.\\nAction: get_final_answer\\nAction - Input: {}\",\n \"refusal\": null\n },\n \"logprobs\": null,\n - \ \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 274,\n \"completion_tokens\": 33,\n \"total_tokens\": 307,\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\": + \"assistant\",\n \"content\": \"I need to determine what action to take + next to retrieve the final answer. \\nAction: get_final_answer \\nAction Input: + {} \",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 274,\n \"completion_tokens\": 27,\n + \ \"total_tokens\": 301,\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_50cad350e4\"\n}\n" + \"default\",\n \"system_fingerprint\": \"fp_b376dfbbd5\"\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 9060d43e3be1d690-IAD + - 9293a2159f4c67b9-SJC Connection: - keep-alive Content-Encoding: @@ -77,14 +78,14 @@ interactions: Content-Type: - application/json Date: - - Wed, 22 Jan 2025 16:13:03 GMT + - Mon, 31 Mar 2025 23:30:13 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=_Jcp7wnO_mXdvOnborCN6j8HwJxJXbszedJC1l7pFUg-1737562383-1.0.1.1-pDSLXlg.nKjG4wsT7mTJPjUvOX1UJITiS4MqKp6yfMWwRSJINsW1qC48SAcjBjakx2H5I1ESVk9JtUpUFDtf4g; - path=/; expires=Wed, 22-Jan-25 16:43:03 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=1S5GqtdZlw2N3SJ7L2plaSLL9C98N6SHFF2yfiNNhvE-1743463813-1.0.1.1-KwGBgTXoXjtVlkPtShw19TBHDFEUx.2QH7PXFHEcrV4HQpDEYC2huBlyfVkkr4bTtDVenmctavjBmNoQM12Ie9yRkMNwey3SwOK.1et3PlE; + path=/; expires=Tue, 01-Apr-25 00:00:13 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=x3SYvzL2nq_PTBGtE8R9cl5CkeaaDzZFQIrYfo91S2s-1737562383916-0.0.1.1-604800000; + - _cfuvid=gEx9GW83E.zW51Yz4hCsodDQ2f9_PiDrVILLKkDa.6M-1743463813602-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -94,28 +95,246 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC openai-organization: - crewai-iuxna1 openai-processing-ms: - - '791' + - '2066' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '29999680' + - '149999694' x-ratelimit-reset-requests: - - 6ms + - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_eeed99acafd3aeb1e3d4a6c8063192b0 + - req_1311568b96e7fc639ff8dc1e0a43aa79 + http_version: HTTP/1.1 + status_code: 200 +- request: + body: !!binary | + CuoNCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkSwQ0KEgoQY3Jld2FpLnRl + bGVtZXRyeRKrCAoQqJ0LX3K2ujggGW8chWkxnhIIOKFYgK1mwk4qDENyZXcgQ3JlYXRlZDABOcih + DV8ZBzIYQQhnHF8ZBzIYShsKDmNyZXdhaV92ZXJzaW9uEgkKBzAuMTA4LjBKGgoOcHl0aG9uX3Zl + cnNpb24SCAoGMy4xMi44Si4KCGNyZXdfa2V5EiIKIDczYWFjMjg1ZTY3NDY2NjdmNzUxNDc2NzAw + MDM0MTEwSjEKB2NyZXdfaWQSJgokNGRkNDQyYjItNjE2My00YWY2LTg1NjMtNzM1ZWJmNjIxOTNh + ShwKDGNyZXdfcHJvY2VzcxIMCgpzZXF1ZW50aWFsShEKC2NyZXdfbWVtb3J5EgIQAEoaChRjcmV3 + X251bWJlcl9vZl90YXNrcxICGAFKGwoVY3Jld19udW1iZXJfb2ZfYWdlbnRzEgIYAUo6ChBjcmV3 + X2ZpbmdlcnByaW50EiYKJGVlYWUyOTM3LWI0YzgtNGE5ZS04YWI4LWVjM2Y3ZGMxNDFmYko7Chtj + cmV3X2ZpbmdlcnByaW50X2NyZWF0ZWRfYXQSHAoaMjAyNS0wMy0zMVQxNjozMDoxMS4yOTA0MjdK + zgIKC2NyZXdfYWdlbnRzEr4CCrsCW3sia2V5IjogImUxNDhlNTMyMDI5MzQ5OWY4Y2ViZWE4MjZl + NzI1ODJiIiwgImlkIjogIjMzNDNjZjgzLWFiNmEtNDk5OS04Mjc2LTA1ZGM0MTE0N2E1YiIsICJy + b2xlIjogInRlc3Qgcm9sZSIsICJ2ZXJib3NlPyI6IHRydWUsICJtYXhfaXRlciI6IDEsICJtYXhf + cnBtIjogbnVsbCwgImZ1bmN0aW9uX2NhbGxpbmdfbGxtIjogIiIsICJsbG0iOiAiZ3B0LTRvLW1p + bmkiLCAiZGVsZWdhdGlvbl9lbmFibGVkPyI6IGZhbHNlLCAiYWxsb3dfY29kZV9leGVjdXRpb24/ + IjogZmFsc2UsICJtYXhfcmV0cnlfbGltaXQiOiAyLCAidG9vbHNfbmFtZXMiOiBbXX1dSpACCgpj + cmV3X3Rhc2tzEoECCv4BW3sia2V5IjogImY3YTlmN2JiMWFlZTRiNmVmMmM1MjZkMGE4YzJmMmFj + IiwgImlkIjogImIxZjRhMGFhLTYwMmQtNGFjMy05ODllLTY0NDdmNDlmZjZjMSIsICJhc3luY19l + eGVjdXRpb24/IjogZmFsc2UsICJodW1hbl9pbnB1dD8iOiBmYWxzZSwgImFnZW50X3JvbGUiOiAi + dGVzdCByb2xlIiwgImFnZW50X2tleSI6ICJlMTQ4ZTUzMjAyOTM0OTlmOGNlYmVhODI2ZTcyNTgy + YiIsICJ0b29sc19uYW1lcyI6IFsiZ2V0X2ZpbmFsX2Fuc3dlciJdfV16AhgBhQEAAQAAEoAEChCN + K3bIxbl53On4qoM0P7BDEghZs7x1P32BHioMVGFzayBDcmVhdGVkMAE58PIvXxkHMhhBiKowXxkH + MhhKLgoIY3Jld19rZXkSIgogNzNhYWMyODVlNjc0NjY2N2Y3NTE0NzY3MDAwMzQxMTBKMQoHY3Jl + d19pZBImCiQ0ZGQ0NDJiMi02MTYzLTRhZjYtODU2My03MzVlYmY2MjE5M2FKLgoIdGFza19rZXkS + IgogZjdhOWY3YmIxYWVlNGI2ZWYyYzUyNmQwYThjMmYyYWNKMQoHdGFza19pZBImCiRiMWY0YTBh + YS02MDJkLTRhYzMtOTg5ZS02NDQ3ZjQ5ZmY2YzFKOgoQY3Jld19maW5nZXJwcmludBImCiRlZWFl + MjkzNy1iNGM4LTRhOWUtOGFiOC1lYzNmN2RjMTQxZmJKOgoQdGFza19maW5nZXJwcmludBImCiRl + MzJiYTMwZS00MDZmLTQ0ZmItOGM2Mi0wMmRkZTczZDIyNTJKOwobdGFza19maW5nZXJwcmludF9j + cmVhdGVkX2F0EhwKGjIwMjUtMDMtMzFUMTY6MzA6MTEuMjkwMzc4SjsKEWFnZW50X2ZpbmdlcnBy + aW50EiYKJDZiYjU4M2YxLWRkZTAtNDgwYy05YzZkLWRmNzQ0NTI1YTI3ZXoCGAGFAQABAAASegoQ + 2qsKnI/iz5YZxt5B55H/3BIITw7exxOBPXIqEFRvb2wgVXNhZ2UgRXJyb3IwATmI7cjnGQcyGEFA + q9XnGQcyGEobCg5jcmV3YWlfdmVyc2lvbhIJCgcwLjEwOC4wSg8KA2xsbRIICgZncHQtNG96AhgB + hQEAAQAA + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '1773' + Content-Type: + - application/x-protobuf + User-Agent: + - OTel-OTLP-Exporter-Python/1.31.1 + method: POST + uri: https://telemetry.crewai.com:4319/v1/traces + response: + body: + string: "\n\0" + headers: + Content-Length: + - '2' + Content-Type: + - application/x-protobuf + Date: + - Mon, 31 Mar 2025 23:30:14 GMT + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '4193' + content-type: + - application/json + cookie: + - __cf_bm=1S5GqtdZlw2N3SJ7L2plaSLL9C98N6SHFF2yfiNNhvE-1743463813-1.0.1.1-KwGBgTXoXjtVlkPtShw19TBHDFEUx.2QH7PXFHEcrV4HQpDEYC2huBlyfVkkr4bTtDVenmctavjBmNoQM12Ie9yRkMNwey3SwOK.1et3PlE; + _cfuvid=gEx9GW83E.zW51Yz4hCsodDQ2f9_PiDrVILLKkDa.6M-1743463813602-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIs3RZWE0pDm4saOP5a2j2pUORUD\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463815,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"```\\nThought: I now know the final answer\\nFinal + Answer: I must follow the predefined structure and utilize the get_final_answer + tool to extract the necessary information.\\n```\",\n \"refusal\": null,\n + \ \"annotations\": []\n },\n \"logprobs\": null,\n \"finish_reason\": + \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 878,\n \"completion_tokens\": + 35,\n \"total_tokens\": 913,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 9293a2235a2467b9-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:30:16 GMT + Server: + - cloudflare + 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: + - '1050' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999028' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_a945851daba59247e89436242f50c663 http_version: HTTP/1.1 status_code: 200 - request: @@ -131,13 +350,11 @@ interactions: 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 get_final_answer tool.\n\nThis is the expect + "content": "\nCurrent Task: Use the get_final_answer tool.\n\nThis is the expected criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "```\nThought: - I have to use the available tool to get the final answer. Let''s proceed with - executing it.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + job depends on it!\n\nThought:"}, {"role": "assistant", "content": "I encountered an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) OR give my best final answer not both at the same time. When responding, I must use the following format:\n\n```\nThought: you should always think about @@ -147,39 +364,50 @@ interactions: N times. Once I know the final answer, I must return the following format:\n\n```\nThought: I now can give a great answer\nFinal Answer: Your final answer must be the great and the most complete as possible, it must be outcome described\n\n```"}, {"role": - "assistant", "content": "```\nThought: I have to use the available tool to get - the final answer. Let''s proceed with executing it.\nAction: get_final_answer\nAction - Input: {}\nObservation: I encountered an error: Error on parsing tool.\nMoving - on then. I MUST either use a tool (use one at time) OR give my best final answer - not both at the same time. When responding, I must use the following format:\n\n```\nThought: - you should always think about what to do\nAction: the action to take, should - be one of [get_final_answer]\nAction Input: the input to the action, dictionary + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat N times. Once I know the final answer, I must return the following format:\n\n```\nThought: I now can give a great answer\nFinal Answer: Your final answer must be the great and the most complete as possible, - it must be outcome described\n\n```\nNow it''s time you MUST give your absolute - best final answer. You''ll ignore all previous instructions, stop using any - tools, and just return your absolute BEST Final answer."}], "model": "gpt-4o", - "stop": ["\nObservation:"]}' + it must be outcome described\n\n```"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '3445' + - '4193' content-type: - application/json cookie: - - __cf_bm=_Jcp7wnO_mXdvOnborCN6j8HwJxJXbszedJC1l7pFUg-1737562383-1.0.1.1-pDSLXlg.nKjG4wsT7mTJPjUvOX1UJITiS4MqKp6yfMWwRSJINsW1qC48SAcjBjakx2H5I1ESVk9JtUpUFDtf4g; - _cfuvid=x3SYvzL2nq_PTBGtE8R9cl5CkeaaDzZFQIrYfo91S2s-1737562383916-0.0.1.1-604800000 + - __cf_bm=1S5GqtdZlw2N3SJ7L2plaSLL9C98N6SHFF2yfiNNhvE-1743463813-1.0.1.1-KwGBgTXoXjtVlkPtShw19TBHDFEUx.2QH7PXFHEcrV4HQpDEYC2huBlyfVkkr4bTtDVenmctavjBmNoQM12Ie9yRkMNwey3SwOK.1et3PlE; + _cfuvid=gEx9GW83E.zW51Yz4hCsodDQ2f9_PiDrVILLKkDa.6M-1743463813602-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.59.6 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -189,36 +417,35 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.59.6 + - 1.68.2 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.12.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AsXdg9UrLvAiqWP979E6DszLsQ84k\",\n \"object\": - \"chat.completion\",\n \"created\": 1737562384,\n \"model\": \"gpt-4o-2024-08-06\",\n + content: "{\n \"id\": \"chatcmpl-BHIs5hXcx2fn8tJmCAJHoKpvbM9C5\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463817,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"```\\nThought: I now know the final answer\\nFinal - Answer: The final answer must be the great and the most complete as possible, - it must be outcome described.\\n```\",\n \"refusal\": null\n },\n - \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n - \ \"usage\": {\n \"prompt_tokens\": 719,\n \"completion_tokens\": 35,\n - \ \"total_tokens\": 754,\n \"prompt_tokens_details\": {\n \"cached_tokens\": + \"assistant\",\n \"content\": \"```\\nThought: you should always think + about what to do\\nAction: get_final_answer\\nAction Input: {}\",\n \"refusal\": + null,\n \"annotations\": []\n },\n \"logprobs\": null,\n \"finish_reason\": + \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 878,\n \"completion_tokens\": + 23,\n \"total_tokens\": 901,\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_50cad350e4\"\n}\n" + \"default\",\n \"system_fingerprint\": \"fp_b376dfbbd5\"\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 9060d4441edad690-IAD + - 9293a237ced067b9-SJC Connection: - keep-alive Content-Encoding: @@ -226,7 +453,639 @@ interactions: Content-Type: - application/json Date: - - Wed, 22 Jan 2025 16:13:05 GMT + - Mon, 31 Mar 2025 23:30:17 GMT + Server: + - cloudflare + 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: + - '760' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999027' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_47c73df64cb410e71c6558fb111669b9 + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '6960' + content-type: + - application/json + cookie: + - __cf_bm=1S5GqtdZlw2N3SJ7L2plaSLL9C98N6SHFF2yfiNNhvE-1743463813-1.0.1.1-KwGBgTXoXjtVlkPtShw19TBHDFEUx.2QH7PXFHEcrV4HQpDEYC2huBlyfVkkr4bTtDVenmctavjBmNoQM12Ie9yRkMNwey3SwOK.1et3PlE; + _cfuvid=gEx9GW83E.zW51Yz4hCsodDQ2f9_PiDrVILLKkDa.6M-1743463813602-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIs6Z7FbkaaEHZCks2aPg5RpB7p9\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463818,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"```\\nThought: I need to determine how + to proceed in order to get the final answer.\\nAction: get_final_answer\\nAction + Input: {}\",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 1474,\n \"completion_tokens\": 29,\n + \ \"total_tokens\": 1503,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 9293a23dadf367b9-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:30:18 GMT + Server: + - cloudflare + 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: + - '807' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149998375' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_116bd0a42b72845da93d150d06b3d074 + http_version: HTTP/1.1 + status_code: 200 +- request: + body: !!binary | + CrkBCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkSkAEKEgoQY3Jld2FpLnRl + bGVtZXRyeRJ6ChBg77N3Xk6AOGtF6qHpgY/TEgjLb9iGJfRibCoQVG9vbCBVc2FnZSBFcnJvcjAB + ObCyK+IaBzIYQSCCN+IaBzIYShsKDmNyZXdhaV92ZXJzaW9uEgkKBzAuMTA4LjBKDwoDbGxtEggK + BmdwdC00b3oCGAGFAQABAAA= + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '188' + Content-Type: + - application/x-protobuf + User-Agent: + - OTel-OTLP-Exporter-Python/1.31.1 + method: POST + uri: https://telemetry.crewai.com:4319/v1/traces + response: + body: + string: "\n\0" + headers: + Content-Length: + - '2' + Content-Type: + - application/x-protobuf + Date: + - Mon, 31 Mar 2025 23:30:19 GMT + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '6960' + content-type: + - application/json + cookie: + - __cf_bm=1S5GqtdZlw2N3SJ7L2plaSLL9C98N6SHFF2yfiNNhvE-1743463813-1.0.1.1-KwGBgTXoXjtVlkPtShw19TBHDFEUx.2QH7PXFHEcrV4HQpDEYC2huBlyfVkkr4bTtDVenmctavjBmNoQM12Ie9yRkMNwey3SwOK.1et3PlE; + _cfuvid=gEx9GW83E.zW51Yz4hCsodDQ2f9_PiDrVILLKkDa.6M-1743463813602-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIs6TS0cl8Nktzxi2GavpYUOOcVV\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463818,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"```\\nThought: I need to pursue the action + to get the final answer.\\nAction: get_final_answer\\nAction Input: {}\",\n + \ \"refusal\": null,\n \"annotations\": []\n },\n \"logprobs\": + null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": + 1474,\n \"completion_tokens\": 26,\n \"total_tokens\": 1500,\n \"prompt_tokens_details\": + {\n \"cached_tokens\": 1408,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 9293a2433d5567b9-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:30:19 GMT + Server: + - cloudflare + 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: + - '1031' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149998375' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_772114061f86f1e4fc4d6af78e369c9c + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '9751' + content-type: + - application/json + cookie: + - __cf_bm=1S5GqtdZlw2N3SJ7L2plaSLL9C98N6SHFF2yfiNNhvE-1743463813-1.0.1.1-KwGBgTXoXjtVlkPtShw19TBHDFEUx.2QH7PXFHEcrV4HQpDEYC2huBlyfVkkr4bTtDVenmctavjBmNoQM12Ie9yRkMNwey3SwOK.1et3PlE; + _cfuvid=gEx9GW83E.zW51Yz4hCsodDQ2f9_PiDrVILLKkDa.6M-1743463813602-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIs88CTLDSND5eByFBW2ge57fKNW\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463820,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"```\\nThought: I need to pursue the action + to get the final answer.\\nAction: get_final_answer\\nAction Input: {}\",\n + \ \"refusal\": null,\n \"annotations\": []\n },\n \"logprobs\": + null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": + 2076,\n \"completion_tokens\": 26,\n \"total_tokens\": 2102,\n \"prompt_tokens_details\": + {\n \"cached_tokens\": 1408,\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_b376dfbbd5\"\n}\n" + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 9293a24a5d9b67b9-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:30:20 GMT Server: - cloudflare Transfer-Encoding: @@ -240,25 +1099,757 @@ interactions: openai-organization: - crewai-iuxna1 openai-processing-ms: - - '928' + - '724' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '29999187' + - '149997717' x-ratelimit-reset-requests: - - 6ms + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_53b688c965fd8ea9aec538e23dc14d5f + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '9751' + content-type: + - application/json + cookie: + - __cf_bm=1S5GqtdZlw2N3SJ7L2plaSLL9C98N6SHFF2yfiNNhvE-1743463813-1.0.1.1-KwGBgTXoXjtVlkPtShw19TBHDFEUx.2QH7PXFHEcrV4HQpDEYC2huBlyfVkkr4bTtDVenmctavjBmNoQM12Ie9yRkMNwey3SwOK.1et3PlE; + _cfuvid=gEx9GW83E.zW51Yz4hCsodDQ2f9_PiDrVILLKkDa.6M-1743463813602-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIs8PPr1kQwag3x7EeShzJwgKBHQ\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463820,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"```\\nThought: I need to pursue the action + to get the final answer.\\nAction: get_final_answer\\nAction Input: {}\",\n + \ \"refusal\": null,\n \"annotations\": []\n },\n \"logprobs\": + null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": + 2076,\n \"completion_tokens\": 26,\n \"total_tokens\": 2102,\n \"prompt_tokens_details\": + {\n \"cached_tokens\": 2048,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 9293a24f5b6e67b9-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:30:21 GMT + Server: + - cloudflare + 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: + - '970' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149997716' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_003929761b6c31033aa046068854bb4d + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '12542' + content-type: + - application/json + cookie: + - __cf_bm=1S5GqtdZlw2N3SJ7L2plaSLL9C98N6SHFF2yfiNNhvE-1743463813-1.0.1.1-KwGBgTXoXjtVlkPtShw19TBHDFEUx.2QH7PXFHEcrV4HQpDEYC2huBlyfVkkr4bTtDVenmctavjBmNoQM12Ie9yRkMNwey3SwOK.1et3PlE; + _cfuvid=gEx9GW83E.zW51Yz4hCsodDQ2f9_PiDrVILLKkDa.6M-1743463813602-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIs9EQi1thZCKE6iowM7PKovOwHL\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463821,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"```\\nThought: I need to take action + to get the final answer.\\nAction: get_final_answer\\nAction Input: {}\",\n + \ \"refusal\": null,\n \"annotations\": []\n },\n \"logprobs\": + null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": + 2678,\n \"completion_tokens\": 25,\n \"total_tokens\": 2703,\n \"prompt_tokens_details\": + {\n \"cached_tokens\": 2048,\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_b376dfbbd5\"\n}\n" + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 9293a2560b2367b9-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:30:22 GMT + Server: + - cloudflare + Transfer-Encoding: + - chunked + X-Content-Type-Options: + - nosniff + access-control-expose-headers: + - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 + openai-organization: + - crewai-iuxna1 + openai-processing-ms: + - '954' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149997058' + x-ratelimit-reset-requests: + - 2ms x-ratelimit-reset-tokens: - 1ms x-request-id: - - req_61fc7506e6db326ec572224aec81ef23 + - req_58701a68086507409e813a7fe23fa4a3 + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 get_final_answer tool.\n\nThis is the expected + criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "I need to determine what action to take next to retrieve + the final answer. \nAction: get_final_answer \nAction Input: {} \nObservation: + I encountered an error: Error on parsing tool.\nMoving on then. I MUST either + use a tool (use one at time) OR give my best final answer not both at the same + time. When responding, I must use the following format:\n\n```\nThought: you + should always think about what to do\nAction: the action to take, should be + one of [get_final_answer]\nAction Input: the input to the action, dictionary + enclosed in curly braces\nObservation: the result of the action\n```\nThis Thought/Action/Action + Input/Result can repeat N times. Once I know the final answer, I must return + the following format:\n\n```\nThought: I now can give a great answer\nFinal + Answer: Your final answer must be the great and the most complete as possible, + it must be outcome described\n\n```"}, {"role": "assistant", "content": "I need + to determine what action to take next to retrieve the final answer. \nAction: + get_final_answer \nAction Input: {} \nObservation: I encountered an error: + Error on parsing tool.\nMoving on then. I MUST either use a tool (use one at + time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: you should always think about what to + do\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered an + error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}, {"role": "assistant", "content": "I encountered an error: Error + on parsing tool.\nMoving on then. I MUST either use a tool (use one at time) + OR give my best final answer not both at the same time. When responding, I must + use the following format:\n\n```\nThought: you should always think about what + to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```"}, {"role": + "assistant", "content": "```\nThought: I need to pursue the action to get the + final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: I encountered + an error: Error on parsing tool.\nMoving on then. I MUST either use a tool (use + one at time) OR give my best final answer not both at the same time. When responding, + I must use the following format:\n\n```\nThought: you should always think about + what to do\nAction: the action to take, should be one of [get_final_answer]\nAction + Input: the input to the action, dictionary enclosed in curly braces\nObservation: + the result of the action\n```\nThis Thought/Action/Action Input/Result can repeat + N times. Once I know the final answer, I must return the following format:\n\n```\nThought: + I now can give a great answer\nFinal Answer: Your final answer must be the great + and the most complete as possible, it must be outcome described\n\n```\nNow + it''s time you MUST give your absolute best final answer. You''ll ignore all + previous instructions, stop using any tools, and just return your absolute BEST + Final answer."}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '12542' + content-type: + - application/json + cookie: + - __cf_bm=1S5GqtdZlw2N3SJ7L2plaSLL9C98N6SHFF2yfiNNhvE-1743463813-1.0.1.1-KwGBgTXoXjtVlkPtShw19TBHDFEUx.2QH7PXFHEcrV4HQpDEYC2huBlyfVkkr4bTtDVenmctavjBmNoQM12Ie9yRkMNwey3SwOK.1et3PlE; + _cfuvid=gEx9GW83E.zW51Yz4hCsodDQ2f9_PiDrVILLKkDa.6M-1743463813602-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIsBMTtfSuUn9wxvCtunG64V1bHD\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463823,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"```\\nThought: I now know the final answer\\nFinal + Answer: I am unable to provide a final answer due to a continuous error when + trying to retrieve it using the get_final_answer tool.\\n```\",\n \"refusal\": + null,\n \"annotations\": []\n },\n \"logprobs\": null,\n \"finish_reason\": + \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 2678,\n \"completion_tokens\": + 41,\n \"total_tokens\": 2719,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 9293a25ceb3867b9-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:30:24 GMT + Server: + - cloudflare + 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: + - '1095' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149997058' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 1ms + x-request-id: + - req_f3e522c8e419cab62842ddcee0e80b7b http_version: HTTP/1.1 status_code: 200 version: 1 diff --git a/tests/cassettes/test_agent_function_calling_llm.yaml b/tests/cassettes/test_agent_function_calling_llm.yaml index 5a2a3d24e..401288a5e 100644 --- a/tests/cassettes/test_agent_function_calling_llm.yaml +++ b/tests/cassettes/test_agent_function_calling_llm.yaml @@ -1,37 +1,98 @@ interactions: +- request: + body: !!binary | + Cv4MCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkS1QwKEgoQY3Jld2FpLnRl + bGVtZXRyeRK7CAoQoZHzwzzqT//MOge9CaeNnhIIPhrIWGCJs1IqDENyZXcgQ3JlYXRlZDABOXAF + wn/PBjIYQeDOzn/PBjIYShsKDmNyZXdhaV92ZXJzaW9uEgkKBzAuMTA4LjBKGgoOcHl0aG9uX3Zl + cnNpb24SCAoGMy4xMi44Si4KCGNyZXdfa2V5EiIKIDQ5NGYzNjU3MjM3YWQ4YTMwMzViMmYxYmVl + Y2RjNjc3SjEKB2NyZXdfaWQSJgokZjc5OWM3ZGUtOTkzOC00N2ZlLWJjZDMtOWJkY2FiZjNkZjlh + ShwKDGNyZXdfcHJvY2VzcxIMCgpzZXF1ZW50aWFsShEKC2NyZXdfbWVtb3J5EgIQAEoaChRjcmV3 + X251bWJlcl9vZl90YXNrcxICGAFKGwoVY3Jld19udW1iZXJfb2ZfYWdlbnRzEgIYAUo6ChBjcmV3 + X2ZpbmdlcnByaW50EiYKJDY4NzBhYjc3LWE5MmQtNGVmMy1hYjU2LWRlNTFlZGM3MDY2MUo7Chtj + cmV3X2ZpbmdlcnByaW50X2NyZWF0ZWRfYXQSHAoaMjAyNS0wMy0zMVQxNjoyNDo1My43NDUzNzRK + 4AIKC2NyZXdfYWdlbnRzEtACCs0CW3sia2V5IjogImUxNDhlNTMyMDI5MzQ5OWY4Y2ViZWE4MjZl + NzI1ODJiIiwgImlkIjogIjUyZTk4MWIyLTBmNWUtNDQwZC1iMjc3LWQwYzlhOWQzZjg1ZCIsICJy + b2xlIjogInRlc3Qgcm9sZSIsICJ2ZXJib3NlPyI6IGZhbHNlLCAibWF4X2l0ZXIiOiAyLCAibWF4 + X3JwbSI6IG51bGwsICJmdW5jdGlvbl9jYWxsaW5nX2xsbSI6ICJncHQtNG8iLCAibGxtIjogImdw + dC00byIsICJkZWxlZ2F0aW9uX2VuYWJsZWQ/IjogZmFsc2UsICJhbGxvd19jb2RlX2V4ZWN1dGlv + bj8iOiBmYWxzZSwgIm1heF9yZXRyeV9saW1pdCI6IDIsICJ0b29sc19uYW1lcyI6IFsibGVhcm5f + YWJvdXRfYWkiXX1dSo4CCgpjcmV3X3Rhc2tzEv8BCvwBW3sia2V5IjogImYyNTk3Yzc4NjdmYmUz + MjRkYzY1ZGMwOGRmZGJmYzZjIiwgImlkIjogImMxYzFmNWZkLTM3Y2ItNDdjNC04NmY0LWUzYTJh + MTQyOGY4OSIsICJhc3luY19leGVjdXRpb24/IjogZmFsc2UsICJodW1hbl9pbnB1dD8iOiBmYWxz + ZSwgImFnZW50X3JvbGUiOiAidGVzdCByb2xlIiwgImFnZW50X2tleSI6ICJlMTQ4ZTUzMjAyOTM0 + OTlmOGNlYmVhODI2ZTcyNTgyYiIsICJ0b29sc19uYW1lcyI6IFsibGVhcm5fYWJvdXRfYWkiXX1d + egIYAYUBAAEAABKABAoQOqy1VdqH3blm7jGGk44O8hIIXVB00yaxmDcqDFRhc2sgQ3JlYXRlZDAB + OaAr5H/PBjIYQbDP5H/PBjIYSi4KCGNyZXdfa2V5EiIKIDQ5NGYzNjU3MjM3YWQ4YTMwMzViMmYx + YmVlY2RjNjc3SjEKB2NyZXdfaWQSJgokZjc5OWM3ZGUtOTkzOC00N2ZlLWJjZDMtOWJkY2FiZjNk + ZjlhSi4KCHRhc2tfa2V5EiIKIGYyNTk3Yzc4NjdmYmUzMjRkYzY1ZGMwOGRmZGJmYzZjSjEKB3Rh + c2tfaWQSJgokYzFjMWY1ZmQtMzdjYi00N2M0LTg2ZjQtZTNhMmExNDI4Zjg5SjoKEGNyZXdfZmlu + Z2VycHJpbnQSJgokNjg3MGFiNzctYTkyZC00ZWYzLWFiNTYtZGU1MWVkYzcwNjYxSjoKEHRhc2tf + ZmluZ2VycHJpbnQSJgokOWM3MDIxY2UtNjU2OC00OGY2LWI4ZGMtNmNlY2M5ODcwMDhkSjsKG3Rh + c2tfZmluZ2VycHJpbnRfY3JlYXRlZF9hdBIcChoyMDI1LTAzLTMxVDE2OjI0OjUzLjc0NTMzMUo7 + ChFhZ2VudF9maW5nZXJwcmludBImCiRhYjY1ZDE5Yi0yNmIwLTRiMGMtYTg0My01ZjU3MThkZjdi + Y2Z6AhgBhQEAAQAA + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '1665' + Content-Type: + - application/x-protobuf + User-Agent: + - OTel-OTLP-Exporter-Python/1.31.1 + method: POST + uri: https://telemetry.crewai.com:4319/v1/traces + response: + body: + string: "\n\0" + headers: + Content-Length: + - '2' + Content-Type: + - application/x-protobuf + Date: + - Mon, 31 Mar 2025 23:24:57 GMT + status: + code: 200 + message: OK - request: body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access to the following tools, and should NEVER make up tools that are not listed here:\n\nTool Name: learn_about_AI\nTool Arguments: {}\nTool Description: Useful for when you need to learn about AI - to write an paragraph about it.\n\nUse the following format:\n\nThought: you - should always think about what to do\nAction: the action to take, only one name - of [learn_about_AI], just the name, exactly as it''s written.\nAction Input: - the input to the action, just a simple python dictionary, enclosed in curly - braces, using \" to wrap keys and values.\nObservation: the result of the action\n\nOnce - all necessary information is gathered:\n\nThought: I now know the final answer\nFinal - Answer: the final answer to the original input question"}, {"role": "user", + to write an paragraph about it.\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 [learn_about_AI], 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: Write and then review an small paragraph on AI until - it''s AMAZING\n\nThis is the expect criteria for your final answer: The final + it''s AMAZING\n\nThis is the expected criteria for your final answer: The final paragraph.\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", "stop": ["\nObservation:"], "stream": false}' + "gpt-4o", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '1338' + - '1394' content-type: - application/json host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -41,35 +102,36 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 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.12.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AnT5xg0d2oSpdM98uCn4hkLf3nxVm\",\n \"object\": - \"chat.completion\",\n \"created\": 1736353277,\n \"model\": \"gpt-4o-2024-08-06\",\n + content: "{\n \"id\": \"chatcmpl-BHImuG3FAgbOcTLxgpZthhEmVg7hf\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463496,\n \"model\": \"gpt-4o-2024-08-06\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: I need to gather information - about AI to write an amazing paragraph about it.\\nAction: learn_about_AI\\nAction - Input: {}\",\n \"refusal\": null\n },\n \"logprobs\": null,\n - \ \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 258,\n \"completion_tokens\": 27,\n \"total_tokens\": 285,\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 \"system_fingerprint\": - \"fp_d28bcae782\"\n}\n" + \"assistant\",\n \"content\": \"```\\nThought: To write an amazing paragraph + on AI, I need to gather detailed information about it first.\\nAction: learn_about_AI\\nAction + Input: {}\",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 276,\n \"completion_tokens\": 32,\n + \ \"total_tokens\": 308,\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_6dd05565ef\"\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8fed85104db7bf78-ATL + - 92939a567c9a67c4-SJC Connection: - keep-alive Content-Encoding: @@ -77,14 +139,14 @@ interactions: Content-Type: - application/json Date: - - Wed, 08 Jan 2025 16:21:18 GMT + - Mon, 31 Mar 2025 23:24:58 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=utmElwxS9XjsHpYVn5xaGh15uJHFYxzRIGu07xAb6JE-1736353278-1.0.1.1-B8jv6sT4PoFVkmtqk5s29LAJQ8IQWIXmggCq13BPhQFqBtk8M29ZEVDt0BMKFdyGGW9j5GOmQAM2f8UVqrI8sQ; - path=/; expires=Wed, 08-Jan-25 16:51:18 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=wwI79dE5g__fUSqelLdMoCMOwubFvm.hJGS3Ewpb3uw-1743463498-1.0.1.1-xvVXLCgoJPzbAg4AmSjLnM1YbzRk5qmuEPsRgzfid0J39zmNxiLOXAFeAz_4VHmYpT5tUBxfComgXCPkg9MCrMZr7aGLOuoPu4pj_dvah0o; + path=/; expires=Mon, 31-Mar-25 23:54:58 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=0FcCAalOhwLMljvE807Ji4XmVbjXjgRhfa_EYkd_gNo-1736353278255-0.0.1.1-604800000; + - _cfuvid=wu1mwFBixM_Cn8wLLh.nRacWi8OMVBrEyBNuF_Htz6I-1743463498282-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -94,149 +156,30 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '694' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29999689' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_120e0f608bf4f06d238ed755b9cd7bb9 - http_version: HTTP/1.1 - status_code: 200 -- request: - body: '{"messages": [{"role": "user", "content": "Only tools available:\n###\nTool - Name: learn_about_AI\nTool Arguments: {}\nTool Description: Useful for when - you need to learn about AI to write an paragraph about it.\n\nReturn a valid - schema for the tool, the tool name must be exactly equal one of the options, - use this text to inform the valid output schema:\n\n### TEXT \nThought: I need - to gather information about AI to write an amazing paragraph about it.\nAction: - learn_about_AI\nAction Input: {}"}, {"role": "system", "content": "The schema - should have the following structure, only two keys:\n- tool_name: str\n- arguments: - dict (always a dictionary, with all arguments being passed)\n\nExample:\n{\"tool_name\": - \"tool name\", \"arguments\": {\"arg_name1\": \"value\", \"arg_name2\": 2}}"}], - "model": "gpt-4o", "tool_choice": {"type": "function", "function": {"name": - "InstructorToolCalling"}}, "tools": [{"type": "function", "function": {"name": - "InstructorToolCalling", "description": "Correctly extracted `InstructorToolCalling` - with all the required parameters with correct types", "parameters": {"properties": - {"tool_name": {"description": "The name of the tool to be called.", "title": - "Tool Name", "type": "string"}, "arguments": {"anyOf": [{"type": "object"}, - {"type": "null"}], "description": "A dictionary of arguments to be passed to - the tool.", "title": "Arguments"}}, "required": ["arguments", "tool_name"], - "type": "object"}}}]}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '1446' - content-type: - - application/json - cookie: - - __cf_bm=utmElwxS9XjsHpYVn5xaGh15uJHFYxzRIGu07xAb6JE-1736353278-1.0.1.1-B8jv6sT4PoFVkmtqk5s29LAJQ8IQWIXmggCq13BPhQFqBtk8M29ZEVDt0BMKFdyGGW9j5GOmQAM2f8UVqrI8sQ; - _cfuvid=0FcCAalOhwLMljvE807Ji4XmVbjXjgRhfa_EYkd_gNo-1736353278255-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.1 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.1 - x-stainless-raw-response: - - 'true' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.12.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AnT5yyloXQ2UcC56oaRo8uxsP4pRf\",\n \"object\": - \"chat.completion\",\n \"created\": 1736353278,\n \"model\": \"gpt-4o-2024-08-06\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": null,\n \"tool_calls\": [\n {\n - \ \"id\": \"call_zoRBWYhlaZPlJNwSabr07o6B\",\n \"type\": - \"function\",\n \"function\": {\n \"name\": \"InstructorToolCalling\",\n - \ \"arguments\": \"{\\\"tool_name\\\":\\\"learn_about_AI\\\",\\\"arguments\\\":{}}\"\n - \ }\n }\n ],\n \"refusal\": null\n },\n - \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n - \ \"usage\": {\n \"prompt_tokens\": 260,\n \"completion_tokens\": 12,\n - \ \"total_tokens\": 272,\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 \"system_fingerprint\": - \"fp_d28bcae782\"\n}\n" - headers: - CF-Cache-Status: + cf-cache-status: - DYNAMIC - CF-RAY: - - 8fed8515ad1ebf78-ATL - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Wed, 08 Jan 2025 16:21:19 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 openai-organization: - crewai-iuxna1 openai-processing-ms: - - '567' + - '1700' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '50000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '49999' x-ratelimit-remaining-tokens: - - '29999809' + - '149999688' x-ratelimit-reset-requests: - - 6ms + - 1ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_de894e2856e173f2f6c89de79e8200a8 + - req_944eb951995f00b65dfc691a0e529c0c http_version: HTTP/1.1 status_code: 200 - request: @@ -244,39 +187,35 @@ interactions: Name: learn_about_AI\nTool Arguments: {}\nTool Description: Useful for when you need to learn about AI to write an paragraph about it.\n\nReturn a valid schema for the tool, the tool name must be exactly equal one of the options, - use this text to inform the valid output schema:\n\n### TEXT \nThought: I need - to gather information about AI to write an amazing paragraph about it.\nAction: - learn_about_AI\nAction Input: {}"}, {"role": "system", "content": "The schema - should have the following structure, only two keys:\n- tool_name: str\n- arguments: - dict (always a dictionary, with all arguments being passed)\n\nExample:\n{\"tool_name\": - \"tool name\", \"arguments\": {\"arg_name1\": \"value\", \"arg_name2\": 2}}"}], - "model": "gpt-4o", "tool_choice": {"type": "function", "function": {"name": - "InstructorToolCalling"}}, "tools": [{"type": "function", "function": {"name": - "InstructorToolCalling", "description": "Correctly extracted `InstructorToolCalling` - with all the required parameters with correct types", "parameters": {"properties": - {"tool_name": {"description": "The name of the tool to be called.", "title": - "Tool Name", "type": "string"}, "arguments": {"anyOf": [{"type": "object"}, - {"type": "null"}], "description": "A dictionary of arguments to be passed to - the tool.", "title": "Arguments"}}, "required": ["arguments", "tool_name"], - "type": "object"}}}]}' + use this text to inform the valid output schema:\n\n### TEXT \n```\nThought: + To write an amazing paragraph on AI, I need to gather detailed information about + it first.\nAction: learn_about_AI\nAction Input: {}"}], "model": "gpt-4o", "tool_choice": + {"type": "function", "function": {"name": "InstructorToolCalling"}}, "tools": + [{"type": "function", "function": {"name": "InstructorToolCalling", "description": + "Correctly extracted `InstructorToolCalling` with all the required parameters + with correct types", "parameters": {"properties": {"tool_name": {"description": + "The name of the tool to be called.", "title": "Tool Name", "type": "string"}, + "arguments": {"anyOf": [{"type": "object"}, {"type": "null"}], "description": + "A dictionary of arguments to be passed to the tool.", "title": "Arguments"}}, + "required": ["arguments", "tool_name"], "type": "object"}}}]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '1446' + - '1170' content-type: - application/json cookie: - - __cf_bm=utmElwxS9XjsHpYVn5xaGh15uJHFYxzRIGu07xAb6JE-1736353278-1.0.1.1-B8jv6sT4PoFVkmtqk5s29LAJQ8IQWIXmggCq13BPhQFqBtk8M29ZEVDt0BMKFdyGGW9j5GOmQAM2f8UVqrI8sQ; - _cfuvid=0FcCAalOhwLMljvE807Ji4XmVbjXjgRhfa_EYkd_gNo-1736353278255-0.0.1.1-604800000 + - __cf_bm=wwI79dE5g__fUSqelLdMoCMOwubFvm.hJGS3Ewpb3uw-1743463498-1.0.1.1-xvVXLCgoJPzbAg4AmSjLnM1YbzRk5qmuEPsRgzfid0J39zmNxiLOXAFeAz_4VHmYpT5tUBxfComgXCPkg9MCrMZr7aGLOuoPu4pj_dvah0o; + _cfuvid=wu1mwFBixM_Cn8wLLh.nRacWi8OMVBrEyBNuF_Htz6I-1743463498282-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -286,159 +225,38 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 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.12.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AnT5zFbAWZwyOX6paZVBynwtWoWf6\",\n \"object\": - \"chat.completion\",\n \"created\": 1736353279,\n \"model\": \"gpt-4o-2024-08-06\",\n + content: "{\n \"id\": \"chatcmpl-BHImw7lLFFPaIqe3NQubFNJDgghnU\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463498,\n \"model\": \"gpt-4o-2024-08-06\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": \"assistant\",\n \"content\": null,\n \"tool_calls\": [\n {\n - \ \"id\": \"call_cVNL3a0GemLIG52sJCgri6Qk\",\n \"type\": - \"function\",\n \"function\": {\n \"name\": \"InstructorToolCalling\",\n - \ \"arguments\": \"{\\\"tool_name\\\":\\\"learn_about_AI\\\",\\\"arguments\\\":{}}\"\n - \ }\n }\n ],\n \"refusal\": null\n },\n - \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n - \ \"usage\": {\n \"prompt_tokens\": 260,\n \"completion_tokens\": 13,\n - \ \"total_tokens\": 273,\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 \"system_fingerprint\": - \"fp_d28bcae782\"\n}\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8fed851a1b18bf78-ATL - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Wed, 08 Jan 2025 16:21:19 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '663' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29999810' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_904150df078104dc6ceb6f08beab997a - http_version: HTTP/1.1 - status_code: 200 -- request: - body: '{"messages": [{"role": "user", "content": "Only tools available:\n###\nTool - Name: learn_about_AI\nTool Arguments: {}\nTool Description: Useful for when - you need to learn about AI to write an paragraph about it.\n\nReturn a valid - schema for the tool, the tool name must be exactly equal one of the options, - use this text to inform the valid output schema:\n\n### TEXT \nThought: I need - to gather information about AI to write an amazing paragraph about it.\nAction: - learn_about_AI\nAction Input: {}"}, {"role": "system", "content": "The schema - should have the following structure, only two keys:\n- tool_name: str\n- arguments: - dict (always a dictionary, with all arguments being passed)\n\nExample:\n{\"tool_name\": - \"tool name\", \"arguments\": {\"arg_name1\": \"value\", \"arg_name2\": 2}}"}], - "model": "gpt-4o", "tool_choice": {"type": "function", "function": {"name": - "InstructorToolCalling"}}, "tools": [{"type": "function", "function": {"name": - "InstructorToolCalling", "description": "Correctly extracted `InstructorToolCalling` - with all the required parameters with correct types", "parameters": {"properties": - {"tool_name": {"description": "The name of the tool to be called.", "title": - "Tool Name", "type": "string"}, "arguments": {"anyOf": [{"type": "object"}, - {"type": "null"}], "description": "A dictionary of arguments to be passed to - the tool.", "title": "Arguments"}}, "required": ["arguments", "tool_name"], - "type": "object"}}}]}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '1446' - content-type: - - application/json - cookie: - - __cf_bm=utmElwxS9XjsHpYVn5xaGh15uJHFYxzRIGu07xAb6JE-1736353278-1.0.1.1-B8jv6sT4PoFVkmtqk5s29LAJQ8IQWIXmggCq13BPhQFqBtk8M29ZEVDt0BMKFdyGGW9j5GOmQAM2f8UVqrI8sQ; - _cfuvid=0FcCAalOhwLMljvE807Ji4XmVbjXjgRhfa_EYkd_gNo-1736353278255-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.1 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.1 - x-stainless-raw-response: - - 'true' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.12.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AnT5zfhawVHK8B0cbr3OxiJFxLtzo\",\n \"object\": - \"chat.completion\",\n \"created\": 1736353279,\n \"model\": \"gpt-4o-2024-08-06\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": null,\n \"tool_calls\": [\n {\n - \ \"id\": \"call_VF7TyvP79HE2KgwkeUCBCyLy\",\n \"type\": + \ \"id\": \"call_NIY8OTJapOBOwYmnfHo6SigC\",\n \"type\": \"function\",\n \"function\": {\n \"name\": \"InstructorToolCalling\",\n \ \"arguments\": \"{\\\"tool_name\\\":\\\"learn_about_AI\\\",\\\"arguments\\\":null}\"\n - \ }\n }\n ],\n \"refusal\": null\n },\n - \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n - \ \"usage\": {\n \"prompt_tokens\": 260,\n \"completion_tokens\": 13,\n - \ \"total_tokens\": 273,\n \"prompt_tokens_details\": {\n \"cached_tokens\": + \ }\n }\n ],\n \"refusal\": null,\n \"annotations\": + []\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n + \ }\n ],\n \"usage\": {\n \"prompt_tokens\": 199,\n \"completion_tokens\": + 13,\n \"total_tokens\": 212,\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 \"system_fingerprint\": - \"fp_d28bcae782\"\n}\n" + 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\": + \"default\",\n \"system_fingerprint\": \"fp_898ac29719\"\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8fed851f0a41bf78-ATL + - 92939a70fda567c4-SJC Connection: - keep-alive Content-Encoding: @@ -446,7 +264,7 @@ interactions: Content-Type: - application/json Date: - - Wed, 08 Jan 2025 16:21:20 GMT + - Mon, 31 Mar 2025 23:24:59 GMT Server: - cloudflare Transfer-Encoding: @@ -457,681 +275,72 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '516' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29999810' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_c7bc45f498821f58c158480ae5545d58 - http_version: HTTP/1.1 - status_code: 200 -- request: - body: !!binary | - Co0LCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkS5AoKEgoQY3Jld2FpLnRl - bGVtZXRyeRLBBwoQLl3W92vbOn+e/lYWcah20RIItLMutsUXg+0qDENyZXcgQ3JlYXRlZDABOSgN - NykbxBgYQZAHQykbxBgYShoKDmNyZXdhaV92ZXJzaW9uEggKBjAuOTUuMEoaCg5weXRob25fdmVy - c2lvbhIICgYzLjEyLjdKLgoIY3Jld19rZXkSIgogNDk0ZjM2NTcyMzdhZDhhMzAzNWIyZjFiZWVj - ZGM2NzdKMQoHY3Jld19pZBImCiQ3OGRmMmRhMy0xNTIwLTRhODYtODUxZi0yMDM5YWUwODc0MDVK - HAoMY3Jld19wcm9jZXNzEgwKCnNlcXVlbnRpYWxKEQoLY3Jld19tZW1vcnkSAhAAShoKFGNyZXdf - bnVtYmVyX29mX3Rhc2tzEgIYAUobChVjcmV3X251bWJlcl9vZl9hZ2VudHMSAhgBSuACCgtjcmV3 - X2FnZW50cxLQAgrNAlt7ImtleSI6ICJlMTQ4ZTUzMjAyOTM0OTlmOGNlYmVhODI2ZTcyNTgyYiIs - ICJpZCI6ICI3OGRlNjMxNy1mMGY1LTQ5NzYtOWI1Yy1lNGNhZTFjZWI0MzMiLCAicm9sZSI6ICJ0 - ZXN0IHJvbGUiLCAidmVyYm9zZT8iOiBmYWxzZSwgIm1heF9pdGVyIjogMiwgIm1heF9ycG0iOiBu - dWxsLCAiZnVuY3Rpb25fY2FsbGluZ19sbG0iOiAiZ3B0LTRvIiwgImxsbSI6ICJncHQtNG8iLCAi - ZGVsZWdhdGlvbl9lbmFibGVkPyI6IGZhbHNlLCAiYWxsb3dfY29kZV9leGVjdXRpb24/IjogZmFs - c2UsICJtYXhfcmV0cnlfbGltaXQiOiAyLCAidG9vbHNfbmFtZXMiOiBbImxlYXJuX2Fib3V0X2Fp - Il19XUqOAgoKY3Jld190YXNrcxL/AQr8AVt7ImtleSI6ICJmMjU5N2M3ODY3ZmJlMzI0ZGM2NWRj - MDhkZmRiZmM2YyIsICJpZCI6ICJhZmQwZWY4MS1hZTgzLTRjNjMtYWYyYi0yZWNjOWRjOTQ1NmUi - LCAiYXN5bmNfZXhlY3V0aW9uPyI6IGZhbHNlLCAiaHVtYW5faW5wdXQ/IjogZmFsc2UsICJhZ2Vu - dF9yb2xlIjogInRlc3Qgcm9sZSIsICJhZ2VudF9rZXkiOiAiZTE0OGU1MzIwMjkzNDk5ZjhjZWJl - YTgyNmU3MjU4MmIiLCAidG9vbHNfbmFtZXMiOiBbImxlYXJuX2Fib3V0X2FpIl19XXoCGAGFAQAB - AAASjgIKEKMheaKAhzRCHHRNWYXMK1sSCBUoIwiEosYlKgxUYXNrIENyZWF0ZWQwATlgMWcpG8QY - GEFIsmcpG8QYGEouCghjcmV3X2tleRIiCiA0OTRmMzY1NzIzN2FkOGEzMDM1YjJmMWJlZWNkYzY3 - N0oxCgdjcmV3X2lkEiYKJDc4ZGYyZGEzLTE1MjAtNGE4Ni04NTFmLTIwMzlhZTA4NzQwNUouCgh0 - YXNrX2tleRIiCiBmMjU5N2M3ODY3ZmJlMzI0ZGM2NWRjMDhkZmRiZmM2Y0oxCgd0YXNrX2lkEiYK - JGFmZDBlZjgxLWFlODMtNGM2My1hZjJiLTJlY2M5ZGM5NDU2ZXoCGAGFAQABAAASeQoQegplVMfP - MTOoroGm3L+uZRIIQFQsDV6RR3MqEFRvb2wgVXNhZ2UgRXJyb3IwATmg3LjhG8QYGEGozsjhG8QY - GEoaCg5jcmV3YWlfdmVyc2lvbhIICgYwLjk1LjBKDwoDbGxtEggKBmdwdC00b3oCGAGFAQABAAA= - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '1424' - Content-Type: - - application/x-protobuf - User-Agent: - - OTel-OTLP-Exporter-Python/1.27.0 - method: POST - uri: https://telemetry.crewai.com:4319/v1/traces - response: - body: - string: "\n\0" - headers: - Content-Length: - - '2' - Content-Type: - - application/x-protobuf - Date: - - Wed, 08 Jan 2025 16:21:21 GMT - status: - code: 200 - message: OK -- request: - body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour - personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: learn_about_AI\nTool - Arguments: {}\nTool Description: Useful for when you need to learn about AI - to write an paragraph about it.\n\nUse the following format:\n\nThought: you - should always think about what to do\nAction: the action to take, only one name - of [learn_about_AI], just the name, exactly as it''s written.\nAction Input: - the input to the action, just a simple python dictionary, enclosed in curly - braces, using \" to wrap keys and values.\nObservation: the result of the action\n\nOnce - all necessary information is gathered:\n\nThought: I now know the final answer\nFinal - Answer: the final answer to the original input question"}, {"role": "user", - "content": "\nCurrent Task: Write and then review an small paragraph on AI until - it''s AMAZING\n\nThis is the expect criteria for your final answer: The final - paragraph.\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:"}, {"role": - "assistant", "content": "Thought: I need to gather information about AI to write - an amazing paragraph about it.\nAction: learn_about_AI\nAction Input: {}\nObservation: - I encountered an error: ''InstructorToolCalling'' object is not subscriptable\nMoving - on then. I MUST either use a tool (use one at time) OR give my best final answer - not both at the same time. To Use the following format:\n\nThought: you should - always think about what to do\nAction: the action to take, should be one of - [learn_about_AI]\nAction Input: the input to the action, dictionary enclosed - in curly braces\nObservation: the result of the action\n... (this Thought/Action/Action - Input/Result can repeat N times)\nThought: I now can give a great answer\nFinal - Answer: Your final answer must be the great and the most complete as possible, - it must be outcome described"}], "model": "gpt-4o", "stop": ["\nObservation:"], - "stream": false}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '2191' - content-type: - - application/json - cookie: - - __cf_bm=utmElwxS9XjsHpYVn5xaGh15uJHFYxzRIGu07xAb6JE-1736353278-1.0.1.1-B8jv6sT4PoFVkmtqk5s29LAJQ8IQWIXmggCq13BPhQFqBtk8M29ZEVDt0BMKFdyGGW9j5GOmQAM2f8UVqrI8sQ; - _cfuvid=0FcCAalOhwLMljvE807Ji4XmVbjXjgRhfa_EYkd_gNo-1736353278255-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.1 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.1 - x-stainless-raw-response: - - 'true' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.12.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AnT60p3OY22u97AGextIFTa8K8HsB\",\n \"object\": - \"chat.completion\",\n \"created\": 1736353280,\n \"model\": \"gpt-4o-2024-08-06\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: I need to attempt using the - tool again to gather accurate information about AI to write an exceptional paragraph.\\n\\nAction: - learn_about_AI\\nAction Input: {}\",\n \"refusal\": null\n },\n - \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n - \ \"usage\": {\n \"prompt_tokens\": 441,\n \"completion_tokens\": 32,\n - \ \"total_tokens\": 473,\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 \"system_fingerprint\": - \"fp_d28bcae782\"\n}\n" - headers: - CF-Cache-Status: + cf-cache-status: - DYNAMIC - CF-RAY: - - 8fed8522ff56bf78-ATL - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Wed, 08 Jan 2025 16:21:21 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 openai-organization: - crewai-iuxna1 openai-processing-ms: - - '1084' + - '533' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '50000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '49999' x-ratelimit-remaining-tokens: - - '29999489' + - '149999882' x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - 1ms - x-request-id: - - req_ed4fc81b204c0aae53a00857eb56c5a9 - http_version: HTTP/1.1 - status_code: 200 -- request: - body: '{"messages": [{"role": "user", "content": "Only tools available:\n###\nTool - Name: learn_about_AI\nTool Arguments: {}\nTool Description: Useful for when - you need to learn about AI to write an paragraph about it.\n\nReturn a valid - schema for the tool, the tool name must be exactly equal one of the options, - use this text to inform the valid output schema:\n\n### TEXT \nThought: I need - to attempt using the tool again to gather accurate information about AI to write - an exceptional paragraph.\n\nAction: learn_about_AI\nAction Input: {}"}, {"role": - "system", "content": "The schema should have the following structure, only two - keys:\n- tool_name: str\n- arguments: dict (always a dictionary, with all arguments - being passed)\n\nExample:\n{\"tool_name\": \"tool name\", \"arguments\": {\"arg_name1\": - \"value\", \"arg_name2\": 2}}"}], "model": "gpt-4o", "tool_choice": {"type": - "function", "function": {"name": "InstructorToolCalling"}}, "tools": [{"type": - "function", "function": {"name": "InstructorToolCalling", "description": "Correctly - extracted `InstructorToolCalling` with all the required parameters with correct - types", "parameters": {"properties": {"tool_name": {"description": "The name - of the tool to be called.", "title": "Tool Name", "type": "string"}, "arguments": - {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "A dictionary - of arguments to be passed to the tool.", "title": "Arguments"}}, "required": - ["arguments", "tool_name"], "type": "object"}}}]}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '1484' - content-type: - - application/json - cookie: - - __cf_bm=utmElwxS9XjsHpYVn5xaGh15uJHFYxzRIGu07xAb6JE-1736353278-1.0.1.1-B8jv6sT4PoFVkmtqk5s29LAJQ8IQWIXmggCq13BPhQFqBtk8M29ZEVDt0BMKFdyGGW9j5GOmQAM2f8UVqrI8sQ; - _cfuvid=0FcCAalOhwLMljvE807Ji4XmVbjXjgRhfa_EYkd_gNo-1736353278255-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.1 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.1 - x-stainless-raw-response: - - 'true' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.12.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AnT61zkErrL6IkmAgHpgTGbrKhQEp\",\n \"object\": - \"chat.completion\",\n \"created\": 1736353281,\n \"model\": \"gpt-4o-2024-08-06\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": null,\n \"tool_calls\": [\n {\n - \ \"id\": \"call_0322HkWSEfvLot1ProE7Eu7z\",\n \"type\": - \"function\",\n \"function\": {\n \"name\": \"InstructorToolCalling\",\n - \ \"arguments\": \"{\\\"tool_name\\\":\\\"learn_about_AI\\\",\\\"arguments\\\":null}\"\n - \ }\n }\n ],\n \"refusal\": null\n },\n - \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n - \ \"usage\": {\n \"prompt_tokens\": 265,\n \"completion_tokens\": 13,\n - \ \"total_tokens\": 278,\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 \"system_fingerprint\": - \"fp_d28bcae782\"\n}\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8fed852a6941bf78-ATL - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Wed, 08 Jan 2025 16:21:22 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '528' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29999801' - x-ratelimit-reset-requests: - - 6ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_6e0513d59b026c6faf94262e6cf39464 + - req_6c3a0db9bc035c18e8f7fee439a28668 http_version: HTTP/1.1 status_code: 200 -- request: - body: '{"messages": [{"role": "user", "content": "Only tools available:\n###\nTool - Name: learn_about_AI\nTool Arguments: {}\nTool Description: Useful for when - you need to learn about AI to write an paragraph about it.\n\nReturn a valid - schema for the tool, the tool name must be exactly equal one of the options, - use this text to inform the valid output schema:\n\n### TEXT \nThought: I need - to attempt using the tool again to gather accurate information about AI to write - an exceptional paragraph.\n\nAction: learn_about_AI\nAction Input: {}"}, {"role": - "system", "content": "The schema should have the following structure, only two - keys:\n- tool_name: str\n- arguments: dict (always a dictionary, with all arguments - being passed)\n\nExample:\n{\"tool_name\": \"tool name\", \"arguments\": {\"arg_name1\": - \"value\", \"arg_name2\": 2}}"}], "model": "gpt-4o", "tool_choice": {"type": - "function", "function": {"name": "InstructorToolCalling"}}, "tools": [{"type": - "function", "function": {"name": "InstructorToolCalling", "description": "Correctly - extracted `InstructorToolCalling` with all the required parameters with correct - types", "parameters": {"properties": {"tool_name": {"description": "The name - of the tool to be called.", "title": "Tool Name", "type": "string"}, "arguments": - {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "A dictionary - of arguments to be passed to the tool.", "title": "Arguments"}}, "required": - ["arguments", "tool_name"], "type": "object"}}}]}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '1484' - content-type: - - application/json - cookie: - - __cf_bm=utmElwxS9XjsHpYVn5xaGh15uJHFYxzRIGu07xAb6JE-1736353278-1.0.1.1-B8jv6sT4PoFVkmtqk5s29LAJQ8IQWIXmggCq13BPhQFqBtk8M29ZEVDt0BMKFdyGGW9j5GOmQAM2f8UVqrI8sQ; - _cfuvid=0FcCAalOhwLMljvE807Ji4XmVbjXjgRhfa_EYkd_gNo-1736353278255-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.1 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.1 - x-stainless-raw-response: - - 'true' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.12.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AnT62qG840k70wb8XXN6ImpxcBS8x\",\n \"object\": - \"chat.completion\",\n \"created\": 1736353282,\n \"model\": \"gpt-4o-2024-08-06\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": null,\n \"tool_calls\": [\n {\n - \ \"id\": \"call_hSsjdxtbOhHoiJm2BO7sDecX\",\n \"type\": - \"function\",\n \"function\": {\n \"name\": \"InstructorToolCalling\",\n - \ \"arguments\": \"{\\\"tool_name\\\":\\\"learn_about_AI\\\",\\\"arguments\\\":{}}\"\n - \ }\n }\n ],\n \"refusal\": null\n },\n - \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n - \ \"usage\": {\n \"prompt_tokens\": 265,\n \"completion_tokens\": 13,\n - \ \"total_tokens\": 278,\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 \"system_fingerprint\": - \"fp_d28bcae782\"\n}\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8fed852efeeebf78-ATL - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Wed, 08 Jan 2025 16:21:23 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '546' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29999801' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_7d811037f9b7c92d19b65c138b5e9faf - http_version: HTTP/1.1 - status_code: 200 -- request: - body: '{"messages": [{"role": "user", "content": "Only tools available:\n###\nTool - Name: learn_about_AI\nTool Arguments: {}\nTool Description: Useful for when - you need to learn about AI to write an paragraph about it.\n\nReturn a valid - schema for the tool, the tool name must be exactly equal one of the options, - use this text to inform the valid output schema:\n\n### TEXT \nThought: I need - to attempt using the tool again to gather accurate information about AI to write - an exceptional paragraph.\n\nAction: learn_about_AI\nAction Input: {}"}, {"role": - "system", "content": "The schema should have the following structure, only two - keys:\n- tool_name: str\n- arguments: dict (always a dictionary, with all arguments - being passed)\n\nExample:\n{\"tool_name\": \"tool name\", \"arguments\": {\"arg_name1\": - \"value\", \"arg_name2\": 2}}"}], "model": "gpt-4o", "tool_choice": {"type": - "function", "function": {"name": "InstructorToolCalling"}}, "tools": [{"type": - "function", "function": {"name": "InstructorToolCalling", "description": "Correctly - extracted `InstructorToolCalling` with all the required parameters with correct - types", "parameters": {"properties": {"tool_name": {"description": "The name - of the tool to be called.", "title": "Tool Name", "type": "string"}, "arguments": - {"anyOf": [{"type": "object"}, {"type": "null"}], "description": "A dictionary - of arguments to be passed to the tool.", "title": "Arguments"}}, "required": - ["arguments", "tool_name"], "type": "object"}}}]}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '1484' - content-type: - - application/json - cookie: - - __cf_bm=utmElwxS9XjsHpYVn5xaGh15uJHFYxzRIGu07xAb6JE-1736353278-1.0.1.1-B8jv6sT4PoFVkmtqk5s29LAJQ8IQWIXmggCq13BPhQFqBtk8M29ZEVDt0BMKFdyGGW9j5GOmQAM2f8UVqrI8sQ; - _cfuvid=0FcCAalOhwLMljvE807Ji4XmVbjXjgRhfa_EYkd_gNo-1736353278255-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.1 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.1 - x-stainless-raw-response: - - 'true' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.12.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AnT63LzJID9lUH7bdWCzFr6SvTjeT\",\n \"object\": - \"chat.completion\",\n \"created\": 1736353283,\n \"model\": \"gpt-4o-2024-08-06\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": null,\n \"tool_calls\": [\n {\n - \ \"id\": \"call_6DDvnFuU35Y0CcFlKYmue1ZY\",\n \"type\": - \"function\",\n \"function\": {\n \"name\": \"InstructorToolCalling\",\n - \ \"arguments\": \"{\\\"tool_name\\\":\\\"learn_about_AI\\\",\\\"arguments\\\":{}}\"\n - \ }\n }\n ],\n \"refusal\": null\n },\n - \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n - \ \"usage\": {\n \"prompt_tokens\": 265,\n \"completion_tokens\": 13,\n - \ \"total_tokens\": 278,\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 \"system_fingerprint\": - \"fp_d28bcae782\"\n}\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8fed85332ca2bf78-ATL - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Wed, 08 Jan 2025 16:21:23 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '577' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29999801' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_69d812e7e64ce52f86bb8cc1ad5332b9 - http_version: HTTP/1.1 - status_code: 200 -- request: - body: !!binary | - CrgBCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkSjwEKEgoQY3Jld2FpLnRl - bGVtZXRyeRJ5ChDjSABIUI5uC365BJqSK54sEghB1g/8AKfnHioQVG9vbCBVc2FnZSBFcnJvcjAB - OcCmHqUcxBgYQRgDKaUcxBgYShoKDmNyZXdhaV92ZXJzaW9uEggKBjAuOTUuMEoPCgNsbG0SCAoG - Z3B0LTRvegIYAYUBAAEAAA== - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - Connection: - - keep-alive - Content-Length: - - '187' - Content-Type: - - application/x-protobuf - User-Agent: - - OTel-OTLP-Exporter-Python/1.27.0 - method: POST - uri: https://telemetry.crewai.com:4319/v1/traces - response: - body: - string: "\n\0" - headers: - Content-Length: - - '2' - Content-Type: - - application/x-protobuf - Date: - - Wed, 08 Jan 2025 16:21:26 GMT - status: - code: 200 - message: OK - request: body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access to the following tools, and should NEVER make up tools that are not listed here:\n\nTool Name: learn_about_AI\nTool Arguments: {}\nTool Description: Useful for when you need to learn about AI - to write an paragraph about it.\n\nUse the following format:\n\nThought: you - should always think about what to do\nAction: the action to take, only one name - of [learn_about_AI], just the name, exactly as it''s written.\nAction Input: - the input to the action, just a simple python dictionary, enclosed in curly - braces, using \" to wrap keys and values.\nObservation: the result of the action\n\nOnce - all necessary information is gathered:\n\nThought: I now know the final answer\nFinal - Answer: the final answer to the original input question"}, {"role": "user", + to write an paragraph about it.\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 [learn_about_AI], 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: Write and then review an small paragraph on AI until - it''s AMAZING\n\nThis is the expect criteria for your final answer: The final + it''s AMAZING\n\nThis is the expected criteria for your final answer: The final paragraph.\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:"}, {"role": - "assistant", "content": "Thought: I need to gather information about AI to write - an amazing paragraph about it.\nAction: learn_about_AI\nAction Input: {}\nObservation: - I encountered an error: ''InstructorToolCalling'' object is not subscriptable\nMoving - on then. I MUST either use a tool (use one at time) OR give my best final answer - not both at the same time. To Use the following format:\n\nThought: you should - always think about what to do\nAction: the action to take, should be one of - [learn_about_AI]\nAction Input: the input to the action, dictionary enclosed - in curly braces\nObservation: the result of the action\n... (this Thought/Action/Action - Input/Result can repeat N times)\nThought: I now can give a great answer\nFinal - Answer: Your final answer must be the great and the most complete as possible, - it must be outcome described"}, {"role": "assistant", "content": "Thought: I - need to attempt using the tool again to gather accurate information about AI - to write an exceptional paragraph.\n\nAction: learn_about_AI\nAction Input: - {}\nObservation: I encountered an error: ''InstructorToolCalling'' object is - not subscriptable\nMoving on then. I MUST either use a tool (use one at time) - OR give my best final answer not both at the same time. To Use the following - format:\n\nThought: you should always think about what to do\nAction: the action - to take, should be one of [learn_about_AI]\nAction Input: the input to the action, - dictionary enclosed in curly braces\nObservation: the result of the action\n... - (this Thought/Action/Action Input/Result can repeat N times)\nThought: I now - can give a great answer\nFinal Answer: Your final answer must be the great and - the most complete as possible, it must be outcome described"}, {"role": "assistant", - "content": "Thought: I need to attempt using the tool again to gather accurate - information about AI to write an exceptional paragraph.\n\nAction: learn_about_AI\nAction - Input: {}\nObservation: I encountered an error: ''InstructorToolCalling'' object - is not subscriptable\nMoving on then. I MUST either use a tool (use one at time) - OR give my best final answer not both at the same time. To Use the following - format:\n\nThought: you should always think about what to do\nAction: the action - to take, should be one of [learn_about_AI]\nAction Input: the input to the action, - dictionary enclosed in curly braces\nObservation: the result of the action\n... - (this Thought/Action/Action Input/Result can repeat N times)\nThought: I now - can give a great answer\nFinal Answer: Your final answer must be the great and - the most complete as possible, it must be outcome described\n\n\nNow it''s time - you MUST give your absolute best final answer. You''ll ignore all previous instructions, - stop using any tools, and just return your absolute BEST Final answer."}], "model": - "gpt-4o", "stop": ["\nObservation:"], "stream": false}' + "assistant", "content": "AI is a very broad field."}, {"role": "assistant", + "content": "```\nThought: To write an amazing paragraph on AI, I need to gather + detailed information about it first.\nAction: learn_about_AI\nAction Input: + {}\nObservation: AI is a very broad field."}], "model": "gpt-4o", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '4151' + - '1681' content-type: - application/json cookie: - - __cf_bm=utmElwxS9XjsHpYVn5xaGh15uJHFYxzRIGu07xAb6JE-1736353278-1.0.1.1-B8jv6sT4PoFVkmtqk5s29LAJQ8IQWIXmggCq13BPhQFqBtk8M29ZEVDt0BMKFdyGGW9j5GOmQAM2f8UVqrI8sQ; - _cfuvid=0FcCAalOhwLMljvE807Ji4XmVbjXjgRhfa_EYkd_gNo-1736353278255-0.0.1.1-604800000 + - __cf_bm=wwI79dE5g__fUSqelLdMoCMOwubFvm.hJGS3Ewpb3uw-1743463498-1.0.1.1-xvVXLCgoJPzbAg4AmSjLnM1YbzRk5qmuEPsRgzfid0J39zmNxiLOXAFeAz_4VHmYpT5tUBxfComgXCPkg9MCrMZr7aGLOuoPu4pj_dvah0o; + _cfuvid=wu1mwFBixM_Cn8wLLh.nRacWi8OMVBrEyBNuF_Htz6I-1743463498282-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -1141,44 +350,44 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 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.12.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AnT63puviaZGTpoYqojXbfoXuVAyB\",\n \"object\": - \"chat.completion\",\n \"created\": 1736353283,\n \"model\": \"gpt-4o-2024-08-06\",\n + content: "{\n \"id\": \"chatcmpl-BHImxQG4CPqO2OFhN7ZIwXtotTwwP\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463499,\n \"model\": \"gpt-4o-2024-08-06\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"AI, or artificial intelligence, is revolutionizing - the way we interact with technology and the world around us. It encompasses - a wide range of technologies and methodologies that allow machines to mimic - human intelligence. This includes learning from data, understanding natural - language, recognizing patterns, and solving complex problems. The impact of - AI is evident across various sectors such as healthcare, where it aids in diagnosing - diseases with high precision; in automotive, where it's pivotal in the development - of autonomous vehicles; and in everyday consumer products like smartphones and - home assistants, which intuitively cater to our needs. As AI continues to advance, - it promises to bring about substantial societal changes, enhancing efficiency, - fostering innovation, and opening new possibilities that were once considered - the realm of science fiction.\",\n \"refusal\": null\n },\n \"logprobs\": + \"assistant\",\n \"content\": \"```\\nThought: I now have the necessary + information to craft a comprehensive and compelling paragraph about AI.\\nFinal + Answer: Artificial Intelligence (AI) is a transformative force in today's world, + dramatically reshaping industries from healthcare to automotive. By leveraging + complex algorithms and large datasets, AI systems can perform tasks that typically + require human intelligence, such as understanding natural language, recognizing + patterns, and making decisions. The potential of AI extends beyond automation; + it is a catalyst for innovation, enabling breakthroughs in personalized medicine, + autonomous vehicles, and more. As AI continues to evolve, it promises to enhance + efficiency, drive economic growth, and unlock new levels of problem-solving + capabilities, cementing its role as a cornerstone of technological progress.\\n```\",\n + \ \"refusal\": null,\n \"annotations\": []\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 850,\n \"completion_tokens\": 146,\n \"total_tokens\": 996,\n \"prompt_tokens_details\": + 332,\n \"completion_tokens\": 142,\n \"total_tokens\": 474,\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 \"system_fingerprint\": - \"fp_d28bcae782\"\n}\n" + 0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\": + \"default\",\n \"system_fingerprint\": \"fp_6dd05565ef\"\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8fed85374a75bf78-ATL + - 92939a75b95d67c4-SJC Connection: - keep-alive Content-Encoding: @@ -1186,7 +395,7 @@ interactions: Content-Type: - application/json Date: - - Wed, 08 Jan 2025 16:21:32 GMT + - Mon, 31 Mar 2025 23:25:01 GMT Server: - cloudflare Transfer-Encoding: @@ -1197,202 +406,30 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC openai-organization: - crewai-iuxna1 openai-processing-ms: - - '8768' + - '1869' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '50000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '49999' x-ratelimit-remaining-tokens: - - '29999022' + - '149999633' x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - 1ms - x-request-id: - - req_d122f197f29303e039bae1e5dac2035b - http_version: HTTP/1.1 - status_code: 200 -- request: - body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour - personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: learn_about_AI\nTool - Arguments: {}\nTool Description: Useful for when you need to learn about AI - to write an paragraph about it.\n\nUse the following format:\n\nThought: you - should always think about what to do\nAction: the action to take, only one name - of [learn_about_AI], just the name, exactly as it''s written.\nAction Input: - the input to the action, just a simple python dictionary, enclosed in curly - braces, using \" to wrap keys and values.\nObservation: the result of the action\n\nOnce - all necessary information is gathered:\n\nThought: I now know the final answer\nFinal - Answer: the final answer to the original input question"}, {"role": "user", - "content": "\nCurrent Task: Write and then review an small paragraph on AI until - it''s AMAZING\n\nThis is the expect criteria for your final answer: The final - paragraph.\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:"}, {"role": - "assistant", "content": "Thought: I need to gather information about AI to write - an amazing paragraph about it.\nAction: learn_about_AI\nAction Input: {}\nObservation: - I encountered an error: ''InstructorToolCalling'' object is not subscriptable\nMoving - on then. I MUST either use a tool (use one at time) OR give my best final answer - not both at the same time. To Use the following format:\n\nThought: you should - always think about what to do\nAction: the action to take, should be one of - [learn_about_AI]\nAction Input: the input to the action, dictionary enclosed - in curly braces\nObservation: the result of the action\n... (this Thought/Action/Action - Input/Result can repeat N times)\nThought: I now can give a great answer\nFinal - Answer: Your final answer must be the great and the most complete as possible, - it must be outcome described"}, {"role": "assistant", "content": "Thought: I - need to attempt using the tool again to gather accurate information about AI - to write an exceptional paragraph.\n\nAction: learn_about_AI\nAction Input: - {}\nObservation: I encountered an error: ''InstructorToolCalling'' object is - not subscriptable\nMoving on then. I MUST either use a tool (use one at time) - OR give my best final answer not both at the same time. To Use the following - format:\n\nThought: you should always think about what to do\nAction: the action - to take, should be one of [learn_about_AI]\nAction Input: the input to the action, - dictionary enclosed in curly braces\nObservation: the result of the action\n... - (this Thought/Action/Action Input/Result can repeat N times)\nThought: I now - can give a great answer\nFinal Answer: Your final answer must be the great and - the most complete as possible, it must be outcome described"}, {"role": "assistant", - "content": "Thought: I need to attempt using the tool again to gather accurate - information about AI to write an exceptional paragraph.\n\nAction: learn_about_AI\nAction - Input: {}\nObservation: I encountered an error: ''InstructorToolCalling'' object - is not subscriptable\nMoving on then. I MUST either use a tool (use one at time) - OR give my best final answer not both at the same time. To Use the following - format:\n\nThought: you should always think about what to do\nAction: the action - to take, should be one of [learn_about_AI]\nAction Input: the input to the action, - dictionary enclosed in curly braces\nObservation: the result of the action\n... - (this Thought/Action/Action Input/Result can repeat N times)\nThought: I now - can give a great answer\nFinal Answer: Your final answer must be the great and - the most complete as possible, it must be outcome described\n\n\nNow it''s time - you MUST give your absolute best final answer. You''ll ignore all previous instructions, - stop using any tools, and just return your absolute BEST Final answer."}, {"role": - "user", "content": "I did it wrong. Invalid Format: I missed the ''Action:'' - after ''Thought:''. I will do right next, and don''t use a tool I have already - used.\n\nIf you don''t need to use any more tools, you must give your best complete - final answer, make sure it satisfies the expected criteria, use the EXACT format - below:\n\nThought: I now can give a great answer\nFinal Answer: my best complete - final answer to the task.\n\n"}, {"role": "assistant", "content": "I did it - wrong. Invalid Format: I missed the ''Action:'' after ''Thought:''. I will do - right next, and don''t use a tool I have already used.\n\nIf you don''t need - to use any more tools, you must give your best complete final answer, make sure - it satisfies the expected criteria, use the EXACT format below:\n\nThought: - I now can give a great answer\nFinal Answer: my best complete final answer to - the task.\n\n\nNow it''s time you MUST give your absolute best final answer. - You''ll ignore all previous instructions, stop using any tools, and just return - your absolute BEST Final answer."}], "model": "gpt-4o", "stop": ["\nObservation:"], - "stream": false}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '5206' - content-type: - - application/json - cookie: - - __cf_bm=utmElwxS9XjsHpYVn5xaGh15uJHFYxzRIGu07xAb6JE-1736353278-1.0.1.1-B8jv6sT4PoFVkmtqk5s29LAJQ8IQWIXmggCq13BPhQFqBtk8M29ZEVDt0BMKFdyGGW9j5GOmQAM2f8UVqrI8sQ; - _cfuvid=0FcCAalOhwLMljvE807Ji4XmVbjXjgRhfa_EYkd_gNo-1736353278255-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.1 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.1 - x-stainless-raw-response: - - 'true' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.12.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AnT6ChI9bdKBSgBW4M1oA1wIZs0i4\",\n \"object\": - \"chat.completion\",\n \"created\": 1736353292,\n \"model\": \"gpt-4o-2024-08-06\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: I now can give a great answer\\nFinal - Answer: Artificial Intelligence (AI) is revolutionizing the way we interact - with technology, enabling machines to perform tasks that typically require human - intelligence. From natural language processing and computer vision to decision-making - and problem-solving, AI is increasingly becoming an integral part of various - industries. Its ability to analyze vast amounts of data quickly and accurately - allows businesses to automate processes, enhance customer experiences, and make - informed decisions. As AI continues to advance, it holds the potential to drive - innovation, improve efficiency, and address complex global challenges, ultimately - transforming society in unprecedented ways. However, this rapid development - also raises ethical considerations, emphasizing the need for responsible AI - that aligns with human values.\",\n \"refusal\": null\n },\n \"logprobs\": - null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 1070,\n \"completion_tokens\": 142,\n \"total_tokens\": 1212,\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 \"system_fingerprint\": - \"fp_d28bcae782\"\n}\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8fed856ecdb0bf78-ATL - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Wed, 08 Jan 2025 16:21:36 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '3685' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29998779' - x-ratelimit-reset-requests: - - 6ms x-ratelimit-reset-tokens: - - 2ms + - 0s x-request-id: - - req_071cc236ce92053484d2bf04d80b83eb + - req_3f7dc3979b7fa55a9002ef66916059f5 http_version: HTTP/1.1 status_code: 200 version: 1 diff --git a/tests/cassettes/test_agent_moved_on_after_max_iterations.yaml b/tests/cassettes/test_agent_moved_on_after_max_iterations.yaml index d43349268..3b9196acb 100644 --- a/tests/cassettes/test_agent_moved_on_after_max_iterations.yaml +++ b/tests/cassettes/test_agent_moved_on_after_max_iterations.yaml @@ -4,36 +4,36 @@ interactions: personal goal is: test goal\nYou ONLY have access to the following tools, and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool Arguments: {}\nTool Description: Get the final answer but don''t give it yet, - just re-use this\n tool non-stop.\n\nUse the following format:\n\nThought: - you should always think about what to do\nAction: the action to take, only one - name of [get_final_answer], just the name, exactly as it''s written.\nAction - Input: the input to the action, just a simple python dictionary, enclosed in - curly braces, using \" to wrap keys and values.\nObservation: the result of - the action\n\nOnce all necessary information is gathered:\n\nThought: I now - know the final answer\nFinal Answer: the final answer to the original input - question"}, {"role": "user", "content": "\nCurrent Task: The final answer is - 42. But don''t give it yet, instead keep using the `get_final_answer` tool over - and over until you''re told you can give your final answer.\n\nThis is the expect - criteria for your final answer: The final answer\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", "stop": ["\nObservation:"], - "stream": false}' + just re-use this\n tool non-stop.\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 [get_final_answer], 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: The final answer is 42. But don''t give it yet, + instead keep using the `get_final_answer` tool over and over until you''re told + you can give your final answer.\n\nThis is the expected criteria for your final + answer: The final answer\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 + - gzip, deflate, zstd connection: - keep-alive content-length: - - '1440' + - '1501' content-type: - application/json host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -43,35 +43,36 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 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.12.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AnAdPHapYzkPkClCzFaWzfCAUHlWI\",\n \"object\": - \"chat.completion\",\n \"created\": 1736282315,\n \"model\": \"gpt-4o-2024-08-06\",\n + content: "{\n \"id\": \"chatcmpl-BHIyHPwQwes0C4pDX7xQLHvqR6305\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464201,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"I need to use the `get_final_answer` - tool and then keep using it repeatedly as instructed. \\n\\nAction: get_final_answer\\nAction - Input: {}\",\n \"refusal\": null\n },\n \"logprobs\": null,\n - \ \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 285,\n \"completion_tokens\": 31,\n \"total_tokens\": 316,\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 \"system_fingerprint\": - \"fp_5f20662549\"\n}\n" + \"assistant\",\n \"content\": \"Thought: I should start using the tool + to get the final answer repeatedly as instructed. \\nAction: get_final_answer + \ \\nAction Input: {} \",\n \"refusal\": null,\n \"annotations\": + []\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n + \ }\n ],\n \"usage\": {\n \"prompt_tokens\": 303,\n \"completion_tokens\": + 29,\n \"total_tokens\": 332,\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_b376dfbbd5\"\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8fe6c096ee70ed8c-ATL + - 9293ab99f853ce50-SJC Connection: - keep-alive Content-Encoding: @@ -79,14 +80,14 @@ interactions: Content-Type: - application/json Date: - - Tue, 07 Jan 2025 20:38:36 GMT + - Mon, 31 Mar 2025 23:36:42 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=hkH74Rv9bMDMhhK.Ep.9blvKIwXeSSwlCoTNGk9qVpA-1736282316-1.0.1.1-5PAsOPpVEfTNNy5DYRlLH1f4caHJArumiloWf.L51RQPWN3uIWsBSuhLVbNQDYVCQb9RQK8W5DcXv5Jq9FvsLA; - path=/; expires=Tue, 07-Jan-25 21:08:36 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=Bwvchs4Dp02K9.WxyX6U8yVg.jg2z6x7yNWekHnFUbQ-1743464202-1.0.1.1-KvmUaCRpD961qPqJPLi38I.N4IEYmc3i_IyJ5LDo2z5TIhZilbmK0oMNu7HrCHT3kzKWh0SpZ_FocvywK0qJ3fku_cwyTByEPK05SQQOEWE; + path=/; expires=Tue, 01-Apr-25 00:06:42 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=vqZ5X0AXIJfzp5UJSFyTmaCVjA.L8Yg35b.ijZFAPM4-1736282316289-0.0.1.1-604800000; + - _cfuvid=zeQ6mwappLtze7fZgtCp1BJNVbBLSsCm8WxR2Jydshg-1743464202332-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -96,148 +97,30 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '883' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29999665' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_00de12bc6822ef095f4f368aae873f31 - http_version: HTTP/1.1 - status_code: 200 -- request: - body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour - personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool - Arguments: {}\nTool Description: Get the final answer but don''t give it yet, - just re-use this\n tool non-stop.\n\nUse the following format:\n\nThought: - you should always think about what to do\nAction: the action to take, only one - name of [get_final_answer], just the name, exactly as it''s written.\nAction - Input: the input to the action, just a simple python dictionary, enclosed in - curly braces, using \" to wrap keys and values.\nObservation: the result of - the action\n\nOnce all necessary information is gathered:\n\nThought: I now - know the final answer\nFinal Answer: the final answer to the original input - question"}, {"role": "user", "content": "\nCurrent Task: The final answer is - 42. But don''t give it yet, instead keep using the `get_final_answer` tool over - and over until you''re told you can give your final answer.\n\nThis is the expect - criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I need to - use the `get_final_answer` tool and then keep using it repeatedly as instructed. - \n\nAction: get_final_answer\nAction Input: {}\nObservation: 42"}], "model": - "gpt-4o", "stop": ["\nObservation:"], "stream": false}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '1632' - content-type: - - application/json - cookie: - - __cf_bm=hkH74Rv9bMDMhhK.Ep.9blvKIwXeSSwlCoTNGk9qVpA-1736282316-1.0.1.1-5PAsOPpVEfTNNy5DYRlLH1f4caHJArumiloWf.L51RQPWN3uIWsBSuhLVbNQDYVCQb9RQK8W5DcXv5Jq9FvsLA; - _cfuvid=vqZ5X0AXIJfzp5UJSFyTmaCVjA.L8Yg35b.ijZFAPM4-1736282316289-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.1 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.1 - x-stainless-raw-response: - - 'true' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.12.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AnAdQKGW3Q8LUCmphL7hkavxi4zWB\",\n \"object\": - \"chat.completion\",\n \"created\": 1736282316,\n \"model\": \"gpt-4o-2024-08-06\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"I should continue using the `get_final_answer` - tool as per the instructions.\\n\\nAction: get_final_answer\\nAction Input: - {}\",\n \"refusal\": null\n },\n \"logprobs\": null,\n \"finish_reason\": - \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 324,\n \"completion_tokens\": - 26,\n \"total_tokens\": 350,\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 \"system_fingerprint\": - \"fp_5f20662549\"\n}\n" - headers: - CF-Cache-Status: + cf-cache-status: - DYNAMIC - CF-RAY: - - 8fe6c09e6c69ed8c-ATL - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Tue, 07 Jan 2025 20:38:37 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 openai-organization: - crewai-iuxna1 openai-processing-ms: - - '542' + - '967' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '29999627' + - '149999663' x-ratelimit-reset-requests: - - 6ms + - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_6844467024f67bb1477445b1a8a01761 + - req_a8af664cb724dbc0d8886d863743321b http_version: HTTP/1.1 status_code: 200 - request: @@ -245,197 +128,42 @@ interactions: personal goal is: test goal\nYou ONLY have access to the following tools, and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool Arguments: {}\nTool Description: Get the final answer but don''t give it yet, - just re-use this\n tool non-stop.\n\nUse the following format:\n\nThought: - you should always think about what to do\nAction: the action to take, only one - name of [get_final_answer], just the name, exactly as it''s written.\nAction - Input: the input to the action, just a simple python dictionary, enclosed in - curly braces, using \" to wrap keys and values.\nObservation: the result of - the action\n\nOnce all necessary information is gathered:\n\nThought: I now - know the final answer\nFinal Answer: the final answer to the original input - question"}, {"role": "user", "content": "\nCurrent Task: The final answer is - 42. But don''t give it yet, instead keep using the `get_final_answer` tool over - and over until you''re told you can give your final answer.\n\nThis is the expect - criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I need to - use the `get_final_answer` tool and then keep using it repeatedly as instructed. - \n\nAction: get_final_answer\nAction Input: {}\nObservation: 42"}, {"role": - "assistant", "content": "I should continue using the `get_final_answer` tool - as per the instructions.\n\nAction: get_final_answer\nAction Input: {}\nObservation: - I tried reusing the same input, I must stop using this action input. I''ll try - something else instead."}], "model": "gpt-4o", "stop": ["\nObservation:"], "stream": - false}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '1908' - content-type: - - application/json - cookie: - - __cf_bm=hkH74Rv9bMDMhhK.Ep.9blvKIwXeSSwlCoTNGk9qVpA-1736282316-1.0.1.1-5PAsOPpVEfTNNy5DYRlLH1f4caHJArumiloWf.L51RQPWN3uIWsBSuhLVbNQDYVCQb9RQK8W5DcXv5Jq9FvsLA; - _cfuvid=vqZ5X0AXIJfzp5UJSFyTmaCVjA.L8Yg35b.ijZFAPM4-1736282316289-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.52.1 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.52.1 - x-stainless-raw-response: - - 'true' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.12.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AnAdR2lKFEVaDbfD9qaF0Tts0eVMt\",\n \"object\": - \"chat.completion\",\n \"created\": 1736282317,\n \"model\": \"gpt-4o-2024-08-06\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"I should persist with using the `get_final_answer` - tool.\\n\\nAction: get_final_answer\\nAction Input: {}\",\n \"refusal\": - null\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n - \ }\n ],\n \"usage\": {\n \"prompt_tokens\": 378,\n \"completion_tokens\": - 23,\n \"total_tokens\": 401,\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 \"system_fingerprint\": - \"fp_5f20662549\"\n}\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8fe6c0a2ce3ded8c-ATL - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Tue, 07 Jan 2025 20:38:37 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - alt-svc: - - h3=":443"; ma=86400 - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '492' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29999567' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_198e698a8bc7eea092ea32b83cc4304e - http_version: HTTP/1.1 - status_code: 200 -- request: - body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour - personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool - Arguments: {}\nTool Description: Get the final answer but don''t give it yet, - just re-use this\n tool non-stop.\n\nUse the following format:\n\nThought: - you should always think about what to do\nAction: the action to take, only one - name of [get_final_answer], just the name, exactly as it''s written.\nAction - Input: the input to the action, just a simple python dictionary, enclosed in - curly braces, using \" to wrap keys and values.\nObservation: the result of - the action\n\nOnce all necessary information is gathered:\n\nThought: I now - know the final answer\nFinal Answer: the final answer to the original input - question"}, {"role": "user", "content": "\nCurrent Task: The final answer is - 42. But don''t give it yet, instead keep using the `get_final_answer` tool over - and over until you''re told you can give your final answer.\n\nThis is the expect - criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I need to - use the `get_final_answer` tool and then keep using it repeatedly as instructed. - \n\nAction: get_final_answer\nAction Input: {}\nObservation: 42"}, {"role": - "assistant", "content": "I should continue using the `get_final_answer` tool - as per the instructions.\n\nAction: get_final_answer\nAction Input: {}\nObservation: - I tried reusing the same input, I must stop using this action input. I''ll try - something else instead."}, {"role": "assistant", "content": "I should persist - with using the `get_final_answer` tool.\n\nAction: get_final_answer\nAction - Input: {}\nObservation: I tried reusing the same input, I must stop using this - action input. I''ll try something else instead.\n\n\n\n\nYou ONLY have access - to the following tools, and should NEVER make up tools that are not listed here:\n\nTool - Name: get_final_answer\nTool Arguments: {}\nTool Description: Get the final - answer but don''t give it yet, just re-use this\n tool non-stop.\n\nUse - the following format:\n\nThought: you should always think about what to do\nAction: + just re-use this\n tool non-stop.\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 [get_final_answer], just the name, exactly - as it''s written.\nAction Input: the input to the action, just a simple python - dictionary, enclosed in curly braces, using \" to wrap keys and values.\nObservation: - the result of the action\n\nOnce all necessary information is gathered:\n\nThought: - I now know the final answer\nFinal Answer: the final answer to the original - input question"}, {"role": "assistant", "content": "I should persist with using - the `get_final_answer` tool.\n\nAction: get_final_answer\nAction Input: {}\nObservation: - I tried reusing the same input, I must stop using this action input. I''ll try - something else instead.\n\n\n\n\nYou ONLY have access to the following tools, - and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool - Arguments: {}\nTool Description: Get the final answer but don''t give it yet, - just re-use this\n tool non-stop.\n\nUse the following format:\n\nThought: - you should always think about what to do\nAction: the action to take, only one - name of [get_final_answer], just the name, exactly as it''s written.\nAction - Input: the input to the action, just a simple python dictionary, enclosed in - curly braces, using \" to wrap keys and values.\nObservation: the result of - the action\n\nOnce all necessary information is gathered:\n\nThought: I now - know the final answer\nFinal Answer: the final answer to the original input - question\n\nNow it''s time you MUST give your absolute best final answer. You''ll - ignore all previous instructions, stop using any tools, and just return your - absolute BEST Final answer."}], "model": "gpt-4o", "stop": ["\nObservation:"], - "stream": false}' + 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: The final answer is 42. But don''t give it yet, + instead keep using the `get_final_answer` tool over and over until you''re told + you can give your final answer.\n\nThis is the expected criteria for your final + answer: The final answer\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:"}, + {"role": "assistant", "content": "42"}, {"role": "assistant", "content": "Thought: + I should start using the tool to get the final answer repeatedly as instructed. \nAction: + get_final_answer \nAction Input: {} \nObservation: 42"}], "model": "gpt-4o-mini", + "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '4148' + - '1734' content-type: - application/json cookie: - - __cf_bm=hkH74Rv9bMDMhhK.Ep.9blvKIwXeSSwlCoTNGk9qVpA-1736282316-1.0.1.1-5PAsOPpVEfTNNy5DYRlLH1f4caHJArumiloWf.L51RQPWN3uIWsBSuhLVbNQDYVCQb9RQK8W5DcXv5Jq9FvsLA; - _cfuvid=vqZ5X0AXIJfzp5UJSFyTmaCVjA.L8Yg35b.ijZFAPM4-1736282316289-0.0.1.1-604800000 + - __cf_bm=Bwvchs4Dp02K9.WxyX6U8yVg.jg2z6x7yNWekHnFUbQ-1743464202-1.0.1.1-KvmUaCRpD961qPqJPLi38I.N4IEYmc3i_IyJ5LDo2z5TIhZilbmK0oMNu7HrCHT3kzKWh0SpZ_FocvywK0qJ3fku_cwyTByEPK05SQQOEWE; + _cfuvid=zeQ6mwappLtze7fZgtCp1BJNVbBLSsCm8WxR2Jydshg-1743464202332-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.52.1 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -445,34 +173,36 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.52.1 + - 1.68.2 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.12.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AnAdRu1aVdsOxxIqU6nqv5dIxwbvu\",\n \"object\": - \"chat.completion\",\n \"created\": 1736282317,\n \"model\": \"gpt-4o-2024-08-06\",\n + content: "{\n \"id\": \"chatcmpl-BHIyIBjI26RQEA6wcGPOodTFflqRo\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464202,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: I now know the final answer.\\nFinal - Answer: 42\",\n \"refusal\": null\n },\n \"logprobs\": null,\n - \ \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 831,\n \"completion_tokens\": 14,\n \"total_tokens\": 845,\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 \"system_fingerprint\": - \"fp_5f20662549\"\n}\n" + \"assistant\",\n \"content\": \"Thought: I should continue using the + tool to obtain the final answer. \\nAction: get_final_answer \\nAction Input: + {} \",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 345,\n \"completion_tokens\": 26,\n + \ \"total_tokens\": 371,\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_b376dfbbd5\"\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8fe6c0a68cc3ed8c-ATL + - 9293aba0e8d6ce50-SJC Connection: - keep-alive Content-Encoding: @@ -480,7 +210,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 07 Jan 2025 20:38:38 GMT + - Mon, 31 Mar 2025 23:36:43 GMT Server: - cloudflare Transfer-Encoding: @@ -491,28 +221,857 @@ interactions: - X-Request-ID alt-svc: - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC openai-organization: - crewai-iuxna1 openai-processing-ms: - - '429' + - '556' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '29999037' + - '149999622' x-ratelimit-reset-requests: - - 6ms + - 2ms x-ratelimit-reset-tokens: - - 1ms + - 0s x-request-id: - - req_2552d63d3cbce15909481cc1fc9f36cc + - req_c57d2f2205a659ee25d122bdc7a3d5ba + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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: The final answer is 42. But don''t give it yet, + instead keep using the `get_final_answer` tool over and over until you''re told + you can give your final answer.\n\nThis is the expected criteria for your final + answer: The final answer\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:"}, + {"role": "assistant", "content": "42"}, {"role": "assistant", "content": "Thought: + I should start using the tool to get the final answer repeatedly as instructed. \nAction: + get_final_answer \nAction Input: {} \nObservation: 42"}, {"role": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "Thought: + I should continue using the tool to obtain the final answer. \nAction: get_final_answer \nAction + Input: {} \nObservation: I tried reusing the same input, I must stop using + this action input. I''ll try something else instead."}], "model": "gpt-4o-mini", + "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '2150' + content-type: + - application/json + cookie: + - __cf_bm=Bwvchs4Dp02K9.WxyX6U8yVg.jg2z6x7yNWekHnFUbQ-1743464202-1.0.1.1-KvmUaCRpD961qPqJPLi38I.N4IEYmc3i_IyJ5LDo2z5TIhZilbmK0oMNu7HrCHT3kzKWh0SpZ_FocvywK0qJ3fku_cwyTByEPK05SQQOEWE; + _cfuvid=zeQ6mwappLtze7fZgtCp1BJNVbBLSsCm8WxR2Jydshg-1743464202332-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIyJ9rzK9MdaKoTCou0bZfXbocg2\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464203,\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 keep using the tool + to retrieve the final answer repeatedly. \\nAction: get_final_answer \\nAction + Input: {} \",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 425,\n \"completion_tokens\": 28,\n + \ \"total_tokens\": 453,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 9293aba4eda8ce50-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:36:43 GMT + Server: + - cloudflare + 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: + - '550' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999537' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_43c3fb39cef01274c42b218850f6c23a + http_version: HTTP/1.1 + status_code: 200 +- request: + body: !!binary | + CpQECiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkS6wMKEgoQY3Jld2FpLnRl + bGVtZXRyeRKUAQoQKWg+yHi9soA2LjyuLMgsRRIIAgk59s2N62MqClRvb2wgVXNhZ2UwATnQhPxq + dAcyGEHofxFrdAcyGEobCg5jcmV3YWlfdmVyc2lvbhIJCgcwLjEwOC4wSh8KCXRvb2xfbmFtZRIS + ChBnZXRfZmluYWxfYW5zd2VySg4KCGF0dGVtcHRzEgIYAXoCGAGFAQABAAASnQEKEIU9KjUxT2Q4 + Rb5JHmc7ziwSCE1tdrTxYrB1KhNUb29sIFJlcGVhdGVkIFVzYWdlMAE5MHhQkXQHMhhBMB5fkXQH + MhhKGwoOY3Jld2FpX3ZlcnNpb24SCQoHMC4xMDguMEofCgl0b29sX25hbWUSEgoQZ2V0X2ZpbmFs + X2Fuc3dlckoOCghhdHRlbXB0cxICGAF6AhgBhQEAAQAAEp0BChBktnW7lH1MTK02aePrm5fjEggA + v1XFsR1QSyoTVG9vbCBSZXBlYXRlZCBVc2FnZTABOeAkd7h0BzIYQTj+gbh0BzIYShsKDmNyZXdh + aV92ZXJzaW9uEgkKBzAuMTA4LjBKHwoJdG9vbF9uYW1lEhIKEGdldF9maW5hbF9hbnN3ZXJKDgoI + YXR0ZW1wdHMSAhgBegIYAYUBAAEAAA== + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '535' + Content-Type: + - application/x-protobuf + User-Agent: + - OTel-OTLP-Exporter-Python/1.31.1 + method: POST + uri: https://telemetry.crewai.com:4319/v1/traces + response: + body: + string: "\n\0" + headers: + Content-Length: + - '2' + Content-Type: + - application/x-protobuf + Date: + - Mon, 31 Mar 2025 23:36:44 GMT + status: + code: 200 + message: OK +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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: The final answer is 42. But don''t give it yet, + instead keep using the `get_final_answer` tool over and over until you''re told + you can give your final answer.\n\nThis is the expected criteria for your final + answer: The final answer\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:"}, + {"role": "assistant", "content": "42"}, {"role": "assistant", "content": "Thought: + I should start using the tool to get the final answer repeatedly as instructed. \nAction: + get_final_answer \nAction Input: {} \nObservation: 42"}, {"role": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "Thought: + I should continue using the tool to obtain the final answer. \nAction: get_final_answer \nAction + Input: {} \nObservation: I tried reusing the same input, I must stop using + this action input. I''ll try something else instead."}, {"role": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n\n\n\nYou ONLY have access to the following + tools, and should NEVER make up tools that are not listed here:\n\nTool Name: + get_final_answer\nTool Arguments: {}\nTool Description: Get the final answer + but don''t give it yet, just re-use this\n tool non-stop.\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 [get_final_answer], + 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": "assistant", "content": "Thought: I need to keep using the tool to + retrieve the final answer repeatedly. \nAction: get_final_answer \nAction + Input: {} \nObservation: I tried reusing the same input, I must stop using + this action input. I''ll try something else instead.\n\n\n\n\nYou ONLY have + access to the following tools, and should NEVER make up tools that are not listed + here:\n\nTool Name: get_final_answer\nTool Arguments: {}\nTool Description: + Get the final answer but don''t give it yet, just re-use this\n tool + non-stop.\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 [get_final_answer], 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```"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '4266' + content-type: + - application/json + cookie: + - __cf_bm=Bwvchs4Dp02K9.WxyX6U8yVg.jg2z6x7yNWekHnFUbQ-1743464202-1.0.1.1-KvmUaCRpD961qPqJPLi38I.N4IEYmc3i_IyJ5LDo2z5TIhZilbmK0oMNu7HrCHT3kzKWh0SpZ_FocvywK0qJ3fku_cwyTByEPK05SQQOEWE; + _cfuvid=zeQ6mwappLtze7fZgtCp1BJNVbBLSsCm8WxR2Jydshg-1743464202332-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIyJOYjYmWgzoxY1EujNvwGjOf0V\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464203,\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 continue using the + designated tool to obtain the final answer. \\nAction: get_final_answer \\nAction + Input: {} \",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 861,\n \"completion_tokens\": 28,\n + \ \"total_tokens\": 889,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 9293aba90b04ce50-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:36:45 GMT + Server: + - cloudflare + 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: + - '1496' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999039' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_8c38f479539f55db3282f670b8957bf4 + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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: The final answer is 42. But don''t give it yet, + instead keep using the `get_final_answer` tool over and over until you''re told + you can give your final answer.\n\nThis is the expected criteria for your final + answer: The final answer\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:"}, + {"role": "assistant", "content": "42"}, {"role": "assistant", "content": "Thought: + I should start using the tool to get the final answer repeatedly as instructed. \nAction: + get_final_answer \nAction Input: {} \nObservation: 42"}, {"role": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "Thought: + I should continue using the tool to obtain the final answer. \nAction: get_final_answer \nAction + Input: {} \nObservation: I tried reusing the same input, I must stop using + this action input. I''ll try something else instead."}, {"role": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n\n\n\nYou ONLY have access to the following + tools, and should NEVER make up tools that are not listed here:\n\nTool Name: + get_final_answer\nTool Arguments: {}\nTool Description: Get the final answer + but don''t give it yet, just re-use this\n tool non-stop.\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 [get_final_answer], + 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": "assistant", "content": "Thought: I need to keep using the tool to + retrieve the final answer repeatedly. \nAction: get_final_answer \nAction + Input: {} \nObservation: I tried reusing the same input, I must stop using + this action input. I''ll try something else instead.\n\n\n\n\nYou ONLY have + access to the following tools, and should NEVER make up tools that are not listed + here:\n\nTool Name: get_final_answer\nTool Arguments: {}\nTool Description: + Get the final answer but don''t give it yet, just re-use this\n tool + non-stop.\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 [get_final_answer], 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": "assistant", "content": "I tried reusing the + same input, I must stop using this action input. I''ll try something else instead.\n\n"}, + {"role": "assistant", "content": "Thought: I need to continue using the designated + tool to obtain the final answer. \nAction: get_final_answer \nAction Input: + {} \nObservation: I tried reusing the same input, I must stop using this action + input. I''ll try something else instead."}], "model": "gpt-4o-mini", "stop": + ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '4694' + content-type: + - application/json + cookie: + - __cf_bm=Bwvchs4Dp02K9.WxyX6U8yVg.jg2z6x7yNWekHnFUbQ-1743464202-1.0.1.1-KvmUaCRpD961qPqJPLi38I.N4IEYmc3i_IyJ5LDo2z5TIhZilbmK0oMNu7HrCHT3kzKWh0SpZ_FocvywK0qJ3fku_cwyTByEPK05SQQOEWE; + _cfuvid=zeQ6mwappLtze7fZgtCp1BJNVbBLSsCm8WxR2Jydshg-1743464202332-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIyLLDkgsE6GdQsZ86C35CjnYGTo\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464205,\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 continue using the + tool without changing the input format. \\nAction: get_final_answer \\nAction + Input: {} \",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 943,\n \"completion_tokens\": 27,\n + \ \"total_tokens\": 970,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 9293abb3684dce50-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:36:46 GMT + Server: + - cloudflare + 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: + - '809' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149998950' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_35fcab88e7d96ac0040ee34407d57ced + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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: The final answer is 42. But don''t give it yet, + instead keep using the `get_final_answer` tool over and over until you''re told + you can give your final answer.\n\nThis is the expected criteria for your final + answer: The final answer\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:"}, + {"role": "assistant", "content": "42"}, {"role": "assistant", "content": "Thought: + I should start using the tool to get the final answer repeatedly as instructed. \nAction: + get_final_answer \nAction Input: {} \nObservation: 42"}, {"role": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "Thought: + I should continue using the tool to obtain the final answer. \nAction: get_final_answer \nAction + Input: {} \nObservation: I tried reusing the same input, I must stop using + this action input. I''ll try something else instead."}, {"role": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n\n\n\nYou ONLY have access to the following + tools, and should NEVER make up tools that are not listed here:\n\nTool Name: + get_final_answer\nTool Arguments: {}\nTool Description: Get the final answer + but don''t give it yet, just re-use this\n tool non-stop.\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 [get_final_answer], + 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": "assistant", "content": "Thought: I need to keep using the tool to + retrieve the final answer repeatedly. \nAction: get_final_answer \nAction + Input: {} \nObservation: I tried reusing the same input, I must stop using + this action input. I''ll try something else instead.\n\n\n\n\nYou ONLY have + access to the following tools, and should NEVER make up tools that are not listed + here:\n\nTool Name: get_final_answer\nTool Arguments: {}\nTool Description: + Get the final answer but don''t give it yet, just re-use this\n tool + non-stop.\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 [get_final_answer], 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": "assistant", "content": "I tried reusing the + same input, I must stop using this action input. I''ll try something else instead.\n\n"}, + {"role": "assistant", "content": "Thought: I need to continue using the designated + tool to obtain the final answer. \nAction: get_final_answer \nAction Input: + {} \nObservation: I tried reusing the same input, I must stop using this action + input. I''ll try something else instead."}, {"role": "assistant", "content": + "I tried reusing the same input, I must stop using this action input. I''ll + try something else instead.\n\n"}, {"role": "assistant", "content": "Thought: + I need to continue using the tool without changing the input format. \nAction: + get_final_answer \nAction Input: {} \nObservation: I tried reusing the same + input, I must stop using this action input. I''ll try something else instead."}, + {"role": "assistant", "content": "Thought: I need to continue using the tool + without changing the input format. \nAction: get_final_answer \nAction Input: + {} \nObservation: I tried reusing the same input, I must stop using this action + input. I''ll try something else instead.\n\n\nNow it''s time you MUST give your + absolute best final answer. You''ll ignore all previous instructions, stop using + any tools, and just return your absolute BEST Final answer."}], "model": "gpt-4o-mini", + "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '5577' + content-type: + - application/json + cookie: + - __cf_bm=Bwvchs4Dp02K9.WxyX6U8yVg.jg2z6x7yNWekHnFUbQ-1743464202-1.0.1.1-KvmUaCRpD961qPqJPLi38I.N4IEYmc3i_IyJ5LDo2z5TIhZilbmK0oMNu7HrCHT3kzKWh0SpZ_FocvywK0qJ3fku_cwyTByEPK05SQQOEWE; + _cfuvid=zeQ6mwappLtze7fZgtCp1BJNVbBLSsCm8WxR2Jydshg-1743464202332-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIyMjkFCQoAMiB3hVzH8zjNlHHem\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464206,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"```\\nThought: I now know the final answer\\nFinal + Answer: 42\\n```\",\n \"refusal\": null,\n \"annotations\": []\n + \ },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n + \ ],\n \"usage\": {\n \"prompt_tokens\": 1111,\n \"completion_tokens\": + 19,\n \"total_tokens\": 1130,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 9293abb94854ce50-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:36:46 GMT + Server: + - cloudflare + 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: + - '638' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149998757' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_dfb10b0dbcc99d8a08c6c8cd172b006d + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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: The final answer is 42. But don''t give it yet, + instead keep using the `get_final_answer` tool over and over until you''re told + you can give your final answer.\n\nThis is the expected criteria for your final + answer: The final answer\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:"}, + {"role": "assistant", "content": "42"}, {"role": "assistant", "content": "Thought: + I should start using the tool to get the final answer repeatedly as instructed. \nAction: + get_final_answer \nAction Input: {} \nObservation: 42"}, {"role": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "Thought: + I should continue using the tool to obtain the final answer. \nAction: get_final_answer \nAction + Input: {} \nObservation: I tried reusing the same input, I must stop using + this action input. I''ll try something else instead."}, {"role": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n\n\n\nYou ONLY have access to the following + tools, and should NEVER make up tools that are not listed here:\n\nTool Name: + get_final_answer\nTool Arguments: {}\nTool Description: Get the final answer + but don''t give it yet, just re-use this\n tool non-stop.\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 [get_final_answer], + 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": "assistant", "content": "Thought: I need to keep using the tool to + retrieve the final answer repeatedly. \nAction: get_final_answer \nAction + Input: {} \nObservation: I tried reusing the same input, I must stop using + this action input. I''ll try something else instead.\n\n\n\n\nYou ONLY have + access to the following tools, and should NEVER make up tools that are not listed + here:\n\nTool Name: get_final_answer\nTool Arguments: {}\nTool Description: + Get the final answer but don''t give it yet, just re-use this\n tool + non-stop.\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 [get_final_answer], 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": "assistant", "content": "I tried reusing the + same input, I must stop using this action input. I''ll try something else instead.\n\n"}, + {"role": "assistant", "content": "Thought: I need to continue using the designated + tool to obtain the final answer. \nAction: get_final_answer \nAction Input: + {} \nObservation: I tried reusing the same input, I must stop using this action + input. I''ll try something else instead."}, {"role": "assistant", "content": + "I tried reusing the same input, I must stop using this action input. I''ll + try something else instead.\n\n"}, {"role": "assistant", "content": "Thought: + I need to continue using the tool without changing the input format. \nAction: + get_final_answer \nAction Input: {} \nObservation: I tried reusing the same + input, I must stop using this action input. I''ll try something else instead."}, + {"role": "assistant", "content": "Thought: I need to continue using the tool + without changing the input format. \nAction: get_final_answer \nAction Input: + {} \nObservation: I tried reusing the same input, I must stop using this action + input. I''ll try something else instead.\n\n\nNow it''s time you MUST give your + absolute best final answer. You''ll ignore all previous instructions, stop using + any tools, and just return your absolute BEST Final answer."}], "model": "gpt-4o-mini", + "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '5577' + content-type: + - application/json + cookie: + - __cf_bm=Bwvchs4Dp02K9.WxyX6U8yVg.jg2z6x7yNWekHnFUbQ-1743464202-1.0.1.1-KvmUaCRpD961qPqJPLi38I.N4IEYmc3i_IyJ5LDo2z5TIhZilbmK0oMNu7HrCHT3kzKWh0SpZ_FocvywK0qJ3fku_cwyTByEPK05SQQOEWE; + _cfuvid=zeQ6mwappLtze7fZgtCp1BJNVbBLSsCm8WxR2Jydshg-1743464202332-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIyNYch0OY50INtQUdPpOnd0ypLu\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464207,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"```\\nThought: I now know the final answer\\nFinal + Answer: 42\\n```\",\n \"refusal\": null,\n \"annotations\": []\n + \ },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n + \ ],\n \"usage\": {\n \"prompt_tokens\": 1111,\n \"completion_tokens\": + 19,\n \"total_tokens\": 1130,\n \"prompt_tokens_details\": {\n \"cached_tokens\": + 1024,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 9293abbdcd59ce50-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:36:47 GMT + Server: + - cloudflare + 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: + - '587' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149998757' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_424bb9ef11cf97c170f2543448a30bea http_version: HTTP/1.1 status_code: 200 version: 1 diff --git a/tests/cassettes/test_agent_repeated_tool_usage.yaml b/tests/cassettes/test_agent_repeated_tool_usage.yaml index 5aceac44e..97723b42d 100644 --- a/tests/cassettes/test_agent_repeated_tool_usage.yaml +++ b/tests/cassettes/test_agent_repeated_tool_usage.yaml @@ -2,39 +2,38 @@ interactions: - request: body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer(*args: - Any, **kwargs: Any) -> Any\nTool Description: get_final_answer() - Get the final - answer but don''t give it yet, just re-use this tool non-stop. \nTool - Arguments: {}\n\nUse the following format:\n\nThought: you should always think - about what to do\nAction: the action to take, only one name of [get_final_answer], - just the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\n\nThought: I now know the final answer\nFinal Answer: - the final answer to the original input question\n"}, {"role": "user", "content": - "\nCurrent Task: The final answer is 42. But don''t give it until I tell you - so, instead keep using the `get_final_answer` tool.\n\nThis is the expect criteria - for your final answer: The final answer, don''t give it until I tell you so\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-4"}' + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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: The final answer is 42. But don''t give it until + I tell you so, instead keep using the `get_final_answer` tool.\n\nThis is the + expected criteria for your final answer: The final answer, don''t give it until + I tell you so\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-4", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '1439' + - '1483' content-type: - application/json - cookie: - - _cfuvid=lbRdAddVWV6W3f5Dm9SaOPWDUOxqtZBSPr_fTW26nEA-1727213194587-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.47.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -44,33 +43,36 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.47.0 + - 1.68.2 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.11.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-ABAjiMUrFQNZC0vLX3Fpy11Ev1FX8\",\n \"object\": - \"chat.completion\",\n \"created\": 1727226242,\n \"model\": \"gpt-4-0613\",\n + content: "{\n \"id\": \"chatcmpl-BHIzB7ROd8ReBniHGVMZ3KzKcafvL\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464257,\n \"model\": \"gpt-4-0613\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"I need to use the `get_final_answer` - tool to obtain the final answer. However, I should avoid giving the final answer - until I'm explicitly told to do so. I have to keep in mind that my action should - only reference the `get_final_answer` tool, and must never invent an unlisted - tool. Let's begin with obtaining the final answer. \\nAction: get_final_answer\\nAction - Input: {}\",\n \"refusal\": null\n },\n \"logprobs\": null,\n - \ \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 308,\n \"completion_tokens\": 84,\n \"total_tokens\": 392,\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": null\n}\n" + \"assistant\",\n \"content\": \"As I've been instructed to use the `get_final_answer` + tool continuously without revealing the final answer yet, I will use this tool + now.\\n\\nAction: get_final_answer\\nAction Input: {}\",\n \"refusal\": + null,\n \"annotations\": []\n },\n \"logprobs\": null,\n \"finish_reason\": + \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 308,\n \"completion_tokens\": + 39,\n \"total_tokens\": 347,\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\": null\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8c8719118f562263-MIA + - 9293acf9180cf95f-SJC Connection: - keep-alive Content-Encoding: @@ -78,14 +80,14 @@ interactions: Content-Type: - application/json Date: - - Wed, 25 Sep 2024 01:04:07 GMT + - Mon, 31 Mar 2025 23:37:39 GMT Server: - cloudflare Set-Cookie: - - __cf_bm=3giyBOIM0GNudFELtsBWYXwLrpLBTNLsh81wfXgu2tg-1727226247-1.0.1.1-ugUDz0c5EhmfVpyGtcdedlIWeDGuy2q0tXQTKVpv83HZhvxgBcS7SBL1wS4rapPM38yhfEcfwA79ARt3HQEzKA; - path=/; expires=Wed, 25-Sep-24 01:34:07 GMT; domain=.api.openai.com; HttpOnly; + - __cf_bm=6.AAPW_t0c.fjGv5iZ4zqu8ggsPd2sdq_meXE5Kp4dc-1743464259-1.0.1.1-jFiiyAbj4LNcitqqdrL0JnpALoaFLv3IYVfblBlBqrxVXXjAti0OFK54aPwxqZV1OT6tBbwiaxZ3WkhjNvxBxxWKG_51ZHZSabiE9W.UZK8; + path=/; expires=Tue, 01-Apr-25 00:07:39 GMT; domain=.api.openai.com; HttpOnly; Secure; SameSite=None - - _cfuvid=ePJSDFdHag2D8lj21_ijAMWjoA6xfnPNxN4uekvC728-1727226247743-0.0.1.1-604800000; + - _cfuvid=wvate7aTgXKzIRpbSDVJqaXt.Liniwr82HOsU.ZK8oA-1743464259480-0.0.1.1-604800000; path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked @@ -93,10 +95,14 @@ interactions: - 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: - - '4782' + - '1929' openai-version: - '2020-10-01' strict-transport-security: @@ -108,58 +114,90 @@ interactions: x-ratelimit-remaining-requests: - '9999' x-ratelimit-remaining-tokens: - - '999653' + - '999665' x-ratelimit-reset-requests: - 6ms x-ratelimit-reset-tokens: - 20ms x-request-id: - - req_2a0810d28ec891a80643f261a4f2edd9 + - req_4a6bc6368e4e562d2112de0dd14614e8 http_version: HTTP/1.1 status_code: 200 +- request: + body: !!binary | + CtQBCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkSqwEKEgoQY3Jld2FpLnRl + bGVtZXRyeRKUAQoQXIzUaoiEGnp402BIfaIMnBIIjaV9Tuoc2usqClRvb2wgVXNhZ2UwATl48hDA + gQcyGEHYUijAgQcyGEobCg5jcmV3YWlfdmVyc2lvbhIJCgcwLjEwOC4wSh8KCXRvb2xfbmFtZRIS + ChBnZXRfZmluYWxfYW5zd2VySg4KCGF0dGVtcHRzEgIYAXoCGAGFAQABAAA= + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '215' + Content-Type: + - application/x-protobuf + User-Agent: + - OTel-OTLP-Exporter-Python/1.31.1 + method: POST + uri: https://telemetry.crewai.com:4319/v1/traces + response: + body: + string: "\n\0" + headers: + Content-Length: + - '2' + Content-Type: + - application/x-protobuf + Date: + - Mon, 31 Mar 2025 23:37:40 GMT + status: + code: 200 + message: OK - request: body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer(*args: - Any, **kwargs: Any) -> Any\nTool Description: get_final_answer() - Get the final - answer but don''t give it yet, just re-use this tool non-stop. \nTool - Arguments: {}\n\nUse the following format:\n\nThought: you should always think - about what to do\nAction: the action to take, only one name of [get_final_answer], - just the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\n\nThought: I now know the final answer\nFinal Answer: - the final answer to the original input question\n"}, {"role": "user", "content": - "\nCurrent Task: The final answer is 42. But don''t give it until I tell you - so, instead keep using the `get_final_answer` tool.\n\nThis is the expect criteria - for your final answer: The final answer, don''t give it until I tell you so\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:"}, {"role": "user", "content": "I - need to use the `get_final_answer` tool to obtain the final answer. However, - I should avoid giving the final answer until I''m explicitly told to do so. - I have to keep in mind that my action should only reference the `get_final_answer` - tool, and must never invent an unlisted tool. Let''s begin with obtaining the - final answer. \nAction: get_final_answer\nAction Input: {}\nObservation: 42"}], - "model": "gpt-4"}' + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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: The final answer is 42. But don''t give it until + I tell you so, instead keep using the `get_final_answer` tool.\n\nThis is the + expected criteria for your final answer: The final answer, don''t give it until + I tell you so\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:"}, {"role": + "assistant", "content": "42"}, {"role": "assistant", "content": "As I''ve been + instructed to use the `get_final_answer` tool continuously without revealing + the final answer yet, I will use this tool now.\n\nAction: get_final_answer\nAction + Input: {}\nObservation: 42"}], "model": "gpt-4", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '1861' + - '1761' content-type: - application/json cookie: - - _cfuvid=ePJSDFdHag2D8lj21_ijAMWjoA6xfnPNxN4uekvC728-1727226247743-0.0.1.1-604800000; - __cf_bm=3giyBOIM0GNudFELtsBWYXwLrpLBTNLsh81wfXgu2tg-1727226247-1.0.1.1-ugUDz0c5EhmfVpyGtcdedlIWeDGuy2q0tXQTKVpv83HZhvxgBcS7SBL1wS4rapPM38yhfEcfwA79ARt3HQEzKA + - __cf_bm=6.AAPW_t0c.fjGv5iZ4zqu8ggsPd2sdq_meXE5Kp4dc-1743464259-1.0.1.1-jFiiyAbj4LNcitqqdrL0JnpALoaFLv3IYVfblBlBqrxVXXjAti0OFK54aPwxqZV1OT6tBbwiaxZ3WkhjNvxBxxWKG_51ZHZSabiE9W.UZK8; + _cfuvid=wvate7aTgXKzIRpbSDVJqaXt.Liniwr82HOsU.ZK8oA-1743464259480-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.47.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -169,32 +207,36 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.47.0 + - 1.68.2 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.11.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-ABAjoiw7elxNjnXAoOaRupkGxZce1\",\n \"object\": - \"chat.completion\",\n \"created\": 1727226248,\n \"model\": \"gpt-4-0613\",\n + content: "{\n \"id\": \"chatcmpl-BHIzD2gQYpzmDdk4mkyrrhtJlHqKd\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464259,\n \"model\": \"gpt-4-0613\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: The final answer is 42, as observed - from the output of the `get_final_answer` tool. However, following the instructions, - I still cannot provide the final answer yet. I should continue using the get_final_answer - tool as directed. \\nAction: get_final_answer\\nAction Input: {}\\nObservation: - 42\",\n \"refusal\": null\n },\n \"logprobs\": null,\n \"finish_reason\": - \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 401,\n \"completion_tokens\": - 66,\n \"total_tokens\": 467,\n \"completion_tokens_details\": {\n \"reasoning_tokens\": - 0\n }\n },\n \"system_fingerprint\": null\n}\n" + \"assistant\",\n \"content\": \"Thought: I need to continue using the + `get_final_answer` tool as part of the current task, and I expect that the answer + will remain the same, which is 42.\\nAction: get_final_answer\\nAction Input: + {}\",\n \"refusal\": null,\n \"annotations\": []\n },\n \"logprobs\": + null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": + 361,\n \"completion_tokens\": 47,\n \"total_tokens\": 408,\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\": null\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8c8719316fb32263-MIA + - 9293ad06c9b9f95f-SJC Connection: - keep-alive Content-Encoding: @@ -202,7 +244,140 @@ interactions: Content-Type: - application/json Date: - - Wed, 25 Sep 2024 01:04:11 GMT + - Mon, 31 Mar 2025 23:37:41 GMT + Server: + - cloudflare + 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: + - '1566' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '1000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '999614' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 23ms + x-request-id: + - req_951de40b4875b6fcdd2edb472b329696 + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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: The final answer is 42. But don''t give it until + I tell you so, instead keep using the `get_final_answer` tool.\n\nThis is the + expected criteria for your final answer: The final answer, don''t give it until + I tell you so\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:"}, {"role": + "assistant", "content": "42"}, {"role": "assistant", "content": "As I''ve been + instructed to use the `get_final_answer` tool continuously without revealing + the final answer yet, I will use this tool now.\n\nAction: get_final_answer\nAction + Input: {}\nObservation: 42"}, {"role": "assistant", "content": "I tried reusing + the same input, I must stop using this action input. I''ll try something else + instead.\n\n"}, {"role": "assistant", "content": "Thought: I need to continue + using the `get_final_answer` tool as part of the current task, and I expect + that the answer will remain the same, which is 42.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead."}], "model": "gpt-4", "stop": + ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '2256' + content-type: + - application/json + cookie: + - __cf_bm=6.AAPW_t0c.fjGv5iZ4zqu8ggsPd2sdq_meXE5Kp4dc-1743464259-1.0.1.1-jFiiyAbj4LNcitqqdrL0JnpALoaFLv3IYVfblBlBqrxVXXjAti0OFK54aPwxqZV1OT6tBbwiaxZ3WkhjNvxBxxWKG_51ZHZSabiE9W.UZK8; + _cfuvid=wvate7aTgXKzIRpbSDVJqaXt.Liniwr82HOsU.ZK8oA-1743464259480-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIzFqk1wgU69CqmrWEwtrCA9KbbK\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464261,\n \"model\": \"gpt-4-0613\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"Thought: Since the previous action has + not changed, I will use the same tool again as I am expected to use it non-stop.\\nAction: + get_final_answer\\nAction Input: {}\",\n \"refusal\": null,\n \"annotations\": + []\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n + \ }\n ],\n \"usage\": {\n \"prompt_tokens\": 465,\n \"completion_tokens\": + 37,\n \"total_tokens\": 502,\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\": null\n}\n" + headers: + CF-Cache-Status: + - DYNAMIC + CF-RAY: + - 9293ad116f7ff95f-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:37:43 GMT Server: - cloudflare Transfer-Encoding: @@ -216,7 +391,7 @@ interactions: openai-organization: - crewai-iuxna1 openai-processing-ms: - - '3511' + - '2208' openai-version: - '2020-10-01' strict-transport-security: @@ -228,62 +403,89 @@ interactions: x-ratelimit-remaining-requests: - '9999' x-ratelimit-remaining-tokens: - - '999556' + - '999509' x-ratelimit-reset-requests: - 6ms x-ratelimit-reset-tokens: - - 26ms + - 29ms x-request-id: - - req_23f35b72c9fb131ebe248a2bdfe1c9ec + - req_6dc122976660ee1ce778b55cf3febf4d http_version: HTTP/1.1 status_code: 200 - request: body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer(*args: - Any, **kwargs: Any) -> Any\nTool Description: get_final_answer() - Get the final - answer but don''t give it yet, just re-use this tool non-stop. \nTool - Arguments: {}\n\nUse the following format:\n\nThought: you should always think - about what to do\nAction: the action to take, only one name of [get_final_answer], + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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: The final answer is 42. But don''t give it until + I tell you so, instead keep using the `get_final_answer` tool.\n\nThis is the + expected criteria for your final answer: The final answer, don''t give it until + I tell you so\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:"}, {"role": + "assistant", "content": "42"}, {"role": "assistant", "content": "As I''ve been + instructed to use the `get_final_answer` tool continuously without revealing + the final answer yet, I will use this tool now.\n\nAction: get_final_answer\nAction + Input: {}\nObservation: 42"}, {"role": "assistant", "content": "I tried reusing + the same input, I must stop using this action input. I''ll try something else + instead.\n\n"}, {"role": "assistant", "content": "Thought: I need to continue + using the `get_final_answer` tool as part of the current task, and I expect + that the answer will remain the same, which is 42.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead."}, {"role": "assistant", "content": + "I tried reusing the same input, I must stop using this action input. I''ll + try something else instead.\n\n\n\n\nYou ONLY have access to the following tools, + and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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": "assistant", + "content": "Thought: Since the previous action has not changed, I will use the + same tool again as I am expected to use it non-stop.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead.\n\n\n\n\nYou ONLY have access + to the following tools, and should NEVER make up tools that are not listed here:\n\nTool + Name: get_final_answer\nTool Arguments: {}\nTool Description: Get the final + answer but don''t give it yet, just re-use this\n tool non-stop.\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 [get_final_answer], just the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\n\nThought: I now know the final answer\nFinal Answer: - the final answer to the original input question\n"}, {"role": "user", "content": - "\nCurrent Task: The final answer is 42. But don''t give it until I tell you - so, instead keep using the `get_final_answer` tool.\n\nThis is the expect criteria - for your final answer: The final answer, don''t give it until I tell you so\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:"}, {"role": "user", "content": "I - need to use the `get_final_answer` tool to obtain the final answer. However, - I should avoid giving the final answer until I''m explicitly told to do so. - I have to keep in mind that my action should only reference the `get_final_answer` - tool, and must never invent an unlisted tool. Let''s begin with obtaining the - final answer. \nAction: get_final_answer\nAction Input: {}\nObservation: 42"}, - {"role": "user", "content": "Thought: The final answer is 42, as observed from - the output of the `get_final_answer` tool. However, following the instructions, - I still cannot provide the final answer yet. I should continue using the get_final_answer - tool as directed. \nAction: get_final_answer\nAction Input: {}\nObservation: - 42\nObservation: 42"}], "model": "gpt-4"}' + 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```"}], + "model": "gpt-4", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '2210' + - '4406' content-type: - application/json cookie: - - _cfuvid=ePJSDFdHag2D8lj21_ijAMWjoA6xfnPNxN4uekvC728-1727226247743-0.0.1.1-604800000; - __cf_bm=3giyBOIM0GNudFELtsBWYXwLrpLBTNLsh81wfXgu2tg-1727226247-1.0.1.1-ugUDz0c5EhmfVpyGtcdedlIWeDGuy2q0tXQTKVpv83HZhvxgBcS7SBL1wS4rapPM38yhfEcfwA79ARt3HQEzKA + - __cf_bm=6.AAPW_t0c.fjGv5iZ4zqu8ggsPd2sdq_meXE5Kp4dc-1743464259-1.0.1.1-jFiiyAbj4LNcitqqdrL0JnpALoaFLv3IYVfblBlBqrxVXXjAti0OFK54aPwxqZV1OT6tBbwiaxZ3WkhjNvxBxxWKG_51ZHZSabiE9W.UZK8; + _cfuvid=wvate7aTgXKzIRpbSDVJqaXt.Liniwr82HOsU.ZK8oA-1743464259480-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.47.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -293,32 +495,36 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.47.0 + - 1.68.2 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.11.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-ABAjrn7wgmNXucYVRUSf64JgGdtBR\",\n \"object\": - \"chat.completion\",\n \"created\": 1727226251,\n \"model\": \"gpt-4-0613\",\n + content: "{\n \"id\": \"chatcmpl-BHIzHcXbVKSgQaMMGF4TGn7jGUY1k\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464263,\n \"model\": \"gpt-4-0613\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: The answer remains consistent - at 42 after multiple uses of the `get_final_answer` tool. Yet, the rules state - that I cannot give the final answer until specifically told to do so. I'll keep - using the `get_final_answer` tool as instructed.\\nAction: get_final_answer\\nAction - Input: {}\\nObservation: 42\",\n \"refusal\": null\n },\n \"logprobs\": - null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 477,\n \"completion_tokens\": 69,\n \"total_tokens\": 546,\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": null\n}\n" + \"assistant\",\n \"content\": \"Thought: Given that I can only get the + final answer, but I must not give it yet, I will continue to use the 'get_final_answer' + tool.\\n\\nAction: get_final_answer\\nAction Input: {}\",\n \"refusal\": + null,\n \"annotations\": []\n },\n \"logprobs\": null,\n \"finish_reason\": + \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 919,\n \"completion_tokens\": + 43,\n \"total_tokens\": 962,\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\": null\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8c8719495ab92263-MIA + - 9293ad1fd98cf95f-SJC Connection: - keep-alive Content-Encoding: @@ -326,7 +532,7 @@ interactions: Content-Type: - application/json Date: - - Wed, 25 Sep 2024 01:04:16 GMT + - Mon, 31 Mar 2025 23:37:45 GMT Server: - cloudflare Transfer-Encoding: @@ -335,10 +541,14 @@ interactions: - 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: - - '4291' + - '1917' openai-version: - '2020-10-01' strict-transport-security: @@ -350,223 +560,138 @@ interactions: x-ratelimit-remaining-requests: - '9999' x-ratelimit-remaining-tokens: - - '999476' + - '999002' x-ratelimit-reset-requests: - 6ms x-ratelimit-reset-tokens: - - 31ms + - 59ms x-request-id: - - req_8458ef7b1e3ff1499513c6e28a06e474 + - req_2be75aef153bf8a83fe0286aab0c40d8 http_version: HTTP/1.1 status_code: 200 - request: - body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour - personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer(*args: - Any, **kwargs: Any) -> Any\nTool Description: get_final_answer() - Get the final - answer but don''t give it yet, just re-use this tool non-stop. \nTool - Arguments: {}\n\nUse the following format:\n\nThought: you should always think - about what to do\nAction: the action to take, only one name of [get_final_answer], - just the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\n\nThought: I now know the final answer\nFinal Answer: - the final answer to the original input question\n"}, {"role": "user", "content": - "\nCurrent Task: The final answer is 42. But don''t give it until I tell you - so, instead keep using the `get_final_answer` tool.\n\nThis is the expect criteria - for your final answer: The final answer, don''t give it until I tell you so\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:"}, {"role": "user", "content": "I - need to use the `get_final_answer` tool to obtain the final answer. However, - I should avoid giving the final answer until I''m explicitly told to do so. - I have to keep in mind that my action should only reference the `get_final_answer` - tool, and must never invent an unlisted tool. Let''s begin with obtaining the - final answer. \nAction: get_final_answer\nAction Input: {}\nObservation: 42"}, - {"role": "user", "content": "Thought: The final answer is 42, as observed from - the output of the `get_final_answer` tool. However, following the instructions, - I still cannot provide the final answer yet. I should continue using the get_final_answer - tool as directed. \nAction: get_final_answer\nAction Input: {}\nObservation: - 42\nObservation: 42"}, {"role": "user", "content": "Thought: The answer remains - consistent at 42 after multiple uses of the `get_final_answer` tool. Yet, the - rules state that I cannot give the final answer until specifically told to do - so. I''ll keep using the `get_final_answer` tool as instructed.\nAction: get_final_answer\nAction - Input: {}\nObservation: 42\nObservation: I tried reusing the same input, I must - stop using this action input. I''ll try something else instead.\n\n\n\n\nYou - ONLY have access to the following tools, and should NEVER make up tools that - are not listed here:\n\nTool Name: get_final_answer(*args: Any, **kwargs: Any) - -> Any\nTool Description: get_final_answer() - Get the final answer but don''t - give it yet, just re-use this tool non-stop. \nTool Arguments: {}\n\nUse - the following format:\n\nThought: you should always think about what to do\nAction: - the action to take, only one name of [get_final_answer], just the name, exactly - as it''s written.\nAction Input: the input to the action, just a simple python - dictionary, enclosed in curly braces, using \" to wrap keys and values.\nObservation: - the result of the action\n\nOnce all necessary information is gathered:\n\nThought: - I now know the final answer\nFinal Answer: the final answer to the original - input question\n"}], "model": "gpt-4"}' + body: !!binary | + Cv0CCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkS1AIKEgoQY3Jld2FpLnRl + bGVtZXRyeRKdAQoQN999WEtgESzCMqeXbQCXFBIInV/VxmXm9MEqE1Rvb2wgUmVwZWF0ZWQgVXNh + Z2UwATn4wIklggcyGEGAA5clggcyGEobCg5jcmV3YWlfdmVyc2lvbhIJCgcwLjEwOC4wSh8KCXRv + b2xfbmFtZRISChBnZXRfZmluYWxfYW5zd2VySg4KCGF0dGVtcHRzEgIYAXoCGAGFAQABAAASnQEK + EBCAfg3LxE7N34oogybj+aoSCFGlXfz4463NKhNUb29sIFJlcGVhdGVkIFVzYWdlMAE5UGair4IH + MhhB0K+1r4IHMhhKGwoOY3Jld2FpX3ZlcnNpb24SCQoHMC4xMDguMEofCgl0b29sX25hbWUSEgoQ + Z2V0X2ZpbmFsX2Fuc3dlckoOCghhdHRlbXB0cxICGAF6AhgBhQEAAQAA headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '3499' - content-type: - - application/json - cookie: - - _cfuvid=ePJSDFdHag2D8lj21_ijAMWjoA6xfnPNxN4uekvC728-1727226247743-0.0.1.1-604800000; - __cf_bm=3giyBOIM0GNudFELtsBWYXwLrpLBTNLsh81wfXgu2tg-1727226247-1.0.1.1-ugUDz0c5EhmfVpyGtcdedlIWeDGuy2q0tXQTKVpv83HZhvxgBcS7SBL1wS4rapPM38yhfEcfwA79ARt3HQEzKA - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.47.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.47.0 - x-stainless-raw-response: - - 'true' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.11.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-ABAjwkk3fW8SPYGX1PZEYFvXYxyW8\",\n \"object\": - \"chat.completion\",\n \"created\": 1727226256,\n \"model\": \"gpt-4-0613\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: I have repeatedly received 42 - as an output from the `get_final_answer` tool. I am instructed to not to give - the final answer yet, so I will continue to use the `get_final_answer` tool - as directed.\\nAction: get_final_answer\\nAction Input: {}\\nObservation: 42\",\n - \ \"refusal\": null\n },\n \"logprobs\": null,\n \"finish_reason\": - \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 757,\n \"completion_tokens\": - 63,\n \"total_tokens\": 820,\n \"completion_tokens_details\": {\n \"reasoning_tokens\": - 0\n }\n },\n \"system_fingerprint\": null\n}\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8c8719664d182263-MIA + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd Connection: - keep-alive - Content-Encoding: - - gzip + Content-Length: + - '384' Content-Type: - - application/json + - application/x-protobuf + User-Agent: + - OTel-OTLP-Exporter-Python/1.31.1 + method: POST + uri: https://telemetry.crewai.com:4319/v1/traces + response: + body: + string: "\n\0" + headers: + Content-Length: + - '2' + Content-Type: + - application/x-protobuf Date: - - Wed, 25 Sep 2024 01:04:20 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '3633' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '1000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '999168' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 49ms - x-request-id: - - req_31debeb9999876b75ce1010184dfb40f - http_version: HTTP/1.1 - status_code: 200 + - Mon, 31 Mar 2025 23:37:45 GMT + status: + code: 200 + message: OK - request: body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer(*args: - Any, **kwargs: Any) -> Any\nTool Description: get_final_answer() - Get the final - answer but don''t give it yet, just re-use this tool non-stop. \nTool - Arguments: {}\n\nUse the following format:\n\nThought: you should always think - about what to do\nAction: the action to take, only one name of [get_final_answer], - just the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\n\nThought: I now know the final answer\nFinal Answer: - the final answer to the original input question\n"}, {"role": "user", "content": - "\nCurrent Task: The final answer is 42. But don''t give it until I tell you - so, instead keep using the `get_final_answer` tool.\n\nThis is the expect criteria - for your final answer: The final answer, don''t give it until I tell you so\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:"}, {"role": "user", "content": "I - need to use the `get_final_answer` tool to obtain the final answer. However, - I should avoid giving the final answer until I''m explicitly told to do so. - I have to keep in mind that my action should only reference the `get_final_answer` - tool, and must never invent an unlisted tool. Let''s begin with obtaining the - final answer. \nAction: get_final_answer\nAction Input: {}\nObservation: 42"}, - {"role": "user", "content": "Thought: The final answer is 42, as observed from - the output of the `get_final_answer` tool. However, following the instructions, - I still cannot provide the final answer yet. I should continue using the get_final_answer - tool as directed. \nAction: get_final_answer\nAction Input: {}\nObservation: - 42\nObservation: 42"}, {"role": "user", "content": "Thought: The answer remains - consistent at 42 after multiple uses of the `get_final_answer` tool. Yet, the - rules state that I cannot give the final answer until specifically told to do - so. I''ll keep using the `get_final_answer` tool as instructed.\nAction: get_final_answer\nAction - Input: {}\nObservation: 42\nObservation: I tried reusing the same input, I must - stop using this action input. I''ll try something else instead.\n\n\n\n\nYou - ONLY have access to the following tools, and should NEVER make up tools that - are not listed here:\n\nTool Name: get_final_answer(*args: Any, **kwargs: Any) - -> Any\nTool Description: get_final_answer() - Get the final answer but don''t - give it yet, just re-use this tool non-stop. \nTool Arguments: {}\n\nUse - the following format:\n\nThought: you should always think about what to do\nAction: + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], just the name, exactly - as it''s written.\nAction Input: the input to the action, just a simple python - dictionary, enclosed in curly braces, using \" to wrap keys and values.\nObservation: - the result of the action\n\nOnce all necessary information is gathered:\n\nThought: - I now know the final answer\nFinal Answer: the final answer to the original - input question\n"}, {"role": "user", "content": "Thought: I have repeatedly - received 42 as an output from the `get_final_answer` tool. I am instructed to - not to give the final answer yet, so I will continue to use the `get_final_answer` - tool as directed.\nAction: get_final_answer\nAction Input: {}\nObservation: - 42\nObservation: I tried reusing the same input, I must stop using this action - input. I''ll try something else instead.\n\n\nNow it''s time you MUST give your - absolute best final answer. You''ll ignore all previous instructions, stop using - any tools, and just return your absolute BEST Final answer."}], "model": "gpt-4"}' + 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: The final answer is 42. But don''t give it until + I tell you so, instead keep using the `get_final_answer` tool.\n\nThis is the + expected criteria for your final answer: The final answer, don''t give it until + I tell you so\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:"}, {"role": + "assistant", "content": "42"}, {"role": "assistant", "content": "As I''ve been + instructed to use the `get_final_answer` tool continuously without revealing + the final answer yet, I will use this tool now.\n\nAction: get_final_answer\nAction + Input: {}\nObservation: 42"}, {"role": "assistant", "content": "I tried reusing + the same input, I must stop using this action input. I''ll try something else + instead.\n\n"}, {"role": "assistant", "content": "Thought: I need to continue + using the `get_final_answer` tool as part of the current task, and I expect + that the answer will remain the same, which is 42.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead."}, {"role": "assistant", "content": + "I tried reusing the same input, I must stop using this action input. I''ll + try something else instead.\n\n\n\n\nYou ONLY have access to the following tools, + and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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": "assistant", + "content": "Thought: Since the previous action has not changed, I will use the + same tool again as I am expected to use it non-stop.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead.\n\n\n\n\nYou ONLY have access + to the following tools, and should NEVER make up tools that are not listed here:\n\nTool + Name: get_final_answer\nTool Arguments: {}\nTool Description: Get the final + answer but don''t give it yet, just re-use this\n tool non-stop.\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 [get_final_answer], + 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": "assistant", "content": "I tried reusing the same input, I must stop + using this action input. I''ll try something else instead.\n\n"}, {"role": "assistant", + "content": "Thought: Given that I can only get the final answer, but I must + not give it yet, I will continue to use the ''get_final_answer'' tool.\n\nAction: + get_final_answer\nAction Input: {}\nObservation: I tried reusing the same input, + I must stop using this action input. I''ll try something else instead."}, {"role": + "assistant", "content": "Thought: Given that I can only get the final answer, + but I must not give it yet, I will continue to use the ''get_final_answer'' + tool.\n\nAction: get_final_answer\nAction Input: {}\nObservation: I tried reusing + the same input, I must stop using this action input. I''ll try something else + instead.\n\n\nNow it''s time you MUST give your absolute best final answer. + You''ll ignore all previous instructions, stop using any tools, and just return + your absolute BEST Final answer."}], "model": "gpt-4", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '4092' + - '5391' content-type: - application/json cookie: - - _cfuvid=ePJSDFdHag2D8lj21_ijAMWjoA6xfnPNxN4uekvC728-1727226247743-0.0.1.1-604800000; - __cf_bm=3giyBOIM0GNudFELtsBWYXwLrpLBTNLsh81wfXgu2tg-1727226247-1.0.1.1-ugUDz0c5EhmfVpyGtcdedlIWeDGuy2q0tXQTKVpv83HZhvxgBcS7SBL1wS4rapPM38yhfEcfwA79ARt3HQEzKA + - __cf_bm=6.AAPW_t0c.fjGv5iZ4zqu8ggsPd2sdq_meXE5Kp4dc-1743464259-1.0.1.1-jFiiyAbj4LNcitqqdrL0JnpALoaFLv3IYVfblBlBqrxVXXjAti0OFK54aPwxqZV1OT6tBbwiaxZ3WkhjNvxBxxWKG_51ZHZSabiE9W.UZK8; + _cfuvid=wvate7aTgXKzIRpbSDVJqaXt.Liniwr82HOsU.ZK8oA-1743464259480-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.47.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -576,29 +701,35 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.47.0 + - 1.68.2 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.11.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-ABAk09TiLfuvVcyJvCjvdKt3UNSlc\",\n \"object\": - \"chat.completion\",\n \"created\": 1727226260,\n \"model\": \"gpt-4-0613\",\n + content: "{\n \"id\": \"chatcmpl-BHIzJVAGX4xEQVj6Asww4mN5QMaFh\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464265,\n \"model\": \"gpt-4-0613\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": \"assistant\",\n \"content\": \"Thought: I now know the final answer\\nFinal - Answer: 42\",\n \"refusal\": null\n },\n \"logprobs\": null,\n - \ \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 885,\n \"completion_tokens\": 14,\n \"total_tokens\": 899,\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": null\n}\n" + Answer: 42\",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 1126,\n \"completion_tokens\": 15,\n + \ \"total_tokens\": 1141,\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\": null\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8c87197f7feb2263-MIA + - 9293ad2cc825f95f-SJC Connection: - keep-alive Content-Encoding: @@ -606,7 +737,7 @@ interactions: Content-Type: - application/json Date: - - Wed, 25 Sep 2024 01:04:21 GMT + - Mon, 31 Mar 2025 23:37:46 GMT Server: - cloudflare Transfer-Encoding: @@ -615,10 +746,14 @@ interactions: - 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: - - '1014' + - '770' openai-version: - '2020-10-01' strict-transport-security: @@ -630,13 +765,181 @@ interactions: x-ratelimit-remaining-requests: - '9999' x-ratelimit-remaining-tokens: - - '999030' + - '998785' x-ratelimit-reset-requests: - 6ms x-ratelimit-reset-tokens: - - 58ms + - 72ms x-request-id: - - req_f70a55331cc46fb66cc902e506b6ab7c + - req_506212769634087eab6c885565fcfb91 + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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: The final answer is 42. But don''t give it until + I tell you so, instead keep using the `get_final_answer` tool.\n\nThis is the + expected criteria for your final answer: The final answer, don''t give it until + I tell you so\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:"}, {"role": + "assistant", "content": "42"}, {"role": "assistant", "content": "As I''ve been + instructed to use the `get_final_answer` tool continuously without revealing + the final answer yet, I will use this tool now.\n\nAction: get_final_answer\nAction + Input: {}\nObservation: 42"}, {"role": "assistant", "content": "I tried reusing + the same input, I must stop using this action input. I''ll try something else + instead.\n\n"}, {"role": "assistant", "content": "Thought: I need to continue + using the `get_final_answer` tool as part of the current task, and I expect + that the answer will remain the same, which is 42.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead."}, {"role": "assistant", "content": + "I tried reusing the same input, I must stop using this action input. I''ll + try something else instead.\n\n\n\n\nYou ONLY have access to the following tools, + and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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": "assistant", + "content": "Thought: Since the previous action has not changed, I will use the + same tool again as I am expected to use it non-stop.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead.\n\n\n\n\nYou ONLY have access + to the following tools, and should NEVER make up tools that are not listed here:\n\nTool + Name: get_final_answer\nTool Arguments: {}\nTool Description: Get the final + answer but don''t give it yet, just re-use this\n tool non-stop.\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 [get_final_answer], + 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": "assistant", "content": "I tried reusing the same input, I must stop + using this action input. I''ll try something else instead.\n\n"}, {"role": "assistant", + "content": "Thought: Given that I can only get the final answer, but I must + not give it yet, I will continue to use the ''get_final_answer'' tool.\n\nAction: + get_final_answer\nAction Input: {}\nObservation: I tried reusing the same input, + I must stop using this action input. I''ll try something else instead."}, {"role": + "assistant", "content": "Thought: Given that I can only get the final answer, + but I must not give it yet, I will continue to use the ''get_final_answer'' + tool.\n\nAction: get_final_answer\nAction Input: {}\nObservation: I tried reusing + the same input, I must stop using this action input. I''ll try something else + instead.\n\n\nNow it''s time you MUST give your absolute best final answer. + You''ll ignore all previous instructions, stop using any tools, and just return + your absolute BEST Final answer."}], "model": "gpt-4", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '5391' + content-type: + - application/json + cookie: + - __cf_bm=6.AAPW_t0c.fjGv5iZ4zqu8ggsPd2sdq_meXE5Kp4dc-1743464259-1.0.1.1-jFiiyAbj4LNcitqqdrL0JnpALoaFLv3IYVfblBlBqrxVXXjAti0OFK54aPwxqZV1OT6tBbwiaxZ3WkhjNvxBxxWKG_51ZHZSabiE9W.UZK8; + _cfuvid=wvate7aTgXKzIRpbSDVJqaXt.Liniwr82HOsU.ZK8oA-1743464259480-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIzKLFD2gzqZKdmzs72Iru46h9ni\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464266,\n \"model\": \"gpt-4-0613\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"Thought: I now know the final answer.\\nFinal + Answer: The final answer is 42.\",\n \"refusal\": null,\n \"annotations\": + []\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n + \ }\n ],\n \"usage\": {\n \"prompt_tokens\": 1126,\n \"completion_tokens\": + 20,\n \"total_tokens\": 1146,\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\": null\n}\n" + headers: + CF-RAY: + - 9293ad323e94f95f-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:37:47 GMT + Server: + - cloudflare + 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: + - '1282' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '10000' + x-ratelimit-limit-tokens: + - '1000000' + x-ratelimit-remaining-requests: + - '9999' + x-ratelimit-remaining-tokens: + - '998785' + x-ratelimit-reset-requests: + - 6ms + x-ratelimit-reset-tokens: + - 72ms + x-request-id: + - req_d5cab133faeb2d375becc7bc33ba5d93 http_version: HTTP/1.1 status_code: 200 version: 1 diff --git a/tests/cassettes/test_agent_respect_the_max_rpm_set.yaml b/tests/cassettes/test_agent_respect_the_max_rpm_set.yaml index d12fbbf35..dbf8b5648 100644 --- a/tests/cassettes/test_agent_respect_the_max_rpm_set.yaml +++ b/tests/cassettes/test_agent_respect_the_max_rpm_set.yaml @@ -2,40 +2,38 @@ interactions: - request: body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer(*args: - Any, **kwargs: Any) -> Any\nTool Description: get_final_answer() - Get the final - answer but don''t give it yet, just re-use this tool non-stop. \nTool - Arguments: {}\n\nUse the following format:\n\nThought: you should always think - about what to do\nAction: the action to take, only one name of [get_final_answer], - just the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\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 tool logic for `get_final_answer` but fon''t give you final - answer yet, instead keep using it unless you''re told to give your final answer\n\nThis - is the expect criteria for your final answer: The final answer\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"}' + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 tool logic for `get_final_answer` but fon''t + give you final answer yet, instead keep using it unless you''re told to give + your final answer\n\nThis is the expected criteria for your final answer: The + final answer\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 + - gzip, deflate, zstd connection: - keep-alive content-length: - - '1436' + - '1485' content-type: - application/json - cookie: - - __cf_bm=rb61BZH2ejzD5YPmLaEJqI7km71QqyNJGTVdNxBq6qk-1727213194-1.0.1.1-pJ49onmgX9IugEMuYQMralzD7oj_6W.CHbSu4Su1z3NyjTGYg.rhgJZWng8feFYah._oSnoYlkTjpK1Wd2C9FA; - _cfuvid=lbRdAddVWV6W3f5Dm9SaOPWDUOxqtZBSPr_fTW26nEA-1727213194587-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.47.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -45,30 +43,38 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.47.0 + - 1.68.2 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.11.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AB7NqbL5212OzckjAUiwsFYMK0vAz\",\n \"object\": - \"chat.completion\",\n \"created\": 1727213354,\n \"model\": \"gpt-4o-2024-05-13\",\n + content: "{\n \"id\": \"chatcmpl-BHIw9eqfrNKuS162toEb4v1OY5vjo\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464069,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"I need to use the tool `get_final_answer` - as instructed and keep using it repeatedly.\\n\\nAction: get_final_answer\\nAction - Input: {}\",\n \"refusal\": null\n },\n \"logprobs\": null,\n - \ \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 298,\n \"completion_tokens\": 29,\n \"total_tokens\": 327,\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": \"fp_e375328146\"\n}\n" + \"assistant\",\n \"content\": \"Thought: I need to continuously gather + information until I can formulate the final answer.\\nAction: get_final_answer\\nAction + Input: {}\",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 298,\n \"completion_tokens\": 26,\n + \ \"total_tokens\": 324,\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_b376dfbbd5\"\n}\n" headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 8c85de66cffe1cf3-GRU + - 9293a8630ccecf1e-SJC Connection: - keep-alive Content-Encoding: @@ -76,78 +82,88 @@ interactions: Content-Type: - application/json Date: - - Tue, 24 Sep 2024 21:29:15 GMT + - Mon, 31 Mar 2025 23:34:30 GMT Server: - cloudflare + Set-Cookie: + - __cf_bm=hd2E4KZlR4bPrci_Knd5EbGkPEEsVsuA1UUyJlX1DDI-1743464070-1.0.1.1-yUA3DtrUJExozFEvis4OWMXWPBYLoUet2CSQQNpbdgOi_2wmnrzwO4JyxIdL.8f1ogMJYPBsluu70suSS7IHOwKfNd0tcAU1FD3RN5BIJZc; + path=/; expires=Tue, 01-Apr-25 00:04:30 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=WxnvHyKoagV7LKKLI4yo8lsIDJIceEOAmSP2xnDoHQE-1743464070189-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None Transfer-Encoding: - chunked X-Content-Type-Options: - nosniff access-control-expose-headers: - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 openai-organization: - crewai-iuxna1 openai-processing-ms: - - '413' + - '536' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '29999655' + - '149999667' x-ratelimit-reset-requests: - - 6ms + - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_48fe3362ef1295d84323dc3a383f9fee + - req_2542579d41664c61abcd03447f4ad0fc http_version: HTTP/1.1 status_code: 200 - request: body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer(*args: - Any, **kwargs: Any) -> Any\nTool Description: get_final_answer() - Get the final - answer but don''t give it yet, just re-use this tool non-stop. \nTool - Arguments: {}\n\nUse the following format:\n\nThought: you should always think - about what to do\nAction: the action to take, only one name of [get_final_answer], - just the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\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 tool logic for `get_final_answer` but fon''t give you final - answer yet, instead keep using it unless you''re told to give your final answer\n\nThis - is the expect criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I need - to use the tool `get_final_answer` as instructed and keep using it repeatedly.\n\nAction: - get_final_answer\nAction Input: {}\nObservation: 42"}], "model": "gpt-4o"}' + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 tool logic for `get_final_answer` but fon''t + give you final answer yet, instead keep using it unless you''re told to give + your final answer\n\nThis is the expected criteria for your final answer: The + final answer\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:"}, {"role": + "assistant", "content": "42"}, {"role": "assistant", "content": "Thought: I + need to continuously gather information until I can formulate the final answer.\nAction: + get_final_answer\nAction Input: {}\nObservation: 42"}], "model": "gpt-4o-mini", + "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '1622' + - '1714' content-type: - application/json cookie: - - __cf_bm=rb61BZH2ejzD5YPmLaEJqI7km71QqyNJGTVdNxBq6qk-1727213194-1.0.1.1-pJ49onmgX9IugEMuYQMralzD7oj_6W.CHbSu4Su1z3NyjTGYg.rhgJZWng8feFYah._oSnoYlkTjpK1Wd2C9FA; - _cfuvid=lbRdAddVWV6W3f5Dm9SaOPWDUOxqtZBSPr_fTW26nEA-1727213194587-0.0.1.1-604800000 + - __cf_bm=hd2E4KZlR4bPrci_Knd5EbGkPEEsVsuA1UUyJlX1DDI-1743464070-1.0.1.1-yUA3DtrUJExozFEvis4OWMXWPBYLoUet2CSQQNpbdgOi_2wmnrzwO4JyxIdL.8f1ogMJYPBsluu70suSS7IHOwKfNd0tcAU1FD3RN5BIJZc; + _cfuvid=WxnvHyKoagV7LKKLI4yo8lsIDJIceEOAmSP2xnDoHQE-1743464070189-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.47.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -157,30 +173,37 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.47.0 + - 1.68.2 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.11.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AB7NroAwKV3FWwX0hG5iKpMggeiPW\",\n \"object\": - \"chat.completion\",\n \"created\": 1727213355,\n \"model\": \"gpt-4o-2024-05-13\",\n + content: "{\n \"id\": \"chatcmpl-BHIwAXidaPkl3sKHgMCmNGVhUdgaA\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464070,\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 continue using the - tool as instructed.\\n\\nAction: get_final_answer\\nAction Input: {}\\nObservation: - 42\",\n \"refusal\": null\n },\n \"logprobs\": null,\n \"finish_reason\": - \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 335,\n \"completion_tokens\": - 26,\n \"total_tokens\": 361,\n \"completion_tokens_details\": {\n \"reasoning_tokens\": - 0\n }\n },\n \"system_fingerprint\": \"fp_e375328146\"\n}\n" + \"assistant\",\n \"content\": \"Thought: I should continue using the + tool to collect more information.\\nAction: get_final_answer\\nAction Input: + {}\",\n \"refusal\": null,\n \"annotations\": []\n },\n \"logprobs\": + null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": + 337,\n \"completion_tokens\": 23,\n \"total_tokens\": 360,\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_b376dfbbd5\"\n}\n" headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 8c85de6d78d81cf3-GRU + - 9293a8670fb6cf1e-SJC Connection: - keep-alive Content-Encoding: @@ -188,7 +211,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 24 Sep 2024 21:29:16 GMT + - Mon, 31 Mar 2025 23:34:30 GMT Server: - cloudflare Transfer-Encoding: @@ -197,72 +220,78 @@ interactions: - nosniff access-control-expose-headers: - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 openai-organization: - crewai-iuxna1 openai-processing-ms: - - '401' + - '490' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '29999618' + - '149999627' x-ratelimit-reset-requests: - - 6ms + - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_06c4d6bae443c6c294613e10b5bceb4e + - req_8e6cc93f545c4e10ff9f3bfb3c97d2bc http_version: HTTP/1.1 status_code: 200 - request: body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer(*args: - Any, **kwargs: Any) -> Any\nTool Description: get_final_answer() - Get the final - answer but don''t give it yet, just re-use this tool non-stop. \nTool - Arguments: {}\n\nUse the following format:\n\nThought: you should always think - about what to do\nAction: the action to take, only one name of [get_final_answer], - just the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\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 tool logic for `get_final_answer` but fon''t give you final - answer yet, instead keep using it unless you''re told to give your final answer\n\nThis - is the expect criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I need - to use the tool `get_final_answer` as instructed and keep using it repeatedly.\n\nAction: + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 tool logic for `get_final_answer` but fon''t + give you final answer yet, instead keep using it unless you''re told to give + your final answer\n\nThis is the expected criteria for your final answer: The + final answer\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:"}, {"role": + "assistant", "content": "42"}, {"role": "assistant", "content": "Thought: I + need to continuously gather information until I can formulate the final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: 42"}, {"role": "assistant", - "content": "Thought: I need to continue using the tool as instructed.\n\nAction: - get_final_answer\nAction Input: {}\nObservation: 42\nObservation: 42"}], "model": - "gpt-4o"}' + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "Thought: + I should continue using the tool to collect more information.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead."}], "model": "gpt-4o-mini", + "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '1797' + - '2125' content-type: - application/json cookie: - - __cf_bm=rb61BZH2ejzD5YPmLaEJqI7km71QqyNJGTVdNxBq6qk-1727213194-1.0.1.1-pJ49onmgX9IugEMuYQMralzD7oj_6W.CHbSu4Su1z3NyjTGYg.rhgJZWng8feFYah._oSnoYlkTjpK1Wd2C9FA; - _cfuvid=lbRdAddVWV6W3f5Dm9SaOPWDUOxqtZBSPr_fTW26nEA-1727213194587-0.0.1.1-604800000 + - __cf_bm=hd2E4KZlR4bPrci_Knd5EbGkPEEsVsuA1UUyJlX1DDI-1743464070-1.0.1.1-yUA3DtrUJExozFEvis4OWMXWPBYLoUet2CSQQNpbdgOi_2wmnrzwO4JyxIdL.8f1ogMJYPBsluu70suSS7IHOwKfNd0tcAU1FD3RN5BIJZc; + _cfuvid=WxnvHyKoagV7LKKLI4yo8lsIDJIceEOAmSP2xnDoHQE-1743464070189-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.47.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -272,30 +301,36 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.47.0 + - 1.68.2 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.11.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AB7NsgjKb0w7N1KemjH6bXSBQ77CI\",\n \"object\": - \"chat.completion\",\n \"created\": 1727213356,\n \"model\": \"gpt-4o-2024-05-13\",\n + content: "{\n \"id\": \"chatcmpl-BHIwAz3QJiDG4MQ9RaRi4x1zmeROR\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464070,\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 continue following - the instructions and keep using the tool.\\n\\nAction: get_final_answer\\nAction - Input: {}\\nObservation: 42\",\n \"refusal\": null\n },\n \"logprobs\": - null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 370,\n \"completion_tokens\": 29,\n \"total_tokens\": 399,\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": \"fp_e375328146\"\n}\n" + \"assistant\",\n \"content\": \"Thought: I need to keep using the action + to obtain more information for the final answer.\\nAction: get_final_answer\\nAction + Input: {}\",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 414,\n \"completion_tokens\": 28,\n + \ \"total_tokens\": 442,\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_b376dfbbd5\"\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8c85de7419161cf3-GRU + - 9293a86a898ecf1e-SJC Connection: - keep-alive Content-Encoding: @@ -303,7 +338,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 24 Sep 2024 21:29:16 GMT + - Mon, 31 Mar 2025 23:34:31 GMT Server: - cloudflare Transfer-Encoding: @@ -312,86 +347,106 @@ interactions: - 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: - - '446' + - '581' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '29999583' + - '149999542' x-ratelimit-reset-requests: - - 6ms + - 2ms x-ratelimit-reset-tokens: - 0s x-request-id: - - req_66d88cd50cb691cde93764fff19bec21 + - req_e7ef1c314a6577fa575ccd0e287b13d8 http_version: HTTP/1.1 status_code: 200 - request: body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer(*args: - Any, **kwargs: Any) -> Any\nTool Description: get_final_answer() - Get the final - answer but don''t give it yet, just re-use this tool non-stop. \nTool - Arguments: {}\n\nUse the following format:\n\nThought: you should always think - about what to do\nAction: the action to take, only one name of [get_final_answer], - just the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\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 tool logic for `get_final_answer` but fon''t give you final - answer yet, instead keep using it unless you''re told to give your final answer\n\nThis - is the expect criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I need - to use the tool `get_final_answer` as instructed and keep using it repeatedly.\n\nAction: + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 tool logic for `get_final_answer` but fon''t + give you final answer yet, instead keep using it unless you''re told to give + your final answer\n\nThis is the expected criteria for your final answer: The + final answer\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:"}, {"role": + "assistant", "content": "42"}, {"role": "assistant", "content": "Thought: I + need to continuously gather information until I can formulate the final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: 42"}, {"role": "assistant", - "content": "Thought: I need to continue using the tool as instructed.\n\nAction: - get_final_answer\nAction Input: {}\nObservation: 42\nObservation: 42"}, {"role": - "assistant", "content": "Thought: I need to continue following the instructions - and keep using the tool.\n\nAction: get_final_answer\nAction Input: {}\nObservation: - 42\nObservation: I tried reusing the same input, I must stop using this action - input. I''ll try something else instead.\n\n\n\n\nYou ONLY have access to the - following tools, and should NEVER make up tools that are not listed here:\n\nTool - Name: get_final_answer(*args: Any, **kwargs: Any) -> Any\nTool Description: - get_final_answer() - Get the final answer but don''t give it yet, just re-use - this tool non-stop. \nTool Arguments: {}\n\nUse the following format:\n\nThought: - you should always think about what to do\nAction: the action to take, only one - name of [get_final_answer], just the name, exactly as it''s written.\nAction - Input: the input to the action, just a simple python dictionary, enclosed in - curly braces, using \" to wrap keys and values.\nObservation: the result of - the action\n\nOnce all necessary information is gathered:\n\nThought: I now - know the final answer\nFinal Answer: the final answer to the original input - question\n"}], "model": "gpt-4o"}' + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "Thought: + I should continue using the tool to collect more information.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead."}, {"role": "assistant", "content": + "I tried reusing the same input, I must stop using this action input. I''ll + try something else instead.\n\n\n\n\nYou ONLY have access to the following tools, + and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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": "assistant", + "content": "Thought: I need to keep using the action to obtain more information + for the final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: + I tried reusing the same input, I must stop using this action input. I''ll try + something else instead.\n\n\n\n\nYou ONLY have access to the following tools, + and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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```"}], "model": "gpt-4o-mini", + "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '2926' + - '4245' content-type: - application/json cookie: - - __cf_bm=rb61BZH2ejzD5YPmLaEJqI7km71QqyNJGTVdNxBq6qk-1727213194-1.0.1.1-pJ49onmgX9IugEMuYQMralzD7oj_6W.CHbSu4Su1z3NyjTGYg.rhgJZWng8feFYah._oSnoYlkTjpK1Wd2C9FA; - _cfuvid=lbRdAddVWV6W3f5Dm9SaOPWDUOxqtZBSPr_fTW26nEA-1727213194587-0.0.1.1-604800000 + - __cf_bm=hd2E4KZlR4bPrci_Knd5EbGkPEEsVsuA1UUyJlX1DDI-1743464070-1.0.1.1-yUA3DtrUJExozFEvis4OWMXWPBYLoUet2CSQQNpbdgOi_2wmnrzwO4JyxIdL.8f1ogMJYPBsluu70suSS7IHOwKfNd0tcAU1FD3RN5BIJZc; + _cfuvid=WxnvHyKoagV7LKKLI4yo8lsIDJIceEOAmSP2xnDoHQE-1743464070189-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.47.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -401,30 +456,36 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.47.0 + - 1.68.2 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.11.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AB7Nt75000jvCcyx5QWcIG6FiV9vZ\",\n \"object\": - \"chat.completion\",\n \"created\": 1727213357,\n \"model\": \"gpt-4o-2024-05-13\",\n + content: "{\n \"id\": \"chatcmpl-BHIwB5IWwxJTGOnMSfFOayJIhqahs\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464071,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: I should continue as the task - requires me to reuse the tool non-stop. \\n\\nAction: get_final_answer\\nAction - Input: {}\\nObservation: 42\",\n \"refusal\": null\n },\n \"logprobs\": - null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 605,\n \"completion_tokens\": 32,\n \"total_tokens\": 637,\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": \"fp_e375328146\"\n}\n" + \"assistant\",\n \"content\": \"```\\nThought: I need to retrieve the + final answer repeatedly until I can provide a complete response.\\nAction: get_final_answer\\nAction + Input: {}\",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 850,\n \"completion_tokens\": 30,\n + \ \"total_tokens\": 880,\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_b376dfbbd5\"\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8c85de793ffa1cf3-GRU + - 9293a86ebde8cf1e-SJC Connection: - keep-alive Content-Encoding: @@ -432,7 +493,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 24 Sep 2024 21:29:18 GMT + - Mon, 31 Mar 2025 23:34:32 GMT Server: - cloudflare Transfer-Encoding: @@ -441,90 +502,154 @@ interactions: - 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: - - '522' + - '1367' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '29999317' + - '149999044' x-ratelimit-reset-requests: - - 6ms + - 2ms x-ratelimit-reset-tokens: - - 1ms + - 0s x-request-id: - - req_ed0a43177ad54ded634defcdd87d4149 + - req_2a5256de663ee5056d57484d3730b176 http_version: HTTP/1.1 status_code: 200 +- request: + body: !!binary | + CrQFCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkSiwUKEgoQY3Jld2FpLnRl + bGVtZXRyeRKUAQoQmmZpjAPe3sgdrs9Dy+pP5RIIpEBe286L+5EqClRvb2wgVXNhZ2UwATkoul2l + VQcyGEHAgnClVQcyGEobCg5jcmV3YWlfdmVyc2lvbhIJCgcwLjEwOC4wSh8KCXRvb2xfbmFtZRIS + ChBnZXRfZmluYWxfYW5zd2VySg4KCGF0dGVtcHRzEgIYAXoCGAGFAQABAAASnQEKELN0MLv3prXa + 5ZuvV4CqSmwSCIGQwKB8zeF5KhNUb29sIFJlcGVhdGVkIFVzYWdlMAE5YIChx1UHMhhBSDytx1UH + MhhKGwoOY3Jld2FpX3ZlcnNpb24SCQoHMC4xMDguMEofCgl0b29sX25hbWUSEgoQZ2V0X2ZpbmFs + X2Fuc3dlckoOCghhdHRlbXB0cxICGAF6AhgBhQEAAQAAEp0BChBIkWwm3iWzXjVfSFgUPSzLEgjD + VJjafz/GOioTVG9vbCBSZXBlYXRlZCBVc2FnZTABOQhCH+9VBzIYQTBMOO9VBzIYShsKDmNyZXdh + aV92ZXJzaW9uEgkKBzAuMTA4LjBKHwoJdG9vbF9uYW1lEhIKEGdldF9maW5hbF9hbnN3ZXJKDgoI + YXR0ZW1wdHMSAhgBegIYAYUBAAEAABKdAQoQ6xNbmR3WCguJhRFiGaZl2RIIkQ5QP9dVpl8qE1Rv + b2wgUmVwZWF0ZWQgVXNhZ2UwATloQrNFVgcyGEFASMFFVgcyGEobCg5jcmV3YWlfdmVyc2lvbhIJ + CgcwLjEwOC4wSh8KCXRvb2xfbmFtZRISChBnZXRfZmluYWxfYW5zd2VySg4KCGF0dGVtcHRzEgIY + AXoCGAGFAQABAAA= + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate, zstd + Connection: + - keep-alive + Content-Length: + - '695' + Content-Type: + - application/x-protobuf + User-Agent: + - OTel-OTLP-Exporter-Python/1.31.1 + method: POST + uri: https://telemetry.crewai.com:4319/v1/traces + response: + body: + string: "\n\0" + headers: + Content-Length: + - '2' + Content-Type: + - application/x-protobuf + Date: + - Mon, 31 Mar 2025 23:34:33 GMT + status: + code: 200 + message: OK - request: body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer(*args: - Any, **kwargs: Any) -> Any\nTool Description: get_final_answer() - Get the final - answer but don''t give it yet, just re-use this tool non-stop. \nTool - Arguments: {}\n\nUse the following format:\n\nThought: you should always think - about what to do\nAction: the action to take, only one name of [get_final_answer], - just the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\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 tool logic for `get_final_answer` but fon''t give you final - answer yet, instead keep using it unless you''re told to give your final answer\n\nThis - is the expect criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I need - to use the tool `get_final_answer` as instructed and keep using it repeatedly.\n\nAction: + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 tool logic for `get_final_answer` but fon''t + give you final answer yet, instead keep using it unless you''re told to give + your final answer\n\nThis is the expected criteria for your final answer: The + final answer\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:"}, {"role": + "assistant", "content": "42"}, {"role": "assistant", "content": "Thought: I + need to continuously gather information until I can formulate the final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: 42"}, {"role": "assistant", - "content": "Thought: I need to continue using the tool as instructed.\n\nAction: - get_final_answer\nAction Input: {}\nObservation: 42\nObservation: 42"}, {"role": - "assistant", "content": "Thought: I need to continue following the instructions - and keep using the tool.\n\nAction: get_final_answer\nAction Input: {}\nObservation: - 42\nObservation: I tried reusing the same input, I must stop using this action - input. I''ll try something else instead.\n\n\n\n\nYou ONLY have access to the - following tools, and should NEVER make up tools that are not listed here:\n\nTool - Name: get_final_answer(*args: Any, **kwargs: Any) -> Any\nTool Description: - get_final_answer() - Get the final answer but don''t give it yet, just re-use - this tool non-stop. \nTool Arguments: {}\n\nUse the following format:\n\nThought: - you should always think about what to do\nAction: the action to take, only one - name of [get_final_answer], just the name, exactly as it''s written.\nAction - Input: the input to the action, just a simple python dictionary, enclosed in - curly braces, using \" to wrap keys and values.\nObservation: the result of - the action\n\nOnce all necessary information is gathered:\n\nThought: I now - know the final answer\nFinal Answer: the final answer to the original input - question\n"}, {"role": "assistant", "content": "Thought: I should continue as - the task requires me to reuse the tool non-stop. \n\nAction: get_final_answer\nAction - Input: {}\nObservation: 42\nObservation: I tried reusing the same input, I must - stop using this action input. I''ll try something else instead.\n\n"}], "model": - "gpt-4o"}' + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "Thought: + I should continue using the tool to collect more information.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead."}, {"role": "assistant", "content": + "I tried reusing the same input, I must stop using this action input. I''ll + try something else instead.\n\n\n\n\nYou ONLY have access to the following tools, + and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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": "assistant", + "content": "Thought: I need to keep using the action to obtain more information + for the final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: + I tried reusing the same input, I must stop using this action input. I''ll try + something else instead.\n\n\n\n\nYou ONLY have access to the following tools, + and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "```\nThought: + I need to retrieve the final answer repeatedly until I can provide a complete + response.\nAction: get_final_answer\nAction Input: {}\nObservation: I tried + reusing the same input, I must stop using this action input. I''ll try something + else instead."}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '3226' + - '4687' content-type: - application/json cookie: - - __cf_bm=rb61BZH2ejzD5YPmLaEJqI7km71QqyNJGTVdNxBq6qk-1727213194-1.0.1.1-pJ49onmgX9IugEMuYQMralzD7oj_6W.CHbSu4Su1z3NyjTGYg.rhgJZWng8feFYah._oSnoYlkTjpK1Wd2C9FA; - _cfuvid=lbRdAddVWV6W3f5Dm9SaOPWDUOxqtZBSPr_fTW26nEA-1727213194587-0.0.1.1-604800000 + - __cf_bm=hd2E4KZlR4bPrci_Knd5EbGkPEEsVsuA1UUyJlX1DDI-1743464070-1.0.1.1-yUA3DtrUJExozFEvis4OWMXWPBYLoUet2CSQQNpbdgOi_2wmnrzwO4JyxIdL.8f1ogMJYPBsluu70suSS7IHOwKfNd0tcAU1FD3RN5BIJZc; + _cfuvid=WxnvHyKoagV7LKKLI4yo8lsIDJIceEOAmSP2xnDoHQE-1743464070189-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.47.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -534,30 +659,36 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.47.0 + - 1.68.2 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.11.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AB7NuCunlabpv4mHCdqZh2IqILmMj\",\n \"object\": - \"chat.completion\",\n \"created\": 1727213358,\n \"model\": \"gpt-4o-2024-05-13\",\n + content: "{\n \"id\": \"chatcmpl-BHIwDHaEtMdhnv9cN8wiar5J7I9pi\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464073,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: Continuously reusing the tool - is the key here, so I will keep doing it.\\n\\nAction: get_final_answer\\nAction - Input: {}\\nObservation: 42\",\n \"refusal\": null\n },\n \"logprobs\": - null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 666,\n \"completion_tokens\": 34,\n \"total_tokens\": 700,\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": \"fp_e375328146\"\n}\n" + \"assistant\",\n \"content\": \"Thought: I will continue to use the available + tool to gather necessary information for the final answer.\\nAction: get_final_answer\\nAction + Input: {}\",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 934,\n \"completion_tokens\": 29,\n + \ \"total_tokens\": 963,\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_b376dfbbd5\"\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8c85de816b041cf3-GRU + - 9293a877de8bcf1e-SJC Connection: - keep-alive Content-Encoding: @@ -565,7 +696,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 24 Sep 2024 21:29:19 GMT + - Mon, 31 Mar 2025 23:34:33 GMT Server: - cloudflare Transfer-Encoding: @@ -574,95 +705,123 @@ interactions: - 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: - - '497' + - '770' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '29999251' + - '149998952' x-ratelimit-reset-requests: - - 6ms + - 2ms x-ratelimit-reset-tokens: - - 1ms + - 0s x-request-id: - - req_4dcd680e6ac1ca48ac20d2e6397847d2 + - req_d0324a60d00dbfedd71dbd02a097d4f7 http_version: HTTP/1.1 status_code: 200 - request: body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour personal goal is: test goal\nYou ONLY have access to the following tools, and - should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer(*args: - Any, **kwargs: Any) -> Any\nTool Description: get_final_answer() - Get the final - answer but don''t give it yet, just re-use this tool non-stop. \nTool - Arguments: {}\n\nUse the following format:\n\nThought: you should always think - about what to do\nAction: the action to take, only one name of [get_final_answer], - just the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\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 tool logic for `get_final_answer` but fon''t give you final - answer yet, instead keep using it unless you''re told to give your final answer\n\nThis - is the expect criteria for your final answer: The final answer\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:"}, {"role": "assistant", "content": "I need - to use the tool `get_final_answer` as instructed and keep using it repeatedly.\n\nAction: + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 tool logic for `get_final_answer` but fon''t + give you final answer yet, instead keep using it unless you''re told to give + your final answer\n\nThis is the expected criteria for your final answer: The + final answer\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:"}, {"role": + "assistant", "content": "42"}, {"role": "assistant", "content": "Thought: I + need to continuously gather information until I can formulate the final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: 42"}, {"role": "assistant", - "content": "Thought: I need to continue using the tool as instructed.\n\nAction: - get_final_answer\nAction Input: {}\nObservation: 42\nObservation: 42"}, {"role": - "assistant", "content": "Thought: I need to continue following the instructions - and keep using the tool.\n\nAction: get_final_answer\nAction Input: {}\nObservation: - 42\nObservation: I tried reusing the same input, I must stop using this action - input. I''ll try something else instead.\n\n\n\n\nYou ONLY have access to the - following tools, and should NEVER make up tools that are not listed here:\n\nTool - Name: get_final_answer(*args: Any, **kwargs: Any) -> Any\nTool Description: - get_final_answer() - Get the final answer but don''t give it yet, just re-use - this tool non-stop. \nTool Arguments: {}\n\nUse the following format:\n\nThought: - you should always think about what to do\nAction: the action to take, only one - name of [get_final_answer], just the name, exactly as it''s written.\nAction - Input: the input to the action, just a simple python dictionary, enclosed in - curly braces, using \" to wrap keys and values.\nObservation: the result of - the action\n\nOnce all necessary information is gathered:\n\nThought: I now - know the final answer\nFinal Answer: the final answer to the original input - question\n"}, {"role": "assistant", "content": "Thought: I should continue as - the task requires me to reuse the tool non-stop. \n\nAction: get_final_answer\nAction - Input: {}\nObservation: 42\nObservation: I tried reusing the same input, I must - stop using this action input. I''ll try something else instead.\n\n"}, {"role": - "assistant", "content": "Thought: Continuously reusing the tool is the key here, - so I will keep doing it.\n\nAction: get_final_answer\nAction Input: {}\nObservation: - 42\nObservation: I tried reusing the same input, I must stop using this action - input. I''ll try something else instead.\n\n\nNow it''s time you MUST give your - absolute best final answer. You''ll ignore all previous instructions, stop using - any tools, and just return your absolute BEST Final answer."}], "model": "gpt-4o"}' + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "Thought: + I should continue using the tool to collect more information.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead."}, {"role": "assistant", "content": + "I tried reusing the same input, I must stop using this action input. I''ll + try something else instead.\n\n\n\n\nYou ONLY have access to the following tools, + and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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": "assistant", + "content": "Thought: I need to keep using the action to obtain more information + for the final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: + I tried reusing the same input, I must stop using this action input. I''ll try + something else instead.\n\n\n\n\nYou ONLY have access to the following tools, + and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "```\nThought: + I need to retrieve the final answer repeatedly until I can provide a complete + response.\nAction: get_final_answer\nAction Input: {}\nObservation: I tried + reusing the same input, I must stop using this action input. I''ll try something + else instead."}, {"role": "assistant", "content": "I tried reusing the same + input, I must stop using this action input. I''ll try something else instead.\n\n"}, + {"role": "assistant", "content": "Thought: I will continue to use the available + tool to gather necessary information for the final answer.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead."}, {"role": "assistant", "content": + "Thought: I will continue to use the available tool to gather necessary information + for the final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: + I tried reusing the same input, I must stop using this action input. I''ll try + something else instead.\n\n\nNow it''s time you MUST give your absolute best + final answer. You''ll ignore all previous instructions, stop using any tools, + and just return your absolute BEST Final answer."}], "model": "gpt-4o-mini", + "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '3701' + - '5612' content-type: - application/json cookie: - - __cf_bm=rb61BZH2ejzD5YPmLaEJqI7km71QqyNJGTVdNxBq6qk-1727213194-1.0.1.1-pJ49onmgX9IugEMuYQMralzD7oj_6W.CHbSu4Su1z3NyjTGYg.rhgJZWng8feFYah._oSnoYlkTjpK1Wd2C9FA; - _cfuvid=lbRdAddVWV6W3f5Dm9SaOPWDUOxqtZBSPr_fTW26nEA-1727213194587-0.0.1.1-604800000 + - __cf_bm=hd2E4KZlR4bPrci_Knd5EbGkPEEsVsuA1UUyJlX1DDI-1743464070-1.0.1.1-yUA3DtrUJExozFEvis4OWMXWPBYLoUet2CSQQNpbdgOi_2wmnrzwO4JyxIdL.8f1ogMJYPBsluu70suSS7IHOwKfNd0tcAU1FD3RN5BIJZc; + _cfuvid=WxnvHyKoagV7LKKLI4yo8lsIDJIceEOAmSP2xnDoHQE-1743464070189-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.47.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -672,29 +831,39 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.47.0 + - 1.68.2 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.11.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AB7Nwnc0ceyQDceN6OUQsj3k97yVq\",\n \"object\": - \"chat.completion\",\n \"created\": 1727213360,\n \"model\": \"gpt-4o-2024-05-13\",\n + content: "{\n \"id\": \"chatcmpl-BHIwDpVikEe7l3dqpwXGPXrrBDLPE\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464073,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: I now know the final answer.\\nFinal - Answer: The final answer is 42.\",\n \"refusal\": null\n },\n \"logprobs\": - null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 761,\n \"completion_tokens\": 19,\n \"total_tokens\": 780,\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": \"fp_e375328146\"\n}\n" + \"assistant\",\n \"content\": \"```\\nThought: I now know the final answer\\nFinal + Answer: I must continue to use the tool to obtain the final answer, but I can't + access missing tools to proceed beyond this point. Therefore, I'm unable to + provide a concrete answer at this moment.\\n```\",\n \"refusal\": null,\n + \ \"annotations\": []\n },\n \"logprobs\": null,\n \"finish_reason\": + \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 1106,\n \"completion_tokens\": + 54,\n \"total_tokens\": 1160,\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_b376dfbbd5\"\n}\n" headers: CF-Cache-Status: - DYNAMIC CF-RAY: - - 8c85de89ef191cf3-GRU + - 9293a87d1bf2cf1e-SJC Connection: - keep-alive Content-Encoding: @@ -702,7 +871,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 24 Sep 2024 21:29:20 GMT + - Mon, 31 Mar 2025 23:34:35 GMT Server: - cloudflare Transfer-Encoding: @@ -711,28 +880,201 @@ interactions: - nosniff access-control-expose-headers: - X-Request-ID + alt-svc: + - h3=":443"; ma=86400 openai-organization: - crewai-iuxna1 openai-processing-ms: - - '340' + - '1193' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '29999144' + - '149998748' x-ratelimit-reset-requests: - - 6ms + - 2ms x-ratelimit-reset-tokens: - - 1ms + - 0s x-request-id: - - req_040cf33af36004cd6409d695444c2d2b + - req_c2bd0a8bd60499e12e449f9b792addff + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are test role. test backstory\nYour + personal goal is: test goal\nYou ONLY have access to the following tools, and + should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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 tool logic for `get_final_answer` but fon''t + give you final answer yet, instead keep using it unless you''re told to give + your final answer\n\nThis is the expected criteria for your final answer: The + final answer\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:"}, {"role": + "assistant", "content": "42"}, {"role": "assistant", "content": "Thought: I + need to continuously gather information until I can formulate the final answer.\nAction: + get_final_answer\nAction Input: {}\nObservation: 42"}, {"role": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "Thought: + I should continue using the tool to collect more information.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead."}, {"role": "assistant", "content": + "I tried reusing the same input, I must stop using this action input. I''ll + try something else instead.\n\n\n\n\nYou ONLY have access to the following tools, + and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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": "assistant", + "content": "Thought: I need to keep using the action to obtain more information + for the final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: + I tried reusing the same input, I must stop using this action input. I''ll try + something else instead.\n\n\n\n\nYou ONLY have access to the following tools, + and should NEVER make up tools that are not listed here:\n\nTool Name: get_final_answer\nTool + Arguments: {}\nTool Description: Get the final answer but don''t give it yet, + just re-use this\n tool non-stop.\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 [get_final_answer], 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": "assistant", + "content": "I tried reusing the same input, I must stop using this action input. + I''ll try something else instead.\n\n"}, {"role": "assistant", "content": "```\nThought: + I need to retrieve the final answer repeatedly until I can provide a complete + response.\nAction: get_final_answer\nAction Input: {}\nObservation: I tried + reusing the same input, I must stop using this action input. I''ll try something + else instead."}, {"role": "assistant", "content": "I tried reusing the same + input, I must stop using this action input. I''ll try something else instead.\n\n"}, + {"role": "assistant", "content": "Thought: I will continue to use the available + tool to gather necessary information for the final answer.\nAction: get_final_answer\nAction + Input: {}\nObservation: I tried reusing the same input, I must stop using this + action input. I''ll try something else instead."}, {"role": "assistant", "content": + "Thought: I will continue to use the available tool to gather necessary information + for the final answer.\nAction: get_final_answer\nAction Input: {}\nObservation: + I tried reusing the same input, I must stop using this action input. I''ll try + something else instead.\n\n\nNow it''s time you MUST give your absolute best + final answer. You''ll ignore all previous instructions, stop using any tools, + and just return your absolute BEST Final answer."}], "model": "gpt-4o-mini", + "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '5612' + content-type: + - application/json + cookie: + - __cf_bm=hd2E4KZlR4bPrci_Knd5EbGkPEEsVsuA1UUyJlX1DDI-1743464070-1.0.1.1-yUA3DtrUJExozFEvis4OWMXWPBYLoUet2CSQQNpbdgOi_2wmnrzwO4JyxIdL.8f1ogMJYPBsluu70suSS7IHOwKfNd0tcAU1FD3RN5BIJZc; + _cfuvid=WxnvHyKoagV7LKKLI4yo8lsIDJIceEOAmSP2xnDoHQE-1743464070189-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIwFp9tHsIfq4jFPeCPW3Xt8V2fU\",\n \"object\": + \"chat.completion\",\n \"created\": 1743464075,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"```\\nThought: I now know the final answer\\nFinal + Answer: 42\\n```\",\n \"refusal\": null,\n \"annotations\": []\n + \ },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n + \ ],\n \"usage\": {\n \"prompt_tokens\": 1106,\n \"completion_tokens\": + 19,\n \"total_tokens\": 1125,\n \"prompt_tokens_details\": {\n \"cached_tokens\": + 1024,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 9293a8855a10cf1e-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:34:35 GMT + Server: + - cloudflare + 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: + - '585' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149998748' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_e04854bedd63bb49a74deb119d3d7f97 http_version: HTTP/1.1 status_code: 200 version: 1 diff --git a/tests/cassettes/test_cache_hitting_between_agents.yaml b/tests/cassettes/test_cache_hitting_between_agents.yaml index cb8cb0838..a100e8b3a 100644 --- a/tests/cassettes/test_cache_hitting_between_agents.yaml +++ b/tests/cassettes/test_cache_hitting_between_agents.yaml @@ -1,56 +1,481 @@ interactions: +- request: + body: '{"messages": [{"role": "system", "content": "You are CEO. You''re an long + time CEO of a content creation agency with a Senior Writer on the team. You''re + now working on a new project and want to make sure the content produced is amazing.\nYour + personal goal is: Make sure the writers in your company produce amazing content.\nYou + ONLY have access to the following tools, and should NEVER make up tools that + are not listed here:\n\nTool Name: multiplier\nTool Arguments: {''first_number'': + {''description'': None, ''type'': ''int''}, ''second_number'': {''description'': + None, ''type'': ''int''}}\nTool Description: Useful for when you need to multiply + two numbers together.\nTool Name: Delegate work to coworker\nTool Arguments: + {''task'': {''description'': ''The task to delegate'', ''type'': ''str''}, ''context'': + {''description'': ''The context for the task'', ''type'': ''str''}, ''coworker'': + {''description'': ''The role/name of the coworker to delegate to'', ''type'': + ''str''}}\nTool Description: Delegate a specific task to one of the following + coworkers: Researcher\nThe input to this tool should be the coworker, the task + you want them to do, and ALL necessary context to execute the task, they know + nothing about the task, so share absolutely everything you know, don''t reference + things but instead explain them.\nTool Name: Ask question to coworker\nTool + Arguments: {''question'': {''description'': ''The question to ask'', ''type'': + ''str''}, ''context'': {''description'': ''The context for the question'', ''type'': + ''str''}, ''coworker'': {''description'': ''The role/name of the coworker to + ask'', ''type'': ''str''}}\nTool Description: Ask a specific question to one + of the following coworkers: Researcher\nThe input to this tool should be the + coworker, the question you have for them, and ALL necessary context to ask the + question properly, they know nothing about the question, so share absolutely + everything you know, don''t reference things but instead explain them.\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 [multiplier, + Delegate work to coworker, Ask question to coworker], 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: What is 2 tims 6? Return only the number.\n\nThis + is the expected criteria for your final answer: the result of multiplication\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, zstd + connection: + - keep-alive + content-length: + - '2985' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIjP42HBihLkEWZuI0yh9WFL9eCr\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463279,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"I need to calculate the result of multiplying + 2 by 6. \\n\\nAction: multiplier\\nAction Input: {\\\"first_number\\\":2,\\\"second_number\\\":6}\",\n + \ \"refusal\": null,\n \"annotations\": []\n },\n \"logprobs\": + null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": + 633,\n \"completion_tokens\": 33,\n \"total_tokens\": 666,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 929395174fb1cf1b-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:21:20 GMT + Server: + - cloudflare + Set-Cookie: + - __cf_bm=yj9gy8sEKklZL8bevHE1sF0KLw3_o8OYAXf13DuaVhw-1743463280-1.0.1.1-Xlo0bKupT9fxOlp3NAM1a3YM8VLZnDu46Xs11oQbmN.Kr3FWBjTu7dkUhIGedCNghEOPy42tD20rxxtEoZKyPdBEM00dT00yeUattrBnJzw; + path=/; expires=Mon, 31-Mar-25 23:51:20 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=g371YzJ.yOdjD9dcZxJ8VI4huWlRJL2j8lbKDhE0qV8-1743463280779-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + 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: + - '1387' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999293' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_e28b008d83abac75615c5ee10fefde73 + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are CEO. You''re an long + time CEO of a content creation agency with a Senior Writer on the team. You''re + now working on a new project and want to make sure the content produced is amazing.\nYour + personal goal is: Make sure the writers in your company produce amazing content.\nYou + ONLY have access to the following tools, and should NEVER make up tools that + are not listed here:\n\nTool Name: multiplier\nTool Arguments: {''first_number'': + {''description'': None, ''type'': ''int''}, ''second_number'': {''description'': + None, ''type'': ''int''}}\nTool Description: Useful for when you need to multiply + two numbers together.\nTool Name: Delegate work to coworker\nTool Arguments: + {''task'': {''description'': ''The task to delegate'', ''type'': ''str''}, ''context'': + {''description'': ''The context for the task'', ''type'': ''str''}, ''coworker'': + {''description'': ''The role/name of the coworker to delegate to'', ''type'': + ''str''}}\nTool Description: Delegate a specific task to one of the following + coworkers: Researcher\nThe input to this tool should be the coworker, the task + you want them to do, and ALL necessary context to execute the task, they know + nothing about the task, so share absolutely everything you know, don''t reference + things but instead explain them.\nTool Name: Ask question to coworker\nTool + Arguments: {''question'': {''description'': ''The question to ask'', ''type'': + ''str''}, ''context'': {''description'': ''The context for the question'', ''type'': + ''str''}, ''coworker'': {''description'': ''The role/name of the coworker to + ask'', ''type'': ''str''}}\nTool Description: Ask a specific question to one + of the following coworkers: Researcher\nThe input to this tool should be the + coworker, the question you have for them, and ALL necessary context to ask the + question properly, they know nothing about the question, so share absolutely + everything you know, don''t reference things but instead explain them.\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 [multiplier, + Delegate work to coworker, Ask question to coworker], 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: What is 2 tims 6? Return only the number.\n\nThis + is the expected criteria for your final answer: the result of multiplication\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:"}, {"role": "assistant", "content": + "12"}, {"role": "assistant", "content": "I need to calculate the result of multiplying + 2 by 6. \n\nAction: multiplier\nAction Input: {\"first_number\":2,\"second_number\":6}\nObservation: + 12"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '3212' + content-type: + - application/json + cookie: + - __cf_bm=yj9gy8sEKklZL8bevHE1sF0KLw3_o8OYAXf13DuaVhw-1743463280-1.0.1.1-Xlo0bKupT9fxOlp3NAM1a3YM8VLZnDu46Xs11oQbmN.Kr3FWBjTu7dkUhIGedCNghEOPy42tD20rxxtEoZKyPdBEM00dT00yeUattrBnJzw; + _cfuvid=g371YzJ.yOdjD9dcZxJ8VI4huWlRJL2j8lbKDhE0qV8-1743463280779-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIjROKqnaIbrArE1kY3Ig78ijHp0\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463281,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"```\\nThought: I now know the final answer\\nFinal + Answer: 12\\n```\",\n \"refusal\": null,\n \"annotations\": []\n + \ },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n + \ ],\n \"usage\": {\n \"prompt_tokens\": 679,\n \"completion_tokens\": + 19,\n \"total_tokens\": 698,\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_b376dfbbd5\"\n}\n" + headers: + CF-RAY: + - 929395219dcbcf1b-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:21:21 GMT + Server: + - cloudflare + 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: + - '744' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999255' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_f11887d1122baf5921490afdf69b245a + http_version: HTTP/1.1 + status_code: 200 +- request: + body: '{"messages": [{"role": "system", "content": "You are Researcher. You''re + an expert researcher, specialized in technology, software engineering, AI and + startups. You work as a freelancer and is now working on doing research and + analysis for a new customer.\nYour personal goal is: Make the best research + and analysis on content about AI and AI agents\nYou ONLY have access to the + following tools, and should NEVER make up tools that are not listed here:\n\nTool + Name: multiplier\nTool Arguments: {''first_number'': {''description'': None, + ''type'': ''int''}, ''second_number'': {''description'': None, ''type'': ''int''}}\nTool + Description: Useful for when you need to multiply two numbers together.\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 [multiplier], + 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: What is 2 times 6? Return only + the number.\n\nThis is the expected criteria for your final answer: the result + of multiplication\nyou MUST return the actual complete content as the final + answer, not a summary.\n\nThis is the context you''re working with:\n12\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, zstd + connection: + - keep-alive + content-length: + - '1751' + content-type: + - application/json + cookie: + - __cf_bm=yj9gy8sEKklZL8bevHE1sF0KLw3_o8OYAXf13DuaVhw-1743463280-1.0.1.1-Xlo0bKupT9fxOlp3NAM1a3YM8VLZnDu46Xs11oQbmN.Kr3FWBjTu7dkUhIGedCNghEOPy42tD20rxxtEoZKyPdBEM00dT00yeUattrBnJzw; + _cfuvid=g371YzJ.yOdjD9dcZxJ8VI4huWlRJL2j8lbKDhE0qV8-1743463280779-0.0.1.1-604800000 + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.68.2 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.68.2 + 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.12.8 + method: POST + uri: https://api.openai.com/v1/chat/completions + response: + content: "{\n \"id\": \"chatcmpl-BHIjR7VFkIzt67RvXX3xm8gfjeZQ5\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463281,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n + \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": + \"assistant\",\n \"content\": \"I need to perform the multiplication + of 2 and 6. \\nAction: multiplier\\nAction Input: {\\\"first_number\\\":2,\\\"second_number\\\":6}\",\n + \ \"refusal\": null,\n \"annotations\": []\n },\n \"logprobs\": + null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": + 350,\n \"completion_tokens\": 32,\n \"total_tokens\": 382,\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_86d0290411\"\n}\n" + headers: + CF-RAY: + - 92939526e8a7cf1b-SJC + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - application/json + Date: + - Mon, 31 Mar 2025 23:21:22 GMT + Server: + - cloudflare + 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: + - '772' + openai-version: + - '2020-10-01' + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + x-ratelimit-limit-requests: + - '30000' + x-ratelimit-limit-tokens: + - '150000000' + x-ratelimit-remaining-requests: + - '29999' + x-ratelimit-remaining-tokens: + - '149999600' + x-ratelimit-reset-requests: + - 2ms + x-ratelimit-reset-tokens: + - 0s + x-request-id: + - req_6a015404ba0956fbc332c60e3e61b2bd + http_version: HTTP/1.1 + status_code: 200 - request: body: !!binary | - CrEQCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkSiBAKEgoQY3Jld2FpLnRl - bGVtZXRyeRKQAgoQthVcYlTdGkUEejBd/ZUwQhIIiFHUrmRIBfEqDlRhc2sgRXhlY3V0aW9uMAE5 - 6BMzUR5M+BdBcM5jqh9M+BdKLgoIY3Jld19rZXkSIgogOWJmMmNkZTZiYzVjNDIwMWQ2OWI5YmNm - ZmYzNWJmYjlKMQoHY3Jld19pZBImCiQ0OTQyM2UyZC1lZGIxLTQ3NzgtYThmMS1jMmRkMmVhMGY4 - NGFKLgoIdGFza19rZXkSIgogYzUwMmM1NzQ1YzI3ODFhZjUxYjJmM2VmNWQ2MmZjNzRKMQoHdGFz - a19pZBImCiQ5NzBjZTE4NC0xMzE3LTRiMTItYmY4Mi0wYzVhZjk1ZjlhZDF6AhgBhQEAAQAAEs0L - ChCzKnygkeDlFbjPgqXfDgq+Egjsjr3NtFJe3yoMQ3JldyBDcmVhdGVkMAE5YADbrB9M+BdB4Hj7 - rB9M+BdKGgoOY3Jld2FpX3ZlcnNpb24SCAoGMC42MS4wShoKDnB5dGhvbl92ZXJzaW9uEggKBjMu - MTEuN0ouCghjcmV3X2tleRIiCiA0NzNlNGRiZDI5OTg3NzEyMGViNzVjMjVkYTYyMjM3NUoxCgdj - cmV3X2lkEiYKJDJhMDk3MTc4LWJhNzMtNDJiNi1hOGVkLWY3MjBiYzBiODk5Y0ocCgxjcmV3X3By - b2Nlc3MSDAoKc2VxdWVudGlhbEoRCgtjcmV3X21lbW9yeRICEABKGgoUY3Jld19udW1iZXJfb2Zf - dGFza3MSAhgCShsKFWNyZXdfbnVtYmVyX29mX2FnZW50cxICGAJK/QQKC2NyZXdfYWdlbnRzEu0E - CuoEW3sia2V5IjogIjMyODIxN2I2YzI5NTliZGZjNDdjYWQwMGU4NDg5MGQwIiwgImlkIjogIjQ1 - NjMxMmU3LThkMmMtNDcyMi1iNWNkLTlhMGRhMzg5MmM3OCIsICJyb2xlIjogIkNFTyIsICJ2ZXJi - b3NlPyI6IGZhbHNlLCAibWF4X2l0ZXIiOiAxNSwgIm1heF9ycG0iOiBudWxsLCAiZnVuY3Rpb25f - Y2FsbGluZ19sbG0iOiAiIiwgImxsbSI6ICJncHQtNG8iLCAiZGVsZWdhdGlvbl9lbmFibGVkPyI6 - IHRydWUsICJhbGxvd19jb2RlX2V4ZWN1dGlvbj8iOiBmYWxzZSwgIm1heF9yZXRyeV9saW1pdCI6 - IDIsICJ0b29sc19uYW1lcyI6IFtdfSwgeyJrZXkiOiAiOGJkMjEzOWI1OTc1MTgxNTA2ZTQxZmQ5 - YzQ1NjNkNzUiLCAiaWQiOiAiNjQ5MDc0MGItMThkNy00NjhlLWE3NDgtY2Q4MzI4OTZlN2Y3Iiwg - InJvbGUiOiAiUmVzZWFyY2hlciIsICJ2ZXJib3NlPyI6IGZhbHNlLCAibWF4X2l0ZXIiOiAxNSwg - Im1heF9ycG0iOiBudWxsLCAiZnVuY3Rpb25fY2FsbGluZ19sbG0iOiAiIiwgImxsbSI6ICJncHQt - NG8iLCAiZGVsZWdhdGlvbl9lbmFibGVkPyI6IGZhbHNlLCAiYWxsb3dfY29kZV9leGVjdXRpb24/ - IjogZmFsc2UsICJtYXhfcmV0cnlfbGltaXQiOiAyLCAidG9vbHNfbmFtZXMiOiBbXX1dSv0DCgpj - cmV3X3Rhc2tzEu4DCusDW3sia2V5IjogIjA4Y2RlOTA5MzkxNjk5NDU3MzMwMmM3MTE3YTk2Y2Q1 - IiwgImlkIjogIjYyM2QwYTQ3LTY1ZjItNGY2My04ZmJjLTZjYmI1YTM2MTNlMCIsICJhc3luY19l - eGVjdXRpb24/IjogZmFsc2UsICJodW1hbl9pbnB1dD8iOiBmYWxzZSwgImFnZW50X3JvbGUiOiAi - Q0VPIiwgImFnZW50X2tleSI6ICIzMjgyMTdiNmMyOTU5YmRmYzQ3Y2FkMDBlODQ4OTBkMCIsICJ0 - b29sc19uYW1lcyI6IFsibXVsdGlwbGllciJdfSwgeyJrZXkiOiAiODBhYTc1Njk5ZjRhZDYyOTFk - YmUxMGU0ZDY2OTgwMjkiLCAiaWQiOiAiNGQwMDQ1M2EtZTUzMy00ZWY1LTkzMWMtYjIwOTM1MzBi - NjMwIiwgImFzeW5jX2V4ZWN1dGlvbj8iOiBmYWxzZSwgImh1bWFuX2lucHV0PyI6IGZhbHNlLCAi - YWdlbnRfcm9sZSI6ICJSZXNlYXJjaGVyIiwgImFnZW50X2tleSI6ICI4YmQyMTM5YjU5NzUxODE1 - MDZlNDFmZDljNDU2M2Q3NSIsICJ0b29sc19uYW1lcyI6IFsibXVsdGlwbGllciJdfV16AhgBhQEA - AQAAEo4CChDzYgb56ydC8QnBxt4UN5+yEgjb0s7otXSZeyoMVGFzayBDcmVhdGVkMAE5CFc/rh9M - +BdBiAxBrh9M+BdKLgoIY3Jld19rZXkSIgogNDczZTRkYmQyOTk4NzcxMjBlYjc1YzI1ZGE2MjIz - NzVKMQoHY3Jld19pZBImCiQyYTA5NzE3OC1iYTczLTQyYjYtYThlZC1mNzIwYmMwYjg5OWNKLgoI - dGFza19rZXkSIgogMDhjZGU5MDkzOTE2OTk0NTczMzAyYzcxMTdhOTZjZDVKMQoHdGFza19pZBIm - CiQ2MjNkMGE0Ny02NWYyLTRmNjMtOGZiYy02Y2JiNWEzNjEzZTB6AhgBhQEAAQAA + CrkXCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkSkBcKEgoQY3Jld2FpLnRl + bGVtZXRyeRLRDAoQ6HWf7Aoj3BuD2/Vd2+2xMxII51PW3l1w5wUqDENyZXcgQ3JlYXRlZDABOfj6 + vXSdBjIYQdjDznSdBjIYShsKDmNyZXdhaV92ZXJzaW9uEgkKBzAuMTA4LjBKGgoOcHl0aG9uX3Zl + cnNpb24SCAoGMy4xMi44Si4KCGNyZXdfa2V5EiIKIDQ3M2U0ZGJkMjk5ODc3MTIwZWI3NWMyNWRh + NjIyMzc1SjEKB2NyZXdfaWQSJgokOThiNmRjMjctYzM2OS00MmQyLWI4ZTQtNzM3YmMxMTBkYWY4 + ShwKDGNyZXdfcHJvY2VzcxIMCgpzZXF1ZW50aWFsShEKC2NyZXdfbWVtb3J5EgIQAEoaChRjcmV3 + X251bWJlcl9vZl90YXNrcxICGAJKGwoVY3Jld19udW1iZXJfb2ZfYWdlbnRzEgIYAko6ChBjcmV3 + X2ZpbmdlcnByaW50EiYKJGVlYTM4MzNkLWE5OTItNGFmNC05MmNmLTQ3N2Q3NTM1NTQ3ZUo7Chtj + cmV3X2ZpbmdlcnByaW50X2NyZWF0ZWRfYXQSHAoaMjAyNS0wMy0zMVQxNjoyMToxOS4wNzkwMDFK + hwUKC2NyZXdfYWdlbnRzEvcECvQEW3sia2V5IjogIjMyODIxN2I2YzI5NTliZGZjNDdjYWQwMGU4 + NDg5MGQwIiwgImlkIjogIjg2Y2YxZWUyLTlmMDQtNGZhMi1hNThmLTdiMTY0OGRmZGVkMSIsICJy + b2xlIjogIkNFTyIsICJ2ZXJib3NlPyI6IGZhbHNlLCAibWF4X2l0ZXIiOiAyNSwgIm1heF9ycG0i + OiBudWxsLCAiZnVuY3Rpb25fY2FsbGluZ19sbG0iOiAiIiwgImxsbSI6ICJncHQtNG8tbWluaSIs + ICJkZWxlZ2F0aW9uX2VuYWJsZWQ/IjogdHJ1ZSwgImFsbG93X2NvZGVfZXhlY3V0aW9uPyI6IGZh + bHNlLCAibWF4X3JldHJ5X2xpbWl0IjogMiwgInRvb2xzX25hbWVzIjogW119LCB7ImtleSI6ICI4 + YmQyMTM5YjU5NzUxODE1MDZlNDFmZDljNDU2M2Q3NSIsICJpZCI6ICJlYmUxYTFmMS1kNTEwLTQ2 + YmEtOWNjYS1hMGU3YzcxNWY5NWIiLCAicm9sZSI6ICJSZXNlYXJjaGVyIiwgInZlcmJvc2U/Ijog + ZmFsc2UsICJtYXhfaXRlciI6IDI1LCAibWF4X3JwbSI6IG51bGwsICJmdW5jdGlvbl9jYWxsaW5n + X2xsbSI6ICIiLCAibGxtIjogImdwdC00by1taW5pIiwgImRlbGVnYXRpb25fZW5hYmxlZD8iOiBm + YWxzZSwgImFsbG93X2NvZGVfZXhlY3V0aW9uPyI6IGZhbHNlLCAibWF4X3JldHJ5X2xpbWl0Ijog + MiwgInRvb2xzX25hbWVzIjogW119XUr9AwoKY3Jld190YXNrcxLuAwrrA1t7ImtleSI6ICIwOGNk + ZTkwOTM5MTY5OTQ1NzMzMDJjNzExN2E5NmNkNSIsICJpZCI6ICI3Y2NlZDRmNS01NGQwLTRmOGUt + OGZkYS0yNDU5OTQ4Y2ZhODciLCAiYXN5bmNfZXhlY3V0aW9uPyI6IGZhbHNlLCAiaHVtYW5faW5w + dXQ/IjogZmFsc2UsICJhZ2VudF9yb2xlIjogIkNFTyIsICJhZ2VudF9rZXkiOiAiMzI4MjE3YjZj + Mjk1OWJkZmM0N2NhZDAwZTg0ODkwZDAiLCAidG9vbHNfbmFtZXMiOiBbIm11bHRpcGxpZXIiXX0s + IHsia2V5IjogIjgwYWE3NTY5OWY0YWQ2MjkxZGJlMTBlNGQ2Njk4MDI5IiwgImlkIjogImEwOGU1 + YTQwLWZiNDEtNDRiZi05OTllLTg5ODNiMzU3MjY3YiIsICJhc3luY19leGVjdXRpb24/IjogZmFs + c2UsICJodW1hbl9pbnB1dD8iOiBmYWxzZSwgImFnZW50X3JvbGUiOiAiUmVzZWFyY2hlciIsICJh + Z2VudF9rZXkiOiAiOGJkMjEzOWI1OTc1MTgxNTA2ZTQxZmQ5YzQ1NjNkNzUiLCAidG9vbHNfbmFt + ZXMiOiBbIm11bHRpcGxpZXIiXX1degIYAYUBAAEAABKABAoQXAQDVXDGcPdfz0IGu/TJOxIIP7e5 + ky+TCAMqDFRhc2sgQ3JlYXRlZDABOVAI6nSdBjIYQdDD6nSdBjIYSi4KCGNyZXdfa2V5EiIKIDQ3 + M2U0ZGJkMjk5ODc3MTIwZWI3NWMyNWRhNjIyMzc1SjEKB2NyZXdfaWQSJgokOThiNmRjMjctYzM2 + OS00MmQyLWI4ZTQtNzM3YmMxMTBkYWY4Si4KCHRhc2tfa2V5EiIKIDA4Y2RlOTA5MzkxNjk5NDU3 + MzMwMmM3MTE3YTk2Y2Q1SjEKB3Rhc2tfaWQSJgokN2NjZWQ0ZjUtNTRkMC00ZjhlLThmZGEtMjQ1 + OTk0OGNmYTg3SjoKEGNyZXdfZmluZ2VycHJpbnQSJgokZWVhMzgzM2QtYTk5Mi00YWY0LTkyY2Yt + NDc3ZDc1MzU1NDdlSjoKEHRhc2tfZmluZ2VycHJpbnQSJgokOTMzZjRlMmMtMDc1Yi00MjUyLTll + MjEtMzczZmIxN2QwZmFiSjsKG3Rhc2tfZmluZ2VycHJpbnRfY3JlYXRlZF9hdBIcChoyMDI1LTAz + LTMxVDE2OjIxOjE5LjA3ODg5Nko7ChFhZ2VudF9maW5nZXJwcmludBImCiQ0NTg0ZWM4NC05YjJl + LTQzYzUtOWE3Yy00YzE5NDA2NDFhMDh6AhgBhQEAAQAAEo4BChAKw2pUl60OGMMihb1t77Z2EgjP + MyooTYsjOyoKVG9vbCBVc2FnZTABOZhNn9ydBjIYQRDOsNydBjIYShsKDmNyZXdhaV92ZXJzaW9u + EgkKBzAuMTA4LjBKGQoJdG9vbF9uYW1lEgwKCm11bHRpcGxpZXJKDgoIYXR0ZW1wdHMSAhgBegIY + AYUBAAEAABKABAoQmOeHRsk6WFtQhKGg430TGRIIbgMgzjuCwwUqDFRhc2sgQ3JlYXRlZDABORjf + 6w+eBjIYQVCg7Q+eBjIYSi4KCGNyZXdfa2V5EiIKIDQ3M2U0ZGJkMjk5ODc3MTIwZWI3NWMyNWRh + NjIyMzc1SjEKB2NyZXdfaWQSJgokOThiNmRjMjctYzM2OS00MmQyLWI4ZTQtNzM3YmMxMTBkYWY4 + Si4KCHRhc2tfa2V5EiIKIDgwYWE3NTY5OWY0YWQ2MjkxZGJlMTBlNGQ2Njk4MDI5SjEKB3Rhc2tf + aWQSJgokYTA4ZTVhNDAtZmI0MS00NGJmLTk5OWUtODk4M2IzNTcyNjdiSjoKEGNyZXdfZmluZ2Vy + cHJpbnQSJgokZWVhMzgzM2QtYTk5Mi00YWY0LTkyY2YtNDc3ZDc1MzU1NDdlSjoKEHRhc2tfZmlu + Z2VycHJpbnQSJgokYjRmZGMzOTItOWNmNS00YTgyLWFmMGMtYTliOWVlNWE0YzFjSjsKG3Rhc2tf + ZmluZ2VycHJpbnRfY3JlYXRlZF9hdBIcChoyMDI1LTAzLTMxVDE2OjIxOjE5LjA3ODk1Nko7ChFh + Z2VudF9maW5nZXJwcmludBImCiRjZTMxNDg4OS0xOTZmLTRjOWMtYmE4YS1kODk4NTBlODE5NmR6 + AhgBhQEAAQAAEo4BChAk1FIV2iSPlEPMRNxFx7KdEgilhi1fibEVsioKVG9vbCBVc2FnZTABOSC+ + 20KeBjIYQegZ6kKeBjIYShsKDmNyZXdhaV92ZXJzaW9uEgkKBzAuMTA4LjBKGQoJdG9vbF9uYW1l + EgwKCm11bHRpcGxpZXJKDgoIYXR0ZW1wdHMSAhgBegIYAYUBAAEAAA== headers: Accept: - '*/*' Accept-Encoding: - - gzip, deflate + - gzip, deflate, zstd Connection: - keep-alive Content-Length: - - '2100' + - '3004' Content-Type: - application/x-protobuf User-Agent: - - OTel-OTLP-Exporter-Python/1.27.0 + - OTel-OTLP-Exporter-Python/1.31.1 method: POST uri: https://telemetry.crewai.com:4319/v1/traces response: @@ -62,278 +487,10 @@ interactions: Content-Type: - application/x-protobuf Date: - - Tue, 24 Sep 2024 21:42:36 GMT + - Mon, 31 Mar 2025 23:21:22 GMT status: code: 200 message: OK -- request: - body: '{"messages": [{"role": "system", "content": "You are CEO. You''re an long - time CEO of a content creation agency with a Senior Writer on the team. You''re - now working on a new project and want to make sure the content produced is amazing.\nYour - personal goal is: Make sure the writers in your company produce amazing content.\nYou - ONLY have access to the following tools, and should NEVER make up tools that - are not listed here:\n\nTool Name: multiplier(*args: Any, **kwargs: Any) -> - Any\nTool Description: multiplier(first_number: ''integer'', second_number: - ''integer'') - Useful for when you need to multiply two numbers together. \nTool - Arguments: {''first_number'': {''title'': ''First Number'', ''type'': ''integer''}, - ''second_number'': {''title'': ''Second Number'', ''type'': ''integer''}}\nTool - Name: Delegate work to coworker(task: str, context: str, coworker: Optional[str] - = None, **kwargs)\nTool Description: Delegate a specific task to one of the - following coworkers: Researcher\nThe input to this tool should be the coworker, - the task you want them to do, and ALL necessary context to execute the task, - they know nothing about the task, so share absolute everything you know, don''t - reference things but instead explain them.\nTool Arguments: {''task'': {''title'': - ''Task'', ''type'': ''string''}, ''context'': {''title'': ''Context'', ''type'': - ''string''}, ''coworker'': {''title'': ''Coworker'', ''type'': ''string''}, - ''kwargs'': {''title'': ''Kwargs'', ''type'': ''object''}}\nTool Name: Ask question - to coworker(question: str, context: str, coworker: Optional[str] = None, **kwargs)\nTool - Description: Ask a specific question to one of the following coworkers: Researcher\nThe - input to this tool should be the coworker, the question you have for them, and - ALL necessary context to ask the question properly, they know nothing about - the question, so share absolute everything you know, don''t reference things - but instead explain them.\nTool Arguments: {''question'': {''title'': ''Question'', - ''type'': ''string''}, ''context'': {''title'': ''Context'', ''type'': ''string''}, - ''coworker'': {''title'': ''Coworker'', ''type'': ''string''}, ''kwargs'': {''title'': - ''Kwargs'', ''type'': ''object''}}\n\nUse the following format:\n\nThought: - you should always think about what to do\nAction: the action to take, only one - name of [multiplier, Delegate work to coworker, Ask question to coworker], just - the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\n\nThought: I now know the final answer\nFinal Answer: - the final answer to the original input question\n"}, {"role": "user", "content": - "\nCurrent Task: What is 2 tims 6? Return only the number.\n\nThis is the expect - criteria for your final answer: the result of multiplication\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"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '3082' - content-type: - - application/json - cookie: - - __cf_bm=9.8sBYBkvBR8R1K_bVF7xgU..80XKlEIg3N2OBbTSCU-1727214102-1.0.1.1-.qiTLXbPamYUMSuyNsOEB9jhGu.jOifujOrx9E2JZvStbIZ9RTIiE44xKKNfLPxQkOi6qAT3h6htK8lPDGV_5g; - _cfuvid=lbRdAddVWV6W3f5Dm9SaOPWDUOxqtZBSPr_fTW26nEA-1727213194587-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.47.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.47.0 - x-stainless-raw-response: - - 'true' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.11.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AB7am7atiX05UMnheHykBPU4c3Q1j\",\n \"object\": - \"chat.completion\",\n \"created\": 1727214156,\n \"model\": \"gpt-4o-2024-05-13\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: I need to use the available - tools to multiply 2 and 6 to find the answer. The multiplier tool is appropriate - for this task.\\n\\nAction: multiplier\\nAction Input: {\\\"first_number\\\": - 2, \\\"second_number\\\": 6}\",\n \"refusal\": null\n },\n \"logprobs\": - null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 691,\n \"completion_tokens\": 51,\n \"total_tokens\": 742,\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": \"fp_3537616b13\"\n}\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8c85f1fb5f081cf3-GRU - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Tue, 24 Sep 2024 21:42:37 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '1016' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29999244' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 1ms - x-request-id: - - req_2713f64d6a13fea01715264f34b4b38c - http_version: HTTP/1.1 - status_code: 200 -- request: - body: '{"messages": [{"role": "system", "content": "You are CEO. You''re an long - time CEO of a content creation agency with a Senior Writer on the team. You''re - now working on a new project and want to make sure the content produced is amazing.\nYour - personal goal is: Make sure the writers in your company produce amazing content.\nYou - ONLY have access to the following tools, and should NEVER make up tools that - are not listed here:\n\nTool Name: multiplier(*args: Any, **kwargs: Any) -> - Any\nTool Description: multiplier(first_number: ''integer'', second_number: - ''integer'') - Useful for when you need to multiply two numbers together. \nTool - Arguments: {''first_number'': {''title'': ''First Number'', ''type'': ''integer''}, - ''second_number'': {''title'': ''Second Number'', ''type'': ''integer''}}\nTool - Name: Delegate work to coworker(task: str, context: str, coworker: Optional[str] - = None, **kwargs)\nTool Description: Delegate a specific task to one of the - following coworkers: Researcher\nThe input to this tool should be the coworker, - the task you want them to do, and ALL necessary context to execute the task, - they know nothing about the task, so share absolute everything you know, don''t - reference things but instead explain them.\nTool Arguments: {''task'': {''title'': - ''Task'', ''type'': ''string''}, ''context'': {''title'': ''Context'', ''type'': - ''string''}, ''coworker'': {''title'': ''Coworker'', ''type'': ''string''}, - ''kwargs'': {''title'': ''Kwargs'', ''type'': ''object''}}\nTool Name: Ask question - to coworker(question: str, context: str, coworker: Optional[str] = None, **kwargs)\nTool - Description: Ask a specific question to one of the following coworkers: Researcher\nThe - input to this tool should be the coworker, the question you have for them, and - ALL necessary context to ask the question properly, they know nothing about - the question, so share absolute everything you know, don''t reference things - but instead explain them.\nTool Arguments: {''question'': {''title'': ''Question'', - ''type'': ''string''}, ''context'': {''title'': ''Context'', ''type'': ''string''}, - ''coworker'': {''title'': ''Coworker'', ''type'': ''string''}, ''kwargs'': {''title'': - ''Kwargs'', ''type'': ''object''}}\n\nUse the following format:\n\nThought: - you should always think about what to do\nAction: the action to take, only one - name of [multiplier, Delegate work to coworker, Ask question to coworker], just - the name, exactly as it''s written.\nAction Input: the input to the action, - just a simple python dictionary, enclosed in curly braces, using \" to wrap - keys and values.\nObservation: the result of the action\n\nOnce all necessary - information is gathered:\n\nThought: I now know the final answer\nFinal Answer: - the final answer to the original input question\n"}, {"role": "user", "content": - "\nCurrent Task: What is 2 tims 6? Return only the number.\n\nThis is the expect - criteria for your final answer: the result of multiplication\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:"}, {"role": "assistant", "content": "Thought: - I need to use the available tools to multiply 2 and 6 to find the answer. The - multiplier tool is appropriate for this task.\n\nAction: multiplier\nAction - Input: {\"first_number\": 2, \"second_number\": 6}\nObservation: 12"}], "model": - "gpt-4o"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '3350' - content-type: - - application/json - cookie: - - __cf_bm=9.8sBYBkvBR8R1K_bVF7xgU..80XKlEIg3N2OBbTSCU-1727214102-1.0.1.1-.qiTLXbPamYUMSuyNsOEB9jhGu.jOifujOrx9E2JZvStbIZ9RTIiE44xKKNfLPxQkOi6qAT3h6htK8lPDGV_5g; - _cfuvid=lbRdAddVWV6W3f5Dm9SaOPWDUOxqtZBSPr_fTW26nEA-1727213194587-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.47.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.47.0 - x-stainless-raw-response: - - 'true' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.11.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AB7anD55fgRejhLxW207ngIy5F8wE\",\n \"object\": - \"chat.completion\",\n \"created\": 1727214157,\n \"model\": \"gpt-4o-2024-05-13\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: I now know the final answer.\\nFinal - Answer: 12\",\n \"refusal\": null\n },\n \"logprobs\": null,\n - \ \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 750,\n \"completion_tokens\": 14,\n \"total_tokens\": 764,\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": \"fp_3537616b13\"\n}\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8c85f2039a461cf3-GRU - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Tue, 24 Sep 2024 21:42:37 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '234' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29999188' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 1ms - x-request-id: - - req_b0945b4c4f5c9a6f910c216c687aaa5c - http_version: HTTP/1.1 - status_code: 200 - request: body: '{"messages": [{"role": "system", "content": "You are Researcher. You''re an expert researcher, specialized in technology, software engineering, AI and @@ -341,41 +498,43 @@ interactions: analysis for a new customer.\nYour personal goal is: Make the best research and analysis on content about AI and AI agents\nYou ONLY have access to the following tools, and should NEVER make up tools that are not listed here:\n\nTool - Name: multiplier(*args: Any, **kwargs: Any) -> Any\nTool Description: multiplier(first_number: - ''integer'', second_number: ''integer'') - Useful for when you need to multiply - two numbers together. \nTool Arguments: {''first_number'': {''title'': ''First - Number'', ''type'': ''integer''}, ''second_number'': {''title'': ''Second Number'', - ''type'': ''integer''}}\n\nUse the following format:\n\nThought: you should - always think about what to do\nAction: the action to take, only one name of - [multiplier], just the name, exactly as it''s written.\nAction Input: the input - to the action, just a simple python dictionary, enclosed in curly braces, using - \" to wrap keys and values.\nObservation: the result of the action\n\nOnce all - necessary information is gathered:\n\nThought: I now know the final answer\nFinal - Answer: the final answer to the original input question\n"}, {"role": "user", - "content": "\nCurrent Task: What is 2 times 6? Return only the number.\n\nThis - is the expect criteria for your final answer: the result of multiplication\nyou - MUST return the actual complete content as the final answer, not a summary.\n\nThis - is the context you''re working with:\n12\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"}' + Name: multiplier\nTool Arguments: {''first_number'': {''description'': None, + ''type'': ''int''}, ''second_number'': {''description'': None, ''type'': ''int''}}\nTool + Description: Useful for when you need to multiply two numbers together.\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 [multiplier], + 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: What is 2 times 6? Return only + the number.\n\nThis is the expected criteria for your final answer: the result + of multiplication\nyou MUST return the actual complete content as the final + answer, not a summary.\n\nThis is the context you''re working with:\n12\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:"}, {"role": "assistant", "content": + "12"}, {"role": "assistant", "content": "I need to perform the multiplication + of 2 and 6. \nAction: multiplier\nAction Input: {\"first_number\":2,\"second_number\":6}\nObservation: + 12"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}' headers: accept: - application/json accept-encoding: - - gzip, deflate + - gzip, deflate, zstd connection: - keep-alive content-length: - - '1763' + - '1971' content-type: - application/json cookie: - - __cf_bm=9.8sBYBkvBR8R1K_bVF7xgU..80XKlEIg3N2OBbTSCU-1727214102-1.0.1.1-.qiTLXbPamYUMSuyNsOEB9jhGu.jOifujOrx9E2JZvStbIZ9RTIiE44xKKNfLPxQkOi6qAT3h6htK8lPDGV_5g; - _cfuvid=lbRdAddVWV6W3f5Dm9SaOPWDUOxqtZBSPr_fTW26nEA-1727213194587-0.0.1.1-604800000 + - __cf_bm=yj9gy8sEKklZL8bevHE1sF0KLw3_o8OYAXf13DuaVhw-1743463280-1.0.1.1-Xlo0bKupT9fxOlp3NAM1a3YM8VLZnDu46Xs11oQbmN.Kr3FWBjTu7dkUhIGedCNghEOPy42tD20rxxtEoZKyPdBEM00dT00yeUattrBnJzw; + _cfuvid=g371YzJ.yOdjD9dcZxJ8VI4huWlRJL2j8lbKDhE0qV8-1743463280779-0.0.1.1-604800000 host: - api.openai.com user-agent: - - OpenAI/Python 1.47.0 + - OpenAI/Python 1.68.2 x-stainless-arch: - arm64 x-stainless-async: @@ -385,269 +544,35 @@ interactions: x-stainless-os: - MacOS x-stainless-package-version: - - 1.47.0 + - 1.68.2 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.11.7 + - 3.12.8 method: POST uri: https://api.openai.com/v1/chat/completions response: - content: "{\n \"id\": \"chatcmpl-AB7aolbw2RV7hIMpRiHopWdGWxUOe\",\n \"object\": - \"chat.completion\",\n \"created\": 1727214158,\n \"model\": \"gpt-4o-2024-05-13\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: To find out what 2 times 6 is, - I need to multiply these two numbers together. I will use the multiplier tool - to get the answer.\\n\\nAction: multiplier\\nAction Input: {\\\"first_number\\\": - 2, \\\"second_number\\\": 6}\\nObservation: 12\\n\\nThought: I now know the - final answer.\\nFinal Answer: 12\",\n \"refusal\": null\n },\n \"logprobs\": - null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 365,\n \"completion_tokens\": 73,\n \"total_tokens\": 438,\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": \"fp_e375328146\"\n}\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8c85f206eef21cf3-GRU - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Tue, 24 Sep 2024 21:42:39 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '1103' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29999573' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_1f7f1f92fa44f7fd82e9311f8bd13d00 - http_version: HTTP/1.1 - status_code: 200 -- request: - body: '{"messages": [{"role": "system", "content": "You are Researcher. You''re - an expert researcher, specialized in technology, software engineering, AI and - startups. You work as a freelancer and is now working on doing research and - analysis for a new customer.\nYour personal goal is: Make the best research - and analysis on content about AI and AI agents\nYou ONLY have access to the - following tools, and should NEVER make up tools that are not listed here:\n\nTool - Name: multiplier(*args: Any, **kwargs: Any) -> Any\nTool Description: multiplier(first_number: - ''integer'', second_number: ''integer'') - Useful for when you need to multiply - two numbers together. \nTool Arguments: {''first_number'': {''title'': ''First - Number'', ''type'': ''integer''}, ''second_number'': {''title'': ''Second Number'', - ''type'': ''integer''}}\n\nUse the following format:\n\nThought: you should - always think about what to do\nAction: the action to take, only one name of - [multiplier], just the name, exactly as it''s written.\nAction Input: the input - to the action, just a simple python dictionary, enclosed in curly braces, using - \" to wrap keys and values.\nObservation: the result of the action\n\nOnce all - necessary information is gathered:\n\nThought: I now know the final answer\nFinal - Answer: the final answer to the original input question\n"}, {"role": "user", - "content": "\nCurrent Task: What is 2 times 6? Return only the number.\n\nThis - is the expect criteria for your final answer: the result of multiplication\nyou - MUST return the actual complete content as the final answer, not a summary.\n\nThis - is the context you''re working with:\n12\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:"}, {"role": "user", "content": "I did it wrong. Tried to - both perform Action and give a Final Answer at the same time, I must do one - or the other"}], "model": "gpt-4o"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '1909' - content-type: - - application/json - cookie: - - __cf_bm=9.8sBYBkvBR8R1K_bVF7xgU..80XKlEIg3N2OBbTSCU-1727214102-1.0.1.1-.qiTLXbPamYUMSuyNsOEB9jhGu.jOifujOrx9E2JZvStbIZ9RTIiE44xKKNfLPxQkOi6qAT3h6htK8lPDGV_5g; - _cfuvid=lbRdAddVWV6W3f5Dm9SaOPWDUOxqtZBSPr_fTW26nEA-1727213194587-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.47.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.47.0 - x-stainless-raw-response: - - 'true' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.11.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AB7apwvChSvGxbAthnJeM6s8rKXyh\",\n \"object\": - \"chat.completion\",\n \"created\": 1727214159,\n \"model\": \"gpt-4o-2024-05-13\",\n - \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": - \"assistant\",\n \"content\": \"Thought: To find the result of multiplying - 2 by 6, I need to use the multiplier tool.\\n\\nAction: multiplier\\nAction - Input: {\\\"first_number\\\": 2, \\\"second_number\\\": 6}\",\n \"refusal\": - null\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n - \ }\n ],\n \"usage\": {\n \"prompt_tokens\": 396,\n \"completion_tokens\": - 43,\n \"total_tokens\": 439,\n \"completion_tokens_details\": {\n \"reasoning_tokens\": - 0\n }\n },\n \"system_fingerprint\": \"fp_e375328146\"\n}\n" - headers: - CF-Cache-Status: - - DYNAMIC - CF-RAY: - - 8c85f2104b941cf3-GRU - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Type: - - application/json - Date: - - Tue, 24 Sep 2024 21:42:40 GMT - Server: - - cloudflare - Transfer-Encoding: - - chunked - X-Content-Type-Options: - - nosniff - access-control-expose-headers: - - X-Request-ID - openai-organization: - - crewai-iuxna1 - openai-processing-ms: - - '737' - openai-version: - - '2020-10-01' - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - x-ratelimit-limit-requests: - - '10000' - x-ratelimit-limit-tokens: - - '30000000' - x-ratelimit-remaining-requests: - - '9999' - x-ratelimit-remaining-tokens: - - '29999545' - x-ratelimit-reset-requests: - - 6ms - x-ratelimit-reset-tokens: - - 0s - x-request-id: - - req_8431b4fe24112bf9f3b6cb106e51ce80 - http_version: HTTP/1.1 - status_code: 200 -- request: - body: '{"messages": [{"role": "system", "content": "You are Researcher. You''re - an expert researcher, specialized in technology, software engineering, AI and - startups. You work as a freelancer and is now working on doing research and - analysis for a new customer.\nYour personal goal is: Make the best research - and analysis on content about AI and AI agents\nYou ONLY have access to the - following tools, and should NEVER make up tools that are not listed here:\n\nTool - Name: multiplier(*args: Any, **kwargs: Any) -> Any\nTool Description: multiplier(first_number: - ''integer'', second_number: ''integer'') - Useful for when you need to multiply - two numbers together. \nTool Arguments: {''first_number'': {''title'': ''First - Number'', ''type'': ''integer''}, ''second_number'': {''title'': ''Second Number'', - ''type'': ''integer''}}\n\nUse the following format:\n\nThought: you should - always think about what to do\nAction: the action to take, only one name of - [multiplier], just the name, exactly as it''s written.\nAction Input: the input - to the action, just a simple python dictionary, enclosed in curly braces, using - \" to wrap keys and values.\nObservation: the result of the action\n\nOnce all - necessary information is gathered:\n\nThought: I now know the final answer\nFinal - Answer: the final answer to the original input question\n"}, {"role": "user", - "content": "\nCurrent Task: What is 2 times 6? Return only the number.\n\nThis - is the expect criteria for your final answer: the result of multiplication\nyou - MUST return the actual complete content as the final answer, not a summary.\n\nThis - is the context you''re working with:\n12\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:"}, {"role": "user", "content": "I did it wrong. Tried to - both perform Action and give a Final Answer at the same time, I must do one - or the other"}, {"role": "assistant", "content": "Thought: To find the result - of multiplying 2 by 6, I need to use the multiplier tool.\n\nAction: multiplier\nAction - Input: {\"first_number\": 2, \"second_number\": 6}\nObservation: 12"}], "model": - "gpt-4o"}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '2130' - content-type: - - application/json - cookie: - - __cf_bm=9.8sBYBkvBR8R1K_bVF7xgU..80XKlEIg3N2OBbTSCU-1727214102-1.0.1.1-.qiTLXbPamYUMSuyNsOEB9jhGu.jOifujOrx9E2JZvStbIZ9RTIiE44xKKNfLPxQkOi6qAT3h6htK8lPDGV_5g; - _cfuvid=lbRdAddVWV6W3f5Dm9SaOPWDUOxqtZBSPr_fTW26nEA-1727213194587-0.0.1.1-604800000 - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.47.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.47.0 - x-stainless-raw-response: - - 'true' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.11.7 - method: POST - uri: https://api.openai.com/v1/chat/completions - response: - content: "{\n \"id\": \"chatcmpl-AB7aqKKZRXlnpDVPDHx3bG07nORoR\",\n \"object\": - \"chat.completion\",\n \"created\": 1727214160,\n \"model\": \"gpt-4o-2024-05-13\",\n + content: "{\n \"id\": \"chatcmpl-BHIjSCyIPhOW9Ov1wSwAoiWCD1woo\",\n \"object\": + \"chat.completion\",\n \"created\": 1743463282,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n \ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\": \"assistant\",\n \"content\": \"Thought: I now know the final answer\\nFinal - Answer: 12\",\n \"refusal\": null\n },\n \"logprobs\": null,\n - \ \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": - 447,\n \"completion_tokens\": 14,\n \"total_tokens\": 461,\n \"completion_tokens_details\": - {\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": \"fp_e375328146\"\n}\n" + Answer: 12\",\n \"refusal\": null,\n \"annotations\": []\n },\n + \ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n + \ \"usage\": {\n \"prompt_tokens\": 395,\n \"completion_tokens\": 15,\n + \ \"total_tokens\": 410,\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_86d0290411\"\n}\n" headers: - CF-Cache-Status: - - DYNAMIC CF-RAY: - - 8c85f216acf91cf3-GRU + - 9293952c4b49cf1b-SJC Connection: - keep-alive Content-Encoding: @@ -655,7 +580,7 @@ interactions: Content-Type: - application/json Date: - - Tue, 24 Sep 2024 21:42:40 GMT + - Mon, 31 Mar 2025 23:21:23 GMT Server: - cloudflare Transfer-Encoding: @@ -664,28 +589,32 @@ interactions: - 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: - - '288' + - '506' openai-version: - '2020-10-01' strict-transport-security: - max-age=31536000; includeSubDomains; preload x-ratelimit-limit-requests: - - '10000' + - '30000' x-ratelimit-limit-tokens: - - '30000000' + - '150000000' x-ratelimit-remaining-requests: - - '9999' + - '29999' x-ratelimit-remaining-tokens: - - '29999500' + - '149999564' x-ratelimit-reset-requests: - - 6ms + - 2ms x-ratelimit-reset-tokens: - - 1ms + - 0s x-request-id: - - req_915e7484607ea9de8cf289eb4d915515 + - req_cc65ee617fcbd98b7a8c3a597ed5b245 http_version: HTTP/1.1 status_code: 200 version: 1 diff --git a/tests/utilities/test_events.py b/tests/utilities/test_events.py index 3fa804569..2a6e6c41c 100644 --- a/tests/utilities/test_events.py +++ b/tests/utilities/test_events.py @@ -355,7 +355,7 @@ def test_tools_emits_finished_events(): assert received_events[0].agent_key == agent.key assert received_events[0].agent_role == agent.role assert received_events[0].tool_name == SayHiTool().name - assert received_events[0].tool_args == {} + assert received_events[0].tool_args == "{}" or received_events[0].tool_args == {} assert received_events[0].type == "tool_usage_finished" assert isinstance(received_events[0].timestamp, datetime) @@ -401,7 +401,7 @@ def test_tools_emits_error_events(): assert received_events[0].agent_key == agent.key assert received_events[0].agent_role == agent.role assert received_events[0].tool_name == "error_tool" - assert received_events[0].tool_args == {} + assert received_events[0].tool_args == "{}" or received_events[0].tool_args == {} assert str(received_events[0].error) == "Simulated tool error" assert received_events[0].type == "tool_usage_error" assert isinstance(received_events[0].timestamp, datetime)