
Автоматизируйте браузерные рабочие процессы с помощью ИИ
🐉 Автоматизируйте браузерные рабочие процессы с помощью LLM и компьютерного зрения 🐉
Skyvern автоматизирует браузерные рабочие процессы с помощью LLM и компьютерного зрения. Он предоставляет SDK, совместимый с Playwright, который добавляет AI-функциональность поверх playwright, а также конструктор рабочих процессов без кода, помогающий как техническим, так и нетехническим пользователям автоматизировать ручные операции на любых сайтах, заменяя хрупкие или ненадежные решения для автоматизации.
Традиционные подходы к автоматизации браузеров требовали написания пользовательских скриптов для сайтов, часто опираясь на DOM-парсинг и взаимодействия на основе XPath, которые ломались при каждом изменении макетов сайтов.
Вместо того чтобы полагаться исключительно на XPath-взаимодействия, заданные кодом, Skyvern использует Vision LLM для изучения и взаимодействия с веб-сайтами.
Skyvern был вдохновлен дизайном Task-Driven автономного агента, популяризированным BabyAGI и AutoGPT — с одним важным дополнением: мы даем Skyvern возможность взаимодействовать с веб-сайтами с помощью библиотек автоматизации браузеров, таких как Playwright.
Skyvern использует рой агентов для понимания веб-сайта, планирования и выполнения действий:
Этот подход имеет несколько преимуществ:
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
Skyvern Cloud — это управляемая облачная версия Skyvern, которая позволяет запускать Skyvern без забот об инфраструктуре. Она позволяет запускать несколько экземпляров Skyvern параллельно и поставляется со встроенными механизмами защиты от ботов, прокси-сетью и решателями CAPTCHA.
Если вы хотите попробовать, перейдите на app.skyvern.com и создайте аккаунт.
Выберите предпочтительный способ настройки:
База данных по умолчанию:
skyvern quickstartиskyvern run serverпо умолчанию используют SQLite базу данных в~/.skyvern/data.db, поэтому путь pip работает без Postgres или Docker. Чтобы вместо этого использовать Postgres, передайте--postgresдля локального контейнера или--database-stringдля существующей базы данных. Docker Compose всегда использует встроенный сервис Postgres.
Необходимые зависимости:
Дополнительно для Windows:
pip install "skyvern[all]"
#### 2. Запустите Skyvern```bash
skyvern quickstart
Быстрый старт через pip по умолчанию использует SQLite. Для локального контейнера Postgres выполните skyvern quickstart --postgres.
Используйте этот вариант, если хотите всё контейнеризировать (Postgres, API, UI) и не хотите устанавливать Python/Node локально.
.env (команда quickstart --docker-compose ниже создаст его из .env.example, если файл отсутствует): ```bash
cp .env.example .env # if not already created
(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 завершается с ошибкой ResolutionImpossible (litellm / fastmcp) — вы столкнулись с конфликтом разрешения зависимостей в версии 1.0.31. Обновитесь до версии 1.0.32+ или используйте uv: uv pip install skyvern.
Skyvern — это расширение Playwright, добавляющее автоматизацию браузера на основе ИИ. Оно предоставляет всю мощь Playwright с дополнительными возможностями искусственного интеллекта — используйте подсказки на естественном языке для взаимодействия с элементами, извлечения данных и автоматизации сложных многошаговых рабочих процессов.
Установка:
pip install skyvernpip install "skyvern[all]", затем выполните skyvern quickstartpip install "skyvern[all]", затем выполните skyvern quickstart --postgrespip install "skyvern[ui]", затем выполните
skyvern run ui --api-url <api-url> --api-key <api-key>npm install @skyvern/clientSkyvern добавляет четыре основные команды ИИ непосредственно в объект страницы:
Кроме того, page.agent предоставляет команды рабочего процесса более высокого уровня:
| Команда | Описание |
|---|---|
page.agent.run_task(prompt) |
Все стандартные действия Playwright поддерживают опциональный параметр prompt для поиска элементов с помощью ИИ:
Три режима взаимодействия:```python
await page.click("#submit-button")
await page.click(prompt="Click the green Submit button")
await page.click("#submit-btn", prompt="Click the Submit button")
### Основные команды ИИ - Примеры```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, чтобы запускать задачи через веб-интерфейс. Если встроенный интерфейс отсутствует, `skyvern run ui` предложит установить соответствующий пакет UI. Для неинтерактивной настройки используйте `skyvern run ui --install-ui` или `skyvern run all --install-ui`.
Чтобы запустить только встроенный интерфейс для существующего Skyvern API, установите `skyvern[ui]` и передайте `--api-url`; CLI автоматически определит `--wss-url` из URL API, если вы не переопределите его. Также вы можете установить `VITE_API_BASE_URL`, `VITE_WSS_BASE_URL`, `VITE_ARTIFACT_API_BASE_URL`, `VITE_SKYVERN_API_KEY` и `VITE_BROWSER_STREAMING_MODE` перед запуском `skyvern run ui`.
**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
TypeScript 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)
Позвольте Skyvern управлять вашим существующим браузером Chrome — со всеми вашими cookie, логинами и расширениями.
chrome://inspect/#remote-debugging[!TIP] Команда
skyvern init browserможет сделать это автоматически — она открываетchrome://inspect/#remote-debugging, ждёт, пока вы включите эту опцию, и сохраняет конфигурацию.
Option A — Python Code:```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", )
**Вариант B — Skyvern Service:**
Добавьте две переменные в ваш файл .env:```bash
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222
Перезапустите службу Skyvern skyvern run all и запустите задачу через UI или код
Позвольте Skyvern Cloud управлять браузером Chrome, работающим на вашей машине — со всеми вашими существующими cookie, логинами и расширениями. Полезно для автоматизации сайтов, где вы уже вошли в систему или находитесь за VPN.```bash
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%. Технический отчет и оценку можно найти здесь
Skyvern — лучший агент для задач WRITE (например, заполнение форм, вход в систему, загрузка файлов и т.д.), которые в основном используются для задач, смежных с RPA (Robotic Process Automation).
Задачи — это фундаментальные строительные блоки внутри Skyvern. Каждая задача — это отдельный запрос к Skyvern, предписывающий ему перемещаться по веб-сайту и выполнять конкретную цель.
Для задач требуется указать url, prompt, и опционально можно включить data schema (если нужно, чтобы вывод соответствовал определенной схеме) и error codes (если нужно, чтобы Skyvern прекратил работу в определенных ситуациях).
Рабочие процессы — это способ объединить несколько задач в единую согласованную единицу работы.
Например, если вы хотите скачать все счета, датированные после 1 января, вы можете создать рабочий процесс, который сначала перейдет на страницу счетов, затем отфильтрует их, чтобы показать только те, что новее 1 января, извлечет список всех подходящих счетов и пройдется по каждому счету для его загрузки.
Другой пример: если вы хотите автоматизировать покупку товаров в интернет-магазине, вы можете создать рабочий процесс, который сначала перейдет к нужному товару, затем добавит его в корзину. Во-вторых, он перейдет в корзину и проверит ее состояние. Наконец, он пройдет через процесс оформления заказа для покупки товаров.
Поддерживаемые функции рабочих процессов включают:
Skyvern позволяет транслировать область просмотра браузера на ваш локальный компьютер, чтобы вы могли видеть, что именно Skyvern делает в интернете. Это полезно для отладки и понимания того, как Skyvern взаимодействует с веб-сайтом, а также для вмешательства при необходимости.
Skyvern изначально способен заполнять поля ввода на веб-сайтах. Передача информации через navigation_goal позволит Skyvern понять информацию и соответствующим образом заполнить форму.
Skyvern также способен извлекать данные с веб-сайта.
Вы также можете указать data_extraction_schema непосредственно в основном запросе, чтобы сообщить Skyvern, какие именно данные вы хотите извлечь с веб-сайта в формате jsonc. Вывод Skyvern будет структурирован в соответствии с предоставленной схемой.
Skyvern также способен загружать файлы с веб-сайта. Все загруженные файлы автоматически выгружаются в блочное хранилище (если оно настроено), и вы можете получить к ним доступ через интерфейс.
Skyvern поддерживает ряд различных методов аутентификации, чтобы упростить автоматизацию задач за логином. Если вы хотите попробовать, свяжитесь с нами по электронной почте или в discord.
Skyvern поддерживает ряд различных методов 2FA, позволяющих автоматизировать рабочие процессы, требующие 2FA.
Примеры включают:
🔐 Узнайте больше о поддержке 2FA здесь.
Skyvern в настоящее время поддерживает следующие интеграции с менеджерами паролей:
Skyvern поддерживает протокол контекста модели (MCP), позволяя использовать любую LLM, поддерживающую MCP.
См. документацию MCP здесь
Skyvern поддерживает Zapier, Make.com и N8N, позволяя подключать ваши рабочие процессы Skyvern к другим приложениям.
🔐 Узнайте больше о поддержке 2FA здесь.
Нам нравится видеть, как Skyvern используется в реальных условиях. Вот несколько примеров того, как Skyvern используется для автоматизации рабочих процессов в реальном мире. Пожалуйста, открывайте PR, чтобы добавить свои собственные примеры!
Запишитесь на демо, чтобы увидеть это вживую
Убедитесь, что установлен uv.
.venv)
uv sync --group dev
uv run skyvern quickstart
http://localhost:8080 в вашем браузере, чтобы начать использовать интерфейс
CLI Skyvern поддерживает Windows, WSL, macOS и Linux среды.Более обширная документация находится на нашей 📕 странице документации. Пожалуйста, сообщите нам, если что-то неясно или отсутствует, открыв issue или обратившись к нам по электронной почте или в discord.
Подробную конфигурацию LLM, включая все доступные ключи моделей, переменные окружения и многомодельные настройки, см. в документации по конфигурации LLM.
Мы приветствуем PR и предложения! Не стесняйтесь открывать PR/issue или обращаться к нам по электронной почте или в discord. Пожалуйста, ознакомьтесь с нашим руководством по участию и с задачами "Help Wanted", чтобы начать!
Если вы хотите пообщаться с репозиторием skyvern, чтобы получить общее представление о его структуре, о том, как на его основе строить и как решать вопросы использования, загляните в Code Sage.
По умолчанию Skyvern собирает базовую статистику использования, чтобы помочь нам понять, как используется Skyvern. Если вы хотите отказаться от телеметрии, установите переменную окружения SKYVERN_TELEMETRY в значение false.
Репозиторий Skyvern с открытым исходным кодом поддерживается управляемым облаком. Вся основная логика, обеспечивающая работу Skyvern, доступна в этом репозитории с открытым исходным кодом под лицензией AGPL-3.0, за исключением средств защиты от ботов, доступных в нашем управляемом облачном предложении.
Если у вас есть вопросы или сомнения по поводу лицензирования, пожалуйста, свяжитесь с нами, и мы будем рады помочь.
| Команда | Описание |
|---|
page.act(prompt) | Выполнение действий на естественном языке (например, «Нажми кнопку входа») |
page.extract(prompt, schema) | Извлечение структурированных данных со страницы с опциональной JSON-схемой |
page.validate(prompt) | Проверка состояния страницы, возвращает bool (например, «Проверить, авторизован ли пользователь») |
page.prompt(prompt, schema) | Отправка произвольных запросов LLM с опциональной схемой ответа |
| Выполнение сложных многошаговых задач |
page.agent.login(credential_type, credential_id) | Аутентификация с сохранёнными учётными данными (Skyvern, Bitwarden, 1Password) |
page.agent.download_files(prompt) | Навигация и загрузка файлов |
page.agent.run_workflow(workflow_id) | Выполнение предварительно созданных рабочих процессов |
| Действие | Playwright | С ИИ-расширением |
|---|
| Клик | 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") |
| Поставщик | Поддерживаемые модели |
|---|
| 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 | Любые модели GPT, развернутые в вашей подписке Azure |
| 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 | Любая пользовательская API-конечная точка, следующая формату API OpenAI (через liteLLM) |