Μετάβαση στο κύριο περιεχόμενο

Εργαλεία συνομιλίας

Η Συνομιλία μπορεί να επιτρέψει στο μοντέλο να καλεί εργαλεία. Ένας γύρος με ενεργά εργαλεία εκτελεί εγγενή βρόχο πολλών κύκλων: το μοντέλο ζητά ένα εργαλείο, το Libre WebUI το εκτελεί με την ταυτότητα και τα δικαιώματα του χρήστη που το καλεί, το αποτέλεσμα επιστρέφει στο μοντέλο και ο βρόχος συνεχίζεται μέχρι να απαντήσει το μοντέλο — έως οκτώ κύκλους ανά γύρο, με το πολύ οκτώ κλήσεις ανά κύκλο. Η Διακοπή ακυρώνει την κλήση μοντέλου, κάθε κλήση εργαλείου σε εξέλιξη και κάθε εκκρεμή αναμονή έγκρισης.

Οι κλήσεις εργαλείων καταγράφονται ως κανονικοποιημένα συμβάντα (chat.tool-call.v1, chat.tool-result.v1, chat.approval.v1) που μεταφέρονται πανομοιότυπα μέσω της ιδιωτικής διαδρομής WebSocket και της μόνιμης ροής συμβάντων, ώστε μια ανανέωση ή επανασύνδεση να αναπαράγει την ίδια κατάσταση. Ο ολοκληρωμένος γύρος αποθηκεύει τις κλήσεις του, με οριοθετημένες προεπισκοπήσεις αποτελεσμάτων, στο μήνυμα του βοηθού.

Ενεργοποίηση εργαλείων​

Τα εργαλεία είναι απενεργοποιημένα από προεπιλογή. Ένας διαχειριστής τα ενεργοποιεί στις Ρυθμίσεις → Διαχείριση χρηστών → Πρόσβαση και πολιτικές → Πρόσβαση εργαλείων (μόνο για διαχειριστές ή για όλους τους χρήστες)· κάθε γύρος τα επιλέγει έπειτα μέσω του κλειδιού στον συντάκτη, το οποίο ανοίγει επιλογέα: έναν κεντρικό διακόπτη και ένα πλαίσιο επιλογής για κάθε ενσωματωμένο εργαλείο και κάθε καταχωρισμένο διακομιστή, ώστε ο γύρος να εκτελείται ακριβώς με τα εργαλεία που επιλέγετε. Ο επιλογέας μπορεί να περιορίσει όσα δεσμεύει ένα προφίλ, ποτέ να τα διευρύνει. Οι ιδιωτικές (ανώνυμες) συνομιλίες δεν προσφέρουν ποτέ εργαλεία: μια κλήση εργαλείου είναι ενέργεια προς τα έξω και μπορεί να αφήσει εγκρίσεις και εγγραφές ελέγχου.

Ο διακόπτης Πρόσβαση εργαλείων αποθηκεύεται αμέσως. Κάντε κλικ σε αυτόν ή εστιάστε τον με Tab και αλλάξτε τον με Space. Η αλλαγή της πρόσβασης διατηρεί το παράθυρο Ρυθμίσεων και τη θέση κύλισής του.

Ένα προφίλ βοηθού (περσόνα) μπορεί να περιορίσει τα προσφερόμενα εργαλεία: δεσμευμένοι διακομιστές εργαλείων, υποσύνολο ενσωματωμένων εργαλείων, δεσμευμένες δεξιότητες και συλλογές γνώσης περιορίζουν όσα βλέπει το μοντέλο στις συνεδρίες που χρησιμοποιούν το προφίλ.

Ενσωματωμένα εργαλεία​

Η Συνομιλία περιλαμβάνει δεκατρία εργαλεία πρώτου μέρους (όλα μόνο για ανάγνωση, εκτός από τα εργαλεία μεταβολής σημειώσεων και ημερολογίου, τα οποία περνούν από τη ροή έγκρισης παρενεργειών):

  • 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). Κάθε μυστικό κρυπτογραφείται με πρόσθετα πιστοποιημένα δεδομένα που το δεσμεύουν στον συγκεκριμένο χρήστη και διακομιστή, εισάγεται από κάθε χρήστη στις Ρυθμίσεις → Εργαλεία και δεν κοινοποιείται ποτέ μεταξύ λογαριασμών.

Διαδραστικό OAuth (MCP)​

Ένας διακομιστής MCP μπορεί επίσης να συνδέει κάθε άτομο ξεχωριστά. Καταχωρίστε τον με τη λειτουργία ελέγχου ταυτότητας Διαδραστικό OAuth και το Libre WebUI διαβάζει την πρόκληση WWW-Authenticate με την οποία απαντά ο διακομιστής, την ακολουθεί μέχρι τα μεταδεδομένα προστατευμένου πόρου, μετά μέχρι τα μεταδεδομένα του authorization server, και καταχωρίζει δυναμικά client (RFC 7591) όταν ο authorization server προσφέρει εγγραφή. Πάροχοι που δεν εγγράφουν client αυτόματα δέχονται client id από τον διαχειριστή, και προαιρετικό secret, στη φόρμα καταχώρισης· το secret κρυπτογραφείται μαζί με τα ανακαλυφθέντα endpoints.

Κάθε άτομο πατά μετά Σύνδεση στην κάρτα του διακομιστή και ανακατευθύνεται στον πάροχο. Η ροή χρησιμοποιεί PKCE (S256) με CSRF state και τον επαληθευτή PKCE σε cookie HttpOnly με εμβέλεια εκείνον τον έναν διακομιστή. Το callback ανταλλάσσει τον κωδικό στον διακομιστή, αποθηκεύει τα tokens κρυπτογραφημένα με την ίδια δέσμευση χρήστη-και-διακομιστή όπως ένα στατικό μυστικό, και στέλνει τον browser πίσω στην εφαρμογή με σημαία κατάστασης — τα access και refresh tokens δεν φτάνουν ποτέ στη σελίδα. Τα access tokens ανανεώνονται αυτόματα ένα λεπτό πριν τη λήξη, μία φορά ανά άτομο και διακομιστή ακόμη κι όταν πολλές κλήσεις εργαλείων ανταγωνίζονται. Όταν μια ανανέωση είναι αδύνατη, η κλήση εργαλείου επιστρέφει ζητώντας επανασύνδεση αντί να αποτυγχάνει ανώνυμα. Το Αποσύνδεση αφαιρεί τα tokens εκείνου του ατόμου και αφήνει την καταχώριση στη θέση της· η διαγραφή του διακομιστή ξεχνά και την ανακαλυφθείσα διαμόρφωση.

Ένας διακομιστής που αρνείται μη πιστοποιημένη λίστα εργαλείων εξακολουθεί να καταχωρίζεται: το ευρετήριό του καρφιτσώνεται στην πρώτη επιτυχημένη σύνδεση (και σε κάθε ανανέωση διαχειριστή), ώστε τίποτα να μην προσφέρεται σε μοντέλο προτού είναι γνωστό.

Πολιτική εξερχόμενης κίνησης​

Κάθε αίτημα εργαλείου επιλύει μόνο του τον προορισμό του, αρνείται ιδιωτικό χώρο διευθύνσεων, 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 καιρού​

  1. Ρυθμίσεις → Εργαλεία → Καταχώριση διακομιστή: όνομα Weather, τύπος OpenAPI, βασική URL https://api.example-weather.dev, URL προδιαγραφής https://api.example-weather.dev/openapi.json, λειτουργία ελέγχου ταυτότητας bearer.

  2. Η προδιαγραφή καρφιτσώνεται και οι λειτουργίες της εμφανίζονται ως εργαλεία — για παράδειγμα getForecast (GET, μόνο για ανάγνωση) και createAlert (POST, παρενέργεια).

  3. Κάθε χρήστης που το χρειάζεται αποθηκεύει το δικό του κλειδί API στην κάρτα του διακομιστή.

  4. Στη συνομιλία:

    Ποια είναι η πρόγνωση για το Μόντρεαλ αυτό το Σαββατοκύριακο;

    Το μοντέλο καλεί weather__getForecast {"city": "Montreal"} και εκτελείται αμέσως — τα εργαλεία μόνο για ανάγνωση δεν ζητούν ποτέ έγκριση.

    Ειδοποίησέ με αν πέσει κάτω από -20 απόψε.

    Το weather__createAlert έχει παρενέργεια, επομένως ο γύρος παύει με μια κάρτα έγκρισης: Να επιτραπεί μία φορά, Να επιτραπεί για αυτή τη συνομιλία, Να επιτρέπεται πάντα ή Απόρριψη. Τίποτε δεν αποστέλλεται μέχρι να επιλέξετε.

Exa MCP — αναζήτηση και ανάκτηση του ιστού​

Στις Ρυθμίσεις → Εργαλεία → Ξεκινήστε από πρότυπο, επιλέξτε Exa για να προσυμπληρωθεί μια καταχώριση MCP με:

https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa

Η URL επιλέγει web_search_exa και web_fetch_exa μέσω της παραμέτρου επιλογής εργαλείων της Exa. Το πρότυπο δεν χρησιμοποιεί έλεγχο ταυτότητας και εξ ορισμού περιορίζει την πρόσβαση στους διαχειριστές. Ελέγξτε τη φόρμα και επιλέξτε Αποθήκευση για σύνδεση και καρφίτσωμα του καταλόγου εργαλείων. Το άνοιγμα ή η ακύρωση του προτύπου δεν επικοινωνεί με την Exa. Τα ερωτήματα αναζήτησης και οι ζητούμενες URL αποστέλλονται στην Exa όταν εκτελούνται αυτά τα εργαλεία.

Διακομιστής MCP — για παράδειγμα σύστημα παρακολούθησης ζητημάτων​

  1. Ρυθμίσεις → Εργαλεία → Καταχώριση διακομιστή: όνομα Issues, τύπος MCP, βασική URL https://mcp.example-tracker.dev/mcp, λειτουργία ελέγχου ταυτότητας header με όνομα header X-Api-Key.

  2. Η λίστα εργαλείων του καρφιτσώνεται· τα εργαλεία που ο διακομιστής επισημαίνει ως μόνο για ανάγνωση (όπως search_issues) εκτελούνται ελεύθερα, ενώ όλα τα άλλα (όπως create_issue) ζητούν πρώτα έγκριση.

  3. Στη συνομιλία:

    Βρες ανοικτά ζητήματα που αναφέρουν «database lock» και καταχώρισε ένα νέο που συνοψίζει το μοτίβο.

    Το issues__search_issues εκτελείται αμέσως· το issues__create_issue εμφανίζει τα ακριβή ορίσματα στην κάρτα έγκρισης, ώστε να διαβάσετε τι πρόκειται να καταχωριστεί πριν το επιτρέψετε.

Μεταβλητές περιβάλλοντος​

ΜεταβλητήΕπίδραση
TOOLS_ACCESS_MODEΚαρφίτσωμα της λειτουργίας εργαλείων σε admins ή all-users και κλείδωμα του διακόπτη διαχειριστή.
TOOLS_PRIVATE_NETWORK_ALLOWLISTΑκριβή ονόματα host που επιτρέπεται οι διακομιστές εργαλείων να επιλύουν σε ιδιωτικές διευθύνσεις (λίστα με κόμματα).

Όρια​

  • Οι κλήσεις εργαλείων εκτελούνται στη διαδρομή WebSocket (η μεταφορά ιδιωτικής συνεδρίας εξαιρείται εκ σχεδιασμού) και στη μόνιμη διαδρομή δημιουργίας που χρησιμοποιούν οι αποθηκευμένες συνομιλίες. Το παλαιότερο endpoint ροής REST δεν εκτελεί τον βρόχο εργαλείων.
  • Οι αναφορές @model σε κανάλια εκτελούν τον ίδιο βρόχο πάνω στον κατάλογο του μέλους που έκανε την αναφορά, με μία διαφορά: δεν υπάρχει κανείς να ρωτηθεί, οπότε ένα εργαλείο με παρενέργεια χωρίς μόνιμη έγκριση απορρίπτεται αμέσως αντί να περιμένει. Τα εργαλεία μόνο για ανάγνωση εκτελούνται κανονικά.
  • Οι agents Work καλούν τους ίδιους διακομιστές μέσω της ίδιας πύλης: μόνο εκτελέσεις με δίκτυο, διακομιστές χωρίς αποθηκευμένα διαπιστευτήρια φιλτράρονται κατά την προσφορά και τα εργαλεία με παρενέργεια ελέγχονται από τις εγκρίσεις Work.
  • Τα μοντέλα Gemini και CLI agent δεν λαμβάνουν εργαλεία· τα λαμβάνουν οι πάροχοι Ollama, οι συμβατοί με OpenAI, Responses-API και Anthropic.
  • Το διαδραστικό OAuth είναι μόνο για MCP: ένας διακομιστής OpenAPI εξακολουθεί να χρησιμοποιεί στατικό διαπιστευτήριο ανά χρήστη. Η ροή είναι authorization-code grant με PKCE· οι ροές device-code και client-credentials δεν προσφέρονται, και ένας authorization server που δεν δημοσιεύει μεταδεδομένα (ή δεν έχει endpoint εγγραφής ούτε client id από διαχειριστή) δεν μπορεί να συνδεθεί.
  • Τα ανακαλυφθέντα endpoints OAuth πρέπει να είναι https· απλό http γίνεται δεκτό μόνο για loopback, για πάροχο που τρέχει στην ίδια μηχανή κατά την ανάπτυξη.
  • Το redirect URI προκύπτει από το BASE_URL (ή το πρώτο CORS_ORIGIN), οπότε αυτή η τιμή πρέπει να είναι η διεύθυνση που πράγματι φτάνει ο browser και πρέπει να είναι καταχωρισμένη σε παρόχους που καρφιτσώνουν redirect URIs.