Khi tác vụ vượt ngoài trình duyệt — mở app desktop, thao tác phần mềm kế toán cũ, kéo thả file — ta cần computer-use: agent nhìn ảnh chụp màn hình và ra lệnh chuột/bàn phím theo tọa độ. Mạnh hơn nhưng mong manh hơn nhiều.
Cách computer-use hoạt động
Agent nhận screenshot, mô hình đa phương thức (vision) suy luận nên click ở đâu, rồi trả lệnh dạng:
{ "action": "left_click", "coordinate": [640, 384] }
{ "action": "type", "text": "bao-cao.xlsx" }
{ "action": "key", "text": "ctrl+s" }
{ "action": "screenshot" }
Vòng lặp: chụp → suy nghĩ → phát tọa độ → chụp lại để kiểm chứng. Vì dựa trên pixel, độ chính xác tọa độ là điểm yếu chí mạng.
Bố trí môi trường an toàn
Computer-use phải chạy trong máy ảo/container có desktop cô lập, không phải máy cá nhân:
- Dựng VM (hoặc Docker có XFCE/màn hình ảo) chỉ chứa app cần thao tác.
- Cố định độ phân giải (vd 1280x800) — tọa độ phụ thuộc độ phân giải.
- Không đăng nhập tài khoản thật; không gắn ổ đĩa chứa dữ liệu nhạy cảm.
- Ghi lại toàn bộ phiên (video) để audit.
[Host] --> [VM cô lập: 1280x800]
- chỉ có app kế toán test
- không mạng nội bộ
- quay màn hình liên tục
Các bước xây một tác vụ computer-use
- Chuẩn hóa độ phân giải và bố cục app trước khi bắt đầu.
- Chụp screenshot đầu, gửi kèm mục tiêu cho mô hình vision.
- Nhận action tọa độ, thực thi qua thư viện điều khiển (vd xdotool/pyautogui trong VM).
- Chụp lại ngay sau mỗi action để mô hình tự kiểm chứng đã click đúng chưa.
- Nếu lệch → mô hình tự sửa ở vòng sau dựa trên ảnh mới.
- Giới hạn số bước và có nút "dừng khẩn".
Ưu tiên browser-use khi có thể
Nếu tác vụ có thể làm trong trình duyệt, hãy dùng browser-use — chính xác hơn nhờ DOM. Chỉ dùng computer-use khi:
- App desktop thuần (Excel offline, phần mềm kế toán cài máy)
- Môi trường remote (Citrix, RDP) chỉ thấy pixel
- Web nhúng trong app không truy cập được DOM
Khung tư duy: "chi phí sai một pixel"
Browser-use chọn nhầm phần tử thì thường vô hại (click trượt link). Computer-use chọn nhầm tọa độ có thể bấm trúng nút "Xóa vĩnh viễn" cạnh nút "Lưu". Vì vậy computer-use luôn cần giám sát chặt hơn và xác nhận trước hành động phá hủy.
Ví dụ cụ thể
Tác vụ: xuất báo cáo từ phần mềm kế toán desktop. Agent chụp màn hình, thấy menu File, click [120, 40], chọn Export, gõ tên file, Ctrl+S. Mỗi bước chụp lại để chắc menu đã mở đúng. Nếu độ phân giải VM đổi giữa chừng, mọi tọa độ lệch — nên phải khóa cứng độ phân giải.
Bộ action tối thiểu của computer-use
Để agent thao tác đủ một máy tính, cần khai báo tập action chuẩn cho mô hình vision:
left_click / right_click / double_click [x, y]
mouse_move [x, y] # di chuột (hover menu)
type "text" # gõ chuỗi
key "ctrl+s" / "enter" # tổ hợp phím
scroll [x, y] direction # cuộn
screenshot # chụp lại để tự kiểm chứng
wait # chờ app phản hồi
Hầu hết tác vụ desktop được ghép từ những action nguyên thủy này. screenshot sau mỗi bước là bắt buộc để mô hình "nhìn lại" kết quả.
Grounding: giảm sai lệch tọa độ
Điểm yếu lớn nhất của computer-use là click lệch. Vài kỹ thuật giảm rủi ro:
- Yêu cầu mô hình mô tả phần tử đích TRƯỚC khi cho tọa độ
("nút Export ở góc trên phải") -> dễ tự sửa khi sai
- Dùng lưới tọa độ / đánh dấu trực quan trên screenshot
- Với app có accessibility API (UIAutomation, AT-SPI) -> ưu tiên
đọc cây phần tử desktop thay vì đoán pixel
- Zoom vào vùng nghi ngờ để định vị chính xác hơn
Khi được, kết hợp accessibility desktop + pixel cho độ chính xác cao hơn dùng pixel đơn thuần.
Sai lầm thường gặp
- Chạy computer-use trên máy thật: một cú click sai vào email/ngân hàng cá nhân là không thể hoàn tác.
- Không cố định độ phân giải: tọa độ học được thành vô nghĩa khi màn hình đổi kích thước.
- Dùng computer-use cho web có DOM: chậm, tốn, kém chính xác hơn browser-use.
- Không chụp lại sau mỗi action: agent "mù" không biết mình click hụt.
- Không xác nhận trước hành động phá hủy: nút nguy hiểm nằm sát nút an toàn, một pixel lệch là mất dữ liệu.