Ιστολόγιο

Αναζήτηση εργαλείων στο Claude Code: πώς ο agent βρίσκει το εργαλείο MCP που χρειάζεται

Markdown

Πώς λειτουργεί η αναζήτηση εργαλείων στο Claude Code: τι φορτώνεται αμέσως στο context, πότε απενεργοποιείται αυτόματα ο μηχανισμός και πώς να ρυθμίσετε τα ENABLE_TOOL_SEARCH και alwaysLoad.

Διαβάστε ολόκληρο το άρθρο

Αν έχετε συνδέσει αρκετούς διακομιστές MCP στο Claude Code, η αναζήτηση εργαλείων τού επιτρέπει να φορτώνει τα εργαλεία που χρειάζεται όταν τα χρειάζεται, χωρίς να φορτώνονται εκ των προτέρων όλοι οι ορισμοί. Κατά την εκκίνηση, ο agent λαμβάνει τα ονόματα των εργαλείων με αναβαλλόμενη φόρτωση και τις οδηγίες των διακομιστών, και στη συνέχεια αναζητά στον κατάλογο ό,τι χρειάζεται. Αυτό τον βοηθά να εργάζεται με ένα μεγάλο σύνολο εργαλείων: η τεκμηρίωση της Anthropic αναφέρει ότι η ακρίβεια επιλογής μειώνεται όταν φορτώνονται ταυτόχρονα περισσότερα από 30-50 εργαλεία. Πρόκειται για γενική καθοδήγηση, όχι για μέτρηση της δικής σας συνεδρίας. Η αναζήτηση εργαλείων είναι ενεργοποιημένη από προεπιλογή όταν το μοντέλο την υποστηρίζει, αλλά η πλατφόρμα, ένας proxy ή οι ρυθμίσεις μπορούν να την απενεργοποιήσουν.

Τεκμηρίωση Ailoot: API, κλειδιά και ρύθμιση.

Τι συμβαίνει στο context χωρίς αναζήτηση εργαλείων

Κάθε συνδεδεμένος διακομιστής MCP προσθέτει τα εργαλεία του στη λίστα με όσα μπορεί να καλέσει ο agent. Χωρίς αναζήτηση εργαλείων, οι ορισμοί τους — όνομα, περιγραφή και σχήμα παραμέτρων — φορτώνονται εκ των προτέρων στο context. Οι διακομιστές συνδέονται στο παρασκήνιο όταν ξεκινά μια συνεδρία. Αν χρειαστεί ένα εργαλείο από διακομιστή που δεν έχει ολοκληρώσει τη σύνδεσή του, το Claude Code περιμένει μέσω του εσωτερικού εργαλείου WaitForMcpServers. Μπορείτε να αξιολογήσετε πόσα εργαλεία και tokens προσθέτει ένας συγκεκριμένος διακομιστής ξεχωριστά για κάθε σύνδεση.

Η επίσημη τεκμηρίωση της Anthropic παραθέτει δύο κατά προσέγγιση μεγέθη (γενικούς αριθμούς, χωρίς δηλωμένη μέθοδο μέτρησης):

  • 50 εργαλεία μπορεί να καταλαμβάνουν 10-20 χιλιάδες tokens context·
  • η ακρίβεια στην επιλογή του κατάλληλου εργαλείου μειώνεται όταν φορτώνονται ταυτόχρονα περισσότερα από 30-50.

Πώς να αξιολογήσετε την αναζήτηση εργαλείων από τις ρυθμίσεις

Για να καταλάβετε αν η αναζήτηση εργαλείων θα πρέπει να λειτουργεί στην τρέχουσα συνεδρία, ελέγξτε τις εξής συνθήκες:

  • ποιο μοντέλο απαντά — Sonnet/Haiku/Opus 4.5 ή νεότερο: ο μηχανισμός είναι διαθέσιμος· παλαιότερο μοντέλο: δεν είναι·
  • αν το ANTHROPIC_BASE_URL έχει οριστεί σε μη τυπικό host — σε αυτήν την περίπτωση, ο μηχανισμός είναι απενεργοποιημένος από προεπιλογή, εκτός αν ενεργοποιηθεί ρητά μέσω του ENABLE_TOOL_SEARCH·
  • την τιμή της μεταβλητής ENABLE_TOOL_SEARCH — το false απενεργοποιεί πλήρως τον μηχανισμό· το auto/auto:N τον ενεργοποιεί μόνο όταν ο όγκος των ορισμών φτάσει ένα όριο·
  • αν έχει οριστεί το CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS — χωρίς τις διαχειριζόμενες ρυθμίσεις του οργανισμού, διατηρεί την αναζήτηση εργαλείων απενεργοποιημένη ακόμη κι αν ο χρήστης έχει ορίσει το ENABLE_TOOL_SEARCH·
  • αν το εργαλείο ToolSearch αποκλείεται μέσω του permissions.deny στις ρυθμίσεις — ένας τέτοιος περιορισμός απενεργοποιεί την αναζήτηση·
  • ποια πλατφόρμα χρησιμοποιείται — ο μηχανισμός δεν είναι διαθέσιμος σε αναπτύξεις Microsoft Foundry στο Azure, ενώ στο Google Cloud Agent Platform η συμπεριφορά του εξαρτάται από την έκδοση του Claude Code και το μοντέλο.

Αυτός ο έλεγχος σάς επιτρέπει να αξιολογήσετε την κατάσταση από τη διαμόρφωση, αλλά όχι να την παρατηρήσετε μέσα στη συνεδρία. Η ενότητα MCP και η ενότητα αναζήτησης εργαλείων στην τεκμηρίωση του Agent SDK δεν περιγράφουν άμεση ένδειξη «αναζήτηση εργαλείων: ενεργοποιημένη/απενεργοποιημένη» στη διεπαφή. Το ότι δεν υπάρχει σχετική αναφορά σε αυτά τα δύο έγγραφα δεν αποδεικνύει ότι δεν υπάρχει τέτοια ένδειξη πουθενά.

Μπορείτε να ορίσετε τη μεταβλητή πριν ξεκινήσετε μια συνεδρία, για παράδειγμα ENABLE_TOOL_SEARCH=auto:15 claude. Για να διασφαλίσετε ότι τα εργαλεία ενός συγκεκριμένου διακομιστή φορτώνονται πάντα, χρησιμοποιήστε το πεδίο alwaysLoad: true στη διαμόρφωση αυτού του διακομιστή. Είναι διαθέσιμο για όλους τους τύπους διακομιστών· οι συνθήκες και οι περιορισμοί περιγράφονται στην παρακάτω ενότητα alwaysLoad.

Πώς λειτουργεί η αναζήτηση εργαλείων

Όταν είναι ενεργοποιημένη η αναζήτηση εργαλείων, κατά την εκκίνηση της συνεδρίας φορτώνονται στο context μόνο τα ονόματα των εργαλείων με αναβαλλόμενη φόρτωση και οι οδηγίες του διακομιστή. Οι οδηγίες του διακομιστή περιγράφουν για ποιες εργασίες είναι χρήσιμος. Όταν μια εργασία απαιτεί δυνατότητα που δεν υπάρχει ακόμη στο context, ο agent αναζητά μόνος του στον κατάλογο ένα κατάλληλο εργαλείο.

Η τεκμηρίωση του Agent SDK περιγράφει λεπτομερέστερα τον μηχανισμό αναζήτησης: από προεπιλογή, μία αναζήτηση φορτώνει έως και πέντε από τα πιο σχετικά εργαλεία του καταλόγου. Παραμένουν διαθέσιμα για τις επόμενες σειρές μηνυμάτων της συνεδρίας, έως ότου το SDK συμπτύξει τα μηνύματα στα οποία τα εντόπισε ο agent. Μετά τη σύμπτυξη, τα εργαλεία που είχαν εντοπιστεί προηγουμένως μπορεί να απομακρυνθούν από το context και ο agent τα αναζητά ξανά την επόμενη φορά που θα τα χρειαστεί. Ο κατάλογος υποστηρίζει έως και 10 000 εργαλεία. Η τεκμηρίωση MCP του ίδιου του Claude Code δεν παραθέτει αυτά τα συγκεκριμένα μεγέθη, αλλά περιγράφει την ίδια αρχή της αναβαλλόμενης φόρτωσης.

Σύμφωνα με την τεκμηρίωση του Agent SDK, κάθε αναζήτηση προσθέτει έναν επιπλέον κύκλο επικοινωνίας. Η τεκμηρίωση δεν διευκρινίζει ακριβώς τι περιλαμβάνει αυτός ο κύκλος. Για το Claude Code, η τεκμηρίωση MCP περιγράφει επίσης διαφορά στην αναφορά σφαλμάτων: χωρίς αναζήτηση εργαλείων, το Claude Code δεν ενημερώνει το μοντέλο για αποτυχημένες συνδέσεις διακομιστών. Όταν είναι ενεργοποιημένη η αναζήτηση, το μοντέλο λαμβάνει πληροφορίες για το ποιος διακομιστής απέτυχε να συνδεθεί και ποιο ήταν το σφάλμα.

Το Claude Code δεν επιβάλλει σταθερό όριο στον αριθμό εργαλείων από έναν μόνο διακομιστή. Το πρακτικό όριο είναι ο προϋπολογισμός του παραθύρου context για τη συγκεκριμένη συνεδρία.

Η διαμόρφωση εργαλείων είναι μία από τις εργασίες που περιλαμβάνει η διαχείριση του context ενός AI agent.

Πότε η αναζήτηση εργαλείων είναι απενεργοποιημένη από προεπιλογή

Ο μηχανισμός είναι ενεργοποιημένος από προεπιλογή, αλλά η λειτουργία του εξαρτάται από το μοντέλο, τον host API και την πλατφόρμα.

Μοντέλο. Η αναζήτηση εργαλείων απαιτεί μοντέλο που υποστηρίζει blocks tool_reference: Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.5 ή νεότερο. Για παλαιότερα μοντέλα, το Claude Code φορτώνει εκ των προτέρων τους ορισμούς των εργαλείων.

Host API. Το Claude Code απενεργοποιεί την αναζήτηση εργαλείων όταν η μεταβλητή ANTHROPIC_BASE_URL δείχνει σε host τρίτου μέρους: οι περισσότεροι proxy δεν προωθούν τα ειδικά blocks tool_reference. Αυτό ισχύει όταν συνδέεστε στο Claude μέσω δικής σας πύλης ή διακομιστή proxy αντί απευθείας μέσω της διεύθυνσης της Anthropic. Η αιτία απενεργοποίησης είναι ένα μη τυπικό ANTHROPIC_BASE_URL· ο τρόπος πληρωμής της συνδρομής δεν προκαλεί από μόνος του αυτήν την απενεργοποίηση. Μπορείτε να ορίσετε ρητά το ENABLE_TOOL_SEARCH για να παρακάμψετε αυτήν τη συμπεριφορά. Αν ο ίδιος ο proxy δεν υποστηρίζει blocks tool_reference, η αναγκαστική ενεργοποίηση του μηχανισμού οδηγεί σε σφάλμα αιτήματος. Σε αυτήν την περίπτωση, δεν γίνεται εναλλακτική φόρτωση των ορισμών εκ των προτέρων.

Πλατφόρμα ανάπτυξης. Η αναζήτηση εργαλείων δεν λειτουργεί σε αναπτύξεις Microsoft Foundry που φιλοξενούνται στο Azure: ο διακομιστής απορρίπτει το αίτημα και το ENABLE_TOOL_SEARCH δεν το παρακάμπτει. Στο Google Cloud Agent Platform, πριν από την έκδοση 2.1.221 του Claude Code, ο μηχανισμός ήταν απενεργοποιημένος για όλα τα μοντέλα, εκτός αν είχε οριστεί ρητά το ENABLE_TOOL_SEARCH=true. Από αυτήν την έκδοση και μετά, είναι ενεργοποιημένος από προεπιλογή για Opus/Sonnet/Haiku 4.5 και νεότερα μοντέλα. Για παλαιότερα μοντέλα στην πλατφόρμα, το Claude Code εξακολουθεί να φορτώνει εκ των προτέρων όλα τα εργαλεία, επειδή η υποδομή του διακομιστή τους απορρίπτει την απαιτούμενη εσωτερική κεφαλίδα.

Η μεταβλητή ENABLE_TOOL_SEARCH έχει πέντε πιθανές ρυθμίσεις:

  • unset — η τυπική συμπεριφορά, με τις εξαιρέσεις που αναφέρονται παραπάνω·
  • true — ο μηχανισμός ενεργοποιείται στα μοντέλα που τον υποστηρίζουν, εκτός από δύο περιπτώσεις: Azure Foundry και παλαιότερα μοντέλα Agent Platform· τα αιτήματα που αποστέλλονται μέσω proxy χωρίς υποστήριξη blocks tool_reference θα αποτύχουν·
  • auto — το Claude Code φορτώνει εκ των προτέρων τα εργαλεία όσο οι συνδυασμένοι ορισμοί τους καταλαμβάνουν λιγότερο από το 10% του παραθύρου context και μεταβαίνει στην αναβαλλόμενη φόρτωση μόλις φτάσει αυτό το όριο·
  • auto:N — η ίδια αρχή, με ποσοστιαίο όριο που ορίζεται χειροκίνητα·
  • false — ο μηχανισμός απενεργοποιείται πλήρως και όλα τα εργαλεία φορτώνονται εκ των προτέρων.

Υπάρχει επίσης η μεταβλητή CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS: αν έχει οριστεί, η αναζήτηση εργαλείων παραμένει απενεργοποιημένη και η ρύθμιση ENABLE_TOOL_SEARCH από τον χρήστη δεν αλλάζει αυτό. Εξαίρεση αποτελεί η περίπτωση όπου ο οργανισμός διατηρεί ενεργοποιημένη την αναζήτηση εργαλείων μέσω διαχειριζόμενων ρυθμίσεων, οι οποίες είναι διαθέσιμες από την έκδοση 2.1.227 του Claude Code.

Τι κάνει το alwaysLoad και πώς επηρεάζει το context και την εκκίνηση

Το πεδίο alwaysLoad: true στη διαμόρφωση ενός διακομιστή είναι διαθέσιμο για όλους τους τύπους διακομιστών. Με αυτό, όλα τα εργαλεία αυτού του διακομιστή φορτώνονται στο context κατά την εκκίνηση, ανεξάρτητα από τη ρύθμιση ENABLE_TOOL_SEARCH. Ο agent δεν χρειάζεται να τα αναζητήσει πριν τα χρησιμοποιήσει.

Η φόρτωση εργαλείων εκ των προτέρων έχει δύο συνέπειες. Κάθε εργαλείο που φορτώνεται εκ των προτέρων καταλαμβάνει μέρος του context που διαφορετικά θα ήταν διαθέσιμο για την ίδια την εργασία. Επιπλέον, η εκκίνηση της συνεδρίας περιμένει να συνδεθεί αυτός ο διακομιστής, εντός του τυπικού χρονικού ορίου των πέντε δευτερολέπτων.

Εξαίρεση αποτελεί ένας απομακρυσμένος διακομιστής με έγκυρη καταχώριση στην προσωρινή μνήμη: παρέχει τα εργαλεία από την προσωρινή μνήμη χωρίς να συνδεθεί και δεν καθυστερεί την εκκίνηση. Η προσωρινή μνήμη εντοπισμού είναι απενεργοποιημένη από προεπιλογή, εκτός αν έχει ήδη ενεργοποιηθεί για τον λογαριασμό κατά τη σταδιακή διάθεση της δυνατότητας. Μπορείτε επίσης να την ενεργοποιήσετε ρητά μέσω του MCP_DISCOVERY_CACHE=1. Η εξαίρεση της γρήγορης εκκίνησης ισχύει όταν η προσωρινή μνήμη είναι ενεργή και περιέχει έγκυρη καταχώριση. Τα εργαλεία με alwaysLoad εξακολουθούν να καταλαμβάνουν μόνιμα χώρο στο context, ανεξάρτητα από το αν ο agent θα τα χρειαζόταν κατά την εργασία μέσω αναζήτησης.

Για όποιον γράφει δικό του διακομιστή MCP: οι οδηγίες του διακομιστή βοηθούν το Claude να καταλάβει πότε να αναζητήσει τα εργαλεία του, όπως κάνουν και τα Skills. Το Claude Code περικόπτει από προεπιλογή την περιγραφή κάθε εργαλείου και τις οδηγίες κάθε διακομιστή στους 2048 χαρακτήρες, γι’ αυτό τοποθετήστε τις κρίσιμες λεπτομέρειες στην αρχή.

Η επιλογή του τρόπου επέκτασης του Claude Code εξαρτάται από περισσότερα πράγματα από τον αριθμό των συνδεδεμένων διακομιστών MCP. Οι οδηγοί Claude Code: πόσες επεκτάσεις να διατηρείτε ταυτόχρονα και Τι να επιλέξετε στο Claude Code: Skills, Subagents, MCP ή Plugins εξετάζουν τα Skills, Subagents, MCP και Plugins για διαφορετικές εργασίες. Για αναλυτικές οδηγίες ρύθμισης συγκεκριμένων διακομιστών MCP, δείτε Διακομιστές MCP για το Claude Code: έτοιμοι συνδυασμοί.

Τι ακολουθεί

Για ένα σύνολο με λιγότερα από περίπου 10 εργαλεία, των οποίων οι ορισμοί χωρούν στο context χωρίς δυσκολία, η τεκμηρίωση του Agent SDK αναφέρει ότι η φόρτωσή τους όλων μαζί είναι συνήθως ταχύτερη. Ωστόσο, στην προεπιλεγμένη συμπεριφορά του Claude Code, όταν η μεταβλητή δεν έχει οριστεί και δεν ισχύει κανένας από τους παραπάνω περιορισμούς, η αναζήτηση εργαλείων είναι ενεργοποιημένη και η φόρτωση των εργαλείων MCP αναβάλλεται μέχρι την αναζήτηση, εκτός από τους διακομιστές με alwaysLoad.

Σε αυτήν την περίπτωση, μπορείτε να ορίσετε ρητά το ENABLE_TOOL_SEARCH=auto: οι ορισμοί θα φορτώνονται εκ των προτέρων όσο ο συνδυασμένος όγκος τους είναι μικρότερος από το 10% του παραθύρου context και η αναζήτηση θα ενεργοποιείται όταν φτάσει το όριο. Μια άλλη επιλογή είναι το ENABLE_TOOL_SEARCH=false, αν γνωρίζετε ότι το σύνολο δεν πρόκειται να μεγαλώσει. Σε αυτήν την περίπτωση, το Claude Code θα σταματήσει να ενημερώνει το μοντέλο για αποτυχημένες συνδέσεις διακομιστών, όπως περιγράφεται παραπάνω.

Σε άλλες περιπτώσεις, ελέγξτε ξανά τις συνθήκες λειτουργίας όταν αλλάξει το περιβάλλον:

  • μεταβείτε σε Sonnet/Haiku/Opus 4.5 ή νεότερο, αν η συνεδρία χρησιμοποιεί παλαιότερο μοντέλο·
  • αν η σύνδεση χρησιμοποιεί μη τυπικό ANTHROPIC_BASE_URL, ορίστε ρητά ENABLE_TOOL_SEARCH=true μόνο όταν ο proxy προωθεί τα ίδια τα blocks tool_reference·
  • βεβαιωθείτε ότι η πλατφόρμα ανάπτυξης δεν ανήκει στις εξαιρέσεις: Azure Foundry ή παλαιότερα μοντέλα Google Cloud Agent Platform.

Αν πληρούνται οι συνθήκες και οι ρυθμίσεις δεν αποκλείουν την αναζήτηση, μπορείτε να συνδέσετε τους διακομιστές MCP που χρειάζεστε. Χρησιμοποιήστε το alwaysLoad μόνο για εκείνους των οποίων τα εργαλεία χρειάζονται σε κάθε σειρά μηνυμάτων της συνεδρίας· αφήστε τα υπόλοιπα να φορτώνονται μέσω αναζήτησης.

Αν χρειάζεστε πρόσβαση σε μοντέλα AI μέσω του Ailoot, ρίξτε μια ματιά στο Ailoot.

Περισσότερες λεπτομέρειες

Ερωτήσεις και απαντήσεις: Αναζήτηση εργαλείων στο Claude Code: πώς ο agent βρίσκει το εργαλείο MCP που χρειάζεται

Γιατί η αναζήτηση εργαλείων μπορεί να αποτυγχάνει πίσω από proxy ακόμη και όταν είναι ενεργή;

Ένας εξωτερικός API host πρέπει να υποστηρίζει blocks tool_reference. Η αναγκαστική ενεργοποίηση ENABLE_TOOL_SEARCH δεν προσθέτει υποστήριξη· ένας ασύμβατος proxy μπορεί να απορρίπτει το αίτημα αντί να επιστρέφει σε άμεση φόρτωση όλων των εργαλείων.

Πότε ορίζω alwaysLoad για διακομιστή MCP;

Χρησιμοποιήστε το όταν χρειάζονται τα εργαλεία του διακομιστή σε κάθε γύρο. Όλοι οι ορισμοί εργαλείων καταλαμβάνουν τότε context εκκίνησης και η εκκίνηση μπορεί να περιμένει τη σύνδεση, εκτός αν ισχύει έγκυρη καταχώριση discovery-cache.

Όλα τα άρθρα