deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

Webhands agent'ı API'siz portalları kazıyor ve onaylanmamış yazma işlemlerini reddediyor

Bir geliştirici, API'siz portalları headless bir tarayıcıda gezinen, yapılandırılmış veri döndüren ve istek açık bir confirm bayrağı taşımadığı sürece herhangi bir yazma işlemini engelleyen açık kaynak bir computer-use agent olan Webhands'ı yayınladı.

Webhands agent'ı API'siz portalları kazıyor ve onaylanmamış yazma işlemlerini reddediyor

Hiç API edinememiş portallar için bir agent

dev.to üzerinde royalpinto007 takma adıyla paylaşım yapan bir geliştirici, belirli bir can sıkıntısına odaklanmış açık kaynak bir computer-use agent olan Webhands'ı yayınladı: satıcı merkezleri, tedarikçi portalları ve üçüncü taraf lojistik panoları gibi iş araçları, verilerini yalnızca oturum açılmış bir web arayüzü üzerinden sunuyor. Webhands bu panoları gerçek bir headless tarayıcıda geziniyor ve yapılandırılmış JSON döndürüyor; ancak çağıran taraf bilinçli olarak onaylamadığı sürece durumu değiştiren hiçbir eylemi gerçekleştirmiyor.

Okumalar ücretsiz, yazmalar kapılı

Kullanıcılar aracı bir "recipe" (tarif) POST ederek yönlendiriyor: bir giriş URL'si, isteğe bağlı oturum açma ve gezinme adımları ve bir çıkarma tanımı. dev.to paylaşımına göre bir adım dört eylemden biri olabiliyor — goto, type, click veya waitFor — ve yalnızca bir click write: true bayrağı taşıyabiliyor. Bu bayrağın kendisi tüm güvenlik modeli: yazma, bekleme, gezinme ve okuma kendiliğinden değiştirmeyen eylemler olarak değerlendirilirken, yazma olarak işaretlenmiş bir click, istek confirm: true içermiyorsa reddediliyor.

Bu kontrol, tarayıcı hiç hazırlanmadan önce yapılıyor. Bir recipe yazma adımı içeriyorsa ve onay eksikse, araç bir hata döndürüyor ve hiçbir şey başlatmıyor; dolayısıyla bir yazma işleminin yakalanmadan önce kısmen yürütülmüş olduğu bir pencere yok. Mutasyonu çalıştırmak için çağıran taraf, aynı recipe'yi confirm bayrağı ayarlanmış şekilde yeniden gönderiyor.

Bir çalışma ne döndürüyor

Başarılı bir çalışma üç çıktı üretiyor. Birincisi, iki yoldan biri ile toplanan, JSON olarak çıkarılan veri: hiçbir model gerektirmeyen CSS selector ve alan tanımlama, ya da doğal dilde bir extraction prompt verilmesi — bu durumda sayfa metni Anthropic'in Messages API'si üzerinden Claude Haiku modeline aktarılıyor ve JSON isteniyor. İkincisi, çalışmanın kanıtı olarak tarayıcının tam olarak ne render ettiğini gösteren base64 ile kodlanmış bir PNG ekran görüntüsü. Üçüncüsü, agent'ın gerçekte attığı adımların günlüğü.

Çıkarma yolu başarısız olmak yerine kademeli olarak düşecek şekilde tasarlanmış: Anthropic anahtarı yapılandırılmamışsa, prompt tabanlı çıkarıcı ham bir metin dilimi döndürüyor ve geliştirme sürdürebiliyor; JSON ayrıştırması başarısız olursa da ayrıştırılamayan metin çöpe atılmak yerine döndürülüyor.

Ucuz yineleme için dry mode

Webhands, Cloudflare Workers üzerinde Browser Rendering ile çalışıyor. Canlı modda bir browser binding mevcut olur ve agent, Cloudflare'in Puppeteer entegrasyonu üzerinden gerçek bir headless tarayıcıyı yönetir. Dry mode'da ise binding yoktur ve araç, hiçbir şey çalıştırmadan, net şekilde etiketlenmiş halde, yürüteceği planı döndürür — bu sayede geliştiriciler bir browser binding için ödeme yapmadan recipe yazıp test edebilir. Gönderime göre kota tükenmesi veya hazırlanmamış binding'ler çökme yerine temiz bir hataya dönüşüyor.

Kapı etikete güveniyor, düğmeye değil

Yazar, tasarımın sınırları konusunda açık. Webhands verilen bir click'in gerçekte ne yaptığını bilemez; write bayrağını recipe'yi yazan kişi ayarlar. Yanlış etiketlenmiş ya da hiç işaretlenmemiş yıkıcı bir düğme, işaretsiz bir click gezinme sayıldığı için hiçbir onay olmadan tıklanacaktır. Kapı, tehlikeyi kendi başına tespit eden bir sınıflandırıcı değil, bilinçli yazmalar için bir zorunlu kılıcı işlevi olarak tanımlanıyor. Gönderi, gerçek arayüzleri otomatikleştirmenin alışılmış kırılganlığını da kabul ediyor: selector'lar panolar değiştiğinde bozuluyor, oturum açmalar sorgulanıyor ve yavaş sayfalar zaman aşımına uğrayabiliyor — ekran görüntüsünün ve adım günlüğünün var olma nedenleri de bu. Kod, GitHub'da AgentPostmortem/Webhands deposu altında yayımlandı.

Neden önemli

Computer-use agent'lar, oturum açmış bir insanın yapabileceği her şeyi devralır ve çoğu otomasyon çerçevesi her click'i aynı şekilde ele alır; bu da üretim panosuna yöneltilmiş bir agent'ı, yanlış etiketlenmiş tek bir düğme uzağında, para iadesi yapmaktan veya sipariş iptal etmekten ayırır. Webhands küçük ve kolayca kopyalanabilir bir örüntü gösteriyor: okumaları yazmalardan recipe düzeyinde ayırın ve kapıyı herhangi bir tarayıcı başlamadan önce deterministik olarak değerlendirin. Bu, niyet tespitinin yerini almayacak — yazar bunu da açıkça söylüyor — ama API'si olmayan portallardan veri çekme gibi yaygın bir durum için, mutasyonları otomatikleştirmeden kazımayı otomatikleştirmenin bir yolunu sunuyor.

  • #automation
  • #web-scraping
  • #cloudflare-workers
  • #ai-agents
  • #browser-automation

İlgili yazılar