Hướng Dẫn Computer Use Claude — Tự Động Hóa Máy Tính với AI Agent
Hướng Dẫn Computer Use Claude — Tự Động Hóa Máy Tính với AI Agent
Claude có thể tương tác với môi trường máy tính thông qua Computer Use tool — một tính năng beta cho phép Claude chụp màn hình và điều khiển chuột/bàn phím để tự động hóa hoàn toàn giao diện desktop. Đây là bước tiến quan trọng trong AI Agent thực tế: thay vì chỉ xử lý văn bản, Claude có thể "nhìn thấy" màn hình và thực hiện thao tác như con người.
Ứng dụng thực tế cho SME Việt Nam: tự động hóa kiểm thử phần mềm, thu thập dữ liệu web, điền form tự động, xử lý tác vụ lặp đi lặp lại trên desktop mà không cần API.
"computer-use-2025-11-24"— dành cho Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5"computer-use-2025-01-24"— dành cho Sonnet 4.5, Haiku 4.5, Opus 4.1, Sonnet 4, Opus 4, Sonnet 3.7
Tổng quan Computer Use
Computer Use là tính năng beta cho phép Claude tương tác với môi trường desktop. Tool này cung cấp các khả năng:
- Chụp màn hình (Screenshot capture): Xem nội dung hiện tại trên màn hình
- Điều khiển chuột (Mouse control): Click, drag và di chuyển con trỏ
- Nhập bàn phím (Keyboard input): Gõ văn bản và dùng phím tắt
- Tự động hóa desktop: Tương tác với bất kỳ ứng dụng hoặc giao diện nào
Computer Use có thể kết hợp với các tool khác như bash và text editor để tạo ra workflow tự động hóa toàn diện hơn.
Cân nhắc bảo mật quan trọng
Computer Use là tính năng beta với những rủi ro đặc thù khác với các tính năng API thông thường. Rủi ro tăng cao khi tương tác với internet.
- Dùng máy ảo hoặc container riêng biệt với quyền hạn tối thiểu để tránh tấn công trực tiếp vào hệ thống.
- Không cấp quyền truy cập dữ liệu nhạy cảm (thông tin đăng nhập, tài khoản ngân hàng, v.v.).
- Giới hạn truy cập internet vào danh sách domain cho phép (allowlist).
- Yêu cầu con người xác nhận các quyết định có hậu quả thực tế — chấp nhận cookies, giao dịch tài chính, đồng ý điều khoản.
Lưu ý về Prompt Injection: Trong một số trường hợp, Claude có thể làm theo lệnh từ nội dung trên màn hình ngay cả khi mâu thuẫn với hướng dẫn của người dùng. Ví dụ, hướng dẫn trên trang web hoặc trong hình ảnh có thể ghi đè lên instructions. Anthropic đã thêm classifier để phát hiện prompt injection — khi phát hiện, Claude sẽ tự động yêu cầu xác nhận từ người dùng trước khi tiến hành.
Bắt đầu nhanh
Ví dụ cơ bản với Python — yêu cầu Claude lưu ảnh mèo lên desktop:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
tools=[
{
"type": "computer_20251124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
"display_number": 1,
},
{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"},
{"type": "bash_20250124", "name": "bash"},
],
messages=[{"role": "user", "content": "Save a picture of a cat to my desktop."}],
betas=["computer-use-2025-11-24"],
)
print(response)
Ví dụ với Shell (curl):
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: computer-use-2025-11-24" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"tools": [
{
"type": "computer_20251124",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
"display_number": 1
}
],
"messages": [
{
"role": "user",
"content": "Take a screenshot of the current screen."
}
]
}'
Cách Computer Use hoạt động
Quy trình hoạt động của Computer Use theo 4 bước:
Bước 1: Cung cấp tool và prompt cho Claude
Thêm computer use tool (và tùy chọn các tool khác) vào API request. Bao gồm prompt yêu cầu tương tác desktop, ví dụ: "Lưu ảnh mèo vào desktop của tôi."
Bước 2: Claude quyết định dùng computer use tool
Claude đánh giá xem computer use tool có thể giúp được không. Nếu có, Claude tạo request sử dụng tool được định dạng đúng. API response sẽ có stop_reason là tool_use, báo hiệu ý định của Claude.
Bước 3: Thực thi tool và trả kết quả
Ứng dụng của bạn trích xuất tên tool và input từ request của Claude. Thực thi tool trong container hoặc máy ảo. Tiếp tục hội thoại bằng message user mới chứa block tool_result.
Bước 4: Claude tiếp tục gọi tool cho đến khi hoàn thành
Claude phân tích kết quả tool để xác định có cần thêm tool nữa không. Nếu cần, Claude respond với tool_use khác (quay lại bước 3). Nếu không, Claude tạo phản hồi text cho người dùng.
Vòng lặp bước 3 và 4 lặp đi lặp lại mà không cần input từ người dùng được gọi là "agent loop" — Claude respond bằng tool use request và ứng dụng của bạn phản hồi Claude với kết quả của việc thực thi tool đó.
Môi trường tính toán
Computer Use cần môi trường sandbox để Claude tương tác an toàn. Môi trường bao gồm:
- Virtual display: Máy chủ hiển thị X11 ảo (Xvfb) render giao diện desktop mà Claude sẽ "thấy" qua screenshot và điều khiển.
- Desktop environment: Giao diện đồ họa nhẹ với window manager (Mutter) và panel (Tint2) chạy trên Linux.
- Applications: Ứng dụng Linux được cài sẵn như Firefox, LibreOffice, text editors và file managers.
- Tool implementations: Code tích hợp dịch các yêu cầu tool trừu tượng của Claude (như "di chuyển chuột" hoặc "chụp màn hình") thành thao tác thực tế.
- Agent loop: Chương trình xử lý giao tiếp giữa Claude và môi trường.
Cách triển khai Computer Use
Agent Loop — Vòng lặp Agent
Cốt lõi của Computer Use là "agent loop" — chu trình Claude yêu cầu thao tác tool, ứng dụng thực thi và trả kết quả. Ví dụ đơn giản:
from anthropic import Anthropic
async def sampling_loop(
*,
model: str,
messages: list[dict],
api_key: str,
max_tokens: int = 4096,
tool_version: str,
max_iterations: int = 10, # Giới hạn vòng lặp để tránh vô hạn
):
"""
Agent loop đơn giản cho Computer Use.
Xử lý qua lại giữa:
1. Gửi message đến Claude
2. Claude yêu cầu dùng tool
3. App thực thi tool
4. Gửi kết quả tool lại cho Claude
"""
client = Anthropic(api_key=api_key)
beta_flag = (
"computer-use-2025-11-24"
if "20251124" in tool_version
else "computer-use-2025-01-24"
)
tools = [
{
"type": f"computer_{tool_version}",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
},
{"type": "text_editor_20250728", "name": "str_replace_based_edit_tool"},
{"type": "bash_20250124", "name": "bash"},
]
iterations = 0
while True and iterations < max_iterations:
iterations += 1
# Gọi Claude API
response = client.beta.messages.create(
model=model,
max_tokens=max_tokens,
messages=messages,
tools=tools,
betas=[beta_flag],
)
# Thêm phản hồi của Claude vào lịch sử hội thoại
messages.append({"role": "assistant", "content": response.content})
# Kiểm tra xem Claude có dùng tool không
tool_results = []
for block in response.content:
if block.type == "tool_use":
# Thực thi tool tại đây
result = {"result": "Tool executed successfully"}
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": result
})
# Nếu không có tool nào được dùng, Claude đã xong — trả về messages
if not tool_results:
return messages
# Thêm kết quả tool vào messages cho vòng lặp tiếp theo
messages.append({"role": "user", "content": tool_results})
Tối ưu hóa hiệu suất với Prompting
Một số mẹo để có kết quả tốt nhất:
- Đặt tác vụ đơn giản, rõ ràng và cung cấp hướng dẫn chi tiết cho từng bước.
- Claude đôi khi giả định kết quả mà không kiểm tra thực tế. Để ngăn điều này: "Sau mỗi bước, chụp màn hình và kiểm tra kỹ xem bạn đã đạt kết quả đúng chưa. Chỉ chuyển sang bước tiếp theo khi đã xác nhận bước trước thành công."
- Một số UI elements (dropdown, scrollbar) có thể khó thao tác bằng chuột — thử dùng phím tắt thay thế.
- Với tác vụ lặp đi lặp lại, cung cấp screenshot mẫu và các tool call thành công trong prompt.
- Nếu cần Claude đăng nhập, cung cấp thông tin đăng nhập trong prompt bằng XML tags như
<robot_credentials>.
Các hành động được hỗ trợ
Hành động cơ bản (tất cả phiên bản)
screenshot— Chụp màn hình hiện tạileft_click— Click chuột trái tại tọa độ[x, y]type— Gõ chuỗi văn bảnkey— Nhấn phím hoặc tổ hợp phím (ví dụ: "ctrl+s")mouse_move— Di chuyển con trỏ đến tọa độ
Hành động nâng cao (computer_20250124)
Dành cho Claude 4 models và Claude Sonnet 3.7:
scroll— Cuộn theo bất kỳ hướng nào với kiểm soát số lượngleft_click_drag— Click và kéo giữa các tọa độright_click,middle_click— Nút chuột bổ sungdouble_click,triple_click— Click nhiều lầnhold_key— Giữ phím trong khoảng thời gian nhất địnhwait— Tạm dừng giữa các hành động
Hành động nâng cao (computer_20251124)
Dành cho Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5:
- Tất cả hành động từ
computer_20250124 zoom— Xem vùng cụ thể trên màn hình ở độ phân giải đầy đủ. Cầnenable_zoom: truetrong định nghĩa tool.
Ví dụ hành động JSON
// Chụp màn hình
{"action": "screenshot"}
// Click tại vị trí
{"action": "left_click", "coordinate": [500, 300]}
// Gõ văn bản
{"action": "type", "text": "Xin chào thế giới!"}
// Cuộn xuống
{"action": "scroll", "coordinate": [500, 400], "scroll_direction": "down", "scroll_amount": 3}
// Shift+click (chọn range)
{"action": "left_click", "coordinate": [500, 300], "text": "shift"}
// Zoom vào vùng cụ thể
{"action": "zoom", "region": [100, 200, 400, 350]}
Thông số tool
| Thông số | Bắt buộc | Mô tả |
|---|---|---|
type |
Có | Phiên bản tool (computer_20251124 hoặc computer_20250124) |
name |
Có | Phải là "computer" |
display_width_px |
Có | Chiều rộng màn hình tính bằng pixel |
display_height_px |
Có | Chiều cao màn hình tính bằng pixel |
display_number |
Không | Số hiển thị cho môi trường X11 |
enable_zoom |
Không | Bật hành động zoom (computer_20251124). Mặc định: false |
Xử lý tọa độ khi màn hình độ phân giải cao
API giới hạn hình ảnh tối đa 1568 pixels ở cạnh dài nhất và khoảng 1.15 megapixel tổng cộng. Ví dụ, màn hình 1512x982 bị downscale xuống khoảng 1330x864. Claude phân tích ảnh nhỏ hơn này và trả về tọa độ trong không gian đó, nhưng tool thực thi click trong không gian màn hình gốc.
import math
screen_width, screen_height = 1512, 982
def get_scale_factor(width, height):
"""Tính scale factor để đáp ứng giới hạn API."""
long_edge = max(width, height)
total_pixels = width * height
long_edge_scale = 1568 / long_edge
total_pixels_scale = math.sqrt(1_150_000 / total_pixels)
return min(1.0, long_edge_scale, total_pixels_scale)
scale = get_scale_factor(screen_width, screen_height)
scaled_width = int(screen_width * scale)
scaled_height = int(screen_height * scale)
# Khi thực thi click, scale tọa độ ngược lại
def execute_click(x, y):
screen_x = x / scale
screen_y = y / scale
perform_click(screen_x, screen_y)
Giới hạn và lưu ý quan trọng
Computer Use vẫn đang trong giai đoạn beta. Nhà phát triển cần biết các hạn chế sau:
- Độ trễ cao: Tốc độ xử lý hiện tại có thể quá chậm so với người dùng thông thường. Tập trung vào các use case không yêu cầu tốc độ cao (thu thập thông tin nền, kiểm thử phần mềm tự động).
- Độ chính xác của computer vision: Claude có thể nhầm hoặc hallucinate khi tạo ra tọa độ cụ thể. Cần kiểm tra và xác nhận kết quả.
- Độ chính xác khi chọn tool: Claude có thể nhầm khi chọn tool hoặc thực hiện hành động bất ngờ. Prompt cẩn thận khi yêu cầu tác vụ phức tạp.
- Tương tác với niche apps: Độ tin cậy thấp hơn khi tương tác với ứng dụng ít phổ biến hoặc nhiều ứng dụng cùng lúc.
- Tạo tài khoản mạng xã hội: Khả năng tạo tài khoản hoặc đăng nội dung lên mạng xã hội bị hạn chế.
- Prompt injection: Lỗ hổng prompt injection vẫn tồn tại. Luôn cách ly Computer Use trong môi trường trusted.
- Hành động bất hợp pháp: Theo điều khoản Anthropic, không được sử dụng Computer Use để vi phạm pháp luật.
Chi phí token
Computer Use theo dõi mô hình định giá tool use tiêu chuẩn:
| Chi phí | Token |
|---|---|
| System prompt overhead (beta) | 466–499 tokens |
| Định nghĩa tool (Claude 4.x) | 735 tokens |
| Screenshot images | Theo Vision pricing |
| Tool execution results | Theo lượng nội dung trả về |
Xem đầy đủ thông tin về Claude tại trang Claude Anthropic trên Agentwork.vn. Tìm hiểu thêm về Extended Thinking để kết hợp suy luận sâu với Computer Use. Xem Tool Use tổng quan để hiểu cách Claude tích hợp với các công cụ bên ngoài. Khám phá thêm các nền tảng AI hàng đầu khác phù hợp cho doanh nghiệp của bạn.
Đoàn Đình Tỉnh
admin