diff --git a/skyvern/forge/agent.py b/skyvern/forge/agent.py index bcf67c40..4fea82d5 100644 --- a/skyvern/forge/agent.py +++ b/skyvern/forge/agent.py @@ -1416,6 +1416,8 @@ class ForgeAgent: "display_width_px": settings.BROWSER_WIDTH, } ] + thinking = {"type": "enabled", "budget_tokens": 1024} + betas = ["computer-use-2025-01-24"] if not llm_caller.message_history: llm_response = await llm_caller.call( prompt=task.navigation_goal, @@ -1423,7 +1425,8 @@ class ForgeAgent: use_message_history=True, tools=tools, raw_response=True, - betas=["computer-use-2025-01-24"], + betas=betas, + thinking=thinking, ) else: llm_response = await llm_caller.call( @@ -1431,7 +1434,8 @@ class ForgeAgent: use_message_history=True, tools=tools, raw_response=True, - betas=["computer-use-2025-01-24"], + betas=betas, + thinking=thinking, ) assistant_content = llm_response["content"] llm_caller.message_history.append({"role": "assistant", "content": assistant_content}) diff --git a/skyvern/forge/sdk/api/llm/api_handler_factory.py b/skyvern/forge/sdk/api/llm/api_handler_factory.py index 021450cc..4aebb5c2 100644 --- a/skyvern/forge/sdk/api/llm/api_handler_factory.py +++ b/skyvern/forge/sdk/api/llm/api_handler_factory.py @@ -693,6 +693,7 @@ class LLMCaller: max_tokens = active_parameters.get("max_completion_tokens") or active_parameters.get("max_tokens") or 4096 model_name = self.llm_config.model_name.replace("bedrock/", "").replace("anthropic/", "") betas = active_parameters.get("betas", NOT_GIVEN) + thinking = active_parameters.get("thinking", NOT_GIVEN) LOG.info("Anthropic request", betas=betas, tools=tools, timeout=timeout) response = await app.ANTHROPIC_CLIENT.beta.messages.create( max_tokens=max_tokens, @@ -701,6 +702,7 @@ class LLMCaller: tools=tools or NOT_GIVEN, timeout=timeout, betas=betas, + thinking=thinking, ) LOG.info("Anthropic response", response=response, betas=betas, tools=tools, timeout=timeout) return response