LLM'ler ve bilgisayarlı görü kullanarak tarayıcı tabanlı iş akışlarını otomatikleştirin — sayfaları gezin, formları doldurun, veri çıkarın, kimlik doğrulaması yönetin ve herhangi bir web sitesini doğal dil ile otomatize edin.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"skyvern-ai-skyvern": {
"command": "python",
"args": [
"-m",
"skyvern"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/Skyvern-AI/skyvern.git ~/.mcp/skyvern
cd ~/.mcp/skyvern 🐉 LLM ve Bilgisayarla Görü Kullanarak Tarayıcı Tabanlı İş Akışlarını Otomatikleştirin 🐉
Skyvern LLM ve bilgisayarla görü kullanarak tarayıcı tabanlı iş akışlarını otomatikleştirir. Playwright'ın üstüne AI işlevselliği ekleyen Playwright uyumlu bir SDK sağlar ve hem teknik hem de teknik olmayan kullanıcıların herhangi bir web sitesinde manuel iş akışlarını otomatikleştirmesine yardımcı olmak için kodlamaya gerek olmayan bir iş akışı oluşturucusu sağlar, bu da kırılgan veya güvenilmez otomasyon çözümlerinin yerini alır.
Tarayıcı otomasyonuna yönelik geleneksel yaklaşımlar, web sitelerine yönelik özel betikler yazmayı gerektiriyordu ve genellikle web sitesi düzenlemeleri değiştiğinde kesilen DOM ayrıştırması ve XPath tabanlı etkileşimlere dayanıyordu.
Skyvern, yalnızca kod tarafından tanımlanan XPath etkileşimlerine güvenmek yerine, web sitelerini öğrenmek ve bunlarla etkileşim kurmak için Vision LLM'leri kullanır.
Skyvern, BabyAGI ve AutoGPT tarafından popülerleştirilen Task-Driven özerk agent tasarımından ilham almıştır - bir ana avantajı vardır: Skyvern'e Playwright gibi tarayıcı otomasyon kütüphaneleri kullanarak web sitelerle etkileşim kurma yeteneği veriyoruz.
Skyvern bir web sitesini anlamak ve eylemlerini planlamak ve yürütmek için bir agent sürüsü kullanır:
Bu yaklaşımın birkaç avantajı vardır:
https://github.com/user-attachments/assets/5cab4668-e8e2-4982-8551-aab05ff73a7f
Skyvern Cloud, altyapı hakkında endişelenmenize gerek kalmadan Skyvern'i çalıştırmanızı sağlayan yönetilen bir bulut sürümüdür. Birden fazla Skyvern örneğini paralel olarak çalıştırmanıza izin verir ve bot algılama karşıtı mekanizmalar, proxy ağı ve CAPTCHA çözücüleriyle birlikte gelir.
Denemek istiyorsanız app.skyvern.com adresine gidip bir hesap oluşturun.
Tercih ettiğiniz kurulum yöntemini seçin:
Veritabanı varsayılanı:
skyvern quickstartveskyvern run servervarsayılan olarak~/.skyvern/data.dbadresinde bir SQLite veritabanına ayarlanmıştır, bu nedenle pip yolu Postgres veya Docker olmadan çalışır. Bunun yerine Postgres kullanmak için, yerel bir konteyner için--postgresveya mevcut bir veritabanı için--database-stringiletin. Docker Compose her zaman bundled Postgres hizmetini kullanır.
Gerekli bağımlılıklar:
Ek olarak, Windows için:
pip install "skyvern[all]"
skyvern quickstart
Pip hızlı başlangıç varsayılan olarak SQLite'yi kullanır. Yerel bir Postgres kapsayıcısı için skyvern quickstart --postgres komutunu çalıştırın.
Her şey kapsayıcılı olmak (Postgres, API, UI) istiyorsanız ve Python/Node'u yerel olarak yüklemek istemiyorsanız bu seçeneği kullanın.
git clone https://github.com/skyvern-ai/skyvern.git && cd skyvern
.env dosyasında LLM sağlayıcınızı yapılandırın (aşağıdaki quickstart --docker-compose komutu .env.example dosyasından oluşturmazsa onu oluşturacaktır):cp .env.example .env # henüz oluşturılmadıysa
# LLM API anahtarınızı eklemek için .env dosyasını düzenleyin
docker compose up -d
(sqlite3.OperationalError) table organizations already exists — pip install skyvern==1.0.31 içinde bilinen bir hataya çarptınız. Düzeltme:
rm ~/.skyvern/data.db # artık kalmayan SQLite dosyasını kaldırın
pip install --upgrade skyvern # 1.0.32+ düzeltmeyi içerir
skyvern quickstart
Hâlâ 1.0.31 üzerindeyseniz ve yükseltemiyorsanız, bunun yerine uv kullanarak kurun:
uv pip install skyvern
pip install skyvern ResolutionImpossible ile başarısız olur (litellm / fastmcp) — 1.0.31'de bir bağımlılık çözümlemesi çatışmasına çarptınız. 1.0.32+ sürümüne yükseltin veya uv'yi kullanın: uv pip install skyvern.
Skyvern, AI destekli tarayıcı otomasyonu ekleyen bir Playwright uzantısıdır. Playwright'ın tüm gücünü ek AI yetenekleriyle birlikte sunar - doğal dil istemlerini kullanarak öğelerle etkileşim kurun, verileri çıkartın ve karmaşık çok adımlı iş akışlarını otomatikleştirin.
Kurulum:
pip install skyvernpip install "skyvern[all]" ardından skyvern quickstart komutunu çalıştırınpip install "skyvern[all]" ardından skyvern quickstart --postgres komutunu çalıştırınpip install "skyvern[ui]" ardından skyvern run ui --api-url <api-url> --api-key <api-key> komutunu çalıştırınnpm install @skyvern/clientSkyvern sayfa nesnesine doğrudan dört temel AI komutu ekler:
| Komut | Açıklama |
|---|---|
page.act(prompt) |
Doğal dili kullanarak işlem gerçekleştirin (örn. "Giriş düğmesini tıklayın") |
page.extract(prompt, schema) |
Sayfadan isteğe bağlı JSON şemasıyla yapılandırılmış verileri çıkartın |
page.validate(prompt) |
Sayfa durumunu doğrulayın, bool döndürür (örn. "Kullanıcının oturum açmış olup olmadığını kontrol edin") |
page.prompt(prompt, schema) |
LLM'ye isteğe bağlı yanıt şeması ile keyfi istemler gönderin |
Ek olarak, page.agent daha yüksek seviye iş akışı komutları sağlar:
| Komut | Açıklama |
|---|---|
page.agent.run_task(prompt) |
Karmaşık çok adımlı görevleri yürütün |
page.agent.login(credential_type, credential_id) |
Depolanmış kimlik bilgileriyle kimlik doğrulaması yapın (Skyvern, Bitwarden, 1Password) |
page.agent.download_files(prompt) |
Dosyalara gezinin ve dosyaları indirin |
page.agent.run_workflow(workflow_id) |
Önceden oluşturulmuş iş akışlarını yürütün |
Tüm standart Playwright eylemleri, AI destekli öğe konumu için isteğe bağlı bir prompt parametresini destekler:
| İşlem | Playwright | AI Destekli |
|---|---|---|
| Tıklama | page.click("#btn") |
page.click(prompt="Giriş düğmesini tıklayın") |
| Doldurma | page.fill("#email", "a@b.com") |
page.fill(prompt="Email alanı", value="a@b.com") |
| Seçme | page.select_option("#country", "US") |
page.select_option(prompt="Ülke açılır menüsü", value="US") |
| Yükleme | page.upload_file("#file", "doc.pdf") |
page.upload_file(prompt="Yükleme alanı", files="doc.pdf") |
Üç etkileşim modu:
# 1. Geleneksel Playwright - CSS/XPath seçicileri
await page.click("#submit-button")
# 2. AI destekli - doğal dil
await page.click(prompt="Yeşil Gönder düğmesini tıklayın")
# 3. AI geri dönüşü - önce seçiciyi dener, başarısız olursa AI'ye geri döner
await page.click("#submit-btn", prompt="Gönder düğmesini tıklayın")
# act - Doğal dili kullanarak işlem gerçekleştirin
await page.act("Giriş düğmesini tıklayın ve panelin yüklenmesini bekleyin")
# extract - İsteğe bağlı JSON şemasıyla yapılandırılmış verileri çıkartın
result = await page.extract("Ürün adı ve fiyatını alın")
result = await page.extract(
prompt="Sipariş detaylarını çıkartın",
schema={"order_id": "string", "total": "number", "items": "array"}
)
# validate - Sayfa durumunu kontrol edin (bool döndürür)
is_logged_in = await page.validate("Kullanıcının oturum açmış olup olmadığını kontrol edin")
# prompt - LLM'ye keyfi istemler gönderin
summary = await page.prompt("Bu sayfada ne var özetleyin")
UI aracılığıyla çalıştırın:
skyvern run all
Web arayüzü aracılığıyla görevleri çalıştırmak için http://localhost:8080 adresine gidin. Paketlenmiş UI eksikse, skyvern run ui eşleşen UI paketini yüklemek için bir seçenek sunacaktır. İnteraktif olmayan kurulum için skyvern run ui --install-ui veya skyvern run all --install-ui kullanın.
Mevcut bir Skyvern API'sine karşı yalnızca paketlenmiş UI'yi çalıştırmak için skyvern[ui] yükleyin ve --api-url iletin; CLI aksi takdirde geçersiz kılmadığınız sürece API URL'sinden --wss-url çıkarım yapın. Ayrıca skyvern run ui komutunu çalıştırmadan önce VITE_API_BASE_URL, VITE_WSS_BASE_URL, VITE_ARTIFACT_API_BASE_URL, VITE_SKYVERN_API_KEY ve VITE_BROWSER_STREAMING_MODE değişkenlerini ayarlayabilirsiniz.
Python SDK:
from skyvern import Skyvern
# Yerel mod
skyvern = Skyvern.local()
# Veya Skyvern Cloud'a bağlanın
skyvern = Skyvern(api_key="your-api-key")
# Tarayıcıyı başlatın ve sayfa alın
browser = await skyvern.launch_cloud_browser()
page = await browser.get_working_page()
# Playwright'ı AI destekli eylemlerle karıştırın
await page.goto("https://example.com")
await page.click("#login-button") # Geleneksel Playwright
await page.agent.login(credential_type="skyvern", credential_id="cred_123") # AI giriş
await page.click(prompt="Sepete ilk öğeyi ekleyin") # AI destekli tıklama
await page.agent.run_task("Checkout'u şu kişi ile tamamlayın: John Snow, 12345") # AI görevi
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();
// Playwright'ı AI destekli eylemlerle karıştırın
await page.goto("https://example.com");
await page.click("#login-button"); // Geleneksel Playwright
await page.agent.login("skyvern", { credentialId: "cred_123" }); // AI giriş
await page.click({ prompt: "Sepete ilk öğeyi ekleyin" }); // AI destekli tıklama
await page.agent.runTask("Checkout'u şu kişi ile tamamlayın: John Snow, 12345"); // AI görevi
await browser.close();
Basit görev yürütme:
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(prompt="Bugünün hackernews'teki en iyi gönderisini bulun")
print(task)
Skyvern'in mevcut Chrome tarayıcınızı kontrol etmesine izin verin - tüm çerezleriniz, giriş bilgileriniz ve uzantılarınız ile birlikte.
chrome://inspect/#remote-debugging adresine gidin[!TIP]
skyvern init browserkomutu bunu otomatik olarak yapabilir —chrome://inspect/#remote-debuggingadresini açar, etkinleştirmenizi bekler ve yapılandırmayı kaydeder.
Seçenek A — Python Kodu:
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="Bugünün hackernews'teki en iyi gönderisini bulun",
)
Seçenek B — Skyvern Hizmeti:
.env dosyasına iki değişken ekleyin:
BROWSER_TYPE=cdp-connect
BROWSER_REMOTE_DEBUGGING_URL=http://127.0.0.1:9222
Skyvern hizmetini skyvern run all komutunu çalıştırarak yeniden başlatın ve UI veya kod aracılığıyla görevi çalıştırın
Skyvern Cloud'un makinenizde çalışan bir Chrome tarayıcısını kontrol etmesine izin verin - tüm mevcut çerezleriniz, giriş bilgileriniz ve uzantılarınız ile birlikte. Zaten oturum açtığınız veya VPN arkasında olduğunuz siteleri otomatikleştirmek için kullanışlıdır.
# Chrome'u başlatmak ve Skyvern Cloud'a bir tünel oluşturmak için bir komut
skyvern browser serve --tunnel
Ardından görevinizde tünel URL'sini kullanın:
from skyvern import Skyvern
skyvern = Skyvern(api_key="your-api-key")
task = await skyvern.run_task(
prompt="Hesabımdan en son faturayı indirin",
browser_address="https://abc123.ngrok-free.dev",
)
[!WARNING] Tarayıcınızı bir tünel aracılığıyla gösterirken her zaman
--api-keykullanın. Olmadan, URL'ye sahip herkesin tarayıcının tam kontrolü vardır. Güvenlik dokümanlarına bakın.
Tüm seçenekler, manuel tünel kurulumu ve sorun giderme için tam dokümantasyona bakın.
Bunu data_extraction_schema parametresini ekleyerek yapabilirsiniz:
from skyvern import Skyvern
skyvern = Skyvern()
task = await skyvern.run_task(
prompt="Bugünün hackernews'teki en iyi gönderisini bulun",
data_extraction_schema={
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "En iyi gönderinin başlığı"
},
"url": {
"type": "string",
"description": "En iyi gönderinin URL'si"
},
"points": {
"type": "integer",
"description": "Gönderinin aldığı puan sayısı"
}
}
}
)
# Skyvern Sunucusunu Ayrı Olarak Başlatın*
skyvern run server
# Skyvern UI'yi Başlatın
skyvern run ui
# Skyvern hizmetinin durumunu kontrol edin
skyvern status
# Skyvern hizmetini durdurun
skyvern stop all
# Skyvern UI'yi durdurun
skyvern stop ui
# Skyvern Sunucusunu Ayrı Olarak Durdurun
skyvern stop server
Skyvern, %64.4 doğruluk oranı ile WebBench kıyaslamasında SOTA performansına sahiptir. Teknik rapor + değerlendirme burada bulunabilir
Skyvern, WRITE görevlerinde (örneğin formları doldurma, oturum açma, dosya indirme vb.) en iyi performans gösteren aracıdır; bu, birincil olarak RPA (Robotic Process Automation) ile ilgili görevler için kullanılır.
Görevler, Skyvern içindeki temel yapı taşıdır. Her görev, Skyvern'e bir web sitesinde gezinme ve belirli bir hedefi başarma talimatı veren tek bir istektir.
Görevler, url, prompt belirtmenizi gerektirir ve isteğe bağlı olarak data schema (çıktının belirli bir şemaya uymasını istiyorsanız) ve error codes (Skyvern'in belirli durumlarda çalışmayı durdurmasını istiyorsanız) içerebilir.
İş akışları, birden fazla görevi bir araya getirerek tutarlı bir iş akışı birimi oluşturmak için bir yoldur.
Örneğin, 1 Ocak'tan daha yeni tüm faturaları indirmek isteyorsanız, önce faturaların sayfasına giden, ardından yalnızca 1 Ocak'tan daha yeni faturaları göstermek için filtrelenen, uygun tüm faturaların bir listesini çıkaran ve her faturayı indirmek için her faturada döngü yapan bir iş akışı oluşturabilirsiniz.
Başka bir örnek, bir e-ticaret mağazasından ürün satın almayı otomatikleştirmek istiyorsanız, önce istenen ürüne giden, ardından bunu sepete ekleyen bir iş akışı oluşturabilirsiniz. İkinci olarak, sepete gidip sepet durumunu doğrulaması gerekir. Son olarak, satın almak için checkout işleminden geçer.
Desteklenen iş akışı özellikleri şunları içerir:
Skyvern, tarayıcının görüntü alanını yerel makinenize canlı yayınlamanıza olanak tanır, böylece Skyvern'in web üzerinde tam olarak ne yaptığını görebilirsiniz. Bu, hata ayıklama ve Skyvern'in bir web sitesiyle nasıl etkileşim kurduğunu anlamak için faydalıdır ve gerektiğinde müdahale etmek için
Skyvern, web sitelerindeki form girdilerini doldurma açısından natively yetkindir. navigation_goal aracılığıyla bilgi iletmek, Skyvern'in bilgiyi anlamasını ve formu buna göre doldurmasını sağlayacaktır.
Skyvern ayrıca bir web sitesinden veri çıkarma konusunda da yetkilidir.
Ayrıca, Skyvern'e web sitesinden tam olarak hangi verileri çıkartmak istediğinizi söylemek için doğrudan ana isteme içinde jsonc formatında bir data_extraction_schema belirtebilirsiniz. Skyvern'in çıktısı sağlanan şemaya göre yapılandırılacaktır.
Skyvern ayrıca bir web sitesinden dosya indirme konusunda da yetkilidir. İndirilen tüm dosyalar otomatik olarak blok depolamaya yüklenir (yapılandırılmışsa) ve bunlara UI aracılığıyla erişebilirsiniz.
Skyvern, giriş arkasındaki görevleri otomatikleştirmeyi kolaylaştırmak için çok sayıda farklı kimlik doğrulama yöntemini destekler. Denemek isterseniz, lütfen bize e-posta veya discord aracılığıyla ulaşın.
Skyvern, 2FA gerektiren iş akışlarını otomatikleştirmenizi sağlamak için çok sayıda 2FA yöntemini destekler.
Örnekler şunları içerir:
🔐 2FA desteği hakkında daha fazlasını öğrenin.
Puppeteer ile tarayıcı otomasyon yetenekleri, yerel ve uzak tarayıcı bağlantısını destekler.
Microsoft'un resmi Playwright MCP sunucusu, LLM'lerin yapılandırılmış erişilebilirlik anlık görüntüleri aracılığıyla web sayfalarıyla etkileşim kurmasını sağlıyor.
Yerel Chrome tarayıcınızı otomatikleştirin
Tarayıcı otomasyonu ve web scraping için Playwright kullanan bir MCP sunucusu
Bulut ortamında tarayıcı etkileşimlerini otomatikleştirin (web navigasyonu, veri çıkarma, form doldurma ve daha fazlası)
Tarayıcı kullanıcı ajanları ile web uygulamalarını otomatik olarak hata ayıklayan bir MCP Server