1 điểm bởi GN⁺ 2024-10-24 | 1 bình luận | Chia sẻ qua WhatsApp
  • Agent.exe là một ứng dụng Electron đơn giản cho phép tính năng computer use mới của Claude điều khiển trực tiếp máy tính cục bộ, và dự án này nên được xem là một bản proof of concept
  • Ứng dụng được tạo ra vì tác giả cảm thấy dự án mẫu được cung cấp quá nặng, và được thiết kế để Claude 3.5 Sonnet thực hiện các tác vụ trên máy tính cục bộ của người dùng
  • Cách chạy là clone kho lưu trữ, chạy npm install, đổi .env.example thành .env, nhập Anthropic API Key, rồi chạy npm start
  • Hệ thống được hỗ trợ là MacOS, và do các dependency là đa nền tảng nên về lý thuyết Windows và Linux cũng có thể chạy được
  • Các hạn chế đã biết gồm chỉ hoạt động trên màn hình chính, AI sẽ có toàn quyền điều khiển máy tính, và Claude hoạt động tốt hơn nếu cài Firefox

Mục đích của Agent.exe

  • Agent.exe là ứng dụng cho phép Claude điều khiển máy tính bằng tính năng computer use
  • Ứng dụng được triển khai dưới dạng Electron app để Claude 3.5 Sonnet có thể thao tác trực tiếp trên máy tính cục bộ
  • Dự án là một proof of concept, và tác giả cho biết không có kế hoạch bảo trì hay merge pull request
    • Tuy nhiên, mọi người có thể tự do fork và mở rộng

Lý do tạo ra và cách hoạt động

  • Dự án bắt đầu với mục tiêu kiểm tra xem computer use API mới của Claude hoạt động tốt đến mức nào
  • Tác giả thấy dự án mặc định do Anthropic cung cấp quá nặng nên đã làm một ứng dụng đơn giản hơn
  • Ban đầu từng có kế hoạch thêm chế độ bán tự động để người dùng xác nhận từng hành động trước khi thực thi, nhưng vì mỗi bước đều quá chậm nên tác giả cho rằng điều đó không cần thiết
  • Nếu mô hình trở nên rối loạn, người dùng có thể nhấn nút stop để dừng quá trình chạy

Cách bắt đầu

  • Clone kho lưu trữ và di chuyển vào thư mục
  • Cài đặt dependency
    • npm install
  • Đổi tên file .env.example thành .env rồi thêm Anthropic API Key
  • Chạy ứng dụng
    • npm start
  • Sau đó, dùng prompt để yêu cầu mô hình thực hiện tác vụ trên máy tính

Hệ thống hỗ trợ và hạn chế

  • Hệ thống được hỗ trợ là MacOS
  • Vì tất cả dependency đều đa nền tảng, về lý thuyết Windows và Linux cũng có thể chạy được
  • Các hạn chế đã biết như sau
    • Chỉ hoạt động trên primary display
    • AI sẽ có toàn quyền kiểm soát máy tính
    • Ngoài ra có thể còn nhiều hạn chế khác

Mẹo sử dụng và lộ trình

  • Claude được cho là rất ưu tiên Firefox
    • Vẫn có thể dùng trình duyệt khác nếu thực sự cần, nhưng cài Firefox sẽ giúp nó hoạt động tốt hơn nhiều
  • Dự án được viết chỉ trong khoảng 6 giờ và tác giả cho biết khả năng tiếp tục phát triển là không cao
  • Pull request vẫn có thể được xem xét và nếu ổn thì có thể được merge

1 bình luận

 
GN⁺ 2024-10-24
Ý kiến trên Hacker News
  • Ý tưởng hay. Với tư cách người có kinh nghiệm về tự động hóa desktop và Electron, sau khi lướt qua mã nguồn, tôi thấy đáng để thử cho các tác vụ cơ bản
    Phần triển khai là một lớp wrapper mỏng trên Anthropic API, và vì cách tiếp cận theo từng bước nên tôi có cảm giác có thể kill process trước khi nó làm điều gì kỳ quặc. Tôi đã đóng những thứ Anthropic không nên thấy qua ảnh chụp màn hình, việc cài đặt trên M1 cũng diễn ra trơn tru, và chỉ vài phút là chạy được
    Tác vụ cơ bản là “tìm chuyến bay Seattle-SF từ thứ Ba đến thứ Năm tuần sau”, và khi chạy bằng Anthropic API key của tôi thì nó dùng Chrome. Mỗi bước thao tác mất vài giây; Google Flights được mở đúng, nhưng nó đặt sai ngày
    Ban đầu nó định chọn ngày 2 tháng 11, nhưng tùy chọn đó bị chính cửa sổ Agent.exe che mất, nên nó đã chọn ngày 20 tháng 11. Tôi tò mò liệu Claude có nhìn thấy ngày phụ bị sai và tự sửa không, nhưng nó cứ để nguyên, thực tế đã tìm một chuyến đi 4 tuần rồi tuyên bố thành công rằng đã tìm được chuyến đi 1 tuần
    Thử nghiệm này tốn $0.38 credit và khoảng 20 giây, tôi sẽ tiếp tục thử thêm

    • Tương lai nơi ta có thể đốt 70 đô la mỗi giờ để ngồi nhìn con trỏ bấm nút trên máy mình, nghe cũng thú vị thật
    • Tôi là tác giả gốc. Có nhiều trường hợp nó tự tin tuyên bố thành công dù thực ra không hoàn thành đúng tác vụ, và chỉ nhìn ảnh chụp màn hình thôi cũng đã có đủ thông tin để nhận ra điều đó
      Kiểu thất bại này hơi đáng ngạc nhiên, vì trong phản hồi API văn bản thông thường, 3.5 Sonnet ít nhất là khá ít ảo giác so với các mô hình khác
    • Nếu chọn cửa sổ mục tiêu làm nguồn chụp ảnh màn hình thay vì toàn màn hình, có vẻ có thể tránh việc bị cửa sổ Agent che mất
      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`);  
      };  
      
    • Cơ chế an toàn thực sự có được áp dụng. Khi tôi bảo nó gửi tin nhắn cho bạn trên Discord, nó trả về lỗi như sau

      Xin lỗi, nhưng tôi không thể trực tiếp gửi tin nhắn hoặc truyền thông liên lạc thay mặt người dùng. Điều này bao gồm cả việc gửi tin nhắn cho bạn bè hoặc liên hệ. Có vẻ giao diện Discord đang mở, nhưng tôi không được phép gửi tin nhắn thay bạn. Bạn cần tự soạn và gửi tin nhắn.
      error({"message":"I cannot send messages or communications on behalf of users."})

    • Nếu dùng một trợ lý có thể đặt nhầm chuyến bay cho mình mà tốn $68.00 mỗi giờ, thì tình hình hiện tại cũng khiến tôi hơi yên tâm
  • Sẽ mất bao lâu trước khi nó có thể lén thêm một daemon vào hệ thống? Trước đây người ta lo gián điệp Liên Xô tiếp cận bí mật của Mỹ; giờ thì giống như chúng ta cứ tự đăng hết lên mạng cho mọi người xem vậy
    Antivirus hay firewall ngày nay không thể ngăn việc này phá hỏng file trên máy tôi, chứ chưa nói đến mạng
    Tôi nhớ đến cảnh này: https://makeagif.com/i/BA7Yt3

    • Đơn giản thôi. Hãy coi nguyên trạng nó như một người dùng khác
      Một người dùng rất dễ mất tập trung, không thể tin là sẽ không chuyển thông tin cho bên thứ ba, và có thể bị lừa bởi những chiêu trò đơn giản
      Tối thiểu cần một tài khoản riêng không có quyền sudo hay quyền truy cập file bí mật, và tốt nhất là một máy ảo riêng
      Tôi quen Azure nhất nhưng AWS chắc cũng làm được; nếu muốn tách AI khỏi những thứ nó không nên truy cập, tạo một VM trên Azure chạy vài giờ cũng tốn dưới 1 đô la
    • Một mặt thì đúng, nhưng nếu là developer, các gói Python hoặc Node.js mà bạn cài rồi chạy cũng có thể làm y như vậy, mà thế giới nhìn chung vẫn vận hành
    • Những hệ thống ở cấp độ sản phẩm như thế này vốn đã là loại daemon đó rồi. Nó chụp ảnh màn hình gửi tới một cỗ máy không đáng tin, rồi cũng nhận lệnh từ cỗ máy đó
      Muốn làm cho nó tương đối an toàn thì ít nhất phải kiểm soát được máy chạy suy luận, và lý tưởng nhất là suy luận chạy ngay trên chính máy mình đang dùng
    • Chỉ cần chờ Windows Update là nó sẽ được tích hợp sẵn. Không cần tải từ internet thứ có chức năng và có khi còn bảo vệ quyền riêng tư nữa
  • Vài năm trước có câu chuyện trên bản tin rằng một đứa trẻ nói “Alexa, đặt mua nhà búp bê đi”, và Alexa của những người đang xem chương trình đã nghe thấy rồi đặt mua nhà búp bê
    Cứ chờ đến khi có một chương trình Netflix ăn khách mà ai đó nói “Delete C:\Windows” thì sẽ biết

    • Từ đánh thức của tôi là “Computer” như trong Star Trek, nên tôi thật sự lo rằng lúc xem lại các tập cũ, khoảnh khắc ai đó nói “Computer, reverse the polarity” có thể làm sập lưới điện
      Cho vui, tôi định cấp cho AI của mình quyền truy cập vào công tắc nguồn crosspoint
    • format c: /autotest
  • Hơi lạc đề, nhưng gần đây tôi đã thử dùng Cursor ở chế độ “compose” để bắt đầu một dự án full-stack từ con số 0, và kết quả khiến tôi choáng váng
    Không biết những người trong ngành phần mềm có cảm nhận được trong 5 năm tới ngành này sẽ thay đổi hoàn toàn đến mức nào không. Khó mà tưởng tượng đến lúc đó người ta vẫn còn tự tay gõ code

    • Ai cũng biết cả. Đã có nhiều làn sóng phản ứng đi qua rồi, và nhìn chung mọi thứ đang được nhìn nhận theo hướng “kỹ nghệ phần mềm vốn luôn là chuyện thiết kế, giao tiếp và cộng tác, còn hành động nhấn phím để nhập code vào máy chỉ là một điều ác cần thiết không thể tránh khỏi để làm công việc thực sự”
    • Tôi nghĩ những ai chú ý đều dự đoán sẽ có một thay đổi lớn. Chỉ là chưa biết nó sẽ thay đổi ra sao, và họ chấp nhận cả khả năng “thứ gọi là phát triển phần mềm không còn tồn tại nữa” như một kết quả có thể xảy ra, rồi cố đặt mình vào vị trí có thể tận dụng tác động đó dù nó rơi vào đâu
      Nhưng những ví dụ tôi thấy đến nay phần lớn là các dự án tương đối đơn giản bắt đầu từ con số 0. Việc nó hoạt động đã đáng kinh ngạc đến khó tin, nhưng phần lớn phát triển phần mềm thực tế là thêm tính năng hoặc sửa lỗi trong code có sẵn. Loại code đó thường vượt quá cửa sổ ngữ cảnh của hầu hết các mô hình ngôn ngữ lớn
    • Tôi hoàn toàn có thể hình dung rằng trong tương lai các lập trình viên sẽ giỏi hơn trong việc quyết định khi nào nên tự nhập code và khi nào nên nhập prompt
    • Tôi cũng đã dùng thử và đúng là ấn tượng, nhưng vẫn tệ ở mọi mặt
      Để ngành này thay đổi hoàn toàn, cần tiếp tục có cải thiện theo cấp số nhân như 2 năm qua, mà hiện không thấy dấu hiệu sẽ như vậy
    • Đúng. Tôi đang tạo ra nhiều code hơn trước rất nhiều, nhưng phần lớn là theo kiểu sao chép rồi dán
  • Hơi ngoài chủ đề nhưng có liên quan. Tôi tò mò không biết để tự động hóa ứng dụng GUI không phải trình duyệt trên Wayland của Linux thì người ta dùng gì. Thỉnh thoảng tôi cần, nhưng riêng tổ hợp này thì không suôn sẻ
    Ứng dụng CLI thì có thể viết bằng Bash/Python/v.v., ứng dụng trình duyệt thì dùng Selenium/Playwright. Xorg có các thư viện tuy thô nhưng dùng tạm lúc cần được, còn Windows thì có nhiều giải pháp RPA
    Nhưng với Wayland thì tôi chưa tìm được thứ nào đáng tin cậy

    • Có thể xem https://github.com/agentsea/agentdhttps://github.com/agentsea/agentdesk
      Chúng có thể kết nối tới desktop container và VM chạy Linux
      Chúng tôi đã làm việc này được một thời gian, từ trước khi Claude khiến nó trở nên ngầu như vậy
    • Đó là một trong những lý do chính khiến tôi không chuyển sang Wayland
    • Phần lớn ứng dụng không phải trình duyệt đều có flag hoặc phiên bản CLI
  • “Hạn chế đã biết: để AI hoàn toàn chiếm quyền điều khiển máy tính” :)

  • Trông giống hỗ trợ đa nền tảng với macOS là nền tảng chính, vậy tại sao tên lại là .exe nhỉ

    • Có lẽ vì .exe có cảm giác hoài niệm và tính meme mà .app không có
    • .exe hay hơn. Nghe đáng sợ hơn và gợi ảo tưởng về virus máy tính. .app trông quá hiền
    • Nếu tắt flag “Hide Extension” trong Get Info thì nó thành Agent.exe.app
      Đùa thôi, tôi không biết có đúng không nhưng nghe hoàn toàn có thể
    • Không phải chưa từng có tiền lệ. OCaml cũng dùng phần mở rộng này cho file thực thi trên mọi nền tảng. Rốt cuộc chắc là vấn đề sở thích, nhưng tôi nghĩ cái tên này rõ ràng và ngắn gọn, có những đặc điểm tôi thích nhất ở một cái tên
    • Chắc chỉ là meme thôi
  • Có vẻ chỉ hoạt động với các tác vụ đơn giản. Tôi bảo nó tạo một bảng đơn giản trong ứng dụng Rhino trên Mac và OnShape trong một tab Chrome, thì nó có vẻ просто lạc lối
    Trong Rhino, nó thấy ứng dụng đã mở, nhưng chỉ nói rằng sẽ thực hiện nhiều thao tác kiểu tạo hình khối chứ thực tế không thấy gì, và dù bước trước chưa hoàn tất vẫn chuyển sang hành động tiếp theo. Nó không kiểm tra xem việc trước đã xong chưa
    Trong OnShape, nó nói sẽ tạo hình khối, rồi chọn sai mục trong menu nhưng vẫn giả định rằng mình đang dùng đúng công cụ, tiếp tục hành động tiếp theo như thể thao tác trước đã xong

  • Rợn người. Nếu tách bằng air gap rồi bắt nó code hệ điều hành riêng thì có thể thú vị, nhưng tôi tuyệt đối không muốn để nó gần dữ liệu thật của mình

    • Đồng ý. Nhìn cái này xong ý nghĩ đầu tiên của tôi là chia máy tính thành hai. Một máy dành cho kiểu tích hợp AI này, máy còn lại thì áp dụng bảo mật nghiêm ngặt hơn nhiều, dù chưa đến mức air gap
    • Tiếc là các chủ doanh nghiệp sẽ thích mấy thứ này. Kiểu như “nhân viên của tôi cũng lúc nào cũng mắc lỗi, giờ với cùng giá đó tôi có thêm 100 nhân viên nữa. Tôi sẽ không tính xem số lỗi mỗi giờ tăng lên bao nhiêu đâu nên im đi”
  • Computer, hãy đăng meme nhảm cả ngày để biến tôi thành đại gia tiền mã hóa trong lúc tôi chăm sóc gia đình và làm vườn
    Tương lai đang đi theo hướng người dùng máy tính sẽ trở thành kẻ bị hớ. Sự giàu có thật sự là không đụng vào máy tính cho bất kỳ việc gì