Claude Managed Agents menyediakan serangkaian alat bawaan yang dapat digunakan Claude secara otonom di dalam sebuah sesi. Anda mengontrol alat mana yang tersedia dengan menentukannya dalam konfigurasi agen.
Claude Managed Agents juga mendukung alat kustom yang didefinisikan pengguna. Aplikasi Anda mengeksekusi alat-alat ini secara terpisah dan mengembalikan hasilnya ke Claude, yang menggunakannya untuk melanjutkan tugas. Untuk memberi agen alat dari server MCP, gunakan konektor MCP sebagai gantinya.
Toolset agen mencakup alat-alat berikut. Semuanya diaktifkan secara default saat Anda menyertakan toolset dalam konfigurasi agen Anda. Setiap entri dalam array configs diidentifikasi berdasarkan name-nya, menggunakan nilai pada kolom Nama, dan menerima field type opsional dengan nilai yang sama. Entri web_search dan web_fetch menerima pengaturan tambahan; lihat Membatasi domain web search dan web fetch.
| Alat | Nama | Deskripsi |
|---|---|---|
| Bash | bash | Mengeksekusi perintah bash dalam sesi shell |
| Read | read | Membaca file dari filesystem sandbox |
| Write | write | Menulis file ke filesystem sandbox |
| Edit | edit | Melakukan penggantian string dalam file |
| Glob | glob | Pencocokan pola file yang cepat menggunakan pola glob |
| Grep | grep | Pencarian teks menggunakan pola regex |
| Web fetch | web_fetch | Mengambil konten dari URL |
| Web search | web_search | Mencari informasi di web |
Ketika output alat melebihi 100.000 karakter (sekitar 25.000 token), output tersebut secara otomatis ditulis ke file di sandbox. Model menerima pratinjau terpotong beserta path file dan dapat membaca konten lengkapnya dari sana.
Aktifkan toolset lengkap dengan agent_toolset_20260401 saat membuat agen. Gunakan array configs untuk menonaktifkan alat tertentu atau menimpa pengaturannya. Setiap entri config juga dapat menetapkan permission_policy yang mengontrol apakah panggilan alat tersebut disetujui otomatis atau memerlukan konfirmasi. Lihat Kebijakan izin untuk jenis kebijakan yang tersedia.
Entri config untuk web_search dan web_fetch juga menerima filter domain dan pengaturan web lainnya; lihat Membatasi domain web search dan web fetch.
ant beta:agents create <<'YAML'
name: Coding Assistant
model: claude-opus-5
tools:
- type: agent_toolset_20260401
configs:
- name: web_fetch
enabled: false
YAMLUntuk menonaktifkan sebuah alat, tetapkan enabled: false pada entri config-nya di objek toolset dalam array tools agen Anda:
{
"type": "agent_toolset_20260401",
"configs": [
{ "name": "web_fetch", "enabled": false },
{ "name": "web_search", "enabled": false }
]
}Objek default_config menetapkan baseline untuk setiap alat dalam set, dan entri configs per alat menimpanya. Untuk memulai dengan semuanya nonaktif dan hanya mengaktifkan yang Anda butuhkan, tetapkan default_config.enabled ke false:
{
"type": "agent_toolset_20260401",
"default_config": { "enabled": false },
"configs": [
{ "name": "bash", "enabled": true },
{ "name": "read", "enabled": true },
{ "name": "write", "enabled": true }
]
}Untuk mengontrol situs mana yang dapat dijangkau oleh alat web agen, tetapkan allowed_domains (alat hanya dapat menjangkau host ini) atau blocked_domains (alat tidak pernah dapat menjangkau host ini) pada entri web_search dan web_fetch dalam array configs toolset. Setiap alat memiliki daftarnya sendiri, sehingga web_search dan web_fetch dapat memiliki pembatasan yang berbeda. Domain yang terdaftar mencakup host tersebut dan semua subdomainnya. Saat runtime, panggilan web_fetch untuk URL yang tidak diizinkan oleh daftarnya mengembalikan hasil error ke agen (is_error: true pada event agent.tool_result, dengan konten yang menyebutkan kode error url_not_allowed), dan web_search menghilangkan hasil yang tidak diizinkan oleh daftarnya.
Toolset berikut membatasi web_search ke dua situs dan melokalkan hasilnya, serta memblokir satu host untuk web_fetch sambil membatasi seberapa banyak konten yang diambil masuk ke dalam konteks:
{
"type": "agent_toolset_20260401",
"configs": [
{
"type": "web_search",
"name": "web_search",
"allowed_domains": ["docs.example.com", "arxiv.org"],
"user_location": {
"type": "approximate",
"country": "US",
"timezone": "America/Los_Angeles"
}
},
{
"type": "web_fetch",
"name": "web_fetch",
"blocked_domains": ["ads.example.com"],
"max_content_tokens": 50000
}
]
}Permintaan berikut membuat agen dengan toolset ini dan mencetak array configs dari respons:
ant beta:agents create --transform tools.0.configs <<'YAML'
name: Research Agent
model: claude-opus-5
tools:
- type: agent_toolset_20260401
configs:
- type: web_search
name: web_search
allowed_domains: [docs.example.com, arxiv.org]
user_location:
type: approximate
country: US
timezone: America/Los_Angeles
- type: web_fetch
name: web_fetch
blocked_domains: [ads.example.com]
max_content_tokens: 50000
YAMLDi Claude Console, tetapkan domain yang diizinkan atau diblokir dari baris web_search dan web_fetch pada kartu Built-in tools di formulir agen; tetapkan max_content_tokens dan user_location di tampilan Raw dari konfigurasi agen.
Selain enabled dan permission_policy, entri alat web menerima pengaturan berikut:
| Pengaturan | Berlaku untuk | Deskripsi |
|---|---|---|
allowed_domains | web_search, web_fetch | Satu-satunya host yang dapat dijangkau alat. Tidak dapat digabungkan dengan blocked_domains pada entri yang sama. |
blocked_domains | web_search, web_fetch | Host yang tidak dapat dijangkau alat. |
max_content_tokens | web_fetch | Membatasi jumlah konten halaman yang diambil yang disertakan dalam konteks. Harus berupa bilangan bulat positif. Lihat batas konten. |
user_location | web_search | Melokalkan hasil pencarian. Sebuah objek dengan field yang sama seperti parameter user_location Messages API. |
allowed_domains atau blocked_domains pada sebuah entri, bukan keduanya. Entri yang menetapkan keduanya akan ditolak.null.web_search opsional yang dijelaskan nanti dalam daftar ini. Gunakan example.com, bukan https://example.com, example.com:443, atau *.example.com. Hostname dibandingkan tanpa memperhatikan huruf besar/kecil, dan satu / di akhir diabaikan.example.com mencakup docs.example.com, tetapi docs.example.com tidak mencakup example.com atau api.example.com. Awalan www. adalah subdomain seperti yang lainnya, sehingga www.example.com tidak mencakup example.com; daftarkan domain polos untuk mencakup keduanya.127.1. Daftarkan nama domain situs sebagai gantinya.com, co.uk, atau gov.uk ditolak, begitu pula nama satu label seperti intranet. Daftarkan domain lengkap seperti example.co.uk.localhost dan host yang berakhiran .localhost, .local, .internal, .localdomain, atau .invalid ditolak.xn-- (Punycode) untuk nama domain internasional; domain yang mengandung karakter non-ASCII ditolak.web_fetch tidak dapat menyertakan path: gunakan example.com, bukan example.com/*. Domain web_search dapat membawa sufiks path seperti example.com/blog, di mana path tidak boleh mengandung spasi, ?, #, atau karakter apa pun dari $ , | ^ !. Utamakan hostname biasa untuk web_search juga, karena penyedia pencarian mencocokkan sufiks path sebagai pola URL, bukan sebagai aturan host yang ketat.www.example.com dan example.com dihitung sebagai domain yang berbeda; lihat aturan pencocokan sebelumnya untuk mengetahui apa yang dicakup masing-masing.Pelanggaran format dan batas ditolak dengan 400 invalid_request_error saat Anda membuat agen atau memperbarui agen, dan saat Anda membuat atau memperbarui sesi yang menyediakan tools. Misalnya, pesan untuk entri yang menetapkan kedua daftar mencakup Only one of allowed_domains or blocked_domains may be set., dan pesan untuk daftar kosong mencakup allowed_domains: Empty list of domains is ambiguous. Provide at least one domain or null. Pesan untuk domain yang melanggar aturan format menyebutkan daftarnya dan posisi berbasis nol, misalnya allowed_domains.0: IP addresses are not supported; provide a plain hostname like "example.com".
Permintaan yang sama juga menolak tiga pengaturan yang bergantung pada penyedia pencarian dan pengambilan: domain dalam allowed_domains yang tidak diizinkan untuk diakses oleh crawler Anthropic, user_location.country yang tidak didukung penyedia pencarian (pesannya berakhir dengan user_location.country: not a country the search provider supports), dan user_location.timezone yang bukan nama IANA yang valid. Sesi memeriksa konfigurasi lagi saat pertama kali menginisialisasi alat; jika pengaturan yang sebelumnya diterima tidak lagi valid pada saat itu, sesi memancarkan event session.error dan kembali ke idle tanpa mencoba ulang. Perbaiki pengaturan dengan memperbarui alat sesi, perbarui juga agen agar sesi baru dimulai dengan konfigurasi yang telah diperbaiki, lalu kirim user.message baru untuk melanjutkan.
Dalam sesi multiagen, setiap daftar domain yang berlaku untuk sebuah thread diberlakukan secara bersamaan: agen dalam roster koordinator terikat oleh allowed_domains dan blocked_domains miliknya sendiri, oleh milik agen mana pun yang memanggilnya, dan oleh daftar koordinator saat ini.
blocked_domains mempertahankan allowed_domains koordinator dan memblokir host tersebut di dalamnya, dan agen roster yang menetapkan allowed_domains sendiri hanya dapat menjangkau host yang dicakup oleh daftarnya maupun daftar koordinator.url_not_allowed yang menyatakan bahwa tidak ada domain yang diizinkan, dan deskripsi alat memberi tahu model demikian. Jaga agar allowlist setiap agen roster berada di dalam allowlist koordinator untuk menghindari hal ini.max_content_tokens dan user_location tidak digabungkan: sebuah thread menggunakan nilai dari konfigurasi alatnya sendiri jika ditetapkan, jika tidak dari agen yang memanggilnya, jika tidak dari konfigurasi koordinator saat ini.{"type": "self"} tidak memiliki pengaturan web sendiri dan mengikuti pengaturan koordinator saat ini.web_search dan web_fetch, terlepas dari pengaturan ini.Pengaturan ini menggunakan kosakata allowed_domains dan blocked_domains yang sama dengan pemfilteran domain pada alat server Messages API, dengan perbedaan berikut pada Managed Agents:
web_fetch tidak dapat menyertakan path.max_uses, citations, dan cache_control tidak tersedia pada toolset.Selain alat bawaan, Anda dapat mendefinisikan alat kustom. Alat kustom serupa dengan alat klien yang didefinisikan pengguna di Messages API.
Setiap alat kustom mendefinisikan sebuah kontrak: Anda menentukan operasi apa yang tersedia dan apa yang dikembalikannya, dan Claude menentukan kapan dan bagaimana memanggilnya. Model tidak pernah mengeksekusi apa pun sendiri. Model memancarkan permintaan terstruktur, kode Anda menjalankan operasinya, dan hasilnya mengalir kembali ke dalam percakapan. Lihat Aliran event sesi untuk cara menerima panggilan alat kustom dan mengembalikan hasil selama sesi.
Jika sesi Anda berjalan di sandbox self-hosted, worker environment dapat menyajikan alat kustom dari sandbox Anda, termasuk alat yang membungkus server MCP di dalam jaringan Anda.
ant beta:agents create < agent.yamlname: Weather Agent
model: claude-opus-5
tools:
- type: agent_toolset_20260401
- type: custom
name: get_weather
description: Get current weather for a location
input_schema:
type: object
properties:
location:
type: string
description: City name
required:
- locationSetelah Anda mendefinisikan alat kustom pada agen, agen memanggilnya selama sesi.
create_pr, review_pr, merge_pr), kelompokkan ke dalam satu alat dengan parameter action. Alat yang lebih sedikit namun lebih mumpuni mengurangi ambiguitas pemilihan dan membuat permukaan alat Anda lebih mudah dinavigasi oleh Claude.db_query atau storage_read). Ini membuat pemilihan alat tidak ambigu seiring bertambahnya pustaka Anda.Hubungkan server MCP ke agen Anda untuk akses ke alat eksternal dan sumber data.
Kontrol kapan alat agen dan MCP dieksekusi.
Kirim event, streaming respons, dan interupsi atau alihkan sesi Anda di tengah eksekusi.
Was this page helpful?