shu/fallback to skyvern actions when cua returns no action (#2141)
This commit is contained in:
@@ -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:
|
||||
|
||||
21
skyvern/forge/prompts/skyvern/cua-fallback-action.j2
Normal file
21
skyvern/forge/prompts/skyvern/cua-fallback-action.j2
Normal 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 }}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user