support agent user header (#2077)

This commit is contained in:
Shuchang Zheng
2025-04-02 16:29:38 -04:00
committed by GitHub
parent 3d7788791c
commit a86864d072
3 changed files with 11 additions and 1 deletions

View File

@@ -66,7 +66,11 @@ class SkyvernAgent:
settings.BROWSER_TYPE = browser_type
elif base_url and api_key:
self.client = SkyvernClient(base_url=base_url, api_key=api_key)
self.client = SkyvernClient(
base_url=base_url,
api_key=api_key,
extra_headers={"X-User-Agent": "skyvern-mcp"},
)
else:
raise ValueError("base_url and api_key must be both provided")

View File

@@ -8,10 +8,12 @@ class SkyvernClient:
self,
base_url: str = settings.SKYVERN_BASE_URL,
api_key: str = settings.SKYVERN_API_KEY,
extra_headers: dict[str, str] | None = None,
) -> None:
self.base_url = base_url
self.api_key = api_key
self.client = AsyncSkyvern(base_url=base_url, api_key=api_key)
self.extra_headers = extra_headers
async def run_task(
self,

View File

@@ -179,6 +179,7 @@ async def run_task_v1(
current_org: Organization = Depends(org_auth_service.get_current_org),
x_api_key: Annotated[str | None, Header()] = None,
x_max_steps_override: Annotated[int | None, Header()] = None,
x_user_agent: Annotated[str | None, Header()] = None,
) -> CreateTaskResponse:
analytics.capture("skyvern-oss-agent-task-create", data={"url": task.url})
await PermissionCheckerFactory.get_instance().check(current_org, browser_session_id=task.browser_session_id)
@@ -652,6 +653,7 @@ async def run_workflow_legacy(
template: bool = Query(False),
x_api_key: Annotated[str | None, Header()] = None,
x_max_steps_override: Annotated[int | None, Header()] = None,
x_user_agent: Annotated[str | None, Header()] = None,
) -> RunWorkflowResponse:
analytics.capture("skyvern-oss-agent-workflow-execute")
context = skyvern_context.ensure_context()
@@ -1458,6 +1460,7 @@ async def run_task(
run_request: TaskRunRequest,
current_org: Organization = Depends(org_auth_service.get_current_org),
x_api_key: Annotated[str | None, Header()] = None,
x_user_agent: Annotated[str | None, Header()] = None,
) -> TaskRunResponse:
analytics.capture("skyvern-oss-run-task", data={"url": run_request.url})
await PermissionCheckerFactory.get_instance().check(current_org, browser_session_id=run_request.browser_session_id)
@@ -1600,6 +1603,7 @@ async def run_workflow(
template: bool = Query(False),
x_api_key: Annotated[str | None, Header()] = None,
x_max_steps_override: Annotated[int | None, Header()] = None,
x_user_agent: Annotated[str | None, Header()] = None,
) -> WorkflowRunResponse:
analytics.capture("skyvern-oss-run-workflow")
await PermissionCheckerFactory.get_instance().check(