Blog

Carian Alat dalam Claude Code: Cara Ejen Menemukan Alat MCP yang Diperlukan

Markdown

Cara carian alat berfungsi dalam Claude Code: perkara yang dimuatkan ke dalam konteks serta-merta, bila mekanisme ini dimatikan sendiri dan cara mengkonfigurasi ENABLE_TOOL_SEARCH dan alwaysLoad.

Baca artikel penuh

Jika anda telah menyambungkan beberapa pelayan MCP kepada Claude Code, carian alat membolehkannya memuatkan alat yang diperlukan apabila perlu, tanpa memuatkan semua definisi terlebih dahulu. Semasa permulaan, ejen menerima nama alat tertunda dan arahan pelayan, kemudian mencari perkara yang diperlukan dalam katalog. Ini membantunya bekerja dengan set alat yang besar: dokumentasi Anthropic menyatakan bahawa ketepatan pemilihan menurun apabila lebih daripada 30-50 alat dimuatkan serentak. Ini panduan umum, bukannya ukuran sesi anda. Carian alat didayakan secara lalai apabila model menyokongnya, tetapi platform, proksi atau tetapan boleh melumpuhkannya.

Dokumentasi Ailoot: API, kunci dan persediaan.

Perkara yang berlaku pada konteks tanpa carian alat

Setiap pelayan MCP yang disambungkan menambahkan alatnya pada senarai perkara yang boleh dipanggil oleh ejen. Tanpa carian alat, definisi alat — nama, perihalan dan skema parameter — dimuatkan lebih awal ke dalam konteks. Pelayan bersambung di latar belakang apabila sesi bermula. Jika alat daripada pelayan yang belum selesai bersambung diperlukan, Claude Code menunggu melalui alat dalaman WaitForMcpServers. Anda boleh menilai secara berasingan bilangan alat dan token yang ditambahkan oleh pelayan tertentu bagi setiap sambungan.

Dokumentasi rasmi Anthropic memberikan dua angka anggaran (angka umum tanpa kaedah pengukuran yang dinyatakan):

  • 50 alat boleh menggunakan 10-20 ribu token konteks;
  • ketepatan pemilihan alat yang betul menurun apabila lebih daripada 30-50 alat dimuatkan serentak.

Cara menilai carian alat daripada tetapan

Untuk memahami sama ada carian alat sepatutnya berfungsi dalam sesi semasa, semak syarat berikut:

  • model yang sedang menjawab — Sonnet/Haiku/Opus 4.5 atau lebih baharu: mekanisme ini tersedia; model yang lebih lama: tidak tersedia;
  • sama ada ANTHROPIC_BASE_URL ditetapkan kepada hos bukan standard — dalam keadaan itu, mekanisme ini dimatikan secara lalai melainkan didayakan secara jelas melalui ENABLE_TOOL_SEARCH;
  • nilai pemboleh ubah ENABLE_TOOL_SEARCH — false melumpuhkan mekanisme ini sepenuhnya; auto/auto:N mendayakannya hanya apabila jumlah definisi mencapai ambang tertentu;
  • sama ada CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS ditetapkan — tanpa tetapan terurus organisasi, pemboleh ubah ini memastikan carian alat kekal dimatikan walaupun pengguna telah menetapkan ENABLE_TOOL_SEARCH;
  • sama ada alat ToolSearch disekat melalui permissions.deny dalam tetapan — sekatan sedemikian melumpuhkan carian;
  • platform yang digunakan — mekanisme ini tidak tersedia pada penggunaan Microsoft Foundry di Azure, manakala tingkah lakunya pada Google Cloud Agent Platform bergantung pada versi Claude Code dan model.

Semakan ini membolehkan anda menilai keadaan berdasarkan konfigurasi, tetapi bukan memerhatikannya dalam sesi. Bahagian MCP dan bahagian carian alat dalam dokumentasi Agent SDK tidak menerangkan penunjuk langsung “carian alat: hidup/mati” dalam antara muka. Ketiadaan sebutan dalam dua dokumen ini tidak membuktikan bahawa penunjuk sedemikian tidak wujud di tempat lain.

Anda boleh menetapkan pemboleh ubah sebelum memulakan sesi, contohnya ENABLE_TOOL_SEARCH=auto:15 claude. Untuk memastikan alat daripada pelayan tertentu sentiasa dimuatkan, gunakan medan alwaysLoad: true dalam konfigurasi pelayan itu. Medan ini tersedia untuk semua jenis pelayan; syarat dan batasannya diterangkan di bahagian alwaysLoad di bawah.

Cara carian alat berfungsi

Apabila carian alat didayakan, hanya nama alat tertunda dan arahan pelayan dimuatkan ke dalam konteks semasa permulaan sesi. Arahan pelayan menerangkan tugas yang sesuai dilakukan dengan pelayan itu. Apabila sesuatu tugas memerlukan keupayaan yang belum berada dalam konteks, ejen mencari alat yang sesuai dalam katalog sendiri.

Dokumentasi Agent SDK menerangkan mekanisme carian dengan lebih terperinci: secara lalai, satu carian memuatkan sehingga lima alat yang paling relevan daripada katalog. Alat tersebut kekal tersedia untuk giliran seterusnya dalam sesi sehingga SDK memadatkan mesej yang mengandungi penemuan ejen itu. Selepas pemadatan, alat yang ditemui sebelum ini mungkin terkeluar daripada konteks, lalu ejen mencarinya semula apabila diperlukan pada kali berikutnya. Katalog menyokong sehingga 10 000 alat. Dokumentasi MCP untuk Claude Code sendiri tidak menyatakan angka khusus ini, tetapi menerangkan prinsip pemuatan tertunda yang sama.

Menurut dokumentasi Agent SDK, setiap carian menambahkan satu perjalanan ulang-alik. Dokumentasi tidak menyatakan dengan tepat perkara yang terkandung dalam perjalanan ulang-alik itu. Bagi Claude Code, dokumentasi MCP turut menerangkan perbezaan dalam pelaporan ralat: tanpa carian alat, Claude Code tidak memberitahu model tentang sambungan pelayan yang gagal. Apabila carian didayakan, model menerima maklumat tentang pelayan yang gagal disambungkan dan ralat yang berlaku.

Claude Code tidak mengenakan had tetap pada bilangan alat daripada satu pelayan. Had praktikalnya ialah bajet tetingkap konteks bagi sesi tertentu.

Mengkonfigurasi alat ialah salah satu tugas yang terlibat dalam pengurusan konteks ejen AI.

Bila carian alat dimatikan secara lalai

Mekanisme ini didayakan secara lalai, tetapi operasinya bergantung pada model, hos API dan platform.

Model. Carian alat memerlukan model yang menyokong blok tool_reference: Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.5 atau yang lebih baharu. Bagi model yang lebih lama, Claude Code memuatkan definisi alat terlebih dahulu.

Hos API. Claude Code melumpuhkan carian alat apabila pemboleh ubah ANTHROPIC_BASE_URL menunjuk kepada hos pihak ketiga: kebanyakan proksi tidak meneruskan blok tool_reference khas. Ini terpakai apabila menyambung kepada Claude melalui get laluan atau pelayan proksi anda sendiri dan bukannya terus menggunakan alamat Anthropic. Sebab carian dilumpuhkan ialah ANTHROPIC_BASE_URL bukan standard; cara langganan dibayar bukan penyebabnya. Anda boleh menetapkan ENABLE_TOOL_SEARCH secara jelas untuk mengatasi tingkah laku ini. Jika proksi itu sendiri tidak menyokong blok tool_reference, memaksa mekanisme ini dihidupkan akan menyebabkan ralat permintaan. Dalam keadaan ini, sistem tidak akan beralih kepada pemuatan definisi terlebih dahulu.

Platform penggunaan. Carian alat tidak berfungsi pada penggunaan Microsoft Foundry yang dihoskan di Azure: pelayan menolak permintaan, dan ENABLE_TOOL_SEARCH tidak mengatasi keadaan ini. Pada Google Cloud Agent Platform, sebelum Claude Code versi 2.1.221, mekanisme ini dimatikan untuk semua model melainkan ENABLE_TOOL_SEARCH=true ditetapkan secara jelas. Bermula dengan versi itu, mekanisme ini didayakan secara lalai untuk Opus/Sonnet/Haiku 4.5 dan yang lebih baharu. Bagi model yang lebih lama pada platform tersebut, Claude Code masih memuatkan semua alat terlebih dahulu kerana infrastruktur pelayannya menolak pengepala dalaman yang diperlukan.

Pemboleh ubah ENABLE_TOOL_SEARCH mempunyai lima tetapan yang mungkin:

  • tidak ditetapkan — tingkah laku standard, tertakluk pada pengecualian yang disenaraikan di atas;
  • true — mekanisme ini didayakan pada model yang menyokongnya, kecuali dalam dua keadaan: Azure Foundry dan model Agent Platform yang lebih lama; permintaan yang dihantar melalui proksi tanpa sokongan untuk blok tool_reference akan gagal;
  • auto — Claude Code memuatkan alat terlebih dahulu selagi jumlah definisinya menggunakan kurang daripada 10% tetingkap konteks, kemudian beralih kepada pemuatan tertunda apabila ambang itu dicapai;
  • auto:N — prinsip yang sama, dengan ambang peratusan yang ditetapkan secara manual;
  • false — mekanisme ini dilumpuhkan sepenuhnya dan semua alat dimuatkan terlebih dahulu.

Terdapat juga pemboleh ubah CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS: jika ditetapkan, carian alat kekal dimatikan dan tetapan ENABLE_TOOL_SEARCH oleh pengguna tidak mengubah keadaan itu. Pengecualiannya ialah apabila organisasi memastikan carian alat didayakan melalui tetapan terurus, yang tersedia mulai Claude Code versi 2.1.227.

Fungsi alwaysLoad dan kesannya pada konteks serta permulaan

Medan alwaysLoad: true dalam konfigurasi pelayan tersedia untuk semua jenis pelayan. Dengan medan ini, semua alat pelayan tersebut dimuatkan ke dalam konteks semasa permulaan tanpa mengira tetapan ENABLE_TOOL_SEARCH. Ejen tidak perlu mencarinya sebelum digunakan.

Pemuatan alat secara berterusan mempunyai dua akibat. Setiap alat yang dimuatkan terlebih dahulu menggunakan sebahagian konteks yang sebaliknya boleh digunakan untuk tugas itu sendiri. Selain itu, permulaan sesi menunggu pelayan ini bersambung, dalam tempoh tamat masa standard selama lima saat.

Pengecualiannya ialah pelayan jauh yang mempunyai entri cache yang sah: pelayan itu membekalkan alat daripada cache tanpa menyambung dan tidak melambatkan permulaan. Cache penemuan dimatikan secara lalai, melainkan cache itu telah pun didayakan untuk akaun tersebut semasa pelancaran ciri secara berperingkat. Anda juga boleh mendayakannya secara jelas melalui MCP_DISCOVERY_CACHE=1. Pengecualian permulaan pantas terpakai apabila cache aktif dan mengandungi entri yang sah. Alat dengan alwaysLoad tetap menggunakan konteks secara berterusan, tanpa mengira sama ada ejen memerlukannya ketika bekerja melalui carian.

Bagi sesiapa yang menulis pelayan MCP sendiri: arahan pelayan membantu Claude memahami bila perlu mencari alatnya, sama seperti Skills. Secara lalai, Claude Code memendekkan perihalan setiap alat dan arahan setiap pelayan kepada 2048 aksara, jadi letakkan butiran penting pada permulaan.

Pemilihan cara untuk melanjutkan Claude Code bergantung pada lebih daripada bilangan pelayan MCP yang disambungkan. Panduan Claude Code: berapa banyak sambungan perlu dikekalkan pada satu-satu masa dan Perkara yang perlu dipilih dalam Claude Code: Skills, Subagents, MCP atau Plugins meneliti Skills, Subagents, MCP dan Plugins untuk tugas yang berbeza. Untuk persediaan langkah demi langkah bagi pelayan MCP tertentu, lihat Pelayan MCP untuk Claude Code: gabungan sedia digunakan.

Seterusnya

Bagi set yang mengandungi kurang daripada kira-kira 10 alat dan definisinya muat dalam konteks tanpa kesukaran, dokumentasi Agent SDK menyatakan bahawa memuatkan semuanya serentak biasanya lebih pantas. Walau bagaimanapun, dalam tingkah laku lalai Claude Code, apabila pemboleh ubah itu tidak ditetapkan dan tiada batasan di atas terpakai, carian alat didayakan dan pemuatan alat MCP ditangguhkan sehingga carian dilakukan, kecuali untuk pelayan dengan alwaysLoad.

Di sini, anda boleh menetapkan ENABLE_TOOL_SEARCH=auto secara jelas: definisi akan dimuatkan terlebih dahulu selagi jumlah gabungannya kurang daripada 10% tetingkap konteks, dan carian akan didayakan apabila ambang dicapai. Pilihan lain ialah ENABLE_TOOL_SEARCH=false jika anda tahu set itu tidak akan bertambah. Dalam keadaan itu, Claude Code akan berhenti memberitahu model tentang kegagalan sambungan pelayan, seperti yang diterangkan di atas.

Dalam keadaan lain, semak semula syarat operasi apabila persekitaran berubah:

  • beralih kepada Sonnet/Haiku/Opus 4.5 atau yang lebih baharu jika sesi menggunakan model yang lebih lama;
  • jika sambungan menggunakan ANTHROPIC_BASE_URL bukan standard, tetapkan ENABLE_TOOL_SEARCH=true secara jelas hanya apabila proksi itu sendiri meneruskan blok tool_reference;
  • pastikan platform penggunaan bukan dalam senarai pengecualian: Azure Foundry atau model Google Cloud Agent Platform yang lebih lama.

Jika syarat dipenuhi dan carian tidak disekat oleh tetapan, anda boleh menyambungkan pelayan MCP yang diperlukan. Gunakan alwaysLoad hanya untuk pelayan yang alatnya diperlukan pada setiap giliran sesi; biarkan alat pelayan yang lain dimuatkan melalui carian.

Jika anda memerlukan akses kepada model AI melalui Ailoot, lihat Ailoot.

Butiran lanjut

Soalan lazim: Carian Alat dalam Claude Code: Cara Ejen Menemukan Alat MCP yang Diperlukan

Mengapakah carian alat boleh gagal di belakang proksi walaupun didayakan?

Hos API pihak ketiga mesti menyokong blok tool_reference. Memaksa ENABLE_TOOL_SEARCH aktif tidak boleh menambah sokongan itu; proksi tidak serasi boleh menolak permintaan daripada kembali kepada pemuatan awal semua alat.

Bilakah saya patut menetapkan alwaysLoad bagi pelayan MCP?

Gunakannya apabila alat pelayan diperlukan pada setiap pusingan. Semua definisi alatnya kemudian memenuhi konteks permulaan, dan permulaan boleh menunggu sambungan melainkan entri cache penemuan yang sah terpakai.

Semua artikel