Εργαλεία συνομιλίας
Η Συνομιλία μπορεί να επιτρέψει στο μοντέλο να καλεί εργαλεία. Ένας γύρος με ενεργά εργαλεία εκτελεί εγγενή βρόχο πολλών κύκλων: το μοντέλο ζητά ένα εργαλείο, το Libre WebUI το εκτελεί με την ταυτότητα και τα δικαιώματα του χρήστη που το καλεί, το αποτέλεσμα επιστρέφει στο μοντέλο και ο βρόχος συνεχίζεται μέχρι να απαντήσει το μοντέλο — έως οκτώ κύκλους ανά γύρο, με το πολύ οκτώ κλήσεις ανά κύκλο. Η Διακοπή ακυρώνει την κλήση μοντέλου, κάθε κλήση εργαλείου σε εξέλιξη και κάθε εκκρεμή αναμονή έγκρισης.
Οι κλήσεις εργαλείων καταγράφονται ως κανονικοποιημένα συμβάντα (chat.tool-call.v1, chat.tool-result.v1, chat.approval.v1) που μεταφέρονται πανομοιότυπα μέσω της ιδιωτικής διαδρομής WebSocket και της μόνιμης ροής συμβάντων, ώστε μια ανανέωση ή επανασύνδεση να αναπαράγει την ίδια κατάσταση. Ο ολοκληρωμένος γύρος αποθηκεύει τις κλήσεις του, με οριοθετημένες προεπισκοπήσεις αποτελεσμάτων, στο μήνυμα του βοηθού.
Ενεργοποίηση εργαλείων
Τα εργαλεία είναι απενεργοποιημένα από προεπιλογή. Ένας διαχειριστής τα ενεργοποιεί στις Ρυθμίσεις → Διαχείριση χρηστών (μόνο για διαχειριστές ή για όλους τους χρήστες)· κάθε γύρος τα επιλέγει έπειτα μέσω του κλειδιού στον συντάκτη, το οποίο ανοίγει επιλογέα: έναν κεντρικό διακόπτη και ένα πλαίσιο επιλογής για κάθε ενσωματωμένο εργαλείο και κάθε καταχωρισμένο διακομιστή, ώστε ο γύρος να εκτελείται ακριβώς με τα εργαλεία που επιλέγετε. Ο επιλογέας μπορεί να περιορίσει όσα δεσμεύει ένα προφίλ, ποτέ να τα διευρύνει. Οι ιδιωτικές (ανώνυμες) συνομιλίες δεν προσφέρουν ποτέ εργαλεία: μια κλήση εργαλείου είναι ενέργεια προς τα έξω και μπορεί να αφήσει εγκρίσεις και εγγραφές ελέγχου.
Ένα προφίλ βοηθού (περσόνα) μπορεί να περιορίσει τα προσφερόμενα εργαλεία: δεσμευμένοι διακομιστές εργαλείων, υποσύνολο ενσωματωμένων εργαλείων, δεσμευμένες δεξιότητες και συλλογές γνώσης περιορίζουν όσα βλέπει το μοντέλο στις συνεδρίες που χρησιμοποιούν το προφίλ.
Ενσωματωμένα εργαλεία
Η Συνομιλία περιλαμβάνει δεκατρία εργαλεία πρώτου μέρους (όλα μόνο για ανάγνωση, εκτός από τα εργαλεία μεταβολής σημειώσεων και ημερολογίου, τα οποία περνούν από τη ροή έγκρισης παρενεργειών):
web_search— η μηχανή αναζήτησης που ρυθμίζει ο διαχειριστής, σύμφωνα με τη λειτουργία πρόσβασης στην αναζήτηση ιστού.search_documents— υβριδική αναζήτηση στα μεταφορτωμένα έγγραφα και τις συλλογές γνώσης του χρήστη, μαζί με τις συλλογές που του έχουν κοινοποιηθεί (οι δεσμεύσεις προφίλ μπορούν να περιορίσουν τις συλλογές)· κάθε απόσπασμα παραπέμπει στο τμήμα και τη θέση πηγής του.list_documents— παραθέτει τα έγγραφα στο πεδίο της συνομιλίας με τα id, τους τύπους και τα μεγέθη τους, ώστε το μοντέλο να αποφασίσει τι θα διαβάσει.read_document— διαβάζει οριοθετημένο παράθυρο ενός διαθέσιμου εγγράφου βάσει id και μετατόπισης, με ετικέτα της θέσης πηγής, για σταδιακή ανάγνωση αρχείου όταν η ανάκτηση μόνη της δεν αρκεί.load_skill— φορτώνει τις πλήρεις οδηγίες μιας δεξιότητας βάσει slug· η περιγραφή του εργαλείου περιέχει το manifest των ενεργών δεξιοτήτων του χρήστη, ώστε οι δεξιότητες να παραμένουν αδρανείς μέχρι να τις χρειαστεί το μοντέλο. Αν η δεξιότητα περιλαμβάνει συνοδευτικά αρχεία, οι φορτωμένες οδηγίες τελειώνουν με το ευρετήριο αρχείων.read_skill_file— διαβάζει ένα συνοδευτικό αρχείο μιας δεξιότητας βάσει slug και σχετικής διαδρομής, ώστε ένα μεγάλο έγγραφο αναφοράς να μην καταναλώνει περιεχόμενο μέχρι να το ανοίξει πράγματι το μοντέλο.list_notes— παραθέτει τις ιδιόκτητες και κοινόχρηστες σημειώσεις του χρήστη με τα id τους.read_note— διαβάζει ολόκληρο το περιεχόμενο μιας σημείωσης βάσει id.create_note— δημιουργεί σημείωση (έχει παρενέργεια και απαιτεί έγκριση).update_note— αντικαθιστά το περιεχόμενο σημείωσης· η προηγούμενη κατάσταση διατηρείται ως αναθεώρηση που μπορεί να επαναφερθεί, επομένως η επεξεργασία από μοντέλο είναι πάντα αναστρέψιμη (έχει παρενέργεια και απαιτεί έγκριση).list_calendar_events— παραθέτει ιδιόκτητα και κοινόχρηστα συμβάντα ημερολογίου του χρήστη σε εύρος χιλιοστών του δευτερολέπτου από την epoch.create_calendar_event— δημιουργεί συμβάν ημερολογίου (έχει παρενέργεια και απαιτεί έγκριση).delete_calendar_event— διαγράφει ένα συμβάν ημερολογίου βάσει id (έχει παρενέργεια και απαιτεί έγκριση).
Διακομιστές εργαλείων
Οι διαχειριστές καταχωρίζουν εξωτερικούς διακομιστές εργαλείων στις Ρυθμίσεις → Εργαλεία (τα αρχικά πρότυπα προσυμπληρώνουν τη φόρμα, μαζί με ένα ασφαλές δημόσιο API επίδειξης):
- OpenAPI: μια προδιαγραφή JSON OpenAPI 3.x ανακτάται μία φορά και καρφιτσώνεται με σύνοψη SHA-256. Κάθε λειτουργία γίνεται εργαλείο· οι λειτουργίες
GETταξινομούνται ως μόνο για ανάγνωση και όλες οι άλλες ως παρενέργειες μέχρι ο διαχειριστής να παρακάμψει την ταξινόμηση ανά εργαλείο. Η εκτέλεση ανακατασκευάζει την κλήση από την καρφιτσωμένη λειτουργία — τα ορίσματα του μοντέλου δεν επιλέγουν ποτέ τον προορισμό. - MCP (Streamable HTTP): η λίστα εργαλείων του διακομιστή ανακτάται μέσω JSON-RPC και καρφιτσώνεται με τον ίδιο τρόπο. Το
annotations.readOnlyHintεπισημαίνει ένα εργαλείο ως μόνο για ανάγνωση. Οι διακομιστές MCP stdio σκόπιμα δεν υποστηρίζονται: εξωτερικές διεργασίες δεν εκτελούνται ποτέ μέσα στη διεργασία ιστού.
Ένα αλλαγμένο ευρετήριο τίθεται σε ισχύ μόνο όταν ένας διαχειριστής ανανεώσει τον διακομιστή, γεγονός που προωθεί την καρφιτσωμένη αναθεώρηση και διατηρεί τις παρακάμψεις ανά εργαλείο. Η διαθεσιμότητα ανά διακομιστή μπορεί να αφορά μόνο διαχειριστές, όλους τους χρήστες ή να βασίζεται σε παραχωρήσεις μέσω του κοινού μοντέλου παραχώρησης πόρων (παραχωρήσεις χρηστών και ομάδων στον διακομιστή εργαλείων).
Διαπιστευτήρια
Οι διακομιστές που απαιτούν έλεγχο ταυτότητας χρησιμοποιούν διαπιστευτήρια ανά χρήστη (bearer token ή ονομασμένο header). Κάθε μυστικό κρυπτογραφείται με πρόσθετα πιστοποιημένα δεδομένα που το δεσμεύουν στον συγκεκριμένο χρήστη και διακομιστή, εισάγεται από κάθε χρήστη στις Ρυθμίσεις → Εργαλεία και δεν κοινοποιείται ποτέ μεταξύ λογαριασμών.
Πολιτική εξερχόμενης κίνησης
Κάθε αίτημα εργαλείου επιλύει μόνο του τον προορισμό του, αρνείται ιδιωτικό χώρο διευθύνσεων, loopback και μεταδεδομένων και καρφιτσώνει τη σύνδεση στην επιλυμένη διεύθυνση, ώστε μια επαναδέσμευση DNS να μην μπορεί να ανακατευθύνει την κλήση. Οι αποκρίσεις ανακατεύθυνσης απορρίπτονται. Οι αποκρίσεις έχουν όριο μεγέθους και κάθε κλήση έχει αυστηρό timeout. Ακριβή εσωτερικά ονόματα host μπορούν να επιτραπούν με το TOOLS_PRIVATE_NETWORK_ALLOWLIST (διαχωρισμένα με κόμμα)· οι επιτρεπόμενοι host παραμένουν καρφιτσωμένοι και οριοθετημένοι. Η έξοδος εργαλείου επιστρέφει στο μοντέλο ως μη έμπιστο κείμενο.
Εγκρίσεις
Τα εργαλεία μόνο για ανάγνωση εκτελούνται χωρίς να ρωτήσουν. Ένα εργαλείο με παρενέργεια παύει τον γύρο και ζητά από τον χρήστη: μία άδεια, άδεια για αυτή τη συνομιλία, μόνιμη άδεια για αυτό το εργαλείο στον συγκεκριμένο διακομιστή ή απόρριψη. Οι αποφάσεις είναι μόνιμες — μια «μόνιμη» παραχώρηση επιβιώνει από επανεκκινήσεις και ανακαλείται στις Ρυθμίσεις → Εργαλεία — και ένα εκκρεμές αίτημα λήγει μετά από δύο λεπτά, κάτι που το μοντέλο βλέπει ως απόρριψη. Οι απορρίψεις και τα timeout δεν εκτελούν ποτέ την κλήση. Κάθε απόφαση και κάθε κλήση αφήνει ανωνυμοποιημένο συμβάν ελέγχου ασφάλειας.
Παραδείγματα
Ενεργοποιήστε πρώτα τον διακόπτη με το κλειδί στον συντάκτη· κάθε παρακάτω παράδειγμα είναι ένα κανονικό μήνυμα συνομιλίας.
web_search — αναζήτηση πληροφοριών
Τι άλλαξε στην τελευταία έκδοση SQLite; Αναζήτησε στον ιστό πριν απαντήσεις.
Το μοντέλο καλεί το web_search με ερώτημα όπως {"query": "SQLite latest release changelog"}, η κάρτα κλήσης εμφανίζει τα αποσπάσματα αποτελεσμάτων που έλαβε και η απάντηση παραπέμπει σε όσα βρήκε. Απαιτεί ρυθμισμένη αναζήτηση ιστού και άδεια για τον λογαριασμό σας.
search_documents — ερωτήσεις στα δικά σας αρχεία
Μεταφορτώστε ένα PDF ή προσθέστε έγγραφα σε μια συλλογή γνώσης και έπειτα:
Αναζήτησε στα έγγραφά μου τη ρήτρα καταγγελίας και παράθεσέ την ακριβώς.
Το μοντέλο καλεί το search_documents με {"query": "termination clause"} και λαμβάνει αντίστοιχα αποσπάσματα με ετικέτα του εγγράφου προέλευσης, ώστε η απάντηση να μπορεί να τα παραθέσει και να αποδώσει την πηγή.
load_skill — εφαρμογή αποθηκευμένης δεξιότητας
Δημιουργήστε μια δεξιότητα στις Ρυθμίσεις → Δεξιότητες (για παράδειγμα $release-notes — τον τρόπο που θέλετε να γράφονται οι σημειώσεις έκδοσης) και έπειτα:
Σύνταξε σημειώσεις έκδοσης για αυτή τη διαφορά χρησιμοποιώντας το $release-notes.
Το μοντέλο βλέπει τη δεξιότητα στο manifest του, καλεί load_skill {"slug": "release-notes"} για να ανακτήσει τις πλήρεις οδηγίες και τις ακολουθεί. Η πληκτρολόγηση $ στον συντάκτη συμπληρώνει αυτόματα τα slug των δεξιοτήτων σας.
Διακομιστής OpenAPI — για παράδειγμα API καιρού
-
Ρυθμίσεις → Εργαλεία → Καταχώριση διακομιστή: όνομα
Weather, τύποςOpenAPI, βασική URLhttps://api.example-weather.dev, URL προδιαγραφήςhttps://api.example-weather.dev/openapi.json, λειτουργία ελέγχου ταυτότηταςbearer. -
Η προδιαγραφή καρφιτσώνεται και οι λειτουργίες της εμφανίζονται ως εργαλεία — για παράδειγμα
getForecast(GET, μόνο για ανάγνωση) καιcreateAlert(POST, παρενέργεια). -
Κάθε χρήστης που το χρειάζεται αποθηκεύει το δικό του κλειδί API στην κάρτα του διακομιστή.
-
Στη συνομιλία:
Ποια είναι η πρόγνωση για το Μόντρεαλ αυτό το Σαββατοκύριακο;
Το μοντέλο καλεί
weather__getForecast {"city": "Montreal"}και εκτελείται αμέσως — τα εργαλεία μόνο για ανάγνωση δεν ζητούν ποτέ έγκριση.Ειδοποίησέ με αν πέσει κάτω από -20 απόψε.
Το
weather__createAlertέχει παρενέργεια, επομένως ο γύρος παύει με μια κάρτα έγκρισης: Να επιτραπεί μία φορά, Να επιτραπεί για αυτή τη συνομιλία, Να επιτρέπεται πάντα ή Απόρριψη. Τίποτε δεν αποστέλλεται μέχρι να επιλέξετε.
Διακομιστής MCP — για παράδειγμα σύστημα παρακολούθησης ζητημάτων
-
Ρυθμίσεις → Εργαλεία → Καταχώριση διακομιστή: όνομα
Issues, τύποςMCP, βασική URLhttps://mcp.example-tracker.dev/mcp, λειτουργία ελέγχου ταυτότηταςheaderμε όνομα headerX-Api-Key. -
Η λίστα εργαλείων του καρφιτσώνεται· τα εργαλεία που ο διακομιστής επισημαίνει ως μόνο για ανάγνωση (όπως
search_issues) εκτελούνται ελεύθερα, ενώ όλα τα άλλα (όπωςcreate_issue) ζητούν πρώτα έγκριση. -
Στη συνομιλία:
Βρες ανοικτά ζητήματα που αναφέρουν «database lock» και καταχώρισε ένα νέο που συνοψίζει το μοτίβο.
Το
issues__search_issuesεκτελείται αμέσως· τοissues__create_issueεμφανίζει τα ακριβή ορίσματα στην κάρτα έγκρισης, ώστε να διαβάσετε τι πρόκειται να καταχωριστεί πριν το επιτρέψετε.
Μεταβλητές περιβάλλοντος
| Μεταβλητή | Επίδραση |
|---|---|
TOOLS_ACCESS_MODE | Καρφίτσωμα της λειτουργίας εργαλείων σε admins ή all-users και κλείδωμα του διακόπτη διαχειριστή. |
TOOLS_PRIVATE_NETWORK_ALLOWLIST | Ακριβή ονόματα host που επιτρέπεται οι διακομιστές εργαλείων να επιλύουν σε ιδιωτικές διευθύνσεις (λίστα με κόμματα). |
Όρια
- Οι κλήσεις εργαλείων εκτελούνται στη διαδρομή WebSocket (η μεταφορά ιδιωτικής συνεδρίας εξαιρείται εκ σχεδιασμού) και στη μόνιμη διαδρομή δημιουργίας που χρησιμοποιούν οι αποθηκευμένες συνομιλίες. Το παλαιότερο endpoint ροής REST δεν εκτελεί τον βρόχο εργαλείων.
- Οι agents Work καλούν τους ίδιους διακομιστές μέσω της ίδιας πύλης: μόνο εκτελέσεις με δίκτυο, διακομιστές χωρίς αποθηκευμένα διαπιστευτήρια φιλτράρονται κατά την προσφορά και τα εργαλεία με παρενέργεια ελέγχονται από τις εγκρίσεις Work.
- Τα μοντέλα Gemini και CLI agent δεν λαμβάνουν εργαλεία· τα λαμβάνουν οι πάροχοι Ollama, οι συμβατοί με OpenAI, Responses-API και Anthropic.
- Οι διακομιστές MCP πιστοποιούνται με στατικά διαπιστευτήρια ανά χρήστη· δεν μπορεί ακόμη να καταχωριστεί διακομιστής MCP που υποστηρίζει μόνο διαδραστικό OAuth.