Skip to content

Commit 730dd47

Browse files
authored
do not take fullpage screenshot post CUA action (#2197)
1 parent 63af3d9 commit 730dd47

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

skyvern/forge/agent.py

+16-5
Original file line numberDiff line numberDiff line change
@@ -958,7 +958,7 @@ async def agent_step(
958958
)
959959
detailed_agent_step_output.actions_and_results[action_idx] = (action, [action_result])
960960
await app.DATABASE.create_action(action=action)
961-
await self.record_artifacts_after_action(task, step, browser_state)
961+
await self.record_artifacts_after_action(task, step, browser_state, engine)
962962
break
963963

964964
action = action_node.action
@@ -1011,7 +1011,7 @@ async def agent_step(
10111011
)
10121012
# wait random time between actions to avoid detection
10131013
await asyncio.sleep(random.uniform(1.0, 2.0))
1014-
await self.record_artifacts_after_action(task, step, browser_state)
1014+
await self.record_artifacts_after_action(task, step, browser_state, engine)
10151015
for result in results:
10161016
result.step_retry_number = step.retry_index
10171017
result.step_order = step.order
@@ -1147,7 +1147,7 @@ async def agent_step(
11471147
scraped_page, task, step, working_page, complete_action
11481148
)
11491149
detailed_agent_step_output.actions_and_results.append((complete_action, complete_results))
1150-
await self.record_artifacts_after_action(task, step, browser_state)
1150+
await self.record_artifacts_after_action(task, step, browser_state, engine)
11511151

11521152
# if the last action is complete and is successful, check if there's a data extraction goal
11531153
# if task has navigation goal and extraction goal at the same time, handle ExtractAction before marking step as completed
@@ -1441,12 +1441,23 @@ async def check_user_goal_complete(
14411441
)
14421442
return None
14431443

1444-
async def record_artifacts_after_action(self, task: Task, step: Step, browser_state: BrowserState) -> None:
1444+
async def record_artifacts_after_action(
1445+
self,
1446+
task: Task,
1447+
step: Step,
1448+
browser_state: BrowserState,
1449+
engine: RunEngine,
1450+
) -> None:
14451451
working_page = await browser_state.get_working_page()
14461452
if not working_page:
14471453
raise BrowserStateMissingPage()
1454+
1455+
fullpage_screenshot = True
1456+
if engine == RunEngine.openai_cua:
1457+
fullpage_screenshot = False
1458+
14481459
try:
1449-
screenshot = await browser_state.take_screenshot(full_page=True)
1460+
screenshot = await browser_state.take_screenshot(full_page=fullpage_screenshot)
14501461
await app.ARTIFACT_MANAGER.create_artifact(
14511462
step=step,
14521463
artifact_type=ArtifactType.SCREENSHOT_ACTION,

0 commit comments

Comments
 (0)