Was this page helpful?
Claude dapat berinteraksi dengan lingkungan komputer melalui alat penggunaan komputer, yang menyediakan kemampuan tangkapan layar dan kontrol mouse/keyboard untuk interaksi desktop otonom. Di WebArena, sebuah tolok ukur untuk navigasi web otonom di berbagai situs web nyata, Claude mencapai hasil terdepan di antara sistem agen tunggal, menunjukkan kemampuan yang kuat untuk menyelesaikan tugas browser multi-langkah dari awal hingga akhir.
Penggunaan komputer masih dalam versi beta dan memerlukan header beta:
"computer-use-2025-11-24" untuk Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5"computer-use-2025-01-24" untuk Sonnet 4.5, Haiku 4.5, Opus 4.1, Sonnet 4, Opus 4, dan Sonnet 3.7 (tidak digunakan lagi)Hubungi kami melalui formulir umpan balik untuk berbagi masukan Anda tentang fitur ini.
This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.
Penggunaan komputer adalah fitur beta yang memungkinkan Claude berinteraksi dengan lingkungan desktop. Alat ini menyediakan:
Meskipun penggunaan komputer dapat ditingkatkan dengan alat lain seperti bash dan editor teks untuk alur kerja otomasi yang lebih komprehensif, penggunaan komputer secara khusus mengacu pada kemampuan alat penggunaan komputer untuk melihat dan mengontrol lingkungan desktop.
Penggunaan komputer tersedia untuk model Claude berikut:
| Model | Versi Alat | Flag Beta |
|---|---|---|
| Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5 | computer_20251124 | computer-use-2025-11-24 |
| Semua model yang didukung lainnya | computer_20250124 | computer-use-2025-01-24 |
Claude Opus 4.6, Claude Sonnet 4.6, dan Claude Opus 4.5 memperkenalkan versi alat computer_20251124 dengan kemampuan baru termasuk aksi zoom untuk inspeksi wilayah layar secara detail. Semua model lainnya (Sonnet 4.5, Haiku 4.5, Sonnet 4, Opus 4, Opus 4.1, dan Sonnet 3.7) menggunakan versi alat computer_20250124.
Versi alat yang lebih lama tidak dijamin kompatibel ke belakang dengan model yang lebih baru. Selalu gunakan versi alat yang sesuai dengan versi model Anda.
Penggunaan komputer adalah fitur beta dengan risiko unik yang berbeda dari fitur API standar. Risiko ini meningkat saat berinteraksi dengan internet.
Untuk meminimalkan risiko, pertimbangkan untuk mengambil tindakan pencegahan seperti:
Dalam beberapa keadaan, Claude akan mengikuti perintah yang ditemukan dalam konten meskipun bertentangan dengan instruksi pengguna. Misalnya, instruksi Claude di halaman web atau yang terdapat dalam gambar dapat mengesampingkan instruksi atau menyebabkan Claude membuat kesalahan. Ambil tindakan pencegahan untuk mengisolasi Claude dari data dan tindakan sensitif guna menghindari risiko terkait injeksi prompt.
Model telah dilatih untuk menolak injeksi prompt ini, dan lapisan pertahanan tambahan telah ditambahkan. Jika Anda menggunakan alat penggunaan komputer, pengklasifikasi akan secara otomatis berjalan pada prompt Anda untuk menandai potensi contoh injeksi prompt. Ketika pengklasifikasi ini mengidentifikasi potensi injeksi prompt dalam tangkapan layar, mereka akan secara otomatis mengarahkan model untuk meminta konfirmasi pengguna sebelum melanjutkan dengan tindakan berikutnya. Perlindungan tambahan ini tidak akan ideal untuk setiap kasus penggunaan (misalnya, kasus penggunaan tanpa manusia dalam loop), jadi jika Anda ingin memilih keluar dan mematikannya, silakan hubungi dukungan.
Tindakan pencegahan ini tetap penting bahkan dengan lapisan pertahanan pengklasifikasi yang ada.
Informasikan pengguna akhir tentang risiko yang relevan dan dapatkan persetujuan mereka sebelum mengaktifkan penggunaan komputer di produk Anda sendiri.
Mulai dengan cepat menggunakan implementasi referensi penggunaan komputer yang mencakup antarmuka web, kontainer Docker, contoh implementasi alat, dan loop agen.
Catatan: Implementasi telah diperbarui untuk menyertakan alat baru untuk model Claude 4 dan Claude Sonnet 3.7. Pastikan untuk mengambil versi terbaru dari repo untuk mengakses fitur-fitur baru ini.
Gunakan formulir ini untuk memberikan umpan balik tentang kualitas respons model, API itu sendiri, atau kualitas dokumentasi.
Berikut cara memulai dengan penggunaan komputer:
Header beta hanya diperlukan untuk alat penggunaan komputer.
Contoh di atas menunjukkan ketiga alat yang digunakan bersama, yang memerlukan header beta karena mencakup alat penggunaan komputer.
Pengulangan langkah 3 dan 4 tanpa input pengguna disebut sebagai "loop agen" (yaitu, Claude merespons dengan permintaan penggunaan alat dan aplikasi Anda merespons Claude dengan hasil evaluasi permintaan tersebut).
Penggunaan komputer memerlukan lingkungan komputasi yang terisolasi di mana Claude dapat berinteraksi dengan aman dengan aplikasi dan web. Lingkungan ini mencakup:
Tampilan virtual: Server tampilan X11 virtual (menggunakan Xvfb) yang merender antarmuka desktop yang akan dilihat Claude melalui tangkapan layar dan dikontrol dengan tindakan mouse/keyboard.
Lingkungan desktop: UI ringan dengan manajer jendela (Mutter) dan panel (Tint2) yang berjalan di Linux, yang menyediakan antarmuka grafis yang konsisten bagi Claude untuk berinteraksi.
Aplikasi: Aplikasi Linux yang sudah terinstal seperti Firefox, LibreOffice, editor teks, dan manajer file yang dapat digunakan Claude untuk menyelesaikan tugas.
Implementasi alat: Kode integrasi yang menerjemahkan permintaan alat abstrak Claude (seperti "gerakkan mouse" atau "ambil tangkapan layar") menjadi operasi aktual di lingkungan virtual.
Loop agen: Program yang menangani komunikasi antara Claude dan lingkungan, mengirimkan tindakan Claude ke lingkungan dan mengembalikan hasilnya (tangkapan layar, output perintah) kembali ke Claude.
Saat Anda menggunakan penggunaan komputer, Claude tidak terhubung langsung ke lingkungan ini. Sebaliknya, aplikasi Anda:
Untuk keamanan dan isolasi, implementasi referensi menjalankan semua ini di dalam kontainer Docker dengan pemetaan port yang sesuai untuk melihat dan berinteraksi dengan lingkungan.
Implementasi referensi tersedia yang mencakup semua yang Anda butuhkan untuk memulai dengan cepat menggunakan penggunaan komputer:
Inti dari penggunaan komputer adalah "loop agen" - siklus di mana Claude meminta tindakan alat, aplikasi Anda mengeksekusinya, dan mengembalikan hasilnya ke Claude. Berikut contoh yang disederhanakan:
async def sampling_loop(
*,
model: str,
messages: list[dict],
api_key: str,
max_tokens: int = 4096,
tool_version: str,
thinking_budget: int | None = None,
max_iterations: int = 10, # Add iteration limit to prevent infinite loops
):
"""
A simple agent loop for Claude computer use interactions.
This function handles the back-and-forth between:
1. Sending user messages to Claude
2. Claude requesting to use tools
3. Your app executing those tools
4. Sending tool results back to Claude
"""
# Set up tools and API parameters
client = Anthropic(api_key=api_key)
beta_flag = (
"computer-use-2025-11-24"
if "20251124" in tool_version
else "computer-use-2025-01-24"
if "20250124" in tool_version
else "computer-use-2024-10-22"
)
# Configure tools - you should already have these initialized elsewhere
tools = [
{
"type": f"computer_{tool_version}",
"name": "computer",
"display_width_px": 1024,
"display_height_px": 768,
},
{"type": f"text_editor_{tool_version}", "name": "str_replace_editor"},
{"type": f"bash_{tool_version}", "name": "bash"},
]
# Main agent loop (with iteration limit to prevent runaway API costs)
iterations = 0
while True and iterations < max_iterations:
iterations += 1
# Set up optional thinking parameter (for Claude Sonnet 3.7)
thinking = None
if thinking_budget:
thinking = {"type": "enabled", "budget_tokens": thinking_budget}
# Call the Claude API
response = client.beta.messages.create(
model=model,
max_tokens=max_tokens,
messages=messages,
tools=tools,
betas=[beta_flag],
thinking=thinking,
)
# Add Claude's response to the conversation history
response_content = response.content
messages.append({"role": "assistant", "content": response_content})
# Check if Claude used any tools
tool_results = []
for block in response_content:
if block.type == "tool_use":
# In a real app, you would execute the tool here
# For example: result = run_tool(block.name, block.input)
result = {"result": "Tool executed successfully"}
# Format the result for Claude
tool_results.append(
{"type": "tool_result", "tool_use_id": block.id, "content": result}
)
# If no tools were used, Claude is done - return the final messages
if not tool_results:
return messages
# Add tool results to messages for the next iteration with Claude
messages.append({"role": "user", "content": tool_results})Loop berlanjut hingga Claude merespons tanpa meminta alat apa pun (penyelesaian tugas) atau batas iterasi maksimum tercapai. Pengaman ini mencegah potensi loop tak terbatas yang dapat mengakibatkan biaya API yang tidak terduga.
Coba implementasi referensi sebelum membaca sisa dokumentasi ini.
Berikut beberapa tips tentang cara mendapatkan output berkualitas terbaik:
After each step, take a screenshot and carefully evaluate if you have achieved the right outcome. Explicitly show your thinking: "I have evaluated step X..." If not correct, try again. Only when you confirm a step was executed correctly should you move on to the next one.<robot_credentials>. Menggunakan penggunaan komputer dalam aplikasi yang memerlukan login meningkatkan risiko hasil yang buruk akibat injeksi prompt. Tinjau panduan tentang mitigasi injeksi prompt sebelum memberikan kredensial login kepada model.Jika Anda berulang kali menemukan serangkaian masalah yang jelas atau mengetahui sebelumnya tugas yang perlu diselesaikan Claude, gunakan system prompt untuk memberikan Claude tips atau instruksi eksplisit tentang cara menyelesaikan tugas dengan sukses.
Untuk agen yang mencakup beberapa sesi, jalankan verifikasi end-to-end di awal setiap sesi, bukan hanya setelah implementasi. Pemeriksaan berbasis browser menangkap regresi dari sesi sebelumnya yang tidak terdeteksi oleh tinjauan tingkat kode saja. Lihat Effective harnesses for long-running agents untuk detailnya.
Ketika salah satu alat yang didefinisikan oleh Anthropic diminta melalui API Claude, system prompt khusus penggunaan komputer dibuat. Ini mirip dengan system prompt penggunaan alat tetapi dimulai dengan:
You have access to a set of functions you can use to answer the user's question. This includes access to a sandboxed computing environment. You do NOT currently have the ability to inspect files or interact with external resources, except by invoking the below functions.
Seperti halnya penggunaan alat biasa, bidang system_prompt yang disediakan pengguna tetap dihormati dan digunakan dalam konstruksi system prompt gabungan.
Alat penggunaan komputer mendukung tindakan-tindakan berikut:
Tindakan dasar (semua versi)
[x, y]Tindakan yang ditingkatkan (computer_20250124)
Tersedia di model Claude 4 dan Claude Sonnet 3.7:
Tindakan yang ditingkatkan (computer_20251124)
Tersedia di Claude Opus 4.6 dan Claude Opus 4.5:
computer_20250124enable_zoom: true dalam definisi alat. Mengambil parameter region dengan koordinat [x1, y1, x2, y2] yang mendefinisikan sudut kiri atas dan kanan bawah area yang akan diperiksa.| Parameter | Diperlukan | Deskripsi |
|---|---|---|
type | Ya | Versi alat (computer_20251124, computer_20250124, atau computer_20241022) |
name | Ya | Harus "computer" |
display_width_px | Ya | Lebar tampilan dalam piksel |
display_height_px | Ya | Tinggi tampilan dalam piksel |
display_number | Tidak | Nomor tampilan untuk lingkungan X11 |
Penting: Alat penggunaan komputer harus dieksekusi secara eksplisit oleh aplikasi Anda - Claude tidak dapat mengeksekusinya secara langsung. Anda bertanggung jawab untuk mengimplementasikan pengambilan tangkapan layar, gerakan mouse, input keyboard, dan tindakan lainnya berdasarkan permintaan Claude.
Claude Sonnet 3.7 memperkenalkan kemampuan "berpikir" baru yang memungkinkan Anda melihat proses penalaran model saat mengerjakan tugas-tugas kompleks. Fitur ini membantu Anda memahami bagaimana Claude mendekati suatu masalah dan dapat sangat berharga untuk tujuan debugging atau pendidikan.
Untuk mengaktifkan berpikir, tambahkan parameter thinking ke permintaan API Anda:
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}Parameter budget_tokens menentukan berapa banyak token yang dapat digunakan Claude untuk berpikir. Ini dikurangi dari anggaran max_tokens keseluruhan Anda.
Ketika berpikir diaktifkan, Claude akan mengembalikan proses penalarannya sebagai bagian dari respons, yang dapat membantu Anda:
Berikut contoh tampilan output berpikir:
[Thinking]
I need to save a picture of a cat to the desktop. Let me break this down into steps:
1. First, I'll take a screenshot to see what's on the desktop
2. Then I'll look for a web browser to search for cat images
3. After finding a suitable image, I'll need to save it to the desktop
Let me start by taking a screenshot to see what's available...Alat penggunaan komputer dapat dikombinasikan dengan alat lain untuk membuat alur kerja otomatisasi yang lebih canggih. Ini sangat berguna ketika Anda perlu:
Implementasi referensi dimaksudkan untuk membantu Anda memulai penggunaan komputer. Ini mencakup semua komponen yang diperlukan agar Claude dapat menggunakan komputer. Namun, Anda dapat membangun lingkungan Anda sendiri untuk penggunaan komputer sesuai kebutuhan Anda. Anda akan memerlukan:
tool_use menggunakan implementasi alat AndaAlat penggunaan komputer diimplementasikan sebagai alat tanpa skema. Saat menggunakan alat ini, Anda tidak perlu menyediakan skema input seperti alat lainnya; skema sudah tertanam dalam model Claude dan tidak dapat dimodifikasi.
Saat mengimplementasikan alat penggunaan komputer, berbagai kesalahan mungkin terjadi. Berikut cara menanganinya:
API membatasi gambar hingga maksimum 1568 piksel pada sisi terpanjang dan sekitar 1,15 megapiksel total (lihat pengubahan ukuran gambar untuk detailnya). Misalnya, layar 1512x982 disampling turun menjadi sekitar 1330x864. Claude menganalisis gambar yang lebih kecil ini dan mengembalikan koordinat dalam ruang tersebut, tetapi alat Anda menjalankan klik di ruang layar asli.
Hal ini dapat menyebabkan koordinat klik Claude meleset dari targetnya kecuali Anda menangani transformasi koordinat.
Untuk memperbaikinya, ubah ukuran tangkapan layar sendiri dan skalakan kembali koordinat Claude:
Fungsionalitas penggunaan komputer masih dalam tahap beta. Meskipun kemampuan Claude mutakhir, pengembang harus menyadari keterbatasannya:
left_mouse_down, left_mouse_up, dan dukungan tombol modifier baru. Pemilihan sel dapat lebih andal dengan menggunakan kontrol berbutir halus ini dan menggabungkan tombol modifier dengan klik.Selalu tinjau dan verifikasi dengan cermat tindakan dan log penggunaan komputer Claude. Jangan gunakan Claude untuk tugas yang memerlukan presisi sempurna atau informasi pengguna sensitif tanpa pengawasan manusia.
Penggunaan komputer adalah alat sisi klien. Semua tangkapan layar, aksi mouse, input keyboard, dan file apa pun yang terlibat dalam sesi ditangkap dan disimpan di lingkungan Anda, bukan oleh Anthropic. Anthropic memproses gambar tangkapan layar dan permintaan aksi secara real time sebagai bagian dari panggilan API tetapi tidak menyimpannya setelah respons dikembalikan.
Karena aplikasi Anda mengontrol di mana dan bagaimana data penggunaan komputer disimpan, penggunaan komputer memenuhi syarat ZDR. Untuk kelayakan ZDR di semua fitur, lihat API dan retensi data.
Computer use follows the standard tool use pricing. When using the computer use tool:
System prompt overhead: The computer use beta adds 466-499 tokens to the system prompt
Computer use tool token usage:
| Model | Input tokens per tool definition |
|---|---|
| Claude 4.x models | 735 tokens |
| Claude Sonnet 3.7 (deprecated) | 735 tokens |
Additional token consumption:
If you're also using bash or text editor tools alongside computer use, those tools have their own token costs as documented in their respective pages.
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
},
{
"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."
}
]
}'Berikan Claude alat penggunaan komputer dan prompt pengguna
Claude memutuskan untuk menggunakan alat penggunaan komputer
stop_reason berupa tool_use, menandakan niat Claude.Ekstrak input alat, evaluasi alat di komputer, dan kembalikan hasilnya
user baru yang berisi blok konten tool_result.Claude terus memanggil alat penggunaan komputer hingga tugas selesai
stop_reason tool_use lainnya dan Anda harus kembali ke langkah 3.enable_zoom |
| Tidak |
Aktifkan aksi zoom (hanya computer_20251124). Atur ke true untuk mengizinkan Claude memperbesar wilayah layar tertentu. Default: false |
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": 2000,
"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"
},
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The unit of temperature, either 'celsius' or 'fahrenheit'"
}
},
"required": ["location"]
}
}
],
"messages": [
{
"role": "user",
"content": "Find flights from San Francisco to a place with warmer weather."
}
],
"thinking": {
"type": "enabled",
"budget_tokens": 1024
}
}'Siapkan lingkungan komputasi Anda
Buat tampilan virtual atau sambungkan ke tampilan yang sudah ada yang akan berinteraksi dengan Claude. Ini biasanya melibatkan pengaturan Xvfb (X Virtual Framebuffer) atau teknologi serupa.
Implementasikan penangan aksi
Buat fungsi untuk menangani setiap jenis aksi yang mungkin diminta Claude:
def handle_computer_action(action_type, params):
if action_type == "screenshot":
return capture_screenshot()
elif action_type == "left_click":
x, y = params["coordinate"]
return click_at(x, y)
elif action_type == "type":
return type_text(params["text"])
# ... handle other actionsProses panggilan alat Claude
Ekstrak dan jalankan panggilan alat dari respons Claude:
for content in response.content:
if content.type == "tool_use":
action = content.input["action"]
result = handle_computer_action(action, content.input)
# Return result to Claude
tool_result = {
"type": "tool_result",
"tool_use_id": content.id,
"content": result,
}Implementasikan loop agen
Buat loop yang berlanjut hingga Claude menyelesaikan tugas:
while True:
response = client.beta.messages.create(...)
# Check if Claude used any tools
tool_results = process_tool_calls(response)
if not tool_results:
# No more tool use, task complete
break
# Continue conversation with tool results
messages.append({"role": "user", "content": tool_results})import math
def get_scale_factor(width, height):
"""Calculate scale factor to meet API constraints."""
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)
# When capturing screenshot
scale = get_scale_factor(screen_width, screen_height)
scaled_width = int(screen_width * scale)
scaled_height = int(screen_height * scale)
# Resize image to scaled dimensions before sending to Claude
screenshot = capture_and_resize(scaled_width, scaled_height)
# When handling Claude's coordinates, scale them back up
def execute_click(x, y):
screen_x = x / scale
screen_y = y / scale
perform_click(screen_x, screen_y)Pelajari lebih lanjut tentang penggunaan alat dan membuat alat kustom