
skyvern v1.0.50
AI를 사용하여 브라우저 기반 워크플로우를 자동화하세요
🐉 LLM과 컴퓨터 비전으로 브라우저 기반 워크플로우 자동화 🐉
Skyvern은 LLM과 컴퓨터 비전을 사용하여 브라우저 기반 워크플로우를 자동화합니다. Playwright 호환 SDK를 제공하여 플레이라이트 위에 AI 기능을 추가하고, 기술 사용자와 비기술 사용자 모두가 모든 웹사이트에서 수동 워크플로우를 자동화할 수 있도록 코드 없는 워크플로우 빌더도 제공합니다. 이는 취약하거나 신뢰할 수 없는 자동화 솔루션을 대체합니다.
기존 브라우저 자동화 방식은 웹사이트마다 사용자 정의 스크립트를 작성해야 했고, 종종 DOM 파싱 및 XPath 기반 상호작용에 의존하여 웹사이트 레이아웃이 변경될 때마다 작동이 중단되었습니다.
Skyvern은 코드로 정의된 XPath 상호작용에만 의존하는 대신, Vision LLM을 활용하여 웹사이트를 학습하고 상호작용합니다.
작동 방식
Skyvern은 BabyAGI와 AutoGPT가 대중화한 Task-Driven 자율 에이전트 디자인에서 영감을 받았습니다. 가장 큰 장점은 Playwright와 같은 브라우저 자동화 라이브러리를 사용하여 웹사이트와 상호작용할 수 있는 능력을 Skyvern에 부여했다는 점입니다.
Skyvern은 에이전트 떼(swarm)를 사용하여 웹사이트를 이해하고, 작업을 계획하고 실행합니다:
이 접근 방식은 몇 가지 장점이 있습니다:
- Skyvern은 이전에 본 적 없는 웹사이트에서도 작동할 수 있습니다. 사용자 정의 코드 없이 시각적 요소를 워크플로우 완료에 필요한 작업에 매핑할 수 있기 때문입니다.
- Skyvern은 웹사이트 레이아웃 변경에 강합니다. 시스템이 탐색 중에 찾는 미리 정의된 XPath나 다른 선택자가 없기 때문입니다.
- Skyvern은 단일 워크플로우를 많은 웹사이트에 적용할 수 있습니다. 워크플로우를 완료하는 데 필요한 상호작용을 추론할 수 있기 때문입니다.
자세한 기술 보고서는 여기에서 확인할 수 있습니다.
데모
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
빠른 시작
Skyvern Cloud
Skyvern Cloud는 인프라를 걱정하지 않고 Skyvern을 실행할 수 있는 관리형 클라우드 버전입니다. 여러 Skyvern 인스턴스를 병렬로 실행할 수 있으며, 봇 탐지 방지 메커니즘, 프록시 네트워크, CAPTCHA 해결사가 함께 제공됩니다.
사용해 보려면 app.skyvern.com으로 이동하여 계정을 만드세요.
로컬에서 실행 (UI + 서버)
선호하는 설정 방법을 선택하세요:
데이터베이스 기본값:
skyvern quickstart및skyvern run server는~/.skyvern/data.db의 SQLite 데이터베이스를 기본값으로 사용하므로 pip 경로가 Postgres나 Docker 없이도 작동합니다. Postgres를 사용하려면 로컬 컨테이너의 경우--postgres, 기존 데이터베이스의 경우--database-string을 전달하세요. Docker Compose는 항상 번들된 Postgres 서비스를 사용합니다.
옵션 A: pip 설치 (Python으로 관리되는 로컬 설정에 권장)
필요한 종속성:
또한 Windows의 경우:
- Rust
- C++ 개발 도구 및 Windows SDK가 포함된 VS Code
1. Skyvern 설치```bash
pip install "skyvern[all]"
#### 2. Skyvern 실행```bash
skyvern quickstart
The pip quickstart는 기본적으로 SQLite를 사용합니다. 로컬 Postgres 컨테이너를 사용하려면 skyvern quickstart --postgres를 실행하세요.
옵션 B: Docker Compose
이 옵션은 모든 것을 컨테이너화하고(Postgres, API, UI) Python/Node를 로컬에 설치하고 싶지 않을 때 사용하세요.
- Docker Desktop을 설치하세요.
- 저장소를 클론하세요: ```bash
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern
.env에서 LLM 제공자를 설정하세요 (없는 경우에는 아래의quickstart --docker-compose명령이.env.example에서 이를 생성합니다): ```bash cp .env.example .env # if not already creatededit .env to add your LLM API key
- 모든 것을 시작하세요: ```bash
docker compose up -d
- http://localhost:8080 열기
문제 해결
(sqlite3.OperationalError) table organizations already exists — pip install skyvern==1.0.31에 알려진 버그가 발생했습니다. 해결 방법:```bash
rm ~/.skyvern/data.db # remove the leftover SQLite file
pip install --upgrade skyvern # 1.0.32+ contains the fix
skyvern quickstart
만약 여전히 1.0.31을 사용 중이고 업그레이드할 수 없다면, 대신 uv를 통해 설치하세요:```bash
uv pip install skyvern
pip install skyvern fails with ResolutionImpossible (litellm / fastmcp) — 1.0.31에서 의존성 해결 충돌이 발생합니다. 1.0.32 이상으로 업그레이드하거나 uv를 사용하세요: uv pip install skyvern.
SDK
Skyvern은 AI 기반 브라우저 자동화를 추가하는 Playwright 확장입니다. Playwright의 모든 기능에 추가 AI 기능을 제공합니다. 자연어 프롬프트로 요소와 상호작용하고, 데이터를 추출하며, 복잡한 다단계 워크플로우를 자동화할 수 있습니다.
설치:
- Python SDK / 클라우드 API:
pip install skyvern - 로컬 서버 + 패키징된 UI:
pip install "skyvern[all]"그런 다음skyvern quickstart실행 - 로컬 서버 + Postgres가 포함된 패키징 UI:
pip install "skyvern[all]"그런 다음skyvern quickstart --postgres실행 - 기존 API용 패키징 UI:
pip install "skyvern[ui]"그런 다음skyvern run ui --api-url <api-url> --api-key <api-key>실행 - TypeScript:
npm install @skyvern/client
AI 기반 페이지 명령
Skyvern은 페이지 객체에 네 가지 핵심 AI 명령을 직접 추가합니다:
| Command | Description |
|---|---|
page.act(prompt) | 자연어를 사용하여 작업 수행 (예: "로그인 버튼 클릭") |
page.extract(prompt, schema) | 선택적 JSON 스키마로 페이지에서 구조화된 데이터 추출 |
page.validate(prompt) | 페이지 상태 유효성 검사, bool 반환 (예: "사용자가 로그인했는지 확인") |
page.prompt(prompt, schema) | 선택적 응답 스키마로 LLM에 임의 프롬프트 전송 |
또한 page.agent는 더 높은 수준의 워크플로우 명령을 제공합니다:
| Command | Description |
|---|---|
page.agent.run_task(prompt) | 복잡한 다단계 작업 실행 |
page.agent.login(credential_type, credential_id) | 저장된 자격 증명으로 인증 (Skyvern, Bitwarden, 1Password) |
page.agent.download_files(prompt) | 파일 탐색 및 다운로드 |
page.agent.run_workflow(workflow_id) | 사전 구축된 워크플로우 실행 |
AI 강화 Playwright 작업
모든 표준 Playwright 작업은 AI 기반 요소 위치 지정을 위한 선택적 prompt 매개변수를 지원합니다:
| 작업 | Playwright | AI 강화 |
|---|---|---|
| 클릭 | page.click("#btn") | page.click(prompt="Click login button") |
| 입력 | page.fill("#email", "[email protected]") | page.fill(prompt="Email field", value="[email protected]") |
| 선택 | page.select_option("#country", "US") | page.select_option(prompt="Country dropdown", value="US") |
| 업로드 | page.upload_file("#file", "doc.pdf") | page.upload_file(prompt="Upload area", files="doc.pdf") |
세 가지 상호 작용 모드:```python
1. Traditional Playwright - CSS/XPath selectors
await page.click("#submit-button")
2. AI-powered - natural language
await page.click(prompt="Click the green Submit button")
3. AI fallback - tries selector first, falls back to AI if it fails
await page.click("#submit-btn", prompt="Click the Submit button")
### 핵심 AI 명령어 - 예시```python
# act - Perform actions using natural language
await page.act("Click the login button and wait for the dashboard to load")
# extract - Extract structured data with optional JSON schema
result = await page.extract("Get the product name and price")
result = await page.extract(
prompt="Extract order details",
schema={"order_id": "string", "total": "number", "items": "array"}
)
# validate - Check page state (returns bool)
is_logged_in = await page.validate("Check if the user is logged in")
# prompt - Send arbitrary prompts to the LLM
summary = await page.prompt("Summarize what's on this page")
빠른 시작 예제
UI로 실행하기:```bash skyvern run all
웹 인터페이스를 통해 작업을 실행하려면 http://localhost:8080으로 이동하세요. 패키징된 UI가 없는 경우 `skyvern run ui`가 일치하는 UI 패키지를 설치하도록 제안합니다. 비대화형 설정의 경우 `skyvern run ui --install-ui` 또는 `skyvern run all --install-ui`를 사용하세요.
기존 Skyvern API에 대해 패키징된 UI만 실행하려면 `skyvern[ui]`를 설치하고 `--api-url`을 전달하세요. CLI는 재정의하지 않는 한 API URL에서 `--wss-url`을 추론합니다. 또한 `skyvern run ui`를 실행하기 전에 `VITE_API_BASE_URL`, `VITE_WSS_BASE_URL`, `VITE_ARTIFACT_API_BASE_URL`, `VITE_SKYVERN_API_KEY`, `VITE_BROWSER_STREAMING_MODE`를 설정할 수 있습니다.
**Python SDK:**```python
from skyvern import Skyvern
# Local mode
skyvern = Skyvern.local()
# Or connect to Skyvern Cloud
skyvern = Skyvern(api_key="your-api-key")
# Launch browser and get page
browser = await skyvern.launch_cloud_browser()
page = await browser.get_working_page()
# Mix Playwright with AI-powered actions
await page.goto("https://example.com")
await page.click("#login-button") # Traditional Playwright
await page.agent.login(credential_type="skyvern", credential_id="cred_123") # AI login
await page.click(prompt="Add first item to cart") # AI-augmented click
await page.agent.run_task("Complete checkout with: John Snow, 12345") # AI task
타입스크립트 SDK:```typescript import { Skyvern } from "@skyvern/client";
const skyvern = new Skyvern({ apiKey: "your-api-key" }); const browser = await skyvern.launchCloudBrowser(); const page = await browser.getWorkingPage();
// Mix Playwright with AI-powered actions await page.goto("https://example.com"); await page.click("#login-button"); // Traditional Playwright await page.agent.login("skyvern", { credentialId: "cred_123" }); // AI login await page.click({ prompt: "Add first item to cart" }); // AI-augmented click await page.agent.runTask("Complete checkout with: John Snow, 12345"); // AI task
await browser.close();
**간단한 작업 실행:**```python
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(prompt="Find the top post on hackernews today")
print(task)
고급 사용법
자신의 브라우저 제어 (Chrome)
Skyvern이 기존 Chrome 브라우저를 제어하도록 하세요 — 모든 쿠키, 로그인 정보 및 확장 프로그램과 함께.
1단계: Chrome에서 원격 디버깅 활성화
- Chrome을 열고
chrome://inspect/#remote-debugging으로 이동합니다. - 활성화를 클릭하여 디버깅 서버를 시작합니다.
- **서버가 127.0.0.1:9222에서 실행 중입니다.**라는 메시지가 표시됩니다.
[!TIP]
skyvern init browser명령어가 이 작업을 자동으로 수행할 수 있습니다 —chrome://inspect/#remote-debugging을 열고, 활성화할 때까지 기다린 후 구성을 저장합니다.
2단계: Skyvern 연결
옵션 A — Python 코드:```python from skyvern import Skyvern
skyvern = Skyvern( base_url="http://localhost:8000", api_key="YOUR_API_KEY", browser_address="http://127.0.0.1:9222", ) task = await skyvern.run_task( prompt="Find the top post on hackernews today", )
**Option B — Skyvern Service:**
두 변수를 .env 파일에 추가하세요:```bash
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222
Restart Skyvern 서비스 skyvern run all를 재시작하고 UI나 코드를 통해 작업을 실행하세요
Skyvern Cloud를 로컬 브라우저에 연결
Skyvern Cloud가 사용자 컴퓨터에서 실행 중인 Chrome 브라우저를 제어하게 하세요 — 모든 기존 쿠키, 로그인, 확장 프로그램을 포함합니다. 이미 로그인되어 있거나 VPN 뒤에 있는 사이트를 자동화하는 데 유용합니다.```bash
One command to start Chrome + create a tunnel to Skyvern Cloud
skyvern browser serve --tunnel
그런 다음 작업에서 터널 URL을 사용하십시오:```python
from skyvern import Skyvern
skyvern = Skyvern(api_key="your-api-key")
task = await skyvern.run_task(
prompt="Download the latest invoice from my account",
browser_address="https://abc123.ngrok-free.dev",
)
[!WARNING] 항상 브라우저를 터널을 통해 노출할 때
--api-key를 사용하세요. 그렇지 않으면 URL만 가진 사람이 브라우저를 완전히 제어할 수 있습니다. 보안 문서를 참조하세요.
모든 옵션, 수동 터널 설정 및 문제 해결에 대한 전체 문서를 참조하세요.
실행에서 일관된 출력 스키마 가져오기
data_extraction_schema 매개변수를 추가하여 이 작업을 수행할 수 있습니다:```python
from skyvern import Skyvern
skyvern = Skyvern() task = await skyvern.run_task( prompt="Find the top post on hackernews today", data_extraction_schema={ "type": "object", "properties": { "title": { "type": "string", "description": "The title of the top post" }, "url": { "type": "string", "description": "The URL of the top post" }, "points": { "type": "integer", "description": "Number of points the post has received" } } } )
### 문제 디버깅을 위한 유용한 명령어```bash
# Launch the Skyvern Server Separately*
skyvern run server
# Launch the Skyvern UI
skyvern run ui
# Check status of the Skyvern service
skyvern status
# Stop the Skyvern service
skyvern stop all
# Stop the Skyvern UI
skyvern stop ui
# Stop the Skyvern Server Separately
skyvern stop server
성능 및 평가
Skyvern은 WebBench 벤치마크에서 64.4%의 정확도로 최고 수준의 성능을 보여줍니다. 기술 보고서 및 평가는 여기에서 확인할 수 있습니다.
WRITE 작업 성능 (예: 양식 작성, 로그인, 파일 다운로드 등)
Skyvern은 WRITE 작업(예: 양식 작성, 로그인, 파일 다운로드 등)에서 가장 우수한 성능을 보이는 에이전트이며, 주로 RPA(로봇 프로세스 자동화) 관련 작업에 사용됩니다.
Skyvern 기능
Skyvern 작업 (Tasks)
작업은 Skyvern 내의 기본 구성 요소입니다. 각 작업은 Skyvern에 대한 단일 요청으로, 웹사이트를 탐색하고 특정 목표를 달성하도록 지시합니다.
작업을 지정하려면 url, prompt가 필요하며, 선택적으로 data schema (출력이 특정 스키마를 따르도록 하려는 경우)와 error codes (특정 상황에서 Skyvern을 중지시키려는 경우)를 포함할 수 있습니다.
Skyvern 워크플로우 (Workflows)
워크플로우는 여러 작업을 연결하여 하나의 일관된 작업 단위를 구성하는 방법입니다.
예를 들어, 1월 1일 이후의 모든 인보이스를 다운로드하려면 먼저 인보이스 페이지로 이동하고, 1월 1일 이후의 인보이스만 표시하도록 필터링한 후, 적격 인보이스 목록을 추출하고 각 인보이스를 반복하여 다운로드하는 워크플로우를 만들 수 있습니다.
또 다른 예로, 전자상거래 매장에서 제품 구매를 자동화하려면 먼저 원하는 제품으로 이동하여 장바구니에 추가하는 워크플로우를 만들 수 있습니다. 두 번째로, 장바구니로 이동하여 장바구니 상태를 확인합니다. 마지막으로, 결제 과정을 거쳐 제품을 구매합니다.
지원되는 워크플로우 기능은 다음과 같습니다:
- 브라우저 작업 (Browser Task)
- 브라우저 액션 (Browser Action)
- 데이터 추출 (Data Extraction)
- 검증 (Validation)
- For 반복문 (For Loops)
- 파일 파싱 (File parsing)
- 이메일 전송 (Sending emails)
- 텍스트 프롬프트 (Text Prompts)
- HTTP 요청 블록 (HTTP Request Block)
- 사용자 정의 코드 블록 (Custom Code Block)
- 블록 스토리지에 파일 업로드 (Uploading files to block storage)
- (출시 예정) 조건문 (Conditionals)
라이브스트리밍 (Livestreaming)
Skyvern을 사용하면 브라우저의 뷰포트를 로컬 머신으로 라이브스트리밍하여 Skyvern이 웹에서 정확히 무엇을 하고 있는지 확인할 수 있습니다. 이는 디버깅 및 Skyvern이 웹사이트와 상호작용하는 방식을 이해하고 필요할 때 개입하는 데 유용합니다.
양식 작성 (Form Filling)
Skyvern은 기본적으로 웹사이트의 양식 입력을 채울 수 있습니다. navigation_goal을 통해 정보를 전달하면 Skyvern이 정보를 이해하고 그에 따라 양식을 작성합니다.
데이터 추출 (Data Extraction)
Skyvern은 웹사이트에서 데이터를 추출할 수도 있습니다.
메인 프롬프트 내에서 직접 data_extraction_schema를 지정하여 Skyvern에게 웹사이트에서 추출하려는 정확한 데이터를 jsonc 형식으로 알려줄 수 있습니다. Skyvern의 출력은 제공된 스키마에 따라 구조화됩니다.
파일 다운로드 (File Downloading)
Skyvern은 웹사이트에서 파일을 다운로드할 수도 있습니다. 다운로드된 모든 파일은 (구성된 경우) 자동으로 블록 스토리지에 업로드되며, UI를 통해 액세스할 수 있습니다.
인증 (Authentication)
Skyvern은 로그인이 필요한 작업을 더 쉽게 자동화할 수 있도록 다양한 인증 방법을 지원합니다. 사용해 보고 싶다면 이메일 또는 디스코드로 문의해 주세요.
🔐 2FA 지원 (TOTP)
Skyvern은 2FA가 필요한 워크플로우를 자동화할 수 있도록 다양한 2FA 방법을 지원합니다.
예시는 다음과 같습니다:
- QR 기반 2FA (예: Google Authenticator, Authy)
- 이메일 기반 2FA
- SMS 기반 2FA
🔐 2FA 지원에 대한 자세한 내용은 여기에서 확인하세요.
비밀번호 관리자 통합
Skyvern은 현재 다음 비밀번호 관리자 통합을 지원합니다:
- Bitwarden
- 사용자 정의 자격 증명 서비스 (HTTP API)
- 1Password
- LastPass
모델 컨텍스트 프로토콜 (MCP)
Skyvern은 MCP를 지원하는 모든 LLM을 사용할 수 있도록 모델 컨텍스트 프로토콜(MCP)을 지원합니다.
MCP 문서는 여기에서 확인하세요.
Zapier / Make.com / N8N 통합
Skyvern은 Zapier, Make.com, N8N을 지원하여 Skyvern 워크플로우를 다른 앱에 연결할 수 있습니다.
🔐 2FA 지원에 대한 자세한 내용은 여기에서 확인하세요.
Skyvern 실제 사용 예시
Skyvern이 실제 환경에서 어떻게 사용되고 있는지 보는 것을 좋아합니다. 다음은 실제 워크플로우를 자동화하기 위해 Skyvern이 사용되는 몇 가지 예시입니다. 자신의 예시를 추가하려면 PR을 열어주세요!
다양한 웹사이트에서 인보이스 다운로드
지원서 제출 과정 자동화
제조 회사의 자재 조달 자동화
정부 웹사이트에 접속하여 계정 등록 또는 양식 작성
일반 문의 양식 작성
모든 언어의 보험사에서 보험 견적 조회
기여자 설정 (Contributor Setup)
uv가 설치되어 있는지 확인하세요.
- 다음 명령어로 가상 환경(
.venv)을 만듭니다.uv sync --group dev - 초기 서버 구성을 수행합니다.
uv run skyvern quickstart - 브라우저에서
http://localhost:8080으로 이동하여 UI 사용을 시작합니다. Skyvern CLI는 Windows, WSL, macOS, Linux 환경을 지원합니다.
문서 (Documentation)
보다 자세한 문서는 📕 문서 페이지에서 확인할 수 있습니다. 불명확하거나 누락된 내용이 있으면 이슈를 열거나 이메일 또는 디스코드로 문의해 주세요.
지원되는 LLM
| 제공자 | 지원 모델 |
|---|---|
| OpenAI | GPT-5.5, GPT-5.4, GPT-5, GPT-4.1, o3, o4-mini |
| Anthropic | Claude 4.7 Opus, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Haiku, Sonnet, Opus) |
| Azure OpenAI | Azure 구독에 배포된 모든 GPT 모델 |
| AWS Bedrock | Claude 4.7, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Sonnet, Opus) |
| Gemini | Gemini 3.1 Pro, Gemini 3 Flash, Gemini 2.5 Pro/Flash |
| Ollama | Ollama를 통해 로컬 호스팅 모델 실행 |
| OpenRouter | OpenRouter를 통해 모델에 액세스 |
| OpenAI 호환 | OpenAI API 형식을 따르는 사용자 정의 API 엔드포인트 (liteLLM을 통해) |
자세한 LLM 구성(사용 가능한 모든 모델 키, 환경 변수, 다중 모델 설정 포함)은 LLM 구성 문서를 참조하세요.
기여 (Contributing)
PR과 제안을 환영합니다! 언제든지 PR/이슈를 열거나 이메일 또는 디스코드로 문의해 주세요. 기여 가이드와 "Help Wanted" 이슈를 확인하여 시작하세요!
Skyvern 저장소에 대한 높은 수준의 개요, 구축 방법, 사용법 관련 질문 해결을 위해 Code Sage를 확인하세요.
원격 측정 (Telemetry)
기본적으로 Skyvern은 기본 사용 통계를 수집하여 Skyvern이 어떻게 사용되는지 파악합니다. 원격 측정을 비활성화하려면 SKYVERN_TELEMETRY 환경 변수를 false로 설정하세요.
라이선스 (License)
Skyvern의 오픈 소스 저장소는 관리형 클라우드를 통해 지원됩니다. Skyvern을 구동하는 핵심 로직은 모두 AGPL-3.0 라이선스 하에 이 오픈 소스 저장소에서 제공되며, 관리형 클라우드 제품에서 제공되는 안티봇 조치(anti-bot measures)는 예외입니다.
라이선스 관련 질문이나 우려사항이 있으면 문의해 주시면 기꺼이 도와드리겠습니다.