Skyvern

официальный

MCP-сервер для автоматизации браузера на основе ИИ — навигация по сайтам, заполнение форм, извлечение данных и обработка входов в систему через Claude Code CLI

Что можно делать с Skyvern MCP?

  • Выполнение задач браузера на естественном языке — Попросите вашего ассистента выполнять многошаговые веб-процессы через page.agent.run_task(), например, «Найди лучший пост на Hacker News сегодня».
  • Извлечение структурированных данных со страниц — Используйте page.extract() с необязательной JSON-схемой для получения конкретной информации, такой как детали заказа или списки товаров.
  • Выполнение действий Playwright с помощью ИИ — Кликайте, заполняйте, выбирайте или загружайте файлы с помощью подсказок на естественном языке вместо CSS/XPath-селекторов, например, page.click(prompt="Click the green Submit button").
  • Проверка состояния страницы — Используйте page.validate() для проверки условий, таких как статус входа, возвращая логический результат.
  • Аутентификация с сохранёнными учётными данными — Используйте page.agent.login() для входа с учётными данными Skyvern, Bitwarden или 1Password, включая поддержку 2FA.
  • Скачивание файлов по подсказкам — Укажите page.agent.download_files() для навигации и получения файлов, которые загружаются в блочное хранилище.

Документация


🐉 Автоматизируйте браузерные рабочие процессы с помощью LLM и компьютерного зрения 🐉

Skyvern автоматизирует браузерные рабочие процессы с помощью LLM и компьютерного зрения. Он предоставляет SDK, совместимый с Playwright, который добавляет функции ИИ поверх playwright, а также конструктор рабочих процессов без кода, помогающий как техническим, так и нетехническим пользователям автоматизировать ручные рабочие процессы на любом веб-сайте, заменяя хрупкие или ненадёжные решения для автоматизации.

Традиционные подходы к автоматизации браузера требовали написания пользовательских скриптов для веб-сайтов, часто полагаясь на разбор DOM и взаимодействия на основе XPath, которые ломались при изменении макетов веб-сайтов.

Вместо того чтобы полагаться только на определённые в коде взаимодействия XPath, Skyvern использует Vision LLM для изучения веб-сайтов и взаимодействия с ними.

Как это работает

Skyvern был вдохновлён дизайном автономных агентов, управляемых задачами, популяризированным BabyAGI и AutoGPT — с одним важным дополнением: мы даём Skyvern возможность взаимодействовать с веб-сайтами с помощью библиотек автоматизации браузера, таких как Playwright.

Skyvern использует рой агентов для понимания веб-сайта, планирования и выполнения своих действий:

Этот подход имеет несколько преимуществ:

  1. Skyvern может работать на веб-сайтах, которые он никогда раньше не видел, поскольку он способен сопоставлять визуальные элементы с действиями, необходимыми для выполнения рабочего процесса, без какого-либо пользовательского кода
  2. Skyvern устойчив к изменениям макета веб-сайта, поскольку нет предопределённых XPath или других селекторов, которые наша система ищет при навигации
  3. Skyvern может взять один рабочий процесс и применить его к большому количеству веб-сайтов, поскольку он способен рассуждать о взаимодействиях, необходимых для выполнения рабочего процесса Подробный технический отчёт можно найти здесь.

Демо

https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f

Быстрый старт

Skyvern Cloud

Skyvern Cloud — это управляемая облачная версия Skyvern, которая позволяет запускать Skyvern, не беспокоясь об инфраструктуре. Она позволяет запускать несколько экземпляров Skyvern параллельно и поставляется с механизмами обнаружения ботов, прокси-сетью и решателями CAPTCHA.

Если вы хотите попробовать, перейдите на app.skyvern.com и создайте учётную запись.

Запуск локально (UI + сервер)

Выберите предпочтительный способ настройки:

База данных по умолчанию: skyvern quickstart и skyvern run server по умолчанию используют базу данных SQLite по адресу ~/.skyvern/data.db, поэтому путь pip работает без Postgres или Docker. Чтобы вместо этого использовать Postgres, передайте --database-string для существующей базы данных (или опустите --no-postgres, чтобы quickstart запустил собственный контейнер Postgres). Docker Compose всегда использует встроенный сервис Postgres.

Вариант A: установка через pip (рекомендуется для локальной настройки с управлением Python)

Необходимые зависимости:

Дополнительно для Windows:

  • Rust
  • VS Code с инструментами разработки C++ и Windows SDK

1. Установите Skyvern

pip install "skyvern[all]"

2. Запустите Skyvern

skyvern quickstart

Быстрый старт через pip по умолчанию использует SQLite. Чтобы вместо этого использовать локальный контейнер Postgres, запустите skyvern quickstart (контейнер Postgres запускается, если вы не передадите --no-postgres), или подключитесь к существующей базе данных с помощью --database-string=postgresql+psycopg://user:pass@host:5432/dbname.

Вариант B: Docker Compose

Используйте этот вариант, если вы хотите, чтобы всё было в контейнерах (Postgres, API, UI), и не хотите устанавливать Python/Node локально.

  1. Установите Docker Desktop
  2. Клонируйте репозиторий:
    git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern
    
  3. Настройте вашего LLM-провайдера в .env (команда quickstart --docker-compose ниже создаст его из .env.example, если он отсутствует):
    cp .env.example .env  # if not already created
    # edit .env to add your LLM API key
    
  4. Запустите всё:
    docker compose up -d
    
  5. Откройте http://localhost:8080

Устранение неполадок

(sqlite3.OperationalError) table organizations already exists — Вы столкнулись с известной ошибкой в pip install skyvern==1.0.31. Исправление:

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:

uv pip install skyvern

pip install skyvern завершается с ошибкой ResolutionImpossible (litellm / fastmcp) — Вы столкнулись с конфликтом разрешения зависимостей в 1.0.31. Либо обновитесь до 1.0.32+, либо используйте uv: uv pip install skyvern.

SDK

Skyvern — это расширение Playwright, которое добавляет автоматизацию браузера на основе ИИ. Оно даёт вам всю мощь Playwright с дополнительными возможностями ИИ — используйте подсказки на естественном языке для взаимодействия с элементами, извлечения данных и автоматизации сложных многошаговых рабочих процессов.

Установка:

  • Python SDK / облачный API: pip install skyvern
  • Локальный сервер + встроенный UI: pip install "skyvern[all]", затем запустите skyvern quickstart
  • Локальный сервер + встроенный UI с Postgres: pip install "skyvern[all]", затем запустите skyvern quickstart --database-string=postgresql+psycopg://user:pass@host:5432/dbname
  • Встроенный UI для существующего API: pip install "skyvern[ui]", затем задайте VITE_API_BASE_URLVITE_SKYVERN_API_KEY, если ваш API требует ключ) и запустите skyvern run ui
  • TypeScript: npm install @skyvern/client

Команды страницы на основе ИИ

Skyvern добавляет четыре основные команды ИИ непосредственно в объект страницы:

КомандаОписание
page.act(prompt)Выполнение действий с помощью естественного языка (например, «Нажмите кнопку входа»)
page.extract(prompt, schema)Извлечение структурированных данных со страницы с необязательной JSON-схемой
page.validate(prompt)Проверка состояния страницы, возвращает bool (например, «Проверьте, вошёл ли пользователь в систему»)
page.prompt(prompt, schema)Отправка произвольных подсказок LLM с необязательной схемой ответа

Кроме того, page.agent предоставляет команды рабочего процесса более высокого уровня:

КомандаОписание
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)Выполнение готовых рабочих процессов

Действия Playwright с поддержкой ИИ

Все стандартные действия Playwright поддерживают необязательный параметр prompt для поиска элементов с помощью ИИ:

ДействиеPlaywrightС ИИ
Кликpage.click("#btn")page.click(prompt="Click login button")
Заполнениеpage.fill("#email", "a@b.com")page.fill(prompt="Email field", value="a@b.com")
Выбор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")

Три режима взаимодействия:

# 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")

Основные команды ИИ — примеры

# 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:

skyvern run all

Перейдите к http://localhost:8080, чтобы запускать задачи через веб-интерфейс. Если встроенный UI отсутствует, skyvern run ui предложит установить соответствующий пакет UI.

Чтобы запустить только встроенный UI для существующего Skyvern API, установите skyvern[ui] и задайте переменные окружения ниже перед запуском skyvern run ui:

  • VITE_API_BASE_URL (например, http://localhost:8000/api/v1) — указывает UI на ваш Skyvern API
  • VITE_SKYVERN_API_KEY — ключ API, если ваш API требует его
  • VITE_WSS_BASE_URL — конечная точка WebSocket (выводится из VITE_API_BASE_URL, если не задана)
  • VITE_ARTIFACT_API_BASE_URL — базовый URL для загрузки артефактов
  • VITE_BROWSER_STREAMING_MODE — режим потоковой передачи области просмотра браузера

Python SDK:

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:

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();

Простое выполнение задачи:

from skyvern import Skyvern

skyvern = Skyvern()
task = await skyvern.run_task(prompt="Find the top post on hackernews today")
print(task)

Расширенное использование

Управление собственным браузером (Chrome)

Позвольте Skyvern управлять вашим существующим браузером Chrome — со всеми вашими файлами cookie, входами и расширениями.

Шаг 1: Включите удалённую отладку в Chrome

  1. Откройте Chrome и перейдите к chrome://inspect/#remote-debugging
  2. Нажмите Включить, чтобы запустить сервер отладки
  3. Вы должны увидеть: Сервер запущен по адресу: 127.0.0.1:9222

[!TIP] Команда skyvern init browser может сделать это автоматически — она открывает chrome://inspect/#remote-debugging, ждёт, пока вы включите её, и сохраняет конфигурацию.

Шаг 2: Подключите Skyvern

Вариант A — код 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:

Добавьте две переменные в ваш файл .env:

BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222

Перезапустите сервис Skyvern skyvern run all и запустите задачу через UI или код

Подключение Skyvern Cloud к вашему локальному браузеру

Позвольте Skyvern Cloud управлять браузером Chrome, запущенным на вашей машине, — со всеми вашими существующими файлами cookie, входами и расширениями. Полезно для автоматизации сайтов, где вы уже вошли в систему или находитесь за VPN.

# One command to start Chrome + create a tunnel to Skyvern Cloud
skyvern browser serve --tunnel

Затем используйте URL туннеля в вашей задаче:

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:

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"
            }
        }
    }
)

Полезные команды для отладки проблем

# 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 демонстрирует производительность уровня SOTA на эталонном тесте WebBench с точностью 64,4%. Технический отчёт и оценку можно найти здесь

Производительность на задачах WRITE (например, заполнение форм, вход в систему, загрузка файлов и т. д.)

Skyvern — самый производительный агент на задачах WRITE (например, заполнение форм, вход в систему, загрузка файлов и т. д.), которые в основном используются для задач, смежных с RPA (роботизированная автоматизация процессов).

Возможности Skyvern

Задачи Skyvern

Задачи — это фундаментальный строительный блок внутри Skyvern. Каждая задача — это отдельный запрос к Skyvern, инструктирующий его перемещаться по веб-сайту и достигать конкретной цели.

Задачи требуют указать url, prompt и могут дополнительно включать data schema (если вы хотите, чтобы вывод соответствовал конкретной схеме) и error codes (если вы хотите, чтобы Skyvern прекращал работу в определённых ситуациях).

Рабочие процессы Skyvern

Рабочие процессы — это способ объединить несколько задач в единый целостный блок работы.

Например, если вы хотите загрузить все счета-фактуры новее 1 января, вы можете создать рабочий процесс, который сначала перейдёт на страницу счетов-фактур, затем отфильтрует их, чтобы показывать только счета-фактуры новее 1 января, извлечёт список всех подходящих счетов-фактур и пройдётся по каждому счёту-фактуре, чтобы загрузить его.

Другой пример: если вы хотите автоматизировать покупку товаров в интернет-магазине, вы можете создать рабочий процесс, который сначала перейдёт к нужному товару, затем добавит его в корзину. Во-вторых, он перейдёт в корзину и проверит её состояние. Наконец, он пройдёт процесс оформления заказа для покупки товаров.

Поддерживаемые функции рабочих процессов включают:

  1. Задача браузера
  2. Действие браузера
  3. Извлечение данных
  4. Проверка
  5. Циклы For
  6. Разбор файлов
  7. Отправка электронных писем
  8. Текстовые подсказки
  9. Блок HTTP-запросов
  10. Блок пользовательского кода
  11. Загрузка файлов в блочное хранилище
  12. (Скоро) Условные операторы

Прямая трансляция

Skyvern позволяет транслировать область просмотра браузера на ваш локальный компьютер, чтобы вы могли видеть, что именно Skyvern делает в Интернете. Это полезно для отладки, понимания того, как Skyvern взаимодействует с веб-сайтом, и вмешательства при необходимости

Заполнение форм

Skyvern изначально умеет заполнять поля форм на веб-сайтах. Передача информации через navigation_goal позволит Skyvern понять данные и соответствующим образом заполнить форму.

Извлечение данных

Skyvern также умеет извлекать данные с веб-сайта.

Вы можете указать data_extraction_schema прямо в основном промпте, чтобы сообщить Skyvern, какие именно данные вы хотите извлечь с сайта, в формате jsonc. Вывод Skyvern будет структурирован в соответствии с предоставленной схемой.

Скачивание файлов

Skyvern также умеет скачивать файлы с веб-сайтов. Все загруженные файлы автоматически сохраняются в блочное хранилище (если оно настроено), и вы можете получить к ним доступ через интерфейс.

Аутентификация

Skyvern поддерживает несколько различных методов аутентификации, чтобы упростить автоматизацию задач за логином. Если вы хотите попробовать, пожалуйста, свяжитесь с нами по электронной почте или в Discord.

🔐 Поддержка 2FA (TOTP)

Skyvern поддерживает несколько различных методов 2FA, что позволяет автоматизировать рабочие процессы, требующие двухфакторной аутентификации.

Примеры включают:

  1. 2FA на основе QR-кода (например, Google Authenticator, Authy)
  2. 2FA на основе электронной почты
  3. 2FA на основе SMS

🔐 Узнайте больше о поддержке 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, чтобы добавить свои собственные примеры!

Скачивание счетов на многих различных веб-сайтах

Запишитесь на демо, чтобы увидеть это вживую

Автоматизация процесса подачи заявок на работу

💡 Посмотреть в действии

Автоматизация закупки материалов для производственной компании

💡 Посмотреть в действии

Переход на государственные веб-сайты для регистрации аккаунтов или заполнения форм

💡 Посмотреть в действии

Заполнение случайных контактных форм

💡 Посмотреть в действии

Получение страховых котировок от страховых компаний на любом языке

💡 Посмотреть в действии

💡 Посмотреть в действии

Настройка для контрибьюторов

Убедитесь, что у вас установлен uv.

  1. Выполните это, чтобы создать виртуальное окружение (.venv)
    uv sync --group dev
    
  2. Выполните начальную настройку сервера
    uv run skyvern quickstart
    
  3. Перейдите к http://localhost:8080 в вашем браузере, чтобы начать использовать интерфейс CLI Skyvern поддерживает Windows, WSL, macOS и Linux.

Документация

Более подробная документация доступна на нашей 📕 странице документации. Пожалуйста, сообщите нам, если что-то неясно или отсутствует, открыв issue или связавшись с нами по электронной почте или в Discord.

Поддерживаемые LLM

ПровайдерПоддерживаемые модели
OpenAIGPT-5.5, GPT-5.4, GPT-5, GPT-4.1, o3, o4-mini
AnthropicClaude 4.7 Opus, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Haiku, Sonnet, Opus)
Azure OpenAIЛюбые модели GPT, развёрнутые в вашей подписке Azure
AWS BedrockClaude 4.7, Claude 4.6 (Sonnet, Opus), Claude 4.5 (Sonnet, Opus)
GeminiGemini 3.1 Pro, Gemini 3 Flash, Gemini 2.5 Pro/Flash
OllamaЗапускайте любую локально размещённую модель через Ollama
OpenRouterДоступ к моделям через OpenRouter
OpenAI-совместимыеЛюбая пользовательская конечная точка API, следующая формату API OpenAI (через liteLLM)

Подробную информацию о настройке LLM, включая все доступные ключи моделей, переменные окружения и многомодельные конфигурации, см. в документации по настройке LLM.

Вклад в проект

Мы приветствуем PR и предложения! Не стесняйтесь открывать PR/issue или связываться с нами по электронной почте или в Discord. Пожалуйста, ознакомьтесь с нашим руководством по вкладу и задачами "Help Wanted", чтобы начать!

Если вы хотите пообщаться с репозиторием skyvern, чтобы получить общее представление о его структуре, о том, как его расширять, и как решать вопросы по использованию, загляните в Code Sage.

Телеметрия

По умолчанию Skyvern собирает базовую статистику использования, чтобы помочь нам понять, как используется Skyvern. Если вы хотите отказаться от телеметрии, установите переменную окружения SKYVERN_TELEMETRY в значение false.

Лицензия

Открытый репозиторий Skyvern поддерживается через управляемое облако. Вся основная логика, обеспечивающая работу Skyvern, доступна в этом открытом репозитории под лицензией AGPL-3.0, за исключением мер против ботов, доступных в нашем управляемом облачном предложении.

Если у вас есть вопросы или опасения по поводу лицензирования, пожалуйста, свяжитесь с нами, и мы будем рады помочь.

История звёзд

Star History Chart