have a feature flag to decide if we should disable user_goal_check (#1192)

This commit is contained in:
Shuchang Zheng
2024-11-14 11:11:29 -08:00
committed by GitHub
parent 9dd4263f9a
commit 17d9a56738
2 changed files with 69 additions and 18 deletions

View File

@@ -0,0 +1,45 @@
import { MultiSelect } from "@/components/ui/multi-select";
import { useWorkflowParametersState } from "../../useWorkflowParametersState";
import { HelpTooltip } from "@/components/HelpTooltip";
import { helpTooltipContent } from "./types";
type Props = {
availableOutputParameters: Array<string>;
parameters: Array<string>;
onParametersChange: (parameters: Array<string>) => void;
};
function TaskNodeParametersPanel({
availableOutputParameters,
parameters,
onParametersChange,
}: Props) {
const [workflowParameters] = useWorkflowParametersState();
const keys = workflowParameters
.map((parameter) => parameter.key)
.concat(availableOutputParameters);
const options = keys.map((key) => {
return {
label: key,
value: key,
};
});
return (
<div className="space-y-2">
<header className="flex gap-2">
<h1 className="text-xs text-slate-300">Parameters</h1>
<HelpTooltip content={helpTooltipContent["parameters"]} />
</header>
<MultiSelect
value={parameters}
onValueChange={onParametersChange}
options={options}
maxCount={50}
/>
</div>
);
}
export { TaskNodeParametersPanel };

View File

@@ -859,26 +859,32 @@ class ForgeAgent:
task_completes_on_download = task_block and task_block.complete_on_download and task.workflow_run_id
if not has_decisive_action and not task_completes_on_download:
working_page = await browser_state.must_get_working_page()
complete_action = await self.check_user_goal_complete(
page=working_page,
scraped_page=scraped_page,
task=task,
step=step,
disable_user_goal_check = app.EXPERIMENTATION_PROVIDER.is_feature_enabled_cached(
"DISABLE_USER_GOAL_CHECK",
task.task_id,
properties={"task_url": task.url, "organization_id": task.organization_id},
)
if complete_action is not None:
LOG.info("User goal achieved, executing complete action")
complete_action.organization_id = task.organization_id
complete_action.workflow_run_id = task.workflow_run_id
complete_action.task_id = task.task_id
complete_action.step_id = step.step_id
complete_action.step_order = step.order
complete_action.action_order = len(detailed_agent_step_output.actions_and_results)
complete_results = await ActionHandler.handle_action(
scraped_page, task, step, working_page, complete_action
if not disable_user_goal_check:
working_page = await browser_state.must_get_working_page()
complete_action = await self.check_user_goal_complete(
page=working_page,
scraped_page=scraped_page,
task=task,
step=step,
)
detailed_agent_step_output.actions_and_results.append((complete_action, complete_results))
await self.record_artifacts_after_action(task, step, browser_state)
if complete_action is not None:
LOG.info("User goal achieved, executing complete action")
complete_action.organization_id = task.organization_id
complete_action.workflow_run_id = task.workflow_run_id
complete_action.task_id = task.task_id
complete_action.step_id = step.step_id
complete_action.step_order = step.order
complete_action.action_order = len(detailed_agent_step_output.actions_and_results)
complete_results = await ActionHandler.handle_action(
scraped_page, task, step, working_page, complete_action
)
detailed_agent_step_output.actions_and_results.append((complete_action, complete_results))
await self.record_artifacts_after_action(task, step, browser_state)
# If no action errors return the agent state and output
completed_step = await self.update_step(
step=step,