diff --git a/README.md b/README.md index b6d950a3b..5669c71a2 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ To get started with CrewAI, follow these simple steps: ### 1. Installation -Ensure you have Python >=3.10 <=3.12 installed on your system. CrewAI uses [UV](https://docs.astral.sh/uv/) for dependency management and package handling, offering a seamless setup and execution experience. +Ensure you have Python >=3.10 <3.13 installed on your system. CrewAI uses [UV](https://docs.astral.sh/uv/) for dependency management and package handling, offering a seamless setup and execution experience. First, install CrewAI: diff --git a/docs/concepts/llms.mdx b/docs/concepts/llms.mdx index 915ce141c..4e269d71a 100644 --- a/docs/concepts/llms.mdx +++ b/docs/concepts/llms.mdx @@ -29,7 +29,7 @@ Large Language Models (LLMs) are the core intelligence behind CrewAI agents. The ## Available Models and Their Capabilities -Here's a detailed breakdown of supported models and their capabilities, you can compare performance at [lmarena.ai](https://lmarena.ai/): +Here's a detailed breakdown of supported models and their capabilities, you can compare performance at [lmarena.ai](https://lmarena.ai/?leaderboard) and [artificialanalysis.ai](https://artificialanalysis.ai/): @@ -121,12 +121,18 @@ Here's a detailed breakdown of supported models and their capabilities, you can | Model | Context Window | Best For | |-------|---------------|-----------| - | Gemini 1.5 Flash | 1M tokens | Balanced multimodal model, good for most tasks | - | Gemini 1.5 Flash 8B | 1M tokens | Fastest, most cost-efficient, good for high-frequency tasks | - | Gemini 1.5 Pro | 2M tokens | Best performing, wide variety of reasoning tasks including logical reasoning, coding, and creative collaboration | + | gemini-2.0-flash-exp | 1M tokens | Higher quality at faster speed, multimodal model, good for most tasks | + | gemini-1.5-flash | 1M tokens | Balanced multimodal model, good for most tasks | + | gemini-1.5-flash-8B | 1M tokens | Fastest, most cost-efficient, good for high-frequency tasks | + | gemini-1.5-pro | 2M tokens | Best performing, wide variety of reasoning tasks including logical reasoning, coding, and creative collaboration | Google's Gemini models are all multimodal, supporting audio, images, video and text, supporting context caching, json schema, function calling, etc. + + These models are available via API_KEY from + [The Gemini API](https://ai.google.dev/gemini-api/docs) and also from + [Google Cloud Vertex](https://cloud.google.com/vertex-ai/generative-ai/docs/migrate/migrate-google-ai) as part of the + [Model Garden](https://cloud.google.com/vertex-ai/generative-ai/docs/model-garden/explore-models). @@ -135,7 +141,6 @@ Here's a detailed breakdown of supported models and their capabilities, you can | Llama 3.1 70B/8B | 131,072 tokens | High-performance, large context tasks | | Llama 3.2 Series | 8,192 tokens | General-purpose tasks | | Mixtral 8x7B | 32,768 tokens | Balanced performance and context | - | Gemma Series | 8,192 tokens | Efficient, smaller-scale tasks | Groq is known for its fast inference speeds, making it suitable for real-time applications. @@ -146,7 +151,7 @@ Here's a detailed breakdown of supported models and their capabilities, you can |----------|---------------|--------------| | Deepseek Chat | 128,000 tokens | Specialized in technical discussions | | Claude 3 | Up to 200K tokens | Strong reasoning, code understanding | - | Gemini | Varies by model | Multimodal capabilities | + | Gemma Series | 8,192 tokens | Efficient, smaller-scale tasks | Provider selection should consider factors like: diff --git a/docs/installation.mdx b/docs/installation.mdx index ca330e9ca..c98bce9ef 100644 --- a/docs/installation.mdx +++ b/docs/installation.mdx @@ -7,7 +7,7 @@ icon: wrench **Python Version Requirements** - CrewAI requires `Python >=3.10 and <=3.12`. Here's how to check your version: + CrewAI requires `Python >=3.10 and <3.13`. Here's how to check your version: ```bash python3 --version ``` diff --git a/pyproject.toml b/pyproject.toml index 5dd4e64b6..27a4785b4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "crewai" version = "0.86.0" description = "Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks." readme = "README.md" -requires-python = ">=3.10,<=3.12" +requires-python = ">=3.10,<3.13" authors = [ { name = "Joao Moura", email = "joao@crewai.com" } ] diff --git a/src/crewai/cli/templates/crew/README.md b/src/crewai/cli/templates/crew/README.md index ca3cbd3eb..327499d0a 100644 --- a/src/crewai/cli/templates/crew/README.md +++ b/src/crewai/cli/templates/crew/README.md @@ -4,7 +4,7 @@ Welcome to the {{crew_name}} Crew project, powered by [crewAI](https://crewai.co ## Installation -Ensure you have Python >=3.10 <=3.12 installed on your system. This project uses [UV](https://docs.astral.sh/uv/) for dependency management and package handling, offering a seamless setup and execution experience. +Ensure you have Python >=3.10 <3.13 installed on your system. This project uses [UV](https://docs.astral.sh/uv/) for dependency management and package handling, offering a seamless setup and execution experience. First, if you haven't already, install uv: diff --git a/src/crewai/cli/templates/crew/pyproject.toml b/src/crewai/cli/templates/crew/pyproject.toml index 29014881b..5ea8194c8 100644 --- a/src/crewai/cli/templates/crew/pyproject.toml +++ b/src/crewai/cli/templates/crew/pyproject.toml @@ -3,7 +3,7 @@ name = "{{folder_name}}" version = "0.1.0" description = "{{name}} using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] -requires-python = ">=3.10,<=3.12" +requires-python = ">=3.10,<3.13" dependencies = [ "crewai[tools]>=0.86.0,<1.0.0" ] @@ -18,3 +18,6 @@ test = "{{folder_name}}.main:test" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" + +[tool.crewai] +type = "crew" diff --git a/src/crewai/cli/templates/flow/README.md b/src/crewai/cli/templates/flow/README.md index fead65ece..b6ce2da71 100644 --- a/src/crewai/cli/templates/flow/README.md +++ b/src/crewai/cli/templates/flow/README.md @@ -4,7 +4,7 @@ Welcome to the {{crew_name}} Crew project, powered by [crewAI](https://crewai.co ## Installation -Ensure you have Python >=3.10 <=3.12 installed on your system. This project uses [UV](https://docs.astral.sh/uv/) for dependency management and package handling, offering a seamless setup and execution experience. +Ensure you have Python >=3.10 <3.13 installed on your system. This project uses [UV](https://docs.astral.sh/uv/) for dependency management and package handling, offering a seamless setup and execution experience. First, if you haven't already, install uv: diff --git a/src/crewai/cli/templates/flow/main.py b/src/crewai/cli/templates/flow/main.py index 73684051a..83f48ddd6 100644 --- a/src/crewai/cli/templates/flow/main.py +++ b/src/crewai/cli/templates/flow/main.py @@ -5,7 +5,7 @@ from pydantic import BaseModel from crewai.flow.flow import Flow, listen, start -from .crews.poem_crew.poem_crew import PoemCrew +from {{folder_name}}.crews.poem_crew.poem_crew import PoemCrew class PoemState(BaseModel): diff --git a/src/crewai/cli/templates/flow/pyproject.toml b/src/crewai/cli/templates/flow/pyproject.toml index a20653eff..8a523d2ed 100644 --- a/src/crewai/cli/templates/flow/pyproject.toml +++ b/src/crewai/cli/templates/flow/pyproject.toml @@ -3,7 +3,7 @@ name = "{{folder_name}}" version = "0.1.0" description = "{{name}} using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] -requires-python = ">=3.10,<=3.12" +requires-python = ">=3.10,<3.13" dependencies = [ "crewai[tools]>=0.86.0,<1.0.0", ] @@ -15,3 +15,6 @@ plot = "{{folder_name}}.main:plot" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" + +[tool.crewai] +type = "flow" diff --git a/src/crewai/cli/templates/tool/README.md b/src/crewai/cli/templates/tool/README.md index 1291ff6a6..d332fa197 100644 --- a/src/crewai/cli/templates/tool/README.md +++ b/src/crewai/cli/templates/tool/README.md @@ -5,7 +5,7 @@ custom tools to power up your crews. ## Installing -Ensure you have Python >=3.10 <=3.12 installed on your system. This project +Ensure you have Python >=3.10 <3.13 installed on your system. This project uses [UV](https://docs.astral.sh/uv/) for dependency management and package handling, offering a seamless setup and execution experience. diff --git a/src/crewai/cli/templates/tool/pyproject.toml b/src/crewai/cli/templates/tool/pyproject.toml index a1557bd7f..69b8d355f 100644 --- a/src/crewai/cli/templates/tool/pyproject.toml +++ b/src/crewai/cli/templates/tool/pyproject.toml @@ -3,8 +3,10 @@ name = "{{folder_name}}" version = "0.1.0" description = "Power up your crews with {{folder_name}}" readme = "README.md" -requires-python = ">=3.10,<=3.12" +requires-python = ">=3.10,<3.13" dependencies = [ "crewai[tools]>=0.86.0" ] +[tool.crewai] +type = "tool" diff --git a/src/crewai/llm.py b/src/crewai/llm.py index 058589056..1b0ac9b0a 100644 --- a/src/crewai/llm.py +++ b/src/crewai/llm.py @@ -44,6 +44,7 @@ LLM_CONTEXT_WINDOW_SIZES = { "o1-preview": 128000, "o1-mini": 128000, # gemini + "gemini-2.0-flash": 1048576, "gemini-1.5-pro": 2097152, "gemini-1.5-flash": 1048576, "gemini-1.5-flash-8b": 1048576, diff --git a/src/crewai/tools/tool_usage.py b/src/crewai/tools/tool_usage.py index 15227542d..3de4a8fab 100644 --- a/src/crewai/tools/tool_usage.py +++ b/src/crewai/tools/tool_usage.py @@ -419,9 +419,10 @@ class ToolUsage: elif value.lower() in [ "true", "false", - "null", ]: # Check for boolean and null values - value = value.lower() + value = value.lower().capitalize() + elif value.lower() == "null": + value = "None" else: # Assume the value is a string and needs quotes value = '"' + value.replace('"', '\\"') + '"' diff --git a/src/crewai/translations/en.json b/src/crewai/translations/en.json index 2b8fec44b..6bdbb7c29 100644 --- a/src/crewai/translations/en.json +++ b/src/crewai/translations/en.json @@ -12,7 +12,7 @@ "tools": "\nYou ONLY have access to the following tools, and should NEVER make up tools that are not listed here:\n\n{tools}\n\nUse the following format:\n\nThought: you should always think about what to do\nAction: the action to take, only one name of [{tool_names}], 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", "no_tools": "\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!", "format": "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 [{tool_names}]\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", - "final_answer_format": "If you don't need to use any more tools, you must give your best complete final answer, make sure it satisfy the expect 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", + "final_answer_format": "If 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", "format_without_tools": "\nSorry, I didn't use the right format. I MUST either use a tool (among the available ones), OR give my best final answer.\nI just remembered the expected format I must follow:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: the action to take, should be one of [{tool_names}]\nAction Input: the input to the action\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", "task_with_context": "{task}\n\nThis is the context you're working with:\n{context}", "expected_output": "\nThis is the expect criteria for your final answer: {expected_output}\nyou MUST return the actual complete content as the final answer, not a summary.", diff --git a/tests/cassettes/test_agent_function_calling_llm.yaml b/tests/cassettes/test_agent_function_calling_llm.yaml index d3c68b6e2..fdeabed21 100644 --- a/tests/cassettes/test_agent_function_calling_llm.yaml +++ b/tests/cassettes/test_agent_function_calling_llm.yaml @@ -26237,7 +26237,7 @@ interactions: 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 satisfy the expect criteria, use + 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"}], "model": "gpt-4o"}' headers: @@ -26590,7 +26590,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -26941,7 +26941,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -27292,7 +27292,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -27647,7 +27647,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -28005,7 +28005,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -28364,7 +28364,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -28718,7 +28718,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -29082,7 +29082,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -29441,7 +29441,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -29802,7 +29802,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -30170,7 +30170,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -30533,7 +30533,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -30907,7 +30907,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -31273,7 +31273,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -31644,7 +31644,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the @@ -32015,7 +32015,7 @@ interactions: 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 satisfy the expect criteria, use + 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": "user", "content": "I did it wrong. Tried to both perform Action and give a Final Answer at the diff --git a/tests/cassettes/test_agent_powered_by_new_o_model_family_that_allows_skipping_tool.yaml b/tests/cassettes/test_agent_powered_by_new_o_model_family_that_allows_skipping_tool.yaml index 36fb1638e..3ad147278 100644 --- a/tests/cassettes/test_agent_powered_by_new_o_model_family_that_allows_skipping_tool.yaml +++ b/tests/cassettes/test_agent_powered_by_new_o_model_family_that_allows_skipping_tool.yaml @@ -247,7 +247,7 @@ interactions: {"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 satisfy the expect criteria, use the EXACT format + 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"}], "model": "o1-preview"}' headers: diff --git a/tests/cli/deploy/test_deploy_main.py b/tests/cli/deploy/test_deploy_main.py index 00e355a62..ca89b2aa2 100644 --- a/tests/cli/deploy/test_deploy_main.py +++ b/tests/cli/deploy/test_deploy_main.py @@ -231,7 +231,7 @@ class TestDeployCommand(unittest.TestCase): [project] name = "test_project" version = "0.1.0" - requires-python = ">=3.10,<=3.12" + requires-python = ">=3.10,<3.13" dependencies = ["crewai"] """, ) @@ -250,7 +250,7 @@ class TestDeployCommand(unittest.TestCase): [project] name = "test_project" version = "0.1.0" - requires-python = ">=3.10,<=3.12" + requires-python = ">=3.10,<3.13" dependencies = ["crewai"] """, ) diff --git a/uv.lock b/uv.lock index f6f0750f6..5cf51b18c 100644 --- a/uv.lock +++ b/uv.lock @@ -1,9 +1,10 @@ version = 1 -requires-python = ">=3.10, <=3.12" +requires-python = ">=3.10, <3.13" resolution-markers = [ "python_full_version < '3.11'", "python_full_version == '3.11.*'", - "python_full_version >= '3.12'", + "python_full_version >= '3.12' and python_full_version < '3.12.4'", + "python_full_version >= '3.12.4'", ] [[package]]