chore: restructure test env, cassettes, and conftest; fix flaky tests
Some checks failed
Build uv cache / build-cache (3.10) (push) Has been cancelled
Build uv cache / build-cache (3.11) (push) Has been cancelled
Build uv cache / build-cache (3.12) (push) Has been cancelled
Build uv cache / build-cache (3.13) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Notify Downstream / notify-downstream (push) Has been cancelled
Mark stale issues and pull requests / stale (push) Has been cancelled

Consolidates pytest config, standardizes env handling, reorganizes cassette layout, removes outdated VCR configs, improves sync with threading.Condition, updates event-waiting logic, ensures cleanup, regenerates Gemini cassettes, and reverts unintended test changes.
This commit is contained in:
Greyson LaLonde
2025-11-29 16:55:24 -05:00
committed by GitHub
parent bc4e6a3127
commit c925d2d519
200 changed files with 2070 additions and 1891 deletions

View File

@@ -1,115 +0,0 @@
interactions:
- request:
body: '{"messages": [{"role": "system", "content": "You are researcher. You''re
an expert researcher, specialized in technology\nYour personal goal is: make
the best research and analysis on content about AI and AI agents\nTo give my
best complete final answer to the task use the exact following format:\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\nI MUST use
these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent
Task: do you hate AI Agents?\n\nThis is the expect criteria for your final answer:
Your best answer to your coworker asking you this, accounting for the context
shared.\nyou MUST return the actual complete content as the final answer, not
a summary.\n\nThis is the context you''re working with:\nI heard you LOVE them\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:
- '1021'
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
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-AB7WnyWZFoccBH9YB7ghLbR1L8Wqa\",\n \"object\":
\"chat.completion\",\n \"created\": 1727213909,\n \"model\": \"gpt-4o-2024-05-13\",\n
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
\"assistant\",\n \"content\": \"Thought: I now can give a great answer\\nFinal
Answer: As an expert researcher specialized in technology, I don't harbor emotions
such as hate towards AI agents. Instead, my focus is on understanding, analyzing,
and leveraging their potential to advance various fields. AI agents, when designed
and implemented effectively, can greatly augment human capabilities, streamline
processes, and provide valuable insights that might otherwise be overlooked.
My enthusiasm for AI agents stems from their ability to transform industries
and improve everyday life, making complex tasks more manageable and enhancing
overall efficiency. This passion drives my research and commitment to making
meaningful contributions in the realm of AI and AI agents.\",\n \"refusal\":
null\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n
\ }\n ],\n \"usage\": {\n \"prompt_tokens\": 199,\n \"completion_tokens\":
126,\n \"total_tokens\": 325,\n \"completion_tokens_details\": {\n \"reasoning_tokens\":
0\n }\n },\n \"system_fingerprint\": \"fp_e375328146\"\n}\n"
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c85ebf47e661cf3-GRU
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 24 Sep 2024 21:38:31 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:
- '2498'
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:
- '29999755'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_b7e2cb0620e45d3d74310d3f0166551f
http_version: HTTP/1.1
status_code: 200
version: 1

View File

@@ -1,116 +0,0 @@
interactions:
- request:
body: '{"messages": [{"role": "system", "content": "You are researcher. You''re
an expert researcher, specialized in technology\nYour personal goal is: make
the best research and analysis on content about AI and AI agents\nTo give my
best complete final answer to the task use the exact following format:\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\nI MUST use
these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent
Task: do you hate AI Agents?\n\nThis is the expect criteria for your final answer:
Your best answer to your coworker asking you this, accounting for the context
shared.\nyou MUST return the actual complete content as the final answer, not
a summary.\n\nThis is the context you''re working with:\nI heard you LOVE them\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:
- '1021'
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
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-AB7Wy6aW1XM0lWaMyQUNB9qhbCZlH\",\n \"object\":
\"chat.completion\",\n \"created\": 1727213920,\n \"model\": \"gpt-4o-2024-05-13\",\n
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
\"assistant\",\n \"content\": \"Thought: I now can give a great answer\\nFinal
Answer: As an expert researcher specializing in technology and AI, I have a
deep appreciation for AI agents. These advanced tools have the potential to
revolutionize countless industries by improving efficiency, accuracy, and decision-making
processes. They can augment human capabilities, handle mundane and repetitive
tasks, and even offer insights that might be beyond human reach. While it's
crucial to approach AI with a balanced perspective, understanding both its capabilities
and limitations, my stance is one of optimism and fascination. Properly developed
and ethically managed, AI agents hold immense promise for driving innovation
and solving complex problems. So yes, I do love AI agents for their transformative
potential and the positive impact they can have on society.\",\n \"refusal\":
null\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n
\ }\n ],\n \"usage\": {\n \"prompt_tokens\": 199,\n \"completion_tokens\":
146,\n \"total_tokens\": 345,\n \"completion_tokens_details\": {\n \"reasoning_tokens\":
0\n }\n },\n \"system_fingerprint\": \"fp_e375328146\"\n}\n"
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c85ec3c6f3b1cf3-GRU
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 24 Sep 2024 21:38:42 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:
- '1675'
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:
- '29999755'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_a249567d37ada11bc8857404338b24cc
http_version: HTTP/1.1
status_code: 200
version: 1

View File

@@ -1,114 +0,0 @@
interactions:
- request:
body: '{"messages": [{"role": "system", "content": "You are researcher. You''re
an expert researcher, specialized in technology\nYour personal goal is: make
the best research and analysis on content about AI and AI agents\nTo give my
best complete final answer to the task use the exact following format:\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\nI MUST use
these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent
Task: do you hate AI Agents?\n\nThis is the expect criteria for your final answer:
Your best answer to your coworker asking you this, accounting for the context
shared.\nyou MUST return the actual complete content as the final answer, not
a summary.\n\nThis is the context you''re working with:\nI heard you LOVE them\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:
- '1021'
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
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-AB7Wq7edXMCGJR1zDd2QoySLdo8mM\",\n \"object\":
\"chat.completion\",\n \"created\": 1727213912,\n \"model\": \"gpt-4o-2024-05-13\",\n
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
\"assistant\",\n \"content\": \"Thought: I now can give a great answer\\nFinal
Answer: I don't hate AI agents; on the contrary, I find them fascinating and
incredibly useful. Considering the rapid advancements in AI technology, these
agents have the potential to revolutionize various industries by automating
tasks, improving efficiency, and providing insights that were previously unattainable.
My expertise in researching and analyzing AI and AI agents has allowed me to
appreciate the intricate design and the vast possibilities they offer. Therefore,
it's more accurate to say that I love AI agents for their potential to drive
innovation and improve our daily lives.\",\n \"refusal\": null\n },\n
\ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n
\ \"usage\": {\n \"prompt_tokens\": 199,\n \"completion_tokens\": 116,\n
\ \"total_tokens\": 315,\n \"completion_tokens_details\": {\n \"reasoning_tokens\":
0\n }\n },\n \"system_fingerprint\": \"fp_e375328146\"\n}\n"
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c85ec05f8651cf3-GRU
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 24 Sep 2024 21:38:33 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:
- '1739'
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:
- '29999755'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_d9e1e9458d5539061397a618345c27d4
http_version: HTTP/1.1
status_code: 200
version: 1

View File

@@ -1,132 +0,0 @@
interactions:
- request:
body: '{"messages": [{"role": "system", "content": "You are researcher. You''re
an expert researcher, specialized in technology\nYour personal goal is: make
the best research and analysis on content about AI and AI agents\nTo give my
best complete final answer to the task use the exact following format:\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\nI MUST use
these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent
Task: share your take on AI Agents\n\nThis is the expect criteria for your final
answer: Your best answer to your coworker asking you this, accounting for the
context shared.\nyou MUST return the actual complete content as the final answer,
not a summary.\n\nThis is the context you''re working with:\nI heard you hate
them\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:
- '1027'
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
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-AB7WbKt7If02iTLuH5cJJjeYo9uDi\",\n \"object\":
\"chat.completion\",\n \"created\": 1727213897,\n \"model\": \"gpt-4o-2024-05-13\",\n
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
\"assistant\",\n \"content\": \"Thought: I now can give a great answer\\nFinal
Answer: I understand why you might think I dislike AI agents, but my perspective
is more nuanced. AI agents, in essence, are incredibly versatile tools designed
to perform specific tasks autonomously or semi-autonomously. They harness various
artificial intelligence techniques, such as machine learning, natural language
processing, and computer vision, to interpret data, understand tasks, and execute
them efficiently. \\n\\nFrom a technological standpoint, AI agents have revolutionized
numerous industries. In customer service, for instance, AI agents like chatbots
and virtual assistants handle customer inquiries 24/7, providing quick and efficient
solutions. In healthcare, AI agents can assist in diagnosing diseases, managing
patient data, and even predicting outbreaks. The automation capabilities of
AI agents also enhance productivity in areas such as logistics, finance, and
cybersecurity by identifying patterns and anomalies at speeds far beyond human
capabilities.\\n\\nHowever, it's important to acknowledge the potential downsides
and challenges associated with AI agents. Ethical considerations are paramount.
Issues such as data privacy, security, and biases in AI algorithms need to be
carefully managed. There is also the human aspect to consider\u2014over-reliance
on AI agents might lead to job displacement in certain sectors, and ensuring
a fair transition for affected workers is crucial.\\n\\nMy concerns generally
stem from these ethical and societal implications rather than from the technology
itself. I advocate for responsible AI development, which includes transparency,
fairness, and accountability. By addressing these concerns, we can harness the
full potential of AI agents while mitigating the associated risks.\\n\\nSo,
to clarify, I don't hate AI agents; I recognize their immense potential and
the significant benefits they bring to various fields. However, I am equally
aware of the challenges they present and advocate for a balanced approach to
their development and deployment.\",\n \"refusal\": null\n },\n
\ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n
\ \"usage\": {\n \"prompt_tokens\": 200,\n \"completion_tokens\": 359,\n
\ \"total_tokens\": 559,\n \"completion_tokens_details\": {\n \"reasoning_tokens\":
0\n }\n },\n \"system_fingerprint\": \"fp_3537616b13\"\n}\n"
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c85ebaa5c061cf3-GRU
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 24 Sep 2024 21:38:22 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:
- '4928'
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:
- '29999755'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_761796305026b5adfbb5a6237f14e32a
http_version: HTTP/1.1
status_code: 200
version: 1

View File

@@ -1,136 +0,0 @@
interactions:
- request:
body: '{"messages": [{"role": "system", "content": "You are researcher. You''re
an expert researcher, specialized in technology\nYour personal goal is: make
the best research and analysis on content about AI and AI agents\nTo give my
best complete final answer to the task use the exact following format:\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\nI MUST use
these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent
Task: share your take on AI Agents\n\nThis is the expect criteria for your final
answer: Your best answer to your coworker asking you this, accounting for the
context shared.\nyou MUST return the actual complete content as the final answer,
not a summary.\n\nThis is the context you''re working with:\nI heard you hate
them\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:
- '1027'
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
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-AB7Wh4RzroZdiwUNOc4oRRhwfdRzs\",\n \"object\":
\"chat.completion\",\n \"created\": 1727213903,\n \"model\": \"gpt-4o-2024-05-13\",\n
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
\"assistant\",\n \"content\": \"Thought: I now can give a great answer\\nFinal
Answer: AI agents are essentially autonomous software programs that perform
tasks or provide services on behalf of humans. They're built on complex algorithms
and often leverage machine learning and neural networks to adapt and improve
over time. \\n\\nIt's important to clarify that I don't \\\"hate\\\" AI agents,
but I do approach them with a critical eye for a couple of reasons. AI agents
have enormous potential to transform industries, making processes more efficient,
providing insightful data analytics, and even learning from user behavior to
offer personalized experiences. However, this potential comes with significant
challenges and risks:\\n\\n1. **Ethical Concerns**: AI agents operate on data,
and the biases present in data can lead to unfair or unethical outcomes. Ensuring
that AI operates within ethical boundaries requires rigorous oversight, which
is not always in place.\\n\\n2. **Privacy Issues**: AI agents often need access
to large amounts of data, raising questions about privacy and data security.
If not managed correctly, this can lead to unauthorized data access and potential
misuse of sensitive information.\\n\\n3. **Transparency and Accountability**:
The decision-making process of AI agents can be opaque, making it difficult
to understand how they arrive at specific conclusions or actions. This lack
of transparency poses challenges for accountability, especially if something
goes wrong.\\n\\n4. **Job Displacement**: As AI agents become more capable,
there are valid concerns about their impact on employment. Tasks that were traditionally
performed by humans are increasingly being automated, which can lead to job
loss in certain sectors.\\n\\n5. **Reliability**: While AI agents can outperform
humans in many areas, they are not infallible. They can make mistakes, sometimes
with serious consequences. Continuous monitoring and regular updates are essential
to maintain their performance and reliability.\\n\\nIn summary, while AI agents
offer substantial benefits and opportunities, it's critical to approach their
adoption and deployment with careful consideration of the associated risks.
Balancing innovation with responsibility is key to leveraging AI agents effectively
and ethically. So, rather than \\\"hating\\\" AI agents, I advocate for a balanced,
cautious approach that maximizes benefits while mitigating potential downsides.\",\n
\ \"refusal\": null\n },\n \"logprobs\": null,\n \"finish_reason\":
\"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 200,\n \"completion_tokens\":
429,\n \"total_tokens\": 629,\n \"completion_tokens_details\": {\n \"reasoning_tokens\":
0\n }\n },\n \"system_fingerprint\": \"fp_3537616b13\"\n}\n"
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c85ebcdae971cf3-GRU
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 24 Sep 2024 21:38:29 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:
- '5730'
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:
- '29999755'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_5da5b18b3cee10548a217ba97e133815
http_version: HTTP/1.1
status_code: 200
version: 1

View File

@@ -1,137 +0,0 @@
interactions:
- request:
body: '{"messages": [{"role": "system", "content": "You are researcher. You''re
an expert researcher, specialized in technology\nYour personal goal is: make
the best research and analysis on content about AI and AI agents\nTo give my
best complete final answer to the task use the exact following format:\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\nI MUST use
these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent
Task: share your take on AI Agents\n\nThis is the expect criteria for your final
answer: Your best answer to your coworker asking you this, accounting for the
context shared.\nyou MUST return the actual complete content as the final answer,
not a summary.\n\nThis is the context you''re working with:\nI heard you hate
them\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:
- '1027'
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
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-AB7Wsv05NzccAAGC0CZVg03mE72wi\",\n \"object\":
\"chat.completion\",\n \"created\": 1727213914,\n \"model\": \"gpt-4o-2024-05-13\",\n
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
\"assistant\",\n \"content\": \"Thought: I now can give a great answer\\nFinal
Answer: My perspective on AI agents is quite nuanced and not a matter of simple
like or dislike. AI agents, depending on their design, deployment, and use cases,
can bring about both significant benefits and substantial challenges.\\n\\nOn
the positive side, AI agents have the potential to automate mundane tasks, enhance
productivity, and provide personalized services in ways that were previously
unimaginable. For instance, in customer service, AI agents can handle inquiries
24/7, reducing waiting times and improving user satisfaction. In healthcare,
they can assist in diagnosing diseases by analyzing vast datasets much faster
than humans. These applications demonstrate the transformative power of AI in
improving efficiency and delivering better outcomes across various industries.\\n\\nHowever,
my reservations stem from several critical concerns. Firstly, there's the issue
of reliability and accuracy. Mismanaged or poorly designed AI systems can lead
to significant errors, which could be particularly detrimental in high-stakes
environments like healthcare or autonomous vehicles. Second, there's a risk
of job displacement as AI agents become capable of performing tasks traditionally
done by humans. This raises socio-economic concerns that need to be addressed
through effective policy-making and upskilling programs.\\n\\nAdditionally,
there are ethical and privacy considerations. AI agents often require large
amounts of data to function effectively, which can lead to issues concerning
consent, data security, and individual privacy rights. The lack of transparency
in how these agents make decisions can also pose challenges\u2014this is often
referred to as the \\\"black box\\\" problem, where even the developers may
not fully understand how specific AI outputs are generated.\\n\\nFinally, the
deployment of AI agents by bad actors for malicious purposes, such as deepfakes,
misinformation, and hacking, remains a pertinent concern. These potential downsides
imply that while AI technology is extremely powerful and promising, it must
be developed and implemented with care, consideration, and robust ethical guidelines.\\n\\nSo,
in summary, I don't hate AI agents\u2014rather, I approach them critically with
a balanced perspective, recognizing both their profound potential and the significant
challenges they present. Thoughtful development, responsible deployment, and
ethical governance are crucial to harness the benefits while mitigating the
risks associated with AI agents.\",\n \"refusal\": null\n },\n \"logprobs\":
null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\":
200,\n \"completion_tokens\": 436,\n \"total_tokens\": 636,\n \"completion_tokens_details\":
{\n \"reasoning_tokens\": 0\n }\n },\n \"system_fingerprint\": \"fp_3537616b13\"\n}\n"
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c85ec12ab0d1cf3-GRU
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 24 Sep 2024 21:38: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:
- '6251'
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:
- '29999755'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_50aa23cad48cfb83b754a5a92939638e
http_version: HTTP/1.1
status_code: 200
version: 1

View File

@@ -16,14 +16,7 @@ delegate_tool = tools[0]
ask_tool = tools[1]
@pytest.fixture(scope="module")
def vcr_config(request) -> dict:
return {
"cassette_library_dir": os.path.join(os.path.dirname(__file__), "cassettes"),
}
@pytest.mark.vcr(filter_headers=["authorization"])
@pytest.mark.vcr()
def test_delegate_work():
result = delegate_tool.run(
coworker="researcher",
@@ -37,7 +30,7 @@ def test_delegate_work():
)
@pytest.mark.vcr(filter_headers=["authorization"])
@pytest.mark.vcr()
def test_delegate_work_with_wrong_co_worker_variable():
result = delegate_tool.run(
coworker="researcher",
@@ -51,7 +44,7 @@ def test_delegate_work_with_wrong_co_worker_variable():
)
@pytest.mark.vcr(filter_headers=["authorization"])
@pytest.mark.vcr()
def test_ask_question():
result = ask_tool.run(
coworker="researcher",
@@ -65,7 +58,7 @@ def test_ask_question():
)
@pytest.mark.vcr(filter_headers=["authorization"])
@pytest.mark.vcr()
def test_ask_question_with_wrong_co_worker_variable():
result = ask_tool.run(
coworker="researcher",
@@ -79,7 +72,7 @@ def test_ask_question_with_wrong_co_worker_variable():
)
@pytest.mark.vcr(filter_headers=["authorization"])
@pytest.mark.vcr()
def test_delegate_work_withwith_coworker_as_array():
result = delegate_tool.run(
coworker="[researcher]",
@@ -93,7 +86,7 @@ def test_delegate_work_withwith_coworker_as_array():
)
@pytest.mark.vcr(filter_headers=["authorization"])
@pytest.mark.vcr()
def test_ask_question_with_coworker_as_array():
result = ask_tool.run(
coworker="[researcher]",

View File

@@ -197,7 +197,7 @@ def test_run_does_not_call_asyncio_run_for_sync_tools():
assert sync_result == "Processed test synchronously"
@pytest.mark.vcr(filter_headers=["authorization"])
@pytest.mark.vcr()
def test_max_usage_count_is_respected():
class IteratingTool(BaseTool):
name: str = "iterating_tool"

View File

@@ -197,7 +197,7 @@ def build_simple_crew(tool):
return Crew(agents=[agent1], tasks=[say_hi_task])
@pytest.mark.vcr(filter_headers=["authorization"])
@pytest.mark.vcr()
def test_async_tool_using_within_isolated_crew(custom_tool):
crew = build_simple_crew(custom_tool)
result = crew.kickoff()
@@ -205,7 +205,7 @@ def test_async_tool_using_within_isolated_crew(custom_tool):
assert result.raw == "Hello World from Custom Tool"
@pytest.mark.vcr(filter_headers=["authorization"])
@pytest.mark.vcr()
def test_async_tool_using_decorator_within_isolated_crew(custom_tool_decorator):
crew = build_simple_crew(custom_tool_decorator)
result = crew.kickoff()
@@ -213,7 +213,7 @@ def test_async_tool_using_decorator_within_isolated_crew(custom_tool_decorator):
assert result.raw == "Hello World from Custom Tool"
@pytest.mark.vcr(filter_headers=["authorization"])
@pytest.mark.vcr()
def test_async_tool_within_flow(custom_tool):
from crewai.flow.flow import Flow
@@ -230,7 +230,7 @@ def test_async_tool_within_flow(custom_tool):
assert result.raw == "Hello World from Custom Tool"
@pytest.mark.vcr(filter_headers=["authorization"])
@pytest.mark.vcr()
def test_async_tool_using_decorator_within_flow(custom_tool_decorator):
from crewai.flow.flow import Flow

View File

@@ -564,16 +564,23 @@ def test_tool_validate_input_error_event():
patch("json_repair.repair_json", side_effect=Exception("Failed to repair")),
):
received_events = []
condition = threading.Condition()
@crewai_event_bus.on(ToolValidateInputErrorEvent)
def event_handler(source, event):
received_events.append(event)
with condition:
received_events.append(event)
condition.notify()
# Test invalid input
invalid_input = "invalid json {[}"
with pytest.raises(Exception): # noqa: B017
tool_usage._validate_tool_input(invalid_input)
with condition:
if not received_events:
condition.wait(timeout=5)
# Verify event was emitted
assert len(received_events) == 1, "Expected one event to be emitted"
event = received_events[0]