support cdp for task and workflow (#3244)

This commit is contained in:
LawyZheng
2025-08-21 11:16:22 +08:00
committed by GitHub
parent d0296f0e25
commit c0a31fe0a6
17 changed files with 194 additions and 51 deletions

View File

@@ -187,6 +187,7 @@ class ForgeAgent:
model=task_block.model,
max_screenshot_scrolling_times=workflow_run.max_screenshot_scrolls,
extra_http_headers=workflow_run.extra_http_headers,
browser_address=workflow_run.browser_address,
)
LOG.info(
"Created a new task for workflow run",
@@ -255,6 +256,7 @@ class ForgeAgent:
max_screenshot_scrolling_times=task_request.max_screenshot_scrolls,
extra_http_headers=task_request.extra_http_headers,
browser_session_id=task_request.browser_session_id,
browser_address=task_request.browser_address,
)
LOG.info(
"Created new task",
@@ -292,6 +294,10 @@ class ForgeAgent:
if engine in CUA_ENGINES:
complete_verification = False
close_browser_on_completion = (
close_browser_on_completion and browser_session_id is None and not task.browser_address
)
workflow_run: WorkflowRun | None = None
if task.workflow_run_id:
workflow_run = await app.DATABASE.get_workflow_run(
@@ -352,7 +358,7 @@ class ForgeAgent:
api_key=api_key,
need_call_webhook=True,
browser_session_id=browser_session_id,
close_browser_on_completion=close_browser_on_completion and browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
)
return step, None, None
@@ -410,7 +416,7 @@ class ForgeAgent:
last_step=step,
api_key=api_key,
need_call_webhook=True,
close_browser_on_completion=close_browser_on_completion and browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
browser_session_id=browser_session_id,
)
return step, detailed_output, None
@@ -517,7 +523,7 @@ class ForgeAgent:
task=completed_task,
last_step=last_step,
api_key=api_key,
close_browser_on_completion=close_browser_on_completion and browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
browser_session_id=browser_session_id,
)
return last_step, detailed_output, None
@@ -534,7 +540,7 @@ class ForgeAgent:
task=task,
last_step=step,
api_key=api_key,
close_browser_on_completion=close_browser_on_completion and browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
browser_session_id=browser_session_id,
)
return step, detailed_output, None
@@ -557,7 +563,7 @@ class ForgeAgent:
task=task,
last_step=last_step,
api_key=api_key,
close_browser_on_completion=close_browser_on_completion and browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
browser_session_id=browser_session_id,
)
return last_step, detailed_output, None
@@ -642,7 +648,7 @@ class ForgeAgent:
task=task,
last_step=step,
api_key=api_key,
close_browser_on_completion=browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
browser_session_id=browser_session_id,
)
return step, detailed_output, None
@@ -659,7 +665,7 @@ class ForgeAgent:
task=task,
last_step=step,
api_key=api_key,
close_browser_on_completion=close_browser_on_completion and browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
browser_session_id=browser_session_id,
)
else:
@@ -694,7 +700,7 @@ class ForgeAgent:
task=task,
last_step=step,
api_key=api_key,
close_browser_on_completion=close_browser_on_completion and browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
need_final_screenshot=False,
browser_session_id=browser_session_id,
)
@@ -716,7 +722,7 @@ class ForgeAgent:
api_key=api_key,
need_call_webhook=False,
browser_session_id=browser_session_id,
close_browser_on_completion=close_browser_on_completion and browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
)
return step, detailed_output, None
except InvalidTaskStatusTransition:
@@ -732,7 +738,7 @@ class ForgeAgent:
api_key=api_key,
need_call_webhook=False,
browser_session_id=browser_session_id,
close_browser_on_completion=close_browser_on_completion and browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
)
return step, detailed_output, None
except (UnsupportedActionType, UnsupportedTaskType, FailedToParseActionInstruction) as e:
@@ -750,7 +756,7 @@ class ForgeAgent:
api_key=api_key,
need_call_webhook=False,
browser_session_id=browser_session_id,
close_browser_on_completion=close_browser_on_completion and browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
)
return step, detailed_output, None
except ScrapingFailed as sfe:
@@ -771,7 +777,7 @@ class ForgeAgent:
task=task,
last_step=step,
api_key=api_key,
close_browser_on_completion=close_browser_on_completion and browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
browser_session_id=browser_session_id,
)
return step, detailed_output, None
@@ -792,7 +798,7 @@ class ForgeAgent:
task=task,
last_step=step,
api_key=api_key,
close_browser_on_completion=close_browser_on_completion and browser_session_id is None,
close_browser_on_completion=close_browser_on_completion,
browser_session_id=browser_session_id,
)
else: