Claude Managed Agents menyediakan serangkaian alat bawaan yang dapat digunakan Claude secara otonom dalam sebuah sesi. Anda mengontrol alat mana yang tersedia dengan menentukannya dalam konfigurasi agen.
Claude Managed Agents juga mendukung alat kustom yang ditentukan pengguna. Aplikasi Anda mengeksekusi alat-alat ini secara terpisah dan mengembalikan hasilnya ke Claude, yang kemudian menggunakannya untuk melanjutkan tugas. Untuk memberikan agen alat dari server MCP, gunakan konektor MCP sebagai gantinya.
Toolset agen mencakup alat-alat berikut. Semuanya diaktifkan secara default ketika Anda menyertakan toolset dalam konfigurasi agen Anda. Setiap entri dalam array configs diidentifikasi oleh name-nya, menggunakan nilai-nilai di 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 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 yang dipotong 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 disetujui secara 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 alat, atur enabled: false di entri config-nya dalam objek toolset pada 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, atur 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, atur 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 membawa 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 berapa banyak konten yang diambil masuk ke 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, atur domain yang diizinkan atau diblokir dari baris web_search dan web_fetch pada kartu Built-in tools di formulir agen; atur 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 pada Messages API. |
allowed_domains atau blocked_domains pada sebuah entri, bukan keduanya. Entri yang menetapkan keduanya akan ditolak.null.web_search opsional yang dijelaskan kemudian 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 dasarnya untuk mencakup keduanya.127.1. Daftarkan nama domain situs sebagai gantinya.com, co.uk, atau gov.uk ditolak, begitu pula nama label tunggal seperti intranet. Daftarkan domain lengkap seperti example.co.uk.localhost dan host yang diakhiri dengan .localhost, .local, .internal, .localdomain, atau .invalid ditolak.xn-- (Punycode) untuk nama domain internasional; domain yang berisi 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 dapat berisi spasi, ?, #, atau karakter $ , | ^ ! mana pun. Lebih baik gunakan hostname biasa untuk web_search juga, karena penyedia pencarian mencocokkan sufiks path sebagai pola URL alih-alih sebagai aturan host yang ketat.www.example.com dan example.com dihitung sebagai domain yang berbeda; lihat aturan pencocokan sebelumnya untuk apa yang dicakup masing-masing.Pelanggaran format dan batas ditolak dengan 400 invalid_request_error ketika Anda membuat agen atau memperbarui agen, dan ketika Anda membuat atau memperbarui sesi yang menyediakan tools. Misalnya, pesan untuk entri yang menetapkan kedua daftar menyertakan Only one of allowed_domains or blocked_domains may be set., dan pesan untuk daftar kosong menyertakan 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 search dan fetch: domain dalam allowed_domains yang tidak diizinkan diakses oleh crawler Anthropic, user_location.country yang tidak didukung oleh penyedia pencarian (pesan diakhiri 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 ketika pertama kali menginisialisasi alat; jika pengaturan yang diterima sebelumnya 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 agen juga agar sesi baru dimulai dengan konfigurasi yang telah diperbaiki, lalu kirim user.message baru untuk melanjutkan.
Dalam sesi multiagent, setiap daftar domain yang berlaku untuk sebuah thread diterapkan pada saat yang sama: agen dalam roster koordinator terikat oleh allowed_domains dan blocked_domains miliknya sendiri, oleh daftar 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 miliknya sendiri hanya dapat menjangkau host yang dicakup oleh daftarnya dan 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 diatur, 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 seperti 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 analog dengan alat klien yang ditentukan 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 operasi, 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, environment worker 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 akan 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, stream respons, dan interupsi atau alihkan sesi Anda di tengah eksekusi.
Was this page helpful?