"Browser use tool" (alat penggunaan browser) memungkinkan Claude menavigasi, membaca, dan berinteraksi dengan halaman web di browser yang dijalankan oleh aplikasi Anda. Alat ini bekerja dengan halaman baik melalui strukturnya ("accessibility tree" (pohon aksesibilitas), elemen, formulir, dan tab) maupun melalui piksel ("screenshot" (tangkapan layar) dan koordinat viewport), sedangkan alat penggunaan komputer bekerja dengan seluruh desktop hanya melalui tangkapan layar dan koordinat. Ini adalah toolset klien yang didefinisikan Anthropic: satu entri browser_toolset_20260801 dalam array tools Anda memberi Claude 27 "member tools" (alat anggota) secara default, seperti navigate, read_page, left_click, dan screenshot, ditambah empat lagi (javascript_exec, file_upload, read_console, dan read_network) ketika Anda mengaktifkannya. Aplikasi Anda menjalankan setiap panggilan terhadap otomatisasi browsernya sendiri; tidak ada yang berjalan di sisi Anthropic. Alat ini saat ini tidak tersedia di Claude Managed Agents. Halaman ini menggunakan istilah "aplikasi Anda" untuk loop agen yang memanggil Messages API dan "eksekutor Anda" untuk bagian darinya yang mengendalikan browser dan menghasilkan hasil alat.
Pilih penggunaan browser daripada penggunaan komputer ketika tugas tetap berada di dalam halaman web: Claude dapat membaca struktur halaman, bertindak pada elemen berdasarkan referensi selain berdasarkan koordinat, mengatur nilai formulir secara langsung, dan bekerja lintas tab, dan Anda tidak perlu menjalankan desktop. Jika Claude hanya perlu membaca halaman yang dapat Anda tunjukkan, atau menemukan sumber di web, alat web fetch dan alat web search bahkan lebih ringan, karena keduanya adalah alat server yang dijalankan API untuk Anda tanpa browser yang perlu dioperasikan. Pilih penggunaan browser sebagai gantinya ketika halaman membangun kontennya dengan JavaScript atau tugasnya berarti bertindak pada halaman, bukan hanya membacanya.
Dengan penggunaan browser, Claude membaca dan bertindak pada halaman web langsung, sehingga semua yang disediakan halaman adalah input yang tidak tepercaya dan tindakan yang diambil Claude dapat memiliki efek nyata. Lihat Pertimbangan keamanan sebelum Anda melakukan deployment.
Alat penggunaan browser tersedia di Claude API tanpa header beta: tambahkan satu entri bertipe browser_toolset_20260801, tanpa name, ke array tools dari permintaan Messages API.
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-5",
max_tokens=2048,
tools=[{"type": "browser_toolset_20260801"}],
messages=[
{
"role": "user",
"content": "Open example.com/docs and tell me how to get started.",
}
],
)
print(response)Respons pertama Claude berakhir dengan stop_reason: "tool_use" dan membawa satu atau lebih blok tool_use anggota, masing-masing menyebutkan alat anggota di name dan membawa "toolset_name": "browser":
{
"id": "msg_01HCDu4XSTLzTAcodEQ58vDo",
"type": "message",
"role": "assistant",
"model": "claude-opus-5",
"content": [
{
"type": "text",
"text": "I'll open the documentation and read the page to find the getting-started instructions."
},
{
"type": "tool_use",
"id": "toolu_01NRLabsLyVHZPKxbKvkfSMn",
"name": "navigate",
"toolset_name": "browser",
"input": { "url": "https://example.com/docs" }
},
{
"type": "tool_use",
"id": "toolu_01UvHU5cDyTZ2vXKf5wCkPqR",
"name": "read_page",
"toolset_name": "browser",
"input": { "filter": "interactive" }
}
],
"stop_reason": "tool_use",
"stop_sequence": null
}Eksekutor Anda menjalankan navigate, lalu read_page, dan aplikasi Anda mengembalikan satu tool_result per blok dalam permintaan berikutnya, menggemakan toolset_name pada masing-masing. Hasil navigate melaporkan tab yang dimuatnya dalam blok browser_state; hasil read_page adalah teks di mana setiap elemen membawa referensi:
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": "toolu_01NRLabsLyVHZPKxbKvkfSMn",
"toolset_name": "browser",
"content": [
{ "type": "text", "text": "Navigated to https://example.com/docs" },
{
"type": "browser_state",
"tabs": [
{
"tab_id": "tab-1",
"title": "Documentation",
"url": "https://example.com/docs",
"active": true
}
]
}
]
},
{
"type": "tool_result",
"tool_use_id": "toolu_01UvHU5cDyTZ2vXKf5wCkPqR",
"toolset_name": "browser",
"content": [
{
"type": "text",
"text": "link \"Documentation\" [ref_1]\nlink \"Getting started\" [ref_2]\ntextbox \"Search docs\" [ref_3]\nbutton \"Search\" [ref_4]\nlink \"Pricing\" [ref_5]"
}
]
}
]
}Claude sekarang memegang referensi yang dapat ditindaklanjutinya, sehingga giliran berikutnya dapat mengklik ref_2 untuk membuka halaman getting-started, tanpa perlu menemukan tautan tersebut dalam tangkapan layar terlebih dahulu.
Penggunaan browser berjalan sebagai "agent loop" (loop agen): Claude mengembalikan panggilan alat anggota, eksekutor Anda menjalankannya terhadap browser, dan Anda mengembalikan hasilnya hingga Claude menjawab dalam teks.
Berikan Claude alat penggunaan browser dan prompt pengguna
browser_toolset_20260801, dan secara opsional alat lain, ke permintaan API Anda.Claude merespons dengan panggilan alat anggota
tool_use dalam satu giliran asisten; beberapa blok dalam satu giliran membentuk aksi batch, misalnya, left_click, lalu type, lalu key.name setiap blok adalah nama anggota, masing-masing membawa "toolset_name": "browser", dan input hanya berisi parameter anggota tersebut, tanpa field action. stop_reason respons adalah tool_use.Jalankan panggilan secara berurutan dan kembalikan hasilnya
tool_use dalam response.content (jangan berasumsi hanya ada satu) dan jalankan secara berurutan, sesuai urutan kemunculannya, karena panggilan yang lebih belakang biasanya bergantung pada yang lebih awal.tool_result per blok dalam pesan user baru, dicocokkan berdasarkan tool_use_id, dan gemakan "toolset_name": "browser" pada masing-masing. Setiap panggilan harus dijawab atau permintaan berikutnya akan ditolak.is_error: true dengan deskripsi teks untuk blok tersebut, lalu terapkan aturan penghentian di Aksi batch pada setiap blok berikutnya dalam giliran itu.Claude melanjutkan hingga tugas selesai
Berikut kerangka langkah panggilan alat dari loop tersebut dalam dua bagian. Pertama, handler anggota stub menggantikan otomatisasi browser Anda. Lima anggota (navigate, read_page, left_click, type, dan screenshot) mengembalikan teks, atau untuk screenshot blok gambar, yang menjadi konten hasil, dan dispatcher memunculkan error untuk anggota apa pun yang tidak diimplementasikannya.
# Data gambar placeholder; eksekutor nyata menangkap viewport dan mengembalikan byte PNG
PLACEHOLDER_PNG = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg=="
def navigate(url):
return f"navigated to {url}"
def read_page():
return 'link "Docs" [ref_1]\nbutton "Search" [ref_2]'
def click(target):
# Target adalah referensi elemen dari read_page atau find, atau koordinat viewport
if target["type"] == "ref":
return f"clicked {target['ref']}"
return f"clicked at ({target['x']}, {target['y']})"
def type_text(text):
return f"typed: {text}"
def capture_screenshot() -> list[ImageBlockParam]:
# screenshot menjawab dengan blok gambar, bukan teks: kembalikan daftar konten hasil
return [
{
"type": "image",
"source": {"type": "base64", "media_type": "image/png", "data": PLACEHOLDER_PNG},
}
]
def handle_browser_action(name, tool_input):
if name == "navigate":
return navigate(tool_input["url"])
elif name == "read_page":
return read_page()
elif name == "left_click":
return click(tool_input["target"])
elif name == "type":
return type_text(tool_input["text"])
elif name == "screenshot":
return capture_screenshot()
# Tangani aksi lain sesuai kebutuhan
raise ValueError(f"Unknown or unimplemented member: {name}")Bagian kedua menjalankan batch secara berurutan, mengirim setiap blok ke handler tersebut, menggemakan toolset_name pada setiap hasil, dan menerapkan aturan penghentian dari Aksi batch, mengubah error handler menjadi hasil error. Loop sampling yang memanggilnya adalah yang ditunjukkan di Memahami loop agen, dengan toolset browser di tools.
NOT_EXECUTED = "Not executed: an earlier action in this turn failed."
def process_tool_calls(response: Message) -> list[ToolResultBlockParam]:
"""
Run the browser actions in Claude's response in order and answer each
one. After the first failure the rest are skipped, because Claude planned
them assuming the earlier actions succeeded.
"""
tool_results: list[ToolResultBlockParam] = []
failed = False
for block in response.content:
# Hanya toolset browser yang dideklarasikan; arahkan alat lain ke sini jika Anda menambahkannya
if block.type != "tool_use" or block.toolset_name != "browser":
continue
result: ToolResultBlockParam = {
"type": "tool_result",
"tool_use_id": block.id,
"toolset_name": "browser",
}
if failed:
result["content"] = NOT_EXECUTED
result["is_error"] = True
else:
try:
# String atau daftar blok konten; eksekutor nyata juga menambahkan
# blok browser_state ke hasil navigasi dan pengelolaan tab
result["content"] = handle_browser_action(block.name, block.input)
except Exception as err:
result["content"] = f"Error: {err}"
result["is_error"] = True
failed = True
tool_results.append(result)
return tool_resultsKirim setiap blok berdasarkan pasangan (toolset_name, name) bukan berdasarkan name saja, karena alat kustom dalam permintaan yang sama mungkin memiliki nama yang sama dengan anggota; Toolset klien menjelaskan bagian-bagian kontrak ini yang dimiliki bersama oleh kedua toolset. Jika Claude menyebutkan anggota yang tidak diimplementasikan eksekutor Anda, atau yang Anda nonaktifkan, jawab blok tersebut dengan hasil error daripada membuangnya.
Ketika Anda melakukan streaming respons, input setiap anggota tiba sebagai satu input_json_delta lengkap, bukan sebagai fragmen, jadi tunggu hingga giliran selesai sebelum menjalankan batch.
Giliran dengan beberapa panggilan anggota adalah "batch action" (aksi batch): jalankan panggilan sesuai urutan kemunculannya, berhenti pada kegagalan pertama, dan jawab setiap panggilan berikutnya dengan is_error: true dan teks persis Not executed: an earlier action in this turn failed. Batch menggunakan bentuk respons yang sama dengan penggunaan alat paralel; perbedaannya adalah Anda menjalankan blok secara berurutan, bukan secara bersamaan. Di sini Claude mengklik kotak pencarian yang ditemukannya sebelumnya, mengetik kueri, dan menekan Enter dalam satu giliran:
{
"role": "assistant",
"content": [
{
"type": "tool_use",
"id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV",
"name": "left_click",
"toolset_name": "browser",
"input": { "target": { "type": "ref", "ref": "ref_3" } }
},
{
"type": "tool_use",
"id": "toolu_01Ez4kLb1nQ2vXo8sJ9pWm3c",
"name": "type",
"toolset_name": "browser",
"input": { "text": "install" }
},
{
"type": "tool_use",
"id": "toolu_01FkP8rTz6uYh2mNq4LsXw7v",
"name": "key",
"toolset_name": "browser",
"input": { "text": "Enter" }
}
]
}Aplikasi Anda mengembalikan tiga blok tool_result dalam satu pesan user, masing-masing membawa toolset_name dan pengakuan teks singkat seperti Clicked element ref_3. Menekan Enter memuat halaman hasil, sehingga hasil key juga membawa blok browser_state dengan URL tab yang diperbarui (Konteks tab pada hasil lain). Jika klik tersebut gagal, hasilnya akan membawa teks error Anda dan dua hasil lainnya akan membawa teks penghentian, seperti ditunjukkan di Mengembalikan error dari eksekutor Anda.
Anda tidak perlu mengembalikan tangkapan layar setelah setiap panggilan. Claude biasanya mengakhiri batch dengan panggilan observasi (screenshot, read_page, atau get_page_text), dan aplikasi Anda juga dapat melampirkan observasinya sendiri, seperti tangkapan layar baru atau pohon aksesibilitas, sebagai blok konten tambahan pada hasil terakhir dalam batch untuk menghemat satu round trip. Karena hasil manajemen tab harus berupa tepat satu blok browser_state, lampirkan pada hasil terakhir yang bukan panggilan manajemen tab.
Jika eksekutor Anda hanya dapat menjalankan satu panggilan per round trip, atur disable_parallel_tool_use ke true di tool_choice dan Claude mengembalikan paling banyak satu panggilan anggota per giliran, dengan biaya lebih banyak round trip (Menonaktifkan penggunaan alat paralel). Sisa kontrak di Aksi batch untuk alat penggunaan komputer tetap berlaku, termasuk satu tool_result untuk setiap tool_use dalam pesan user berikutnya, kecuali dua hal: teks penghentian dan apa yang dimuat content dari hasil yang berhasil. Konten hasil mengikuti Alat anggota di halaman ini sebagai gantinya: hasil new_tab, switch_tab, close_tab, atau list_tabs adalah tepat satu blok browser_state tanpa teks atau gambar (Hasil manajemen tab), dan hasil anggota lainnya dapat menambahkan blok browser_state ke teks atau gambarnya (Konteks tab pada hasil lain). Di mana breakpoint cache di dalam batch berlaku dijelaskan di baris cache_control pada Parameter alat alat penggunaan komputer.
Alat anggota yang bertindak pada suatu lokasi menerima objek target, yang berupa koordinat piksel viewport atau referensi ke elemen yang dikembalikan read_page atau find. Tabel Alat anggota menulis Target untuk parameter yang menerima salah satu bentuk.
| Bentuk | target.type | Field | Diterima oleh |
|---|---|---|---|
CoordinateTarget | "coordinate" | x, y (integer, piksel viewport) | left_click, right_click, middle_click, double_click, triple_click, hover, left_click_drag (from dan target), left_mouse_down, left_mouse_up, mouse_move, scroll |
RefTarget | "ref" | ref (referensi elemen seperti "ref_2") | left_click, right_click, middle_click, double_click, triple_click, hover, scroll_to, form_input, file_upload |
Koordinat adalah piksel viewport, ruang piksel dari screenshot viewport penuh dengan titik asal di kiri atas halaman yang dirender; tidak ada desktop atau bingkai jendela di sekelilingnya. Toolset tidak mendeklarasikan dimensi tampilan dan Claude menyimpulkan ukuran viewport dari tangkapan layar yang Anda kembalikan, jadi pertahankan satu ukuran yang konsisten. zoom tidak mengubah bingkai, sehingga region-nya dan koordinat apa pun yang dikeluarkan Claude setelah melihat gambar yang diperbesar tetap merupakan piksel viewport penuh.
Tangkapan layar harus sesuai dengan batas gambar. API tidak memperkecil gambar toolset: tangkapan layar atau gambar zoom yang melebihi batas ukuran gambar model Anda, atau melebihi batas per gambar yang lebih ketat yang berlaku setelah permintaan memuat lebih dari 20 gambar, akan ditolak. Ubah ukuran sebelum mengembalikan, dan skalakan kembali koordinat Claude dengan kebalikan faktor Anda sebelum mengirimkannya (Mengukur tangkapan layar agar sesuai batas gambar).
Referensi elemen berasal dari read_page dan find. Setiap elemen dalam outputnya membawa tag seperti [ref_2], seperti pada hasil Mulai cepat:
link "Documentation" [ref_1]
link "Getting started" [ref_2]
textbox "Search docs" [ref_3]
button "Search" [ref_4]
link "Pricing" [ref_5]Claude mengirimkan kembali referensi sebagai target {"type": "ref", "ref": "ref_2"} pada panggilan klik, hover, scroll_to, form_input, atau file_upload berikutnya, atau sebagai parameter ref pada read_page untuk membaca subpohon. Eksekutor Anda menetapkan referensi, menyimpan pemetaan dari masing-masing ke node yang mendasarinya (ID node aksesibilitas, selector tersimpan, atau yang setara), dan bertindak pada node tersebut ketika referensi kembali.
Referensi dibatasi pada tab yang menghasilkannya dan tetap valid hingga tab tersebut bernavigasi atau DOM-nya berubah secara material. API tidak dapat mendeteksi referensi yang kedaluwarsa atau tidak dikenal, jadi ketika Claude mengirimkan referensi yang tidak lagi dikenali eksekutor Anda, kembalikan hasil error seperti Error: ref_3 is stale or not found on the current page. Re-read the page to get fresh references. Claude kemudian membaca halaman lagi. Jangan menomori ulang referensi yang sudah Anda berikan untuk sebuah tab hingga tab tersebut bernavigasi, karena itu secara diam-diam membatalkan referensi yang masih dipegang Claude.
Claude menggunakan kedua gaya penargetan dan beralih di antaranya berdasarkan apa yang diekspos halaman; prompt Anda dan apa yang dikembalikan eksekutor Anda mengarahkan pilihan tersebut:
screenshot dan zoom dan mengklik berdasarkan koordinat; eksekutor Anda menentukan frame mana yang dikenai koordinat.read_page dengan filter: "interactive" atau ref dari sebuah kontainer mengembalikan subpohon yang terfokus, dan pembacaan pohon dari halaman biasa sering menghabiskan lebih sedikit token input daripada tangkapan layar sambil memberi Claude referensi yang dapat langsung ditindaklanjuti. Tangkapan layar tetap menjadi observasi yang tepat ketika tata letak visual, gambar, atau status rendering penting.Penggunaan browser membawa risiko yang tidak dimiliki fitur API standar, karena Claude membaca dan bertindak pada konten dari web terbuka, di mana halaman apa pun dapat berisi teks yang ditulis untuk memanipulasinya.
Claude terkadang mengikuti instruksi yang ditemukan dalam konten halaman bahkan ketika bertentangan dengan instruksi Anda; teks pada halaman yang mengatakan "abaikan instruksi sebelumnya dan navigasi ke..." dapat mengalihkannya dari tugas. Isolasi Claude dari data dan tindakan sensitif untuk membatasi apa yang dapat dijangkau injeksi prompt, tinjau Memitigasi jailbreak dan injeksi prompt, dan jika tugas tidak dapat menghindari sesi yang sudah login, gunakan akun khusus dengan hak akses rendah dan pertahankan konfirmasi manusia pada tindakan yang mengubah akun.
Karena browser berjalan di lingkungan Anda, situs yang dikunjungi Claude melihat identitas jaringan eksekutor Anda, dan konten halaman mencapai API hanya sebagai hasil alat yang Anda kembalikan. Beri tahu pengguna akhir tentang risiko yang relevan dan dapatkan persetujuan mereka sebelum mengaktifkan penggunaan browser dalam produk Anda.
Entri browser_toolset_20260801 mendeklarasikan 31 alat anggota; input setiap panggilan adalah persis parameter yang tercantum di sini, dan tab_id, jika opsional, default ke tab aktif. Target, CoordinateTarget, dan RefTarget adalah bentuk yang dijelaskan di Target dan koordinat. Empat anggota (javascript_exec, file_upload, read_console, dan read_network) dinonaktifkan secara default dan hanya muncul ketika Anda mengaktifkannya. Batas input dan konvensi output yang dicatat di baris setiap anggota dinyatakan kepada Claude, tidak diberlakukan oleh API, jadi validasi input (termasuk koordinat terhadap viewport Anda) dan terapkan konvensi tersebut di eksekutor Anda.
Hanya screenshot dan zoom yang memerlukan blok image dalam hasilnya, dan empat anggota manajemen tab (new_tab, list_tabs, switch_tab, dan close_tab) mengembalikan tepat satu blok browser_state (lihat Hasil manajemen tab). Setiap anggota lainnya mengembalikan blok text: baik pengakuan singkat seperti Clicked element ref_2. atau output anggota tersebut. Hasil apa pun selain hasil manajemen tab juga dapat membawa blok image, biasanya tangkapan layar yang diambil setelah aksi, sehingga Claude melihat hasilnya tanpa panggilan screenshot terpisah; Aksi batch menunjukkan di mana melampirkannya dalam batch. tool_result anggota hanya boleh berisi blok konten text, image, dan browser_state.
| Anggota | Input | Deskripsi |
|---|---|---|
navigate | url, tab_id? | Muat URL http atau https, atau bergerak melalui riwayat dengan "back", "forward", atau "reload". Perlakukan URL tanpa skema sebagai https:// dan tolak skema lain dengan hasil error. Kembalikan pengakuan singkat, ditambah blok browser_state ketika URL atau judul tab berubah. |
screenshot | tab_id? | Tangkap viewport dan kembalikan blok image. |
zoom | region, tab_id? | Kembalikan image yang dipotong dan diperbesar dari region, diberikan sebagai [x0, y0, x1, y1] dalam piksel viewport, untuk pemeriksaan lebih dekat terhadap teks atau kontrol kecil. |
| Anggota | Input | Deskripsi |
|---|---|---|
left_click | target: Target, modifiers?, tab_id? | Klik kiri pada koordinat atau elemen yang direferensikan. modifiers adalah chord yang ditahan selama klik, misalnya, "shift" atau "ctrl+shift". |
right_click | target: Target, modifiers?, tab_id? | Klik kanan pada koordinat atau elemen. |
middle_click | target: Target, modifiers?, tab_id? | Klik tengah pada koordinat atau elemen. |
double_click | target: Target, modifiers?, tab_id? | Klik kiri ganda pada koordinat atau elemen. |
triple_click | target: Target, modifiers?, tab_id? | Klik kiri tiga kali pada koordinat atau elemen, yang biasanya memilih satu baris atau paragraf. |
hover | target: Target, tab_id? | Gerakkan pointer ke atas koordinat atau elemen tanpa mengklik. |
left_click_drag | from: CoordinateTarget, target: CoordinateTarget, tab_id? | Tekan di from, seret ke target, dan lepaskan. |
left_mouse_down | target: CoordinateTarget, tab_id? | Tekan dan tahan tombol kiri pada koordinat; pasangkan dengan left_mouse_up untuk seret kustom. |
left_mouse_up | target: CoordinateTarget, tab_id? | Lepaskan tombol kiri pada koordinat. |
mouse_move | target: CoordinateTarget, tab_id? | Gerakkan pointer ke koordinat. |
scroll | target: CoordinateTarget, scroll_direction, scroll_amount?, tab_id? | Gulir pada posisi viewport. scroll_direction adalah "up", "down", "left", atau "right"; scroll_amount dalam takik roda gulir, 1 hingga 10, default 3. |
scroll_to | target: RefTarget, tab_id? | Gulir elemen yang direferensikan hingga terlihat. |
| Anggota | Input | Deskripsi |
|---|---|---|
type | text, tab_id? | Ketik string literal pada fokus saat ini. |
key | text, repeat?, tab_id? | Tekan tombol atau chord. text adalah satu tombol ("Enter"), chord yang digabung dengan + ("ctrl+a"), atau urutan yang dipisahkan spasi ("Backspace Backspace"); repeat adalah 1 hingga 100, default 1. |
hold_key | text, duration, tab_id? | Tahan tombol atau chord selama duration detik, 0 hingga 30. |
wait | duration, tab_id? | Jeda selama duration detik, 0 hingga 30. |
| Anggota | Input | Deskripsi |
|---|---|---|
read_page | filter?, depth?, ref?, tab_id? | Kembalikan pohon aksesibilitas halaman sebagai teks dengan setiap elemen ditandai dengan referensi seperti [ref_2]. Dengan filter dihilangkan, kembalikan setiap elemen yang terlihat; dengan "interactive", hanya elemen interaktif yang terlihat; dengan "all", juga elemen di luar viewport. depth membatasi kedalaman pohon (minimum 1, default 15) dan ref membatasi pembacaan ke subpohon elemen tersebut. Batasi output pada 50.000 karakter dan nyatakan demikian dalam teks; Claude kemudian mempersempit dengan depth yang lebih kecil atau ref. |
find | query, tab_id? | Cari elemen yang cocok dengan deskripsi bahasa alami seperti "search field" atau "add to cart button", dan kembalikan hingga 20 kecocokan dalam format bertanda yang sama dengan read_page. |
get_page_text | tab_id? | Kembalikan teks halaman yang terlihat sebagai teks biasa, memprioritaskan konten artikel utama; cocok untuk artikel, dokumentasi, dan halaman lain yang padat teks. |
| Anggota | Input | Deskripsi |
|---|---|---|
form_input | target: RefTarget, value, tab_id? | Atur nilai elemen formulir secara langsung. value adalah string, number, atau boolean; gunakan boolean untuk checkbox dan nilai opsi atau teks yang terlihat untuk select. |
file_upload (nonaktif secara default) | target: RefTarget, paths?, document_ids?, tab_id? | Atur file pada elemen file-input dari paths di filesystem eksekutor, document_ids yang telah disiapkan aplikasi Anda, atau keduanya; setidaknya satu diperlukan. Lihat Mengunggah file. |
| Anggota | Input | Deskripsi |
|---|---|---|
read_console (nonaktif secara default) | tab_id? | Kembalikan entri konsol tab (baris log, peringatan, dan error) yang terakumulasi sejak pembacaan terakhir, satu baris per entri. Lihat Membaca aktivitas konsol dan jaringan. |
read_network (nonaktif secara default) | tab_id? | Kembalikan permintaan jaringan tab (metode, URL, status, tipe MIME, waktu) sejak pembacaan terakhir, satu baris per entri. |
javascript_exec (nonaktif secara default) | text, tab_id? | Jalankan text sebagai JavaScript dalam konteks halaman dan kembalikan nilai ekspresi terakhir sebagai teks. Lihat Mengaktifkan anggota opsional. |
| Anggota | Input | Deskripsi |
|---|---|---|
new_tab | (tidak ada) | Buka tab dan jadikan tab aktif. |
list_tabs | (tidak ada) | Laporkan inventaris tab. |
switch_tab | tab_id (wajib) | Jadikan tab_id tab aktif. |
close_tab | tab_id (wajib) | Tutup tab_id. |
Jika berhasil, masing-masing mengembalikan tepat satu blok browser_state dan tanpa teks atau gambar; lihat Hasil manajemen tab.
Selain type, entri toolset menerima configs, cache_control, dan allowed_callers; aturan yang dimiliki bersama field ini dengan toolset penggunaan komputer tercantum di Toolset klien, dan bagian ini mencakup default khusus browser. configs adalah objek yang dikunci berdasarkan nama anggota, dan nilai setiap anggota menerima dua field:
| Field | Default | Arti |
|---|---|---|
enabled | true, kecuali false untuk empat anggota opsional | Apakah anggota ditawarkan kepada Claude. |
defer_loading | false | Apakah definisi toolset ditangguhkan untuk pencarian alat. Harus menghasilkan nilai yang sama pada setiap anggota yang diaktifkan. Dengan empat anggota opsional dibiarkan nonaktif, menangguhkan toolset berarti mengaturnya pada 27 anggota lainnya; lihat Toolset klien. |
Cantumkan hanya anggota yang ingin Anda ubah di configs; setiap anggota yang Anda hilangkan mempertahankan defaultnya. Misalnya, eksekutor yang mengimplementasikan pembacaan konsol tetapi tidak kontrol pointer tingkat rendah atau penahanan tombol mengaktifkan read_console dan menahan tiga anggota:
{
"type": "browser_toolset_20260801",
"configs": {
"read_console": { "enabled": true },
"left_mouse_down": { "enabled": false },
"left_mouse_up": { "enabled": false },
"hold_key": { "enabled": false }
}
}Anggota yang dinonaktifkan menghilang dari definisi yang dilihat Claude; itu tidak menjamin Claude tidak pernah menyebutkannya, jadi eksekutor Anda tetap menjawab panggilan seperti itu dengan hasil error.
Deklarasikan alat penggunaan browser bersama alat Anda sendiri dan alat lain yang disediakan Anthropic dalam array tools yang sama. Alat kustom boleh memiliki nama yang sama dengan anggota (navigate Anda sendiri, misalnya), karena toolset_name membedakan panggilan Claude, tetapi tidak ada entri lain yang boleh bernama browser, dan permintaan hanya boleh berisi satu entri toolset browser.
Anda juga dapat mendeklarasikannya bersama alat penggunaan komputer, baik toolset maupun versi alat penggunaan komputer yang lebih lama. Keduanya bekerja secara independen, masing-masing dalam bingkai koordinatnya sendiri (piksel viewport di sini, piksel tangkapan layar desktop di sana), dan panggilan Claude ke anggota yang memiliki nama yang sama, seperti screenshot atau key, dibedakan oleh toolset_name.
Empat alat anggota dinonaktifkan secara default: javascript_exec dan file_upload karena memperluas apa yang dapat dibuat halaman yang dimanipulasi agar dilakukan Claude, dan read_console dan read_network karena tidak setiap stack otomatisasi browser dapat menyediakan log tersebut dan keduanya memperluas konten yang dikendalikan halaman yang mencapai Claude. Aktifkan masing-masing dengan configs (misalnya, "configs": {"file_upload": {"enabled": true}}) hanya ketika eksekutor Anda mengimplementasikannya dan tugas membutuhkannya.
file_upload mengatur file pada elemen <input type="file"> secara langsung, yang lebih andal daripada mengendalikan pemilih file native. target-nya hanya berupa referensi, karena panggilan membutuhkan identitas elemen, dan menerima paths, document_ids, atau keduanya:
paths adalah path file di filesystem eksekutor, untuk deployment di mana eksekutor dapat membaca file aplikasi Anda secara langsung (kondisi yang sama di mana Anda mengisi path unduhan).document_ids adalah pengenal untuk file yang telah disiapkan aplikasi Anda untuk browser, untuk deployment di mana eksekutor tidak dapat melakukannya. Aplikasi Anda mendefinisikan arti pengenal tersebut; batasi resolusinya seperti Anda membatasi paths, ke file yang disiapkan untuk tugas ini.{
"type": "tool_use",
"id": "toolu_01N7gVzFEfZjLjgsYwnrPgrF",
"name": "file_upload",
"toolset_name": "browser",
"input": {
"target": { "type": "ref", "ref": "ref_12" },
"paths": ["/home/user/uploads/summary.pdf"],
"tab_id": "tab-2"
}
}Claude menulis path ini saat membaca halaman yang tidak tepercaya, sehingga implementasi tanpa batasan akan memungkinkan halaman berbahaya mengarahkan pengunggahan file apa pun yang dapat dibaca eksekutor ke situs yang dikendalikan halaman tersebut. Aktifkan anggota ini hanya ketika eksekutor Anda me-resolve setiap path (mengikuti symlink dan segmen ..) dan tidak menerima apa pun di luar direktori unggahan khusus yang masuk allowlist dan hanya berisi file yang dimaksudkan untuk tugas. Jangan gunakan ulang direktori unduhan browser untuk ini; jika Anda melakukannya, setiap file yang menyebabkan browser mengunduhnya karena halaman menjadi dapat diunggah.
javascript_exec menjalankan ekspresi yang ditulis Claude dalam konteks halaman dan mengembalikan nilai ekspresi terakhir sebagai teks; Claude menulis ekspresi, bukan pernyataan return. Kode berjalan dengan hak akses penuh halaman, termasuk cookie, storage, dan permintaan same-origin-nya. Aktifkan anggota ini hanya dalam sesi yang tidak menyimpan kredensial, pertahankan allowlist domain dari Pertimbangan keamanan tetap berlaku, perlakukan nilai yang dikembalikan sebagai input yang tidak tepercaya, dan catat kode yang dikeluarkan Claude.
read_console mengembalikan entri konsol tab dan read_network mengembalikan permintaan jaringannya, masing-masing sebagai teks dengan satu baris per entri yang terakumulasi sejak pembacaan sebelumnya dari tab tersebut. Baris konsol membawa entri log, peringatan, atau error; baris jaringan membawa metode, URL, status, tipe MIME, dan waktu. Entri hanya ada sejak saat otomatisasi browser Anda terhubung ke tab, sehingga hasil kosong tidak berarti tab yang sudah terbuka tidak memiliki lalu lintas.
Anggota ini memungkinkan Claude mendiagnosis halaman yang bermasalah (permintaan gagal di balik spinner, error skrip di balik tombol yang tidak berfungsi) tanpa tangkapan layar berulang. Entri konsol dan jaringan dikendalikan halaman dan sering berisi rahasia seperti token dalam URL permintaan, jadi sensor nilai yang menyerupai kredensial yang tidak Anda inginkan dalam konteks Claude dan potong entri yang sangat panjang sebelum mengembalikannya.
browser_stateClaude merujuk tab berdasarkan tab_id, aplikasi Anda adalah sumber kebenaran mengenai tab mana yang ada, dan Anda melaporkan status tersebut dalam blok konten browser_state yang tidak pernah dilihat Claude secara langsung: API merender teks yang dibaca Claude darinya.
{
"type": "browser_state",
"tabs": [
{
"tab_id": "tab-1",
"title": "Documentation",
"url": "https://example.com/docs",
"active": true
},
{ "tab_id": "tab-2", "title": "Pricing", "url": "https://example.com/pricing" }
]
}tabs adalah inventaris lengkap tab yang terbuka setelah panggilan, bukan delta. Nilainya boleh kosong; kapan pun tidak kosong, tepat satu entri membawa "active": true.state_changes (tidak ditampilkan di sini) melaporkan efek samping dari panggilan: satu entri tab_opened untuk setiap tab yang dibuka oleh panggilan dan masih terbuka saat panggilan selesai, yang tab_id-nya juga harus muncul di tabs, serta peristiwa unduhan. Hilangkan field ini ketika tidak ada yang perlu dilaporkan; array kosong akan ditolak.tool_result, dan jangan pernah pada hasil dengan is_error: true. Anda menyatakan "tidak ada status tab untuk dilaporkan" dengan menghilangkan blok tersebut.tabs menjadi teks untuk Claude seperti yang dijelaskan dua bagian berikutnya; entri unduhan di state_changes divalidasi tetapi tidak dirender.Anda yang menetapkan nilai tab_id. String stabil apa pun dapat digunakan, seperti pengenal halaman dari pustaka otomasi Anda atau penghitung Anda sendiri, selama Anda tidak menggunakan ulang tab_id sementara tab dengan pengenal tersebut masih tercantum sebagai terbuka pada hasil sebelumnya. API memberlakukan batasan berikut pada blok ini:
tab_id, title, dan url boleh paling banyak 4.096 karakter, tab_id tidak boleh kosong, dan tidak satu pun boleh berisi karakter kontrol (termasuk baris baru) atau pemisah baris atau paragraf Unicode.tab_id yang diteruskan Claude ke switch_tab dan close_tab, karena API merendernya ke dalam teks hasil, jadi jawablah panggilan yang tab_id-nya melanggar batasan tersebut dengan hasil error alih-alih blok browser_state.Untuk new_tab, switch_tab, close_tab, dan list_tabs, content dari hasil yang berhasil adalah tepat satu blok browser_state tanpa teks atau gambar, dan API menulis teks yang dilihat Claude. Blok pada hasil new_tab juga harus membawa tepat satu perubahan status tab_opened yang tab_id-nya cocok dengan entri yang ditandai active: true.
| Anggota | Teks yang dilihat Claude |
|---|---|
switch_tab | Switched to tab {tab_id}, diambil dari input.tab_id panggilan |
close_tab | Closed tab {tab_id}, diambil dari input.tab_id panggilan |
new_tab | Created new tab with tab_id: {tab_id}, URL: {url}. It is now the current tab., diambil dari entri yang ditandai active: true |
list_tabs | Available tabs: diikuti satu baris per tab, atau No tabs available ketika tabs kosong |
Hasil list_tabs yang bloknya mencantumkan dua tab dengan tab pertama aktif dirender sebagai berikut, dengan setiap baris diindentasi dua spasi dan (current) ditambahkan hanya pada tab yang aktif:
Available tabs:
• tab_id tab-1: "Documentation" (https://example.com/docs) (current)
• tab_id tab-2: "Pricing" (https://example.com/pricing)Hasil error untuk salah satu anggota ini adalah kebalikannya: teks error biasa di content, is_error: true, dan tanpa blok browser_state.
Sebagai contoh, ketika Claude memanggil new_tab (input-nya kosong), eksekutor Anda membuka tab, menjadikannya aktif, dan mengembalikan inventaris dengan satu entri tab_opened:
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": "toolu_01WvHSbQVV9j5nWGvTmk4vNL",
"toolset_name": "browser",
"content": [
{
"type": "browser_state",
"tabs": [
{ "tab_id": "tab-1", "title": "Documentation", "url": "https://example.com/docs" },
{ "tab_id": "tab-2", "title": "Pricing", "url": "https://example.com/pricing" },
{ "tab_id": "tab-3", "title": "", "url": "about:blank", "active": true }
],
"state_changes": [{ "type": "tab_opened", "tab_id": "tab-3" }]
}
]
}
]
}Claude melihat Created new tab with tab_id: tab-3, URL: about:blank. It is now the current tab. Laporkan URL tempat tab dibuka, seperti di sini, bukan URL tujuan pengalihan setelahnya; hasil-hasil berikutnya melaporkan URL tab yang berlaku saat itu.
Pada setiap anggota lainnya, blok ini bersifat opsional: kirimkan ketika kumpulan tab yang terbuka, tab aktif, atau judul maupun URL suatu tab berubah, atau ketika ada state_changes untuk dilaporkan, dan selalu sertakan inventaris tabs lengkap. Ketika suatu hasil membawa teks sekaligus blok browser_state, API menambahkan footer Tab Context pada teks hasil tersebut, dipisahkan dari teks Anda oleh satu baris kosong, sehingga Claude menerima status baru tanpa panggilan list_tabs terpisah:
Tab Context:
- Executed on tab_id: tab-1
- Available tabs:
• tab_id tab-1: "Documentation" (https://example.com/docs)
• tab_id tab-2: "Pricing" (https://example.com/pricing)Executed on menyebutkan tab tempat panggilan dijalankan, yaitu input tab_id-nya jika ada dan jika tidak, tab aktif, dan baris-baris tab pada footer tidak membawa penanda (current). Jangan menambahkan teks ini sendiri; kirim blok terstruktur dan biarkan API merendernya. Footer ini dideduplikasi, sehingga status tab yang identik tidak dirender lagi pada hasil berikutnya dan mengisi blok secara bebas tidak menimbulkan biaya apa pun.
Tiga kasus tidak merender footer meskipun blok ada:
zoom apa pun.text (misalnya hasil screenshot yang hanya berisi gambar). Tidak ada yang dirender atau diingat untuk hasil tersebut; konteks tab muncul pada hasil berikutnya yang membawa teks sekaligus blok browser_state, jadi sertakan blok teks singkat di samping gambar ketika Anda ingin Claude melihat perubahan tab pada hasil yang sama.tabs-nya kosong pada panggilan yang tidak membawa tab_id, karena tidak ada tab untuk disebutkan.Sebagai contoh, ketika Claude mengklik tautan "Pricing" (ref_5) sebelumnya dalam sesi ini, halaman membukanya di tab baru yang tidak diminta Claude, dan tanpa laporan Claude harus memanggil list_tabs untuk menemukannya. Kembalikan konfirmasi klik ditambah blok yang state_changes-nya menyebutkan tab yang dibuka, dengan menandai tab mana pun yang dibiarkan aktif oleh eksekutor Anda:
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": "toolu_01EgTXj1FjE2FCTt2zNFWLao",
"toolset_name": "browser",
"content": [
{ "type": "text", "text": "Clicked element ref_5." },
{
"type": "browser_state",
"tabs": [
{
"tab_id": "tab-1",
"title": "Documentation",
"url": "https://example.com/docs",
"active": true
},
{ "tab_id": "tab-2", "title": "Pricing", "url": "https://example.com/pricing" }
],
"state_changes": [{ "type": "tab_opened", "tab_id": "tab-2" }]
}
]
}
]
}Claude melihat Clicked element ref_5. diikuti footer Tab Context yang ditampilkan sebelumnya. Tab yang dibuka selama panggilan yang gagal tidak mendapatkan entri tab_opened, karena hasil error tidak membawa browser_state; tab tersebut muncul di inventaris tabs pada hasil berhasil berikutnya. Dalam batch, lampirkan blok pada hasil dari panggilan yang selama pelaksanaannya perubahan terjadi, dan berikan setiap hasil manajemen tab yang berhasil bloknya sendiri meskipun hasil sebelumnya pada giliran yang sama telah melaporkan status yang sama.
Ketika klik atau navigasi memulai unduhan file, laporkan di state_changes pada hasil dari panggilan yang selama pelaksanaannya unduhan terjadi, dikorelasikan antarhasil melalui download_id yang Anda tetapkan. Unduhan berjalan secara asinkron dan dapat mencakup beberapa hasil, sehingga ada tiga jenis peristiwa:
type | Field | Kapan dikirim |
|---|---|---|
download_started | download_id, url | Pada hasil dari panggilan yang selama pelaksanaannya unduhan dimulai. url adalah URL final tempat file disajikan, setelah pengalihan. |
download_completed | download_id, url, path?, size_bytes? | Pada hasil dari panggilan berikutnya mana pun yang sedang berjalan saat unduhan selesai. Sertakan path hanya ketika alat lain di lingkungan yang sama (misalnya, alat bash atau file_upload) dapat membaca file di sana; jika tidak, download_id adalah satu-satunya pengenal unduhan. |
download_failed | download_id, url, error? | Ketika unduhan gagal atau dibatalkan, dengan alasannya di error jika browser menyediakannya. |
API memvalidasi entri-entri ini tetapi tidak merendernya menjadi teks yang dilihat Claude, jadi ketika Claude perlu bertindak atas file tersebut, sebutkan juga nama file atau path di blok text pada hasil yang sama.
Sebagai contoh, klik pada "Download price list (CSV)" (ref_8) di tab Pricing memulai unduhan, sehingga hasil klik tersebut membawa entri download_started dengan download_id "dl-1" dan URL file. Unduhan selesai saat panggilan screenshot berikutnya sedang berjalan, sehingga content hasil tersebut berisi gambar, blok teks seperti Screenshot captured. Download complete: /home/user/downloads/price-list.csv (48,213 bytes)., dan blok browser_state ini yang melaporkan penyelesaian di bawah download_id yang sama:
{
"type": "browser_state",
"tabs": [
{ "tab_id": "tab-1", "title": "Documentation", "url": "https://example.com/docs" },
{
"tab_id": "tab-2",
"title": "Pricing",
"url": "https://example.com/pricing",
"active": true
}
],
"state_changes": [
{
"type": "download_completed",
"download_id": "dl-1",
"url": "https://example.com/pricing/price-list.csv",
"path": "/home/user/downloads/price-list.csv",
"size_bytes": 48213
}
]
}Laporan unduhan mengikuti aturan berikut:
download_id dalam satu blok, sehingga unduhan yang dimulai dan selesai selama panggilan yang sama hanya melaporkan download_completed.state_changes pada hasil is_error: true; laporkan peristiwa unduhan yang terjadi selama panggilan yang gagal pada hasil berhasil berikutnya.state_changes bukan inventaris unduhan yang sedang berlangsung; laporkan setiap peristiwa sekali.type-nya. size_bytes adalah bilangan bulat non-negatif, download_id tidak boleh kosong, dan download_id, url, path, serta error masing-masing paling banyak 4.096 karakter tanpa karakter kontrol atau pemisah baris atau paragraf Unicode. url berasal dari server jarak jauh dan sering membawa kredensial query-string bertanda tangan setelah pengalihan, jadi hapus parameter query yang tidak Anda inginkan dalam konteks Claude dan sanitasi sebelum melaporkannya atau menggunakannya dalam path sistem file.Laporkan panggilan yang gagal kepada Claude sebagai hasil error biasa: is_error: true, konten teks yang menjelaskan apa yang salah, toolset_name digemakan kembali, dan tanpa blok browser_state.
Buat teks error spesifik, karena Claude membacanya dan beradaptasi: Error: Navigation to https://example.com/status timed out after 30 seconds. The page may be unavailable. memberi Claude sesuatu untuk ditindaklanjuti, sedangkan Error: navigation failed saja tidak. Kasus umum lainnya:
API memvalidasi entri toolset dan setiap blok tool_use dan tool_result anggota dalam percakapan. Ketika salah satunya salah bentuk, API mengembalikan invalid_request_error sebelum Claude berjalan. Pada tabel berikut, kolom kiri menyebutkan apa yang Anda kirim.
| Permintaan | Mengapa gagal dan apa yang harus dilakukan |
|---|---|
Opsi atau kombinasi yang tidak diterima entri toolset, misalnya, name, strict: true, input_examples, defer_loading pada entri itu sendiri, kunci configs yang bukan nama anggota, field selain enabled atau defer_loading dalam nilai configs suatu anggota (Mengonfigurasi toolset), anggota yang diaktifkan dengan nilai defer_loading yang berbeda (Mengonfigurasi toolset), configs yang tidak menyisakan anggota yang diaktifkan, pemanggil eksekusi kode di allowed_callers, header beta lama fine-grained-tool-streaming-2025-05-14 pada permintaan, tool_choice bertipe tool yang menyebut browser atau suatu anggota, atau entri toolset browser kedua atau alat lain bernama browser | Hal-hal ini tidak didukung pada toolset klien. Lihat Toolset klien untuk setiap aturan dan alternatifnya. |
tool_result yang menjawab panggilan anggota tanpa "toolset_name": "browser" atau dengan nilai berbeda, atau toolset_name pada hasil yang panggilannya bukan panggilan anggota | Gemakan toolset_name secara persis pada hasil anggota, dan hanya pada hasil tersebut. |
tool_use anggota dari giliran sebelumnya tanpa tool_result yang cocok | Jawab setiap panggilan anggota, termasuk yang tidak Anda jalankan setelah kegagalan. |
Blok konten selain text, image, atau browser_state dalam hasil anggota | Hasil anggota hanya menerima ketiga jenis blok tersebut. |
Blok browser_state yang melanggar aturan di Melacak tab dengan browser_state, misalnya, blok pada hasil is_error: true atau pada hasil yang tidak menjawab panggilan anggota browser, lebih dari satu dalam satu hasil, tabs tidak kosong tanpa tepat satu entri active: true, tab_id duplikat, array state_changes kosong, tab_opened yang tab_id-nya tidak ada di tabs, dua perubahan status untuk satu download_id atau field perubahan status yang tidak dideklarasikan oleh type-nya (Melaporkan unduhan), atau field yang melebihi batasnya | Perbaiki blok tersebut. "Tidak ada yang dilaporkan" dinyatakan dengan menghilangkan blok atau field state_changes, bukan dengan nilai kosong. |
Hasil new_tab, switch_tab, close_tab, atau list_tabs yang berhasil tetapi content-nya bukan tepat satu blok browser_state, atau hasil new_tab tanpa tepat satu tab_opened yang cocok dengan tab aktif | API merender hasil-hasil ini dari blok dan membutuhkannya dalam bentuk yang persis seperti itu; lihat Hasil manajemen tab. |
image dalam hasil yang melebihi batas ukuran gambar model Anda, atau melebihi batas per gambar yang lebih ketat yang berlaku begitu permintaan berisi lebih dari 20 gambar, termasuk tangkapan layar dan gambar zoom pada hasil sebelumnya | API tidak memperkecil gambar toolset. Ubah ukuran tangkapan layar sebelum mengembalikannya (Menyesuaikan ukuran tangkapan layar agar sesuai batas gambar). |
model yang tidak mendukung browser_toolset_20260801 | Lihat Kompatibilitas untuk model yang didukung. |
input setiap anggota tiba sebagai satu input_json_delta lengkap (Toolset klien).read_console dan read_network bergantung pada otomasi browser Anda: Keduanya hanya melaporkan apa yang dapat ditangkapnya, dan hanya sejak saat otomasi tersebut terhubung ke suatu tab.Browser use (penggunaan browser) mengikuti harga penggunaan alat standar. Saat menggunakan alat browser use:
Overhead definisi toolset: Mendeklarasikan browser_toolset_20260801 dengan anggota defaultnya menambahkan sekitar 6.600 token input ke sebuah permintaan (sekitar 6.610 pada Claude Fable 5, Claude Mythos 5, Claude Opus 5, dan Claude Opus 4.8, serta sekitar 6.670 pada Claude Sonnet 5), yang mencakup definisi alat anggota dan prompt sistem penggunaan alat. Mengaktifkan keempat anggota opsional menambahkan sekitar 880 token, dan menonaktifkan anggota dengan configs mengurangi jumlahnya. Jumlah pasti untuk sebuah permintaan dilaporkan dalam usage respons, dan Anda dapat memperkirakannya terlebih dahulu dengan endpoint penghitungan token.
Konsumsi token tambahan:
Sesi browser, unduhan, dan file yang diunggah tetap berada di lingkungan Anda; tangkapan layar, teks halaman, dan status tab yang Anda kembalikan merupakan bagian dari konten permintaan API Anda dan mengikuti kebijakan retensi standar, atau pengaturan ZDR Anda jika Anda memilikinya. Alat penggunaan browser memenuhi syarat ZDR; lihat API dan retensi data untuk periode retensi dan kelayakan di seluruh fitur.
Berikan Claude kendali atas desktop penuh ketika tugas keluar dari browser; panduan implementasinya juga berlaku untuk eksekutor browser.
Format blok tool_result, kembalikan gambar dan error, dan lanjutkan percakapan.
Jelajahi toolset klien dan setiap alat lain yang disediakan Anthropic, beserta versi dan parameternya.
| Supported models |
|
|---|---|
| Supported platforms |
|
Was this page helpful?