Skyvern
официальныйMCP-сервер для автоматизации браузера на основе ИИ — навигация по сайтам, заполнение форм, извлечение данных и обработка входов в систему через Claude Code CLI
Что можно делать с Skyvern MCP?
-
Выполняйте задачи в браузере по текстовым запросам — Используйте
skyvern.run_taskдля навигации по сайтам и достижения целей, например: «Найти лучший пост на HackerNews сегодня». -
Извлекайте структурированные данные по схеме — Передайте
data_extraction_schemaвskyvern.run_task, чтобы получить согласованный JSON-вывод, соответствующий заданным свойствам. -
Управляйте собственным браузером Chrome — Подключите Skyvern к локальному экземпляру Chrome через удалённую отладку, чтобы автоматизировать работу с сайтами, используя существующие куки и данные входа.
-
Выполняйте взаимодействия со страницами на основе ИИ — Используйте
page.act,page.extract,page.validateилиpage.agent.run_taskдля взаимодействия со страницами на естественном языке вместо селекторов. -
Создавайте многошаговые цепочки рабочих процессов — Создавайте рабочие процессы в интерфейсе, объединяющие задачи браузера, извлечение данных, проверку, загрузку файлов и HTTP-запросы в единую автоматизированную последовательность.
Документация
🐉 Автоматизируйте рабочие процессы в браузере с помощью LLM и компьютерного зрения 🐉
Skyvern автоматизирует рабочие процессы в браузере с использованием LLM и компьютерного зрения. Он предоставляет SDK, совместимый с Playwright, который добавляет функциональность ИИ поверх Playwright, а также конструктор рабочих процессов без кода, помогающий как техническим, так и нетехническим пользователям автоматизировать ручные процессы на любых веб-сайтах, заменяя хрупкие или ненадежные решения для автоматизации.
Традиционные подходы к автоматизации браузера требовали написания пользовательских скриптов для веб-сайтов, часто полагаясь на парсинг DOM и взаимодействия на основе XPath, которые ломались при каждом изменении макета сайта.
Вместо того чтобы полагаться только на заданные кодом взаимодействия XPath, Skyvern использует Vision LLM для изучения и взаимодействия с веб-сайтами.
Как это работает
Skyvern был вдохновлен дизайном автономных агентов, управляемых задачами, популяризированным BabyAGI и AutoGPT, с одним важным дополнением: мы даем Skyvern возможность взаимодействовать с веб-сайтами, используя библиотеки автоматизации браузера, такие как Playwright.
Skyvern использует рой агентов для понимания веб-сайта, планирования и выполнения своих действий:
У этого подхода есть несколько преимуществ:
- Skyvern может работать с веб-сайтами, которые он никогда раньше не видел, поскольку он способен сопоставлять визуальные элементы с действиями, необходимыми для выполнения рабочего процесса, без какого-либо специализированного кода.
- Skyvern устойчив к изменениям макета веб-сайта, так как в нашей системе нет заранее определенных XPath или других селекторов, которые она ищет при навигации.
- 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, передайте--postgresдля локального контейнера или--database-stringдля существующей базы данных. Docker Compose всегда использует встроенный сервис Postgres.
Вариант A: pip install (рекомендуется для локальной настройки под управлением Python)
Необходимые зависимости:
Дополнительно для Windows:
- Rust
- VS Code с инструментами разработки на C++ и Windows SDK
1. Установите Skyvern
pip install "skyvern[all]"
2. Запустите Skyvern
skyvern quickstart
Быстрый старт через pip по умолчанию использует SQLite. Для локального контейнера Postgres выполните skyvern quickstart --postgres.
Вариант B: Docker Compose
Используйте этот вариант, если вы хотите, чтобы все было контейнеризировано (Postgres, API, UI) и не хотите устанавливать Python/Node локально.
- Установите Docker Desktop
- Клонируйте репозиторий:
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern - Настройте своего провайдера LLM в
.env(командаquickstart --docker-composeниже создаст его из.env.example, если он отсутствует):cp .env.example .env # if not already created # edit .env to add your LLM API key - Запустите все:
docker compose up -d - Откройте 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 --postgres - Встроенный UI для существующего API:
pip install "skyvern[ui]", затем выполнитеskyvern run ui --api-url <api-url> --api-key <api-key> - 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 | С дополнением ИИ |
|---|---|---|
| Click | page.click("#btn") | page.click(prompt="Click login button") |
| Fill | page.fill("#email", "a@b.com") | page.fill(prompt="Email field", value="a@b.com") |
| Select | page.select_option("#country", "US") | page.select_option(prompt="Country dropdown", value="US") |
| Upload | 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. Для неинтерактивной настройки используйте skyvern run ui --install-ui или skyvern run all --install-ui.
Чтобы запустить только встроенный UI для существующего API Skyvern, установите 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:
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
- Откройте Chrome и перейдите на
chrome://inspect/#remote-debugging - Нажмите Enable, чтобы запустить сервер отладки
- Вы должны увидеть: Server running at: 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 benchmark с точностью 64,4%. Технический отчет и оценку можно найти здесь
Производительность при выполнении задач WRITE (например, заполнение форм, вход в систему, загрузка файлов и т.д.)
Skyvern — лучший агент по производительности при выполнении задач WRITE (например, заполнение форм, вход в систему, загрузка файлов и т.д.), которые в основном используются для задач, смежных с RPA (роботизированной автоматизацией процессов).
Возможности Skyvern
Задачи Skyvern
Задачи — это фундаментальный строительный блок внутри Skyvern. Каждая задача — это отдельный запрос к Skyvern, предписывающий ему перемещаться по веб-сайту и достичь определенной цели.
Задачи требуют указания url, prompt и могут опционально включать data schema (если вы хотите, чтобы вывод соответствовал определенной схеме) и error codes (если вы хотите, чтобы Skyvern прекратил работу в определенных ситуациях).
Рабочие процессы Skyvern
Рабочие процессы — это способ объединить несколько задач в цепочку для формирования единого блока работы.
Например, если вы хотите загрузить все счета-фактуры новее 1 января, вы можете создать рабочий процесс, который сначала перейдет на страницу счетов-фактур, затем отфильтрует их, чтобы показать только счета новее 1 января, извлечет список всех подходящих счетов и выполнит итерацию по каждому счету для его загрузки.
Другой пример: если вы хотите автоматизировать покупку товаров в интернет-магазине, вы можете создать рабочий процесс, который сначала перейдет к нужному товару, а затем добавит его в корзину. Во-вторых, он перейдет в корзину и проверит ее состояние. Наконец, он пройдет процесс оформления заказа для покупки товаров.
Поддерживаемые функции рабочего процесса включают:
- Задача браузера
- Действие в браузере
- Извлечение данных
- Проверка
- Циклы For
- Парсинг файлов
- Отправка электронных писем
- Текстовые подсказки
- Блок HTTP-запроса
- Блок пользовательского кода
- Загрузка файлов в блочное хранилище
- (Скоро) Условные операторы
Прямая трансляция
Skyvern позволяет транслировать окно просмотра браузера на ваш локальный компьютер в реальном времени, чтобы вы могли видеть, что именно Skyvern делает в Интернете. Это полезно для отладки и понимания того, как Skyvern взаимодействует с веб-сайтом, а также для вмешательства при необходимости.
Заполнение форм
Skyvern изначально способен заполнять поля ввода форм на веб-сайтах. Передача информации через navigation_goal позволит Skyvern понять информацию и соответствующим образом заполнить форму.
Извлечение данных
Skyvern также способен извлекать данные с веб-сайта.
Вы также можете указать data_extraction_schema непосредственно в основном запросе, чтобы точно сообщить Skyvern, какие данные вы хотите извлечь с веб-сайта, в формате jsonc. Вывод Skyvern будет структурирован в соответствии с предоставленной схемой.
Загрузка файлов
Skyvern также способен загружать файлы с веб-сайта. Все загруженные файлы автоматически отправляются в блочное хранилище (если настроено), и вы можете получить к ним доступ через пользовательский интерфейс.
Аутентификация
Skyvern поддерживает несколько различных методов аутентификации, чтобы упростить автоматизацию задач за логином. Если вы хотите попробовать, пожалуйста, свяжитесь с нами по электронной почте или в Discord.
🔐 Поддержка 2FA (TOTP)
Skyvern поддерживает несколько различных методов двухфакторной аутентификации, позволяющих автоматизировать рабочие процессы, требующие 2FA.
Примеры включают:
- 2FA на основе QR-кода (например, Google Authenticator, Authy)
- 2FA по электронной почте
- 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.
- Выполните это, чтобы создать виртуальное окружение (
.venv)uv sync --group dev - Выполните начальную настройку сервера
uv run skyvern quickstart - Перейдите по адресу
http://localhost:8080в браузере, чтобы начать использовать пользовательский интерфейс CLI Skyvern поддерживает Windows, WSL, macOS и Linux.
Документация
Более подробную документацию можно найти на нашей 📕 странице документации. Пожалуйста, сообщите нам, если что-то неясно или отсутствует, открыв issue или связавшись с нами по электронной почте или в Discord.
Поддерживаемые 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 | Любые модели 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) |
Подробную информацию о конфигурации LLM, включая все доступные ключи моделей, переменные окружения и настройки с несколькими моделями, см. в документации по конфигурации LLM.
Участие в проекте
Мы приветствуем PR и предложения! Не стесняйтесь открывать PR/issue или связываться с нами по электронной почте или в Discord. Пожалуйста, ознакомьтесь с нашим руководством по участию и задачами "Help Wanted", чтобы начать!
Если вы хотите пообщаться с репозиторием Skyvern, чтобы получить общее представление о его структуре, о том, как на его основе строить решения и как решать вопросы использования, ознакомьтесь с Code Sage.
Телеметрия
По умолчанию Skyvern собирает базовую статистику использования, чтобы помочь нам понять, как используется Skyvern. Если вы хотите отказаться от телеметрии, установите переменную окружения SKYVERN_TELEMETRY в значение false.
Лицензия
Репозиторий Skyvern с открытым исходным кодом поддерживается через управляемое облако. Вся основная логика, лежащая в основе Skyvern, доступна в этом репозитории с открытым исходным кодом под лицензией AGPL-3.0, за исключением мер защиты от ботов, доступных в нашем управляемом облачном предложении.
Если у вас есть какие-либо вопросы или сомнения по поводу лицензирования, пожалуйста, свяжитесь с нами, и мы будем рады помочь.