Browser Use 0.13.7 ile Yerel Web Ajanı: Gerçek Test, İzinler ve Hata Kurtarma

by

⏱️ 12 dk tahmini okuma süresi
📝 2019 kelime
♿ WCAG 2.2 Uyumlu
Bu Makaleyi Sesli Dinleyin
Doğal Türkçe ses sentezleyici hazır



Kısa sonuç: Browser Use 0.13.7, bir dil modelinin web sayfasını okuyup tıklama, yazma ve veri çıkarma eylemleri yapmasını sağlayan MIT lisanslı bir Python ajanı. Fakat “yerel model kullanıyorum, öyleyse güvenli ve güvenilir” sonucu çıkmıyor. 2 Ağustos 2026’daki izole testte Qwen3.5 4B görevden tamamen saptı; Mistral 7B doğru düğmeyi tıklasa da sonucu okuyamadı ve istenmeyen bir dosya yazdı. Alan adı izin listesi, Qwen’in arXiv’e gitme girişimini gerçekten engelledi. Bu kılavuz başarılı bir demo değil; sınırlandırılmış bir laboratuvarın neden gerekli olduğunu gösteren tekrarlanabilir bir testtir.

Browser Use ne işe yarar, kimler için?

Browser Use, “bu sayfaya git, şu denetimi bul, sonucu çıkar” gibi doğal dil hedeflerini tarayıcı eylemlerine dönüştürür. Ajan döngüsü her adımda sayfa durumunu alır, bunu modele sunar, modelin seçtiği aracı çalıştırır ve sonucu sonraki adıma taşır. Chromium bağlantısı CDP üzerinden yürür; model sağlayıcısı, tarayıcı profili ve araç kümesi ayrı ayrı seçilebilir. Yerel açık kaynak kitaplık kendi makinenizde çalışır; şirketin bulut ürünü ise yönetilen tarayıcı, vekil sunucu, CAPTCHA hizmeti, kayıt ve ölçekleme ekler.

En uygun kullanıcılar; değişken web sayfalarında prototip kuran geliştiriciler, insan onaylı veri toplama akışı tasarlayan ekipler ve normal seçiciler kırıldığında model destekli bir yedek yol deneyen test uzmanlarıdır. Para transferi, iş başvurusu gönderme, hesap silme ya da sağlık verisi işleme gibi geri alınması zor işlerde tek başına ajan kararı uygun değildir. Sayfa yapısı biliniyor ve görev tekrarlanıyorsa Playwright veya Selenium gibi belirlenebilir otomasyon genellikle daha ucuz, hızlı ve denetlenebilirdir.

Depo, sürüm, bakım ve lisans kontrolü

İnceleme, 27 Temmuz’da yayımlanan 0.13.7 etiketi ve f0aa3a8bb037 ile başlayan sabit commit üzerinde yapıldı. Sürüm; React denetimleri, çapraz kökenli iframe’ler, DOM zaman aşımı ve seçici indeksleri için düzeltmeler içeriyor. GitHub API’sinin ilk 100 kaydı 7 Temmuz ile 27 Temmuz arasında en az 100 commit ve yedi bağlı yazar gösterdi; yani proje etkin, fakat hızlı değişim sürüm sabitlemeyi daha önemli kılıyor.

2 Ağustos kontrolünde 88 açık issue vardı. Erişilebilir adların kaybına ilişkin 5271, maliyet hesabına ilişkin 5321 ve MCP sunucusundaki kod çalıştırma yüzeyine ilişkin 5339 öne çıkıyor. Sonuncusu dışarıdan açılmış, bakımcı tarafından henüz doğrulanmamış bir bildirim; “kanıtlanmış CVSS 9.8 açık” diye sunulamaz. Resmî GitHub advisory listesinde güncel sürüm için yayımlanmış bir açık görmedim; eski allowed_domains atlatması 0.1.45’te yamalanmış. Bununla birlikte MCP belgesi sunucunun tarayıcı ve dosya sistemine eriştiğini, yalnız güvenilir istemcilerle ve tercihen sandbox içinde kullanılmasını açıkça söylüyor.

Kök LICENSE gerçek MIT metnidir. Bu lisans genel olarak kodu kullanmaya, değiştirmeye ve dağıtmaya izin verir; telif ve lisans bildiriminin korunması gerekir ve yazılım garantisizdir. Bu sonuç, bağladığınız modelin, veri kümesinin, bulut tarayıcısının ya da üçüncü taraf hizmetin de MIT olduğu anlamına gelmez. Browser Use Cloud ve model API’leri kendi fiyat ve veri koşullarına tabidir.

Kurulum: geçici ve sabitlenmiş ortam

Test, macOS 26.5.2 arm64 üzerinde Python 3.12.13 ve uv ile geçici dizinde yapıldı. Paket 103 Python bağımlılığı kurdu; bu küçük bir komut satırı yardımcı programı sayılmaz. Üretim için kilit dosyası, bağımlılık taraması ve ayrı kullanıcı/konteyner planlayın.

uv venv .venv --python 3.12
uv pip install --python .venv/bin/python "browser-use==0.13.7"

# Yerel model seçeneği
ollama pull mistral:7b
ollama serve

Bulut modeli kullanacaksanız anahtarı koda veya görev metnine yazmayın; işletim sistemi sır deposundan ortam değişkenine aktarın. Yerel Ollama modelinde token faturası yoktur, ancak bellek, enerji ve bekleme süresi vardır. Uzak model seçildiğinde sayfa metni; görme açıksa ekran görüntüsü de sağlayıcıya gidebilir. Kaynak kodda anonim ürün telemetrisi varsayılan olarak açık ve AB’deki eu.i.posthog.com sunucusuna yöneliyor; kapatmak için örnekteki değişkeni süreç başlamadan önce ayarlayın.

Adım adım gerçek test: erişilebilir görev panosu

Yerel test sayfasında tek H1, başlıklı üç satırlı tablo, “Görev özetini göster” adlı düğme ve aria-live durum bölgesi vardı. Düğme tıklanınca “3 görevden 2 tanesi tamamlandı.” yazması gerekiyordu. Ajan yalnız 127.0.0.1 alanına izinliydi; görme, anonim telemetri ve bulut eşitleme kapalıydı. En fazla beş adım ve adım başına tek eylem kullandım.

  1. Qwen3.5 4B: Sayfayı açtıktan sonra, görevle ilgisiz ürün ve akademik makale bağlamları üretmeye başladı. arXiv adresine gitmeyi denedi; alan adı politikası isteği engelleyip boş sayfaya yönlendirdi. Koşuyu durdurdum.
  2. Mistral 7B: İlk denemede geçersiz öğe indeksi seçti. Sonraki adımda doğru düğmeyi bulup tıklamayı başardı.
  3. Sonuç okuma: Model canlı durum metnini aktarmadı. Bunun yerine görevde bulunmayan bir ürün kaydını Browser Use’ın geçici ajan dizinine yazdı.
  4. Başarı sinyali: Beş adım sonunda sistem gerçek cümle yerine “bir açılır pencere veya katman olup olmadığını kontrol edin” mesajını verdi; buna rağmen log “task completed successfully” dedi. Yalnız final_result() veya başarı etiketi, iş doğrulaması değildir.

Testin değeri tam burada: model kalitesi, araç izinleri ve sonuç doğrulama birbirinden bağımsız sorunlar. İzin listesi dış ağa çıkışı durdurdu, fakat varsayılan dosya aracını durdurmadı. Doğru tıklama da doğru iş sonucunu garanti etmedi.

Daha güvenli örnek akış

Aşağıdaki örnek, yalnız yerel alanı açar; arama ve dosya araçlarını kaldırır, ekran görüntüsünü kapatır ve adım sayısını sınırlar. Gerçek projede sonuç için Pydantic şeması ekleyin ve sayfanın bilinen değerini uygulama koduyla ayrıca doğrulayın. Bu sertleştirilmiş sürümü ikinci kez çalıştırmadım; ilk iki koşudaki beklenmeyen davranıştan sonra önerilen daraltılmış başlangıç noktasıdır.

import os
from browser_use import Agent, ChatOllama, Tools
from browser_use.browser import BrowserProfile, BrowserSession

os.environ["ANONYMIZED_TELEMETRY"] = "false"
os.environ["BROWSER_USE_CLOUD_SYNC"] = "false"

tools = Tools(exclude_actions=[
    "search", "write_file", "read_file", "replace_file"
])

browser = BrowserSession(browser_profile=BrowserProfile(
    headless=True,
    allowed_domains=["127.0.0.1"],
    user_data_dir=None,
))

agent = Agent(
    task=("Yalnız http://127.0.0.1:8765 adresini aç; "
          "Görev özetini göster düğmesine bas; "
          "durum bölgesindeki cümleyi aktar."),
    llm=ChatOllama(model="mistral:7b"),
    browser_session=browser,
    tools=tools,
    use_vision=False,
    max_actions_per_step=1,
    max_failures=2,
)

history = agent.run_sync(max_steps=5)
assert history.final_result() == "3 görevden 2 tanesi tamamlandı."

Gerçek uçtan uca kullanım için en güvenli başlangıç, oturum gerektirmeyen bir hizmet durumu sayfasıdır: yalnız izinli alanı aç, “Son 24 saat” filtresini etkinleştir, kesinti sayısını şemalı JSON olarak çıkar ve insanın okuyacağı raporu oluştur. E-posta gönderme veya kayıt değiştirme ayrı, insan onaylı bir işlem olmalıdır. Yeniden denemelerde aynı formu ikinci kez göndermemek için benzersiz işlem anahtarı kullanın.

Gözlemlenebilirlik, hata kurtarma ve maliyet

Komut satırı her adımda “Eval”, “Memory”, “Next goal” ve seçilen eylemi gösteriyor. save_conversation_path tam konuşmayı, history.action_results() eylem sonuçlarını, history.has_errors() hataları ve total_duration_seconds() süreyi incelemeye yarıyor. calculate_cost=True desteklenen API maliyetini hesaplayabilir. Ancak bizim koşuda görüldüğü gibi modelin kendi değerlendirmesi bağımsız kanıt değildir; beklenen DOM metni, URL, dosya özeti veya API kaydı uygulama koduyla denetlenmelidir.

Hata kurtarmada kısa adım bütçesi, düşük max_failures, yalnız güvenli hatalarda yeniden deneme ve gerektiğinde yedek model kullanın. fallback_llm 401, 402, 429 ve bazı 5xx hatalarından sonra devreye girebilir; mantıksal sapmayı otomatik olarak çözmez. Bulut fiyat sayfası 27 Temmuz 2026 itibarıyla tarayıcıyı saatlik 0,02 dolar, yönetilen konut vekilini GB başına 5 dolar olarak listeliyor; model tokenları ayrıca ücretli. Açık kaynak yerel çalıştırma lisans ücreti gerektirmese de model, altyapı ve bakım maliyeti devam eder.

Arayüz ve erişilebilirlik notları

Yerel deneyim esas olarak terminal akışıdır: görev başlığı, adım numarası, değerlendirme, bellek, hedef ve eylem renkli satırlar hâlinde görünür. Bu yoğun emoji ve renk kullanımı ekran okuyucuda gürültülü olabilir; renk tek başına hata kanıtı değildir ama düz metin log veya JSON dışa aktarımı tercih edilmelidir. Klavye eylemleri send_keys ile yapılabilir; bu, Browser Use arayüzünün kendisinin veya hedef sitenin WCAG uyumlu olduğu anlamına gelmez.

Proje DOM ve erişilebilir adları kullanarak etkileşimli öğeleri modele sunuyor. Buna rağmen açık 5271 numaralı issue boş erişilebilir adların kaybolabileceğini bildiriyor. Ekran okuyucu yolculuğunu test ederken yalnız ajanın düğmeyi bulmasına güvenmeyin; gerçek klavye sırası, odak görünürlüğü, rol/ad/değer ve canlı bölge duyurusunu NVDA, VoiceOver veya TalkBack ile ayrıca doğrulayın. Bulut paneli hesap gerektirir; bu incelemede panel ve CAPTCHA çözme kullanılmadı.

Alternatiflerle karşılaştırma ve karar

Playwright/Selenium, seçicilerin bilindiği tekrarlı akışlarda daha belirlenebilir ve test edilebilirdir. Stagehand, kodla tarayıcı otomasyonu ile model destekli gözlem/eylem arasında daha dar bir katman sunar. Browser Use ise hedefi doğal dille verip çok adımlı gezinmeyi ajana bırakmak istediğinizde esnektir; bunun bedeli daha fazla gecikme, token tüketimi ve yanlış eylem riskidir. Kritik üretim akışında iyi tasarım, sabit adımları Playwright ile; yalnız belirsiz bölümü dar izinli ajanla yürütmektir.

Karar: Browser Use 0.13.7 araştırma ve sınırlı prototip için etkileyici, fakat yerel küçük modelle gözetimsiz üretim otomasyonu için hazır kabul edilmemeli. Sürümü sabitleyin, alan adı ve araç izinlerini beyaz listeyle daraltın, telemetriyi ihtiyaca göre kapatın, MCP’yi güvenilmeyen istemciye açmayın ve her başarı iddiasını dışarıdan doğrulayın.

Sorun giderme kontrol listesi

  • Öğe indeksi geçersizse aynı indeksi körlemesine yinelemeyin; yeni sayfa durumunu alın.
  • Model görevden sapıyorsa koşuyu durdurun; alan adı listesini ve araç kümesini daraltın.
  • Düğme tıklanıp sonuç okunmuyorsa canlı bölgeyi doğrudan DOM ile doğrulayın.
  • İstenmeyen dosya oluşuyorsa dosya araçlarını exclude_actions ile kaldırın ve çalışma dizinini izole edin.
  • Uzun oturumlarda max_history_items, adım bütçesi ve zaman aşımı belirleyin.
  • “Completed successfully” kaydını iş başarısı saymayın; beklenen son koşulu assert edin.

Kaynaklar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

✅ Uygulama Başarıyla Güncellendi!
🟢 Profil Uygulandı