1 poin oleh GN⁺ 2024-10-24 | 1 komentar | Bagikan ke WhatsApp
  • Agent.exe adalah aplikasi Electron sederhana yang memungkinkan Claude mengendalikan komputer lokal secara langsung dengan fitur baru computer use, dan proyek ini sebaiknya dianggap sebagai proof of concept
  • Aplikasi ini dibuat karena proyek bawaan yang disediakan terasa terlalu berat, dan dirancang agar Claude 3.5 Sonnet dapat menjalankan tugas di komputer lokal pengguna
  • Alur menjalankannya adalah meng-clone repositori, menjalankan npm install, mengganti .env.example menjadi .env, memasukkan Anthropic API Key, lalu menjalankan npm start
  • Target yang didukung adalah MacOS, dan karena dependensinya lintas platform, Windows dan Linux secara teori juga memungkinkan
  • Batasan yang diketahui adalah hanya bekerja pada display utama, AI akan mengambil alih komputer sepenuhnya, dan Claude bekerja lebih baik jika Firefox dipasang

Tujuan Agent.exe

  • Agent.exe adalah aplikasi yang memungkinkan Claude mengendalikan komputer dengan fitur computer use
  • Diimplementasikan sebagai aplikasi Electron yang memungkinkan Claude 3.5 Sonnet mengoperasikan komputer lokal secara langsung
  • Proyek ini adalah proof of concept, dan disebutkan tidak ada rencana untuk memelihara atau menggabungkan pull request
    • Bebas untuk melakukan fork dan mengembangkannya

Alasan dibuat dan cara kerjanya

  • Dimulai dengan tujuan memeriksa seberapa baik computer use API baru dari Claude bekerja
  • Proyek bawaan yang disediakan Anthropic terasa terlalu berat, sehingga dibuat sebagai aplikasi yang lebih sederhana
  • Sempat ada rencana menambahkan mode semi-auto agar pengguna mengonfirmasi setiap tindakan sebelum dijalankan, tetapi dinilai tidak perlu karena tiap langkah terlalu lambat
  • Jika model menjadi bingung, pengguna dapat menekan tombol stop untuk mengakhiri eksekusi

Cara memulai

  • Clone repositori dan masuk ke direktorinya
  • Pasang dependensi
    • npm install
  • Ubah nama file .env.example menjadi .env dan tambahkan Anthropic API Key
  • Jalankan aplikasi
    • npm start
  • Setelah itu, minta model lewat prompt untuk melakukan tugas di komputer

Sistem yang didukung dan batasan

  • Sistem yang didukung adalah MacOS
  • Karena semua dependensi bersifat lintas platform, Windows dan Linux secara teori juga memungkinkan
  • Batasan yang diketahui adalah sebagai berikut
    • Hanya bekerja pada primary display
    • AI akan mengambil alih komputer sepenuhnya
    • Mungkin masih ada banyak batasan lainnya

Tips penggunaan dan roadmap

  • Disebutkan bahwa Claude sangat menyukai Firefox
    • Browser lain juga akan digunakan jika benar-benar diperlukan, tetapi memasang Firefox membuatnya bekerja jauh lebih baik
  • Proyek ini ditulis dalam sekitar 6 jam, dan disebutkan kecil kemungkinan akan dilanjutkan ke depan
  • Pull request akan ditinjau dan dapat digabungkan jika terlihat baik

1 komentar

 
GN⁺ 2024-10-24
Komentar Hacker News
  • Ide bagus. Sebagai orang yang berpengalaman dengan otomasi desktop dan Electron, setelah menelusuri sekilas kode sumbernya, rasanya layak dicoba untuk tugas-tugas dasar
    Implementasinya adalah wrapper tipis di atas Anthropic API, dan karena pendekatannya bertahap, saya cukup yakin prosesnya bisa dihentikan sebelum melakukan hal aneh. Saya sudah menutup hal-hal yang tidak boleh dilihat Anthropic lewat screenshot, dan instalasinya di M1 berjalan mulus sehingga bisa dijalankan dalam beberapa menit
    Tugas dasarnya adalah “cari penerbangan Seattle-SF dari Selasa sampai Kamis minggu depan”, dan saat dijalankan dengan kunci Anthropic API saya, ia memakai Chrome. Tiap langkah tindakan memakan waktu beberapa detik, dan Google Flights terbuka dengan benar, tetapi tanggal yang dipesan salah
    Awalnya ia hendak memilih 2 November, tetapi opsi itu tertutup oleh jendela Agent.exe sendiri, sehingga ia memilih 20 November. Saya penasaran apakah Claude akan melihat tanggal bantuan yang salah dan mengoreksi dirinya sendiri, tetapi ia membiarkannya begitu saja dan menyatakan berhasil menemukan perjalanan 1 minggu, padahal sebenarnya menemukan perjalanan 4 minggu
    Eksperimen ini menghabiskan kredit $0.38 dan sekitar 20 detik, dan saya akan terus bereksperimen

    • Menarik juga masa depan di mana kita bisa membakar 70 dolar per jam untuk menonton kursor di komputer sendiri menekan tombol
    • Saya penulis aslinya. Sering kali ia dengan percaya diri menyatakan sukses meskipun sebenarnya tidak menjalankan tugas dengan benar, padahal dari screenshot saja informasinya sudah cukup untuk mengetahuinya
      Pola kegagalan ini agak mengejutkan, karena dalam respons API teks biasa, 3.5 Sonnet setidaknya termasuk cukup jarang berhalusinasi dibanding model lain
    • Jika memilih jendela target sebagai sumber tangkapan screenshot alih-alih seluruh layar, sepertinya bisa mencegahnya tertutup oleh jendela Agent
      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`);  
      };  
      
    • Pengaman benar-benar diterapkan. Saat saya memintanya mengirim pesan ke teman di Discord, muncul error seperti ini

      Maaf, tetapi saya tidak dapat mengirim pesan atau komunikasi secara langsung atas nama pengguna. Ini termasuk mengirim pesan kepada teman atau kontak. Antarmuka Discord tampaknya terbuka, tetapi saya tidak boleh mengirim pesan atas nama Anda. Anda harus menulis dan mengirim pesan itu sendiri.
      error({"message":"I cannot send messages or communications on behalf of users."})

    • Kalau $68.00 per jam untuk memakai asisten yang mungkin memesankan penerbangan yang salah, kondisi saat ini sedikit melegakan
  • Berapa lama sampai ia bisa diam-diam menambahkan daemon ke sistem. Dulu kita khawatir mata-mata Soviet mengakses rahasia Amerika, sekarang mirip seperti kita sendiri mengunggahnya ke internet supaya semua orang bisa melihatnya
    Antivirus atau firewall masa kini tidak bisa mencegah kemungkinan ini merusak file di komputer saya, apalagi jaringan
    Adegan ini terlintas: https://makeagif.com/i/BA7Yt3

    • Sederhana. Perlakukan saja ini apa adanya sebagai pengguna lain
      Pengguna yang mudah terdistraksi, tidak bisa dipercaya untuk tidak membocorkan informasi ke pihak ketiga, dan bisa tertipu oleh trik sederhana
      Minimal perlu akun terpisah tanpa hak sudo atau akses ke file rahasia, dan paling baik perlu mesin virtual terpisah
      Saya paling familiar dengan Azure, tetapi AWS juga mestinya bisa; kalau ingin memisahkan AI dari hal-hal yang tidak boleh diaksesnya, membuat VM di Azure dan menjalankannya beberapa jam bisa dilakukan dengan biaya di bawah 1 dolar
    • Di satu sisi itu benar, tetapi kalau Anda developer, paket Python atau Node.js yang Anda instal dan jalankan juga bisa melakukan hal yang sama, dan dunia pada umumnya tetap berjalan
    • Sistem tingkat produk seperti ini sebenarnya sudah merupakan daemon semacam itu. Ia mengambil screenshot dan mengirimkannya ke mesin yang tidak tepercaya, lalu menerima perintah dari mesin itu juga
      Agar setidaknya lebih aman, minimal kita harus mengendalikan mesin yang menjalankan inferensi, dan idealnya inferensi berjalan di mesin yang sama dengan yang saya pakai
    • Tunggu saja pembaruan Windows, nanti akan dibundel. Tidak perlu mengunduh sesuatu dari internet yang punya fitur dan mungkin juga memberi perlindungan privasi
  • Beberapa tahun lalu ada berita tentang anak kecil yang berkata “Alexa, pesankan rumah boneka”, lalu Alexa milik orang-orang yang menonton siaran itu mendengarnya dan memesan rumah boneka
    Tinggal tunggu saja apa yang terjadi kalau ada acara populer Netflix tempat seseorang berkata “Delete C:\Windows”

    • Kata bangun saya adalah “Computer” seperti di Star Trek, jadi saya benar-benar khawatir saat menonton ulang episode lama dan seseorang berkata “Computer, reverse the polarity”, lalu itu mematikan jaringan listrik
      Untuk iseng, saya berencana memberi AI saya akses ke sakelar daya crosspoint
    • format c: /autotest
  • Sedikit menyimpang, tapi baru-baru ini saya mencoba memulai proyek full-stack dari nol dengan memakai Cursor dalam mode “compose”, dan hasilnya membuat saya tercengang
    Saya tidak tahu apakah orang-orang di industri perangkat lunak benar-benar merasakan betapa totalnya industri ini akan berubah dalam 5 tahun ke depan. Sulit membayangkan pada saat itu orang masih akan mengetik kode secara manual dengan tangan

    • Semua orang tahu. Sudah ada beberapa gelombang reaksi, dan secara umum kesimpulannya mulai mengarah ke “rekayasa perangkat lunak sejak dulu selalu tentang desain, komunikasi, dan kolaborasi, sementara tindakan menekan tombol untuk memasukkan kode ke mesin hanyalah kebutuhan buruk yang tak terhindarkan demi melakukan pekerjaan yang sebenarnya”
    • Saya rasa semua orang yang memperhatikan memperkirakan perubahan besar akan datang. Hanya saja kita belum tahu bentuknya, dan “tidak ada lagi yang namanya pengembangan perangkat lunak” pun diterima sebagai salah satu kemungkinan hasil; orang-orang berusaha menempatkan diri agar bisa memanfaatkan dampaknya di mana pun ia jatuh
      Namun contoh yang sejauh ini saya lihat kebanyakan adalah proyek yang relatif sederhana dan dimulai dari nol. Fakta bahwa itu bisa berjalan memang luar biasa sampai sulit dipercaya, tetapi sebagian besar pengembangan perangkat lunak nyata adalah menambahkan fitur atau memperbaiki bug pada kode yang sudah ada. Kode seperti itu biasanya melampaui jendela konteks sebagian besar large language model
    • Saya 100% bisa membayangkan bahwa ke depannya developer akan makin piawai menilai kapan harus mengetik kode sendiri dan kapan harus memasukkan prompt
    • Saya juga sudah mencobanya dan memang mengesankan, tetapi masih buruk dalam segala hal
      Agar industri benar-benar berubah total, peningkatan eksponensial seperti 2 tahun terakhir harus terus berlanjut, dan saya tidak melihat tanda-tanda itu akan terjadi
    • Benar. Kita memang membuat jauh lebih banyak kode daripada dulu, tetapi kebanyakan dengan cara copy-paste
  • Agak keluar topik, tapi masih terkait. Saya penasaran orang memakai apa untuk otomatisasi aplikasi GUI non-browser di Wayland pada Linux. Kadang saya membutuhkannya, tetapi kombinasi ini selalu sulit dibereskan
    Untuk aplikasi CLI bisa ditulis dengan Bash/Python/dll., dan untuk aplikasi browser ada Selenium/Playwright. Di Xorg ada library yang meski kasar tetap bisa dipakai saat mendesak, dan di Windows ada banyak solusi RPA
    Namun untuk Wayland saya belum menemukan sesuatu yang bisa diandalkan

    • Coba lihat https://github.com/agentsea/agentd dan https://github.com/agentsea/agentdesk
      Bisa terhubung ke container desktop dan VM yang menjalankan Linux
      Kami sudah melakukan ini cukup lama, bahkan sebelum Claude membuatnya terlihat keren
    • Itu salah satu alasan utama saya tidak pindah ke Wayland
    • Sebagian besar aplikasi non-browser punya flag atau versi CLI
  • “Keterbatasan yang diketahui: membiarkan AI mengambil alih komputer sepenuhnya” :)

  • Tampaknya mendukung multiplatform dengan macOS sebagai platform utama, jadi saya penasaran kenapa namanya .exe

    • Mungkin karena .exe punya nostalgia dan nilai meme yang tidak dimiliki .app
    • .exe lebih bagus. Lebih menyeramkan dan membangkitkan fantasi virus komputer. .app terlalu jinak
    • Kalau flag “Hide Extension” dimatikan di Get Info, jadinya Agent.exe.app
      Bercanda, saya tidak tahu apakah itu benar, tapi rasanya cukup mungkin
    • Bukan tanpa preseden. OCaml juga memakai ekstensi ini untuk file executable di semua platform. Pada akhirnya mungkin soal selera, tapi menurut saya nama ini jelas dan ringkas, punya sifat yang paling saya sukai dari sebuah nama
    • Sepertinya cuma meme
  • Sepertinya hanya bekerja untuk tugas-tugas sederhana. Saya menyuruhnya membuat tabel sederhana di aplikasi Mac Rhino dan OnShape di tab Chrome, tetapi tampaknya ia hanya tersesat
    Di Rhino, ia memang melihat aplikasinya terbuka, tetapi hanya mengatakan akan melakukan berbagai tindakan seperti membuat bentuk, sementara sebenarnya tidak terlihat apa-apa, lalu lanjut ke tindakan berikutnya meski langkah sebelumnya belum selesai. Ia tidak memeriksa apakah tugas sebelumnya sudah selesai
    Di OnShape, ia hendak membuat bentuk, lalu memilih item yang salah di menu tetapi tetap menganggap dirinya memakai tool yang benar, dan terus melanjutkan tindakan berikutnya seolah tindakan sebelumnya sudah selesai

  • Menyeramkan. Mungkin menarik kalau dipisahkan dengan air gap lalu disuruh mengodekan OS-nya sendiri, tetapi saya sama sekali tidak mau menaruhnya di dekat data saya yang sebenarnya

    • Setuju. Hal pertama yang terpikir setelah melihat ini adalah membagi komputer menjadi dua. Satu untuk integrasi AI seperti ini, dan satu lagi, meski tidak sampai air-gapped, menerapkan keamanan yang jauh lebih ketat
    • Sayangnya, pemilik bisnis suka hal seperti ini. Kira-kira begini: “Karyawan saya juga selalu bikin kesalahan, dan sekarang dengan harga yang sama saya bisa punya 100 karyawan lagi. Saya tidak akan menghitung berapa banyak kesalahan per jam yang bertambah, jadi diam saja”
  • Computer, tolong posting meme shitpost sepanjang hari agar saya jadi kaya kripto sementara saya merawat keluarga dan mengurus kebun
    Masa depan bergerak ke arah orang yang memakai komputer menjadi pihak yang tertipu. Kekayaan sejati adalah tidak menyentuh komputer untuk pekerjaan apa pun