From e1232f7858e5c486442da90f1c32049a9e38a23f Mon Sep 17 00:00:00 2001 From: Vansh Date: Sat, 26 Apr 2025 05:31:04 -0400 Subject: [PATCH 1/2] feat: add strict tool validation configuration to OpenAIAugmentedLLM --- src/mcp_agent/workflows/llm/augmented_llm_openai.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/mcp_agent/workflows/llm/augmented_llm_openai.py b/src/mcp_agent/workflows/llm/augmented_llm_openai.py index 6e2562eac..958d38177 100644 --- a/src/mcp_agent/workflows/llm/augmented_llm_openai.py +++ b/src/mcp_agent/workflows/llm/augmented_llm_openai.py @@ -68,7 +68,14 @@ def __init__(self, *args, **kwargs): if hasattr(self.context.config.openai, "reasoning_effort"): self._reasoning_effort = self.context.config.openai.reasoning_effort - self._reasoning = lambda model : model.startswith(("o1","o3","o4")) + self._reasoning = lambda model: model.startswith(("o1", "o3", "o4")) + + self._strict_tool_validation = True # default strict validation + if self.context and self.context.config and self.context.config.openai: + if hasattr(self.context.config.openai, "strict_tool_validation"): + self._strict_tool_validation = ( + self.context.config.openai.strict_tool_validation + ) if self._reasoning(chosen_model): self.logger.info( @@ -142,6 +149,7 @@ async def generate(self, message, request_params: RequestParams | None = None): "name": tool.name, "description": tool.description, "parameters": tool.inputSchema, + "strict": self._strict_tool_validation, # TODO: saqadri - determine if we should specify "strict" to True by default }, ) @@ -163,10 +171,8 @@ async def generate(self, message, request_params: RequestParams | None = None): if self._reasoning(model): arguments = { **arguments, - # DEPRECATED: https://platform.openai.com/docs/api-reference/chat/create#chat-create-max_tokens # "max_tokens": params.maxTokens, - "max_completion_tokens": params.maxTokens, "reasoning_effort": self._reasoning_effort, } From 35bfe67b1f3a6ac39c6693c008a10fde6249fea8 Mon Sep 17 00:00:00 2001 From: Vansh Date: Sat, 26 Apr 2025 05:32:26 -0400 Subject: [PATCH 2/2] rem: TODO comment regarding default strict tool validation setting --- src/mcp_agent/workflows/llm/augmented_llm_openai.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/mcp_agent/workflows/llm/augmented_llm_openai.py b/src/mcp_agent/workflows/llm/augmented_llm_openai.py index 958d38177..690ab7956 100644 --- a/src/mcp_agent/workflows/llm/augmented_llm_openai.py +++ b/src/mcp_agent/workflows/llm/augmented_llm_openai.py @@ -150,7 +150,6 @@ async def generate(self, message, request_params: RequestParams | None = None): "description": tool.description, "parameters": tool.inputSchema, "strict": self._strict_tool_validation, - # TODO: saqadri - determine if we should specify "strict" to True by default }, ) for tool in response.tools