
skyvern v1.0.48
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")