1 puan yazan GN⁺ 2024-10-24 | 1 yorum | WhatsApp'ta paylaş
  • Agent.exe, Claude’un yeni computer use özelliğiyle yerel bilgisayarı doğrudan kontrol etmeyi sağlayan basit bir Electron uygulaması; proje bir kavram kanıtı olarak değerlendirilmelidir
  • Varsayılan sağlanan projenin fazla ağır geldiği düşünülerek geliştirilmiş bir uygulama; Claude 3.5 Sonnet’in kullanıcının yerel bilgisayarında görevler gerçekleştirmesi için tasarlanmıştır
  • Çalıştırma akışı: depoyu klonlamak, npm install çalıştırmak, .env.example dosyasını .env olarak değiştirmek, Anthropic API Key eklemek ve npm start çalıştırmak şeklindedir
  • Desteklenen hedef MacOS’tur; bağımlılıklar çapraz platform olduğu için Windows ve Linux’un da teorik olarak mümkün olduğu belirtilir
  • Bilinen kısıtlar: yalnızca birincil ekranda çalışması, yapay zekanın bilgisayarın tam kontrolünü alması ve Firefox yüklendiğinde Claude’un daha iyi çalışmasıdır

Agent.exe’nin amacı

  • Agent.exe, Claude’un computer use özelliğini kullanarak bilgisayarı kontrol etmesini sağlayan bir uygulamadır
  • Claude 3.5 Sonnet’in yerel bilgisayarı doğrudan kullanmasını sağlayan bir Electron uygulaması olarak uygulanmıştır
  • Projenin bir kavram kanıtı olduğu, bakımının yapılmasının veya pull request’lerin birleştirilmesinin planlanmadığı belirtilir
    • Fork’layıp genişletmek serbesttir

Neden yapıldı ve nasıl çalışıyor

  • Claude’un yeni computer use API’sinin ne kadar iyi çalıştığını görmek amacıyla başlatılmıştır
  • Anthropic’in sağladığı varsayılan projenin fazla ağır geldiği düşünülerek daha basit bir uygulama olarak hazırlanmıştır
  • Kullanıcının her işlemi çalıştırılmadan önce onayladığı bir semi-auto modu ekleme planı vardı, ancak her adım çok yavaş olduğu için bunun gerekli olmadığına karar verilmiştir
  • Modelin kafası karışırsa kullanıcı stop düğmesine basarak çalıştırmayı sonlandırabilir

Başlangıç yöntemi

  • Depoyu klonlayıp dizine geçin
  • Bağımlılıkları yükleyin
    • npm install
  • .env.example dosyasının adını .env olarak değiştirin ve Anthropic API Key ekleyin
  • Uygulamayı çalıştırın
    • npm start
  • Ardından modelden bilgisayarda gerçekleştirmesini istediğiniz işi prompt ile isteyin

Desteklenen sistemler ve kısıtlar

  • Desteklenen sistem MacOS’tur
  • Tüm bağımlılıklar çapraz platform olduğu için Windows ve Linux da teorik olarak mümkündür
  • Bilinen sınırlamalar şunlardır
    • Yalnızca primary display üzerinde çalışır
    • Yapay zeka bilgisayarın tam kontrolünü alır
    • Bunların dışında da birçok sınırlama olabilir

Kullanım ipuçları ve yol haritası

  • Claude’un Firefox’u çok tercih ettiği belirtilir
    • Gerekirse diğer tarayıcıları da kullanır, ancak Firefox kuruluysa çok daha iyi çalışır
  • Projenin yaklaşık 6 saatte yazıldığı ve ileride devam etme olasılığının düşük olduğu belirtilir
  • Pull request’ler incelenebilir ve iyi görünürse birleştirilebilir

1 yorum

 
GN⁺ 2024-10-24
Hacker News yorumları
  • İyi fikir. Masaüstü otomasyonu ve Electron deneyimi olan biri olarak kaynak koduna göz gezdirince temel işler için denemeye değer göründü.
    Uygulama, Anthropic API üzerinde ince bir sarmalayıcı; adım adım ilerlediği için garip bir şey yapmadan önce süreci öldürebileceğime dair güven verdi. Anthropic’in ekran görüntüsünde görmemesi gereken şeyleri kapatmıştım; M1’de kurulum da sorunsuz bitti ve birkaç dakika içinde çalıştı.
    Temel görev “önümüzdeki hafta salıdan perşembeye Seattle-SF uçuşu bul” idi; kendi Anthropic API anahtarımla çalıştırınca Chrome’u kullandı. Her eylem adımı birkaç saniye sürdü ve Google Flights’ı düzgün açtı ama tarihleri yanlış rezerve etti.
    Aslında 2 Kasım’ı seçmeye çalışıyordu, ama o seçenek Agent.exe penceresinin kendisi tarafından örtüldüğü için 20 Kasım’ı seçti. Claude’un yanlış yardımcı tarihi görüp kendini düzeltip düzeltmeyeceğini merak ettim, ama olduğu gibi bıraktı; gerçekte 4 haftalık bir seyahat bulmuşken 1 haftalık seyahati bulduğunu söyleyerek başarı ilan etti.
    Bu deney $0.38 krediye ve yaklaşık 20 saniyeye mal oldu; denemeye devam edeceğim.

    • Bilgisayarımda imlecin düğmelere basmasını izlemek için saatte 70 dolar yakabileceğimiz bir gelecek ilginçmiş.
    • Asıl yazarım. İşi gerçekten doğru yapmadığı hâlde kendinden emin şekilde başarı ilan ettiği çok oluyor; yalnızca ekran görüntüsüne bakınca bile bunu anlaması için yeterince bilgi var.
      Bu başarısızlık biçimi biraz şaşırtıcı, çünkü 3.5 Sonnet normal metin API yanıtlarında en azından diğer modellere kıyasla oldukça az halüsinasyon görüyor.
    • Ekran görüntüsü alma kaynağı olarak tüm ekran yerine hedef pencere seçilirse Agent penceresinin üstünü kapatması engellenebilir gibi.
      const getScreenshot = async (windowTitle: string) => {  
      const { width, height } = getScreenDimensions();  
      const aiDimensions = getAiScaledScreenDimensions();
      
      const sources = await desktopCapturer.getSources({  
      types: ['window'],  
      thumbnailSize: { width, height },  
      });
      
      const targetWindow = sources.find(source => source.name === windowTitle);
      
      if (targetWindow) {  
      const screenshot = targetWindow.thumbnail;  
      // Resize the screenshot to AI dimensions  
      const resizedScreenshot = screenshot.resize(aiDimensions);  
      // Convert the resized screenshot to a base64-encoded PNG  
      const base64Image = resizedScreenshot.toPNG().toString('base64');  
      return base64Image;  
      }  
      throw new Error(`Window with title "${windowTitle}" not found`);  
      };  
      
    • Güvenlik önlemleri gerçekten uygulanıyor. Discord’da bir arkadaşıma mesaj göndermesini söylediğimde şu hata çıktı:

      Üzgünüm, kullanıcılar adına doğrudan mesaj gönderemem veya iletişim iletemem. Buna arkadaşlara ya da kişilere mesaj göndermek de dahildir. Discord arayüzü açık görünüyor olsa da, sizin adınıza mesaj göndermemem gerekir. Mesajı kendiniz yazıp göndermelisiniz.
      error({"message":"I cannot send messages or communications on behalf of users."})

    • Yanlış uçuşu rezerve edebilecek bir asistan için saati $68.00 ise, mevcut durum biraz içimi rahatlatıyor.
  • Sisteme gizlice daemon ekleyebilir hâle gelmesi ne kadar sürer acaba. Eskiden Sovyet casuslarının ABD sırlarına erişmesinden endişelenirdik; artık hepsini herkes görsün diye çevrimiçine koymamıza benziyor.
    Günümüz antivirüsleri veya güvenlik duvarları, bunun ağı bırakın, bilgisayarımdaki dosyaları bozma ihtimalini bile engelleyemez.
    Aklıma şu sahne geliyor: https://makeagif.com/i/BA7Yt3

    • Basit. Bunu olduğu gibi başka bir kullanıcı olarak ele almak yeterli.
      Kolayca dikkati dağılan, bilgileri üçüncü taraflara aktarmayacağına güvenilemeyen ve basit kandırmacalara bile kanabilecek bir kullanıcı.
      En azından sudo yetkisi veya gizli dosyalara erişimi olmayan ayrı bir hesap gerekir; en iyisi ise ayrı bir sanal makine.
      Azure’a en aşinayım ama AWS de mümkün olmalı; erişmemesi gereken şeylerle yapay zekayı ayırmak istiyorsanız Azure’da bir VM oluşturup birkaç saat çalıştırmak 1 doların altında mümkün.
    • Bir yandan doğru, ama geliştiriciyseniz kurup çalıştırdığınız Python veya Node.js paketleri de aynı şeyi yapabilir; yine de dünya genel olarak dönmeye devam ediyor.
    • Bu tür ürün seviyesindeki sistem zaten böyle bir daemon. Ekran görüntüsü alıp güvenilmeyen bir makineye gönderiyor ve o makineden komutlar da alıyor.
      Bunu biraz olsun güvenli yapmak için en azından çıkarımı çalıştıran makineyi kontrol etmek gerekir; ideali ise çıkarımın kullandığım makinede çalışmasıdır.
    • Windows güncellemesini beklemek yeterli, yerleşik gelecek. İnternetten, özellikleri olan ve belki gizliliği de koruyabilecek bir şeyi indirmenize gerek yok.
  • Birkaç yıl önce haberlerde, küçük bir çocuğun “Alexa, oyuncak ev sipariş et” dediği ve yayını izleyen insanların Alexa’larının bunu duyup oyuncak ev sipariş ettiği anlatılmıştı.
    Birinin “Delete C:\Windows” dediği popüler bir Netflix programı çıkarsa ne olacağını bekleyip görelim.

    • Benim uyandırma kelimem Star Trek’teki gibi “Computer”; eski bölümleri tekrar izlerken biri “Computer, reverse the polarity” dediği anda elektrik şebekesini öldürecek diye gerçekten endişeleniyorum.
      Eğlence olsun diye yapay zekama crosspoint güç anahtarına erişim vermeyi planlıyorum.
    • format c: /autotest
  • Konu dışı ama yakın zamanda Cursor’ı “compose” modunda kullanarak sıfırdan bir full-stack projeye başladım ve sonuç karşısında şoke oldum
    Yazılım sektöründeki insanların önümüzdeki 5 yıl içinde sektörün ne kadar kökten değişeceğini gerçekten hissedip hissetmediğini bilmiyorum. O zaman geldiğinde insanların hâlâ elle kod yazıyor olacağını hayal etmek zor

    • Herkes biliyor. Şimdiden birkaç tepki dalgası geçti ve genel olarak “yazılım mühendisliği her zaman tasarım, iletişim ve iş birliğiyle ilgiliydi; tuşlara basıp kodu makineye girmek ise gerçek işi yapmak için kaçınılmaz bir zorunlu kötülüktü” noktasında birleşiliyor
    • Dikkat eden herkesin büyük bir değişimin geleceğini beklediğini düşünüyorum. Sadece nasıl değişeceğini bilmiyoruz; “yazılım geliştirme diye bir şeyin artık kalmaması”nı da olası bir sonuç olarak kabul edip, etkisi nereye düşerse düşsün bundan yararlanabilecek şekilde konumlanmaya çalışıyoruz
      Ama şimdiye kadar gördüğüm örnekler çoğunlukla sıfırdan başlanan, nispeten basit projelerdi. Çalışıyor olması inanılması güç derecede şaşırtıcı, ama gerçek yazılım geliştirmenin büyük kısmı mevcut koda özellik eklemek ya da hata düzeltmektir. Bu tür kodlar da genellikle çoğu büyük dil modelinin bağlam penceresini aşar
    • Geliştiricilerin ileride ne zaman kodu doğrudan yazacaklarını, ne zaman prompt yazacaklarını ayırt etmede daha iyi hâle geleceğini %100 hayal edebiliyorum
    • Ben de kullandım ve etkileyici, ama hâlâ her açıdan pek iyi değil
      Sektörün tamamen değişmesi için son 2 yıldaki gibi üstel iyileşmelerin sürmesi gerekiyor; bunun olacağına dair bir işaret görmüyorum
    • Doğru. Eskisinden çok daha fazla kod üretiyorum, ama çoğu kopyala-yapıştır şeklinde
  • Biraz konu dışı ama alakalı. Linux’ta Wayland üzerinde tarayıcı olmayan GUI uygulamalarını otomatikleştirmek için ne kullanıldığını merak ediyorum. Ara sıra ihtiyaç oluyor ama özellikle bu kombinasyon pek sorunsuz değil
    CLI uygulamaları Bash/Python/başka şeylerle yazılabilir, tarayıcı uygulamaları için Selenium/Playwright kullanılabilir. Xorg’da kaba saba da olsa acele durumlarda işe yarayan kütüphaneler var; Windows’ta da çok sayıda RPA çözümü bulunuyor
    Ama Wayland için güvenilir bir şey bulamadım

    • https://github.com/agentsea/agentd ve https://github.com/agentsea/agentdesk projelerine bakabilirsiniz
      Linux çalıştıran masaüstü container’larına ve VM’lere bağlanabiliyorlar
      Claude bunu havalı hâle getirmeden önce biz bir süredir bunlarla uğraşıyorduk
    • Wayland’e geçmememin başlıca nedenlerinden biri de bu
    • Tarayıcı olmayan uygulamaların çoğunda bayraklar ya da CLI sürümü bulunuyor
  • “Bilinen sınırlamalar: Yapay zekanın bilgisayarı tamamen ele geçirmesine izin verir” :)

  • Ana platformu macOS olan çoklu platform desteği gibi görünüyor; adının neden .exe olduğunu merak ediyorum

    • Muhtemelen .exe’de .app’te olmayan bir nostalji ve meme değeri olduğu içindir
    • .exe daha iyi. Daha korkutucu ve bilgisayar virüsü hayalini çağrıştırıyor. .app fazla masum görünüyor
    • Get Info’da “Hide Extension” bayrağını kapatırsanız Agent.exe.app oluyor
      Şaka bir yana, gerçekten öyle mi bilmiyorum ama gayet mümkün görünüyor
    • Eşi benzeri yok değil. OCaml de tüm platformlardaki çalıştırılabilir dosyalar için bu uzantıyı kullanıyor. Sonuçta zevk meselesi ama bu adın net ve kısa olduğunu, bir isimde en sevdiğim özellikleri taşıdığını düşünüyorum
    • Bence sadece bir meme
  • Sadece basit işlerde çalışıyor gibi. Rhino Mac uygulamasında ve Chrome sekmesindeki OnShape’te basit bir masa yapmasını istedim; sanki tamamen yolunu kaybetmiş gibiydi
    Rhino’da uygulamanın açık olduğunu gördü, ama şekil oluşturmak gibi çeşitli işlemler yaptığını sadece söyledi; gerçekte görünür hiçbir şey olmadı ve önceki adım tamamlanmadan bir sonraki adıma geçti. Önceki işin bitip bitmediğini kontrol etmiyor
    OnShape’te de şekil oluşturacağını söyledi, menüden yanlış öğeyi seçmesine rağmen doğru aracı kullandığını varsaydı ve önceki işlem bitmiş gibi sonraki işlemlere devam etti

  • Ürkütücü. Air gap ile izole edip kendi işletim sistemini kodlatmak gibi bir kullanım ilginç olabilir, ama gerçek verilerimin yakınına asla koymak istemem

    • Katılıyorum. Bunu görünce aklıma hemen bilgisayarı ikiye ayırmak geldi. Biri bu tür yapay zeka entegrasyonları için, diğeri air gap olmasa bile çok daha sıkı güvenlik uygulanmış olacak şekilde
    • Ne yazık ki işletme sahipleri buna bayılır. “Çalışanlarım da zaten sürekli hata yapıyor; şimdi aynı fiyata 100 çalışan daha alabiliyorum. Saat başına hatanın ne kadar artacağını hesaplamayacağım, o yüzden sus” gibi
  • Computer, ben ailemle ilgilenip bahçeyle uğraşırken bütün gün meme shitpost’ları atıp beni kripto zengini yap
    Gelecek, bilgisayar kullanan kişinin enayi olduğu bir yöne gidiyor. Gerçek zenginlik, herhangi bir iş için bilgisayara dokunmamaktır