Tool using Agents
Τα μεγάλα γλωσσικά μοντέλα είναι πολύ καλά στο να παράγουν κείμενο, αλλά από μόνα τους δεν αλλάζουν τίποτα σε ένα σύστημα. Δεν γράφουν σε βάσεις, δεν καλούν APIs, δεν τρέχουν scripts. Για να γίνουν πραγματικά χρήσιμοι βοηθοί χρειάζεται να μπορούν να χρησιμοποιούν εργαλεία. Εκεί εμφανίζονται οι tool using agents, δηλαδή AI Agents που έχουν πρόσβαση σε συγκεκριμένες λειτουργίες του συστήματος και μπορούν να τις καλέσουν με ελεγχόμενο τρόπο.
Ενδιαφέρεσαι για Εισαγωγή στο Prompt Engineering & LLMs για Επαγγελματίες; δες το σχετικό μάθημα ή επικοινώνησε μαζί μου.
Ενας agent που απλώς μιλά είναι chatbot. Ενας agent που μπορεί να καλέσει εργαλεία και να εκτελέσει εργασίες πάνω σε συστήματα είναι πραγματικός συνεργάτης. Η διαφορά βρίσκεται στο πώς ορίζεις και προστατεύεις τα εργαλεία του.
Τι σημαίνει tool using agent στην πράξη
Ενας tool using agent είναι ένα σύστημα όπου
- ο πυρήνας λήψης αποφάσεων βασίζεται σε LLM ή άλλο μοντέλο
- υπάρχει λίστα από εργαλεία που το μοντέλο μπορεί να καλέσει
- κάθε εργαλείο έχει ξεκάθαρα ορισμένα input και output
- υπάρχει λογική που ελέγχει πότε και πώς επιτρέπεται η χρήση κάθε εργαλείου
Παραδείγματα
- η δυνατότητα να διαβάζει παραγγελίες και να απαντά σε πελάτες για την κατάσταση της αποστολής
- η εκτέλεση ερωτημάτων σε βάση δεδομένων για αναφορές πωλήσεων
- η εκκίνηση scripts για μετατροπή αρχείων ή ανάλυση logs
- η δημιουργία ή ενημέρωση εγγραφών σε σύστημα διαχείρισης εργασιών
Ο ρόλος σου ως προγραμματιστής δεν είναι να αφήσεις το μοντέλο να καλεί τα πάντα, αλλά να σχεδιάσεις προσεκτικά τα εργαλεία και τα όρια.
Σχεδιασμός εργαλείων για AI Agents
Πριν ενσωματώσεις εργαλεία σε έναν agent χρειάζεται να τα σκεφτείς σαν μικρά services με συγκεκριμένες ιδιότητες.
Καθαρός ορισμός εισόδου και εξόδου
- τι είδους δεδομένα περιμένει το εργαλείο
- τι επιστρέφει σαν αποτέλεσμα
- τι συμβαίνει όταν κάτι πάει στραβά
Περιορισμένο scope
- κάθε εργαλείο καλό είναι να κάνει μία δουλειά
- αποφεύγεις γιγάντια εργαλεία που διαβάζουν, γράφουν, διαγράφουν και τροποποιούν τα πάντα
- έτσι μπορείς να ελέγχεις με ακρίβεια τι επιτρέπεται σε κάθε call
Ασφαλής συμπεριφορά σε λάθη
- αν ο agent περάσει λάθος δεδομένα, το εργαλείο πρέπει να αποτυγχάνει προβλέψιμα
- δεν θέλεις κρυφές παρενέργειες ή σιωπηλά σφάλματα
Σκέψου τα εργαλεία σαν δημόσιο API που εκθέτεις σε έναν απαιτητικό αλλά απρόβλεπτο πελάτη. Αν είναι ανθεκτικά και καλά σχεδιασμένα, ο agent μπορεί να τα χρησιμοποιήσει χωρίς να ρισκάρεις την ακεραιότητα των συστημάτων σου.
Πώς αποφασίζει ο agent ποιο εργαλείο να καλέσει
Στα περισσότερα frameworks ο agent λαμβάνει ένα αίτημα χρήστη και στη συνέχεια
- αναλύει την πρόθεση του χρήστη
- αποφασίζει αν χρειάζεται δεδομένα από κάποιο εργαλείο ή αν αρκεί γνώση του μοντέλου
- επιλέγει ποιο εργαλείο είναι το κατάλληλο
- σχηματίζει τα κατάλληλα arguments με βάση το αίτημα
- εκτελεί το εργαλείο και περνά το αποτέλεσμα πίσω στο LLM για ερμηνεία
Για να δουλέψει αυτό, χρειάζεσαι σαφείς περιγραφές των εργαλείων μέσα στο prompt, ώστε το μοντέλο να καταλαβαίνει πότε είναι χρήσιμο το καθένα. Αν η περιγραφή είναι ασαφής, ο agent θα παίρνει λανθασμένες αποφάσεις ή θα καλεί εργαλεία χωρίς λόγο.
Εργαλεία για APIs
Τα APIs είναι η πιο φυσική κατηγορία εργαλείων για έναν AI Agent.
Πρακτικά βήματα
- φτιάχνεις ένα wrapper που αναλαμβάνει να καλέσει το API και να διαχειριστεί authentication, headers, timeouts
- ορίζεις με σαφήνεια ποια πεδία μπορεί να περάσει ο agent στο API
- μετατρέπεις την απάντηση σε συμπαγή μορφή που χωράει στο context για το LLM
Τα endpoints που επιτρέπεις πρέπει να είναι:
- αναγνώσιμα, για παράδειγμα αναζήτησε πελάτη με βάση id
- ασφαλή, ώστε να μην εκθέτεις ενέργειες με μεγάλο ρίσκο όπως μαζικές διαγραφές
- περιορισμένα, ειδικά στα πρώτα στάδια του project
Εργαλεία για βάσεις δεδομένων
Η άμεση πρόσβαση σε SQL από ένα LLM είναι επικίνδυνη, αλλά ο σωστά σχεδιασμένος agent μπορεί να έχει ελεγχόμενη πρόσβαση σε δεδομένα.
Προσεγγίσεις
- προκαθορισμένα ερωτήματα που δέχονται λίγες παραμέτρους, όπως ημερομηνία ή αναγνωριστικό χρήστη
- χρήση view ή αποψιλωμένων πινάκων ώστε να μην εκτίθενται ευαίσθητα πεδία
- generation SQL μόνο πάνω σε whitelist από πίνακες και στήλες με πρόσθετο έλεγχο του query πριν εκτελεστεί
Ετσι ο agent μπορεί να φέρνει πραγματικά στοιχεία για αναφορές, αναζητήσεις ή ελέγχους, χωρίς να έχει πλήρη, ανεξέλεγκτη πρόσβαση στη βάση.
Εργαλεία για scripts και batch εργασίες
Πολλές εργασίες γίνονται ήδη μέσω scripts. Μπορείς να τα μετατρέψεις σε εργαλεία για AI Agents.
Παραδείγματα
- script που καθαρίζει και μετατρέπει ένα αρχείο excel σε unified μορφή
- script που αναλύει logs και επιστρέφει σύνοψη σφαλμάτων
- διαδικασία που δημιουργεί pdf αναφορές και τις αποθηκεύει σε συγκεκριμένο φάκελο
Ο Agent
- επιλέγει πότε έχει νόημα να τρέξει το script
- δίνει τις σωστές παραμέτρους
- παίρνει ως output μόνο τα απαραίτητα στοιχεία και τα παρουσιάζει στον χρήστη
Εδώ είναι σημαντικό να περιορίσεις τις ενέργειες σε ό,τι είναι αντιστρεπτό ή ελεγχόμενο, ειδικά στην αρχή.
Καταγραφή και auditing
Οταν δίνεις σε έναν agent πρόσβαση σε συστήματα παραγωγής πρέπει να γνωρίζεις ανα πάσα στιγμή τι έκανε.
Χρειάζεται καταγραφή
- ποια εργαλεία κάλεσε
- με ποιες παραμέτρους
- ποια αποτελέσματα πήρε
- ποια τελική απάντηση έδωσε στον χρήστη
Αυτά τα logs βοηθούν
- στο debugging όταν κάτι δεν πάει όπως αναμενόταν
- στην ανάλυση χρήσης για βελτίωση εργαλείων και prompts
- στη συμμόρφωση αν υπάρχει κανονιστικό πλαίσιο ή πολιτική ελέγχου
Χτισίματα σε staging πριν πάνε σε production
Πριν επιτρέψεις σε έναν tool using agent να επηρεάζει πραγματικά δεδομένα, είναι κρίσιμο να περάσει από στάδιο προσομοίωσης.
Βήματα
- τρέχεις τον agent σε αντίγραφο δεδομένων ή σε περιβάλλον sandbox
- παρατηρείς τις αποφάσεις του και τις κλήσεις εργαλείων
- τροποποιείς περιγραφές εργαλείων και prompts για να βελτιώσεις τη συμπεριφορά
- προσθέτεις κανόνες ή φίλτρα σε περιπτώσεις όπου παίρνει λανθασμένες πρωτοβουλίες
Μόνο όταν είσαι ικανοποιημένος με την συμπεριφορά του agent σε sim περιβάλλον αξίζει να ανοίξεις σταδιακά πρόσβαση σε production.
Αν θέλεις να μάθεις πώς να σχεδιάζεις tool using AI Agents που καλούν APIs διαβάζουν βάσεις και τρέχουν scripts με ασφάλεια, μπορούμε να το δουλέψουμε μαζί μέσα από το μάθημα Εισαγωγή στο Prompt Engineering και LLMs για Επαγγελματίες και συμπληρωματικά Ιδιαίτερα Μαθήματα Python για AI και Machine Learning ή Ανάλυση Blockchain και Web3 Δεδομένων με Python. Στόχος είναι να αποκτήσεις πρακτικό τρόπο σκέψης για agents που συνεργάζονται με τα συστήματά σου αντί να τα θέτουν σε κίνδυνο.