Khi Selenium và Playwright ‘đầu hàng’ lúc 2 giờ sáng
Màn hình log đỏ rực lúc 2 giờ sáng là nỗi ám ảnh của dân làm automation. Cái script Selenium mình viết để crawl dữ liệu, sau đó đẩy vào phần mềm kế toán nội bộ, cứ chạy được 5 phút là lăn đùng ra chết. Lý do rất đơn giản: Website mục tiêu vừa đổi giao diện. Đống xpath và css selector mình dày công soi mói bỗng chốc trở nên vô dụng. Tệ hơn nữa, cái phần mềm kế toán chạy trên Windows kia là một “hộp đen” đúng nghĩa, không API, không DOM, không có cách nào can thiệp.
Thực tế cho thấy automation truyền thống cực kỳ cứng nhắc. Nếu hệ thống không có API hoặc trang web liên tục thay đổi cấu trúc để chống bot, bạn sẽ sớm bế tắc. Computer Use API của Anthropic xuất hiện như một hướng đi mới, giải quyết bài toán này bằng tư duy của một con người thực thụ.
Đặt lên bàn cân: AI Automation vs. RPA truyền thống
Để biết khi nào nên dùng tool gì, hãy nhìn vào bản chất cách chúng vận hành:
- Traditional RPA (Selenium, Playwright): Dựa hoàn toàn vào mã nguồn (DOM). Tốc độ nhanh, chính xác tuyệt đối nhưng cực kỳ dễ gãy (brittle) nếu giao diện thay đổi dù chỉ 1 pixel trong code.
- Scripted GUI (PyAutoGUI): Điều khiển chuột và phím theo tọa độ cứng. Nó mù quáng bấm vào điểm (100, 200) mà không cần biết ở đó có cái nút nào hay không.
- Claude 3.5 Sonnet (Computer Use): AI thực sự “nhìn” ảnh chụp màn hình. Nó hiểu icon, nhận diện được nút “Hủy” dù nó nằm ở đâu hay có màu gì, sau đó mới ra quyết định hành động.
Được và mất khi giao máy tính cho Claude
Lợi thế vượt trội
- Tư duy linh hoạt: Nút “Gửi” đổi từ màu xanh sang đỏ? Claude vẫn tìm thấy. Nó không quan tâm đến mã nguồn, nó chỉ quan tâm đến trải nghiệm thị giác.
- Phá vỡ rào cản ứng dụng: Không chỉ dừng lại ở trình duyệt. AI có thể mở Excel, chat Slack, hoặc thao tác trên các phần mềm ERP cũ kỹ (Legacy Systems) từ thập niên trước.
- Giao tiếp bằng ngôn ngữ tự nhiên: Thay vì code hàng trăm dòng, bạn chỉ cần ra lệnh: “Tìm báo cáo doanh thu tháng 10 trên web, sau đó copy vào file Excel trên Desktop”.
Những ‘nỗi đau’ cần lưu ý
- Ví tiền: Mỗi hành động yêu cầu AI chụp ảnh và gửi lên server. Với giá khoảng 15 USD cho mỗi 1 triệu token đầu vào của Claude 3.5 Sonnet, chi phí sẽ tăng rất nhanh nếu bạn chạy vòng lặp liên tục.
- Độ trễ (Latency): Đừng mong đợi tốc độ ánh sáng. Mỗi bước suy nghĩ và phản hồi của AI mất từ 5-10 giây.
- An toàn dữ liệu: AI chụp màn hình liên tục. Nếu bạn vô tình để lộ mật khẩu hay thông tin nhạy cảm trên màn hình, chúng sẽ được gửi thẳng lên Cloud của Anthropic.
Triển khai thực tế: Đưa Claude vào môi trường Sandbox
Đừng bao giờ để AI chạy trực tiếp trên máy thật của bạn. Nó có thể lỡ tay xóa sạch folder System32 nếu hiểu sai ý. Cách an toàn nhất là dùng Docker.
Bước 1: Thiết lập API Key
Truy cập Anthropic Console để lấy API Key. Hãy nạp sẵn khoảng 10$ để trải nghiệm, vì mỗi task phức tạp có thể tiêu tốn của bạn vài đô la.
Bước 2: Khởi chạy môi trường ảo
Sử dụng lệnh Docker sau để tạo một môi trường Desktop ảo có sẵn trình duyệt và các công cụ cần thiết:
export ANTHROPIC_API_KEY=your_api_key_here
docker run \
-e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
-v $HOME/.anthropic:/home/computeruse/.anthropic \
-p 8080:8080 -p 8501:8501 -p 5900:5900 \
-it anthropic/computer-use-demo:latest
Sau khi chạy, hãy mở http://localhost:8080. Bạn sẽ thấy một giao diện điều khiển nơi Claude đang chờ lệnh của bạn.
Bước 3: Tích hợp vào mã nguồn Python
Nếu bạn muốn xây dựng một hệ thống tự động hóa hoàn chỉnh, đây là cách gọi API thông qua SDK chính thức:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
tools=[{
"type": "computer_20241022",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
}],
messages=[{"role": "user", "content": "Mở Chrome, truy cập GitHub và tìm repo của Anthropic."}],
betas=["computer-use-2024-10-22"],
)
Bí kíp tối ưu để không ‘cháy’ tài khoản
Để AI tự bơi hoàn toàn là cách nhanh nhất để làm rỗng ví của bạn. Sau một thời gian thử nghiệm, mình rút ra 3 quy tắc vàng:
- Chia để trị: Đừng yêu cầu AI làm cả một quy trình dài. Hãy dùng script Python bình thường để xử lý logic, chỉ gọi Claude khi cần tương tác với các giao diện phức tạp.
- Độ phân giải 1024×768: Đây là con số tối ưu. Độ phân giải cao hơn chỉ khiến ảnh gửi đi nặng hơn, tốn nhiều token hơn mà không giúp AI thông minh hơn bao nhiêu.
- Luôn có giới hạn vòng lặp: Set cứng
max_iterations. Nếu sau 10 bước AI vẫn chưa xong việc, có thể nó đang bị kẹt ở một cái pop-up nào đó.
Lời kết
Computer Use API không phải là công cụ thay thế hoàn toàn Selenium. Nó là một “vũ khí hạng nặng” bổ sung vào bộ toolkit của kỹ sư IT. Biết khi nào dùng code thuần để tối ưu tốc độ, khi nào dùng Claude để xử lý logic hình ảnh chính là sự khác biệt giữa một thợ code và một kiến trúc sư giải pháp thực thụ.
Giờ là 3 giờ sáng. Sau khi đẩy task crawl khó nhằn sang cho Claude xử lý, mình đã có thể yên tâm đi ngủ mà không lo script bị crash giữa chừng.
