shu/fallback to skyvern actions when cua returns no action (#2141)

This commit is contained in:
Shuchang Zheng
2025-04-12 20:55:38 -07:00
committed by GitHub
parent e8efcc0bd7
commit db7f1abeab
5 changed files with 72 additions and 14 deletions

View File

@@ -1319,7 +1319,7 @@ class ForgeAgent:
incremental_cached_tokens=cached_tokens if cached_tokens > 0 else None,
)
return parse_cua_actions(task, step, current_response), current_response
return await parse_cua_actions(task, step, current_response), current_response
@staticmethod
async def complete_verify(page: Page, scraped_page: ScrapedPage, task: Task, step: Step) -> CompleteVerifyResult:

View File

@@ -0,0 +1,21 @@
The user is trying to achieve a goal in the browser assisted by an browser AI assistant.
According to the AI assistant's feedback, including reasoning and its message, there's no immediate action the assistant can take in the website.
Help the user decide what to do next based on the assistant's message. Here's the list of available actions:
- solve_captcha: the task is blocked by captcha and the assistant is asking the user to solve the captcha
- complete: the user goal has been achieved
- terminate: the user goal cannot be achieved. Terminate the task. Examples: 1) there's not enough data provided to achieve the goal and the assistant is asking the user to provide more information. For examples: login is required and the user has not provided the login credentials or incorrect credentials are provided; a form needs to be filled and a required field is missing. 2) The site is stuck or not loading after multiple attempts
- get_verification_code: the assistant is asking the user to provide a verification code (2FA, MFA or TOTP code)
- other: the assistant is asking the user to do something else
Return the action to take next in the following JSON format:
{
"action": str // complete, terminate, solve_captcha, get_verification_code
}
User goal: {{ navigation_goal }}
Assistant reasoning: {{ assistant_reasoning }}
Assistant message: {{ assistant_message }}

View File

@@ -1479,6 +1479,8 @@ async def run_task(
)
url = url or task_generation.url
navigation_goal = task_generation.navigation_goal or run_request.prompt
if run_request.engine == RunEngine.openai_cua:
navigation_goal = run_request.prompt
navigation_payload = task_generation.navigation_payload
data_extraction_goal = task_generation.data_extraction_goal
data_extraction_schema = data_extraction_schema or task_generation.extracted_information_schema