Εμπειρικοί κανόνες σχεδιασμού συστημάτων πρακτόρων

Πρακτικοί εμπειρικοί κανόνες βοηθούν τις ομάδες να αποφασίσουν ποιες συμπεριφορές πρακτόρων ανήκουν σε γλωσσικό μοντέλο και ποιες απαιτούν ρητό λογισμικό.

Σύνοψη

  • Είναι σημαντικό να εξετάζετε προσεκτικά πώς και πού λαμβάνονται οι αποφάσεις στο σύστημα πρακτόρων σας.

  • Η ανάθεση περισσότερων αποφάσεων σε ένα LLM επιτρέπει δυνητικά στο σύστημα να γενικεύει σε περισσότερες εργασίες, ενδέχεται όμως να μειώσει την ταχύτητα, την αξιοπιστία και την ανθεκτικότητά του.

  • Όπου είναι δυνατόν, προσπαθήστε να μεταφέρετε όσο το δυνατόν μεγαλύτερο μέρος της διαδικασίας λήψης αποφάσεων από το LLM σε ρητό κώδικα λογισμικού. Αυτό ισχύει ιδιαίτερα για ροές εργασίας υψηλού κινδύνου ή/και παραγωγής.

Εισαγωγή

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

Για να κατανοήσουμε καλύτερα αυτή την επιλογή, μπορούμε να τη δούμε ως ένα φάσμα μεταξύ των ακόλουθων προσεγγίσεων:

  • Οι αρχιτεκτονικές που βασίζονται σε δρομολογητή ορίζουν ρητά τη σειρά και τη λογική στον κώδικα, εξασφαλίζοντας δυνατότητα δοκιμών, προβλεψιμότητα και ανθεκτικότητα για εργασίες περιορισμένου πεδίου (ονομάζονται επίσης «πράκτορες ροής εργασίας»).

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

Διάγραμμα που απεικονίζει την εισαγωγή.

Για ροές εργασίας παραγωγής υψηλού κινδύνου, συνιστούμε συνήθως περισσότερες λειτουργίες που βασίζονται σε δρομολογητή, διατηρώντας τους ενορχηστρωτές για εφαρμογές που απαιτούν ευέλικτες συζητήσεις γενικού σκοπού.

Δρομολογητής ή ενορχηστρωτής: κατανοώντας τη διαφορά

Αρχιτεκτονικές που βασίζονται σε δρομολογητή

Τα συστήματα πρακτόρων με δρομολογητή:

  • Ορίζουν ρητά τη ροή λήψης αποφάσεων μέσω κώδικα ή λογισμικού και χρησιμοποιούν ένα LLM για να καθορίσουν ποια διαδρομή θα ακολουθήσει το λογισμικό.

  • Μοιάζουν περισσότερο με τα παραδοσιακά συστήματα λογισμικού, καθώς διαθέτουν σαφείς και προβλέψιμες διαδρομές που οδηγούν σε πιο συνεπή αποτελέσματα.

  • Είναι ιδανικά για εργασίες που μπορούν να οριστούν με ακρίβεια.

Ακολουθεί ένα απλοποιημένο παράδειγμα πράκτορα κρατήσεων για chatbot αεροπορικής εταιρείας, ο οποίος χρησιμοποιεί την «προσέγγιση δρομολογητή». Βλέπουμε ότι, παρόλο που το LLM μάς βοηθά να ταξινομήσουμε την πρόθεση της ερώτησης σε μία από τρεις επιλογές, τελικά το λογισμικό μας αντιστοιχίζει αυτή την πρόθεση σε μια τυποποιημένη απάντηση κειμένου. Επειδή το LLM λειτουργεί υπό αυστηρούς περιορισμούς, ο χρήστης απολαμβάνει πιο συνεπή συμπεριφορά.

Διάγραμμα που απεικονίζει τη διαφορά μεταξύ δρομολογητή και ενορχηστρωτή.

Αρχιτεκτονικές ενορχηστρωτή

Σε αντίθεση με το σύστημα δρομολογητή, τα συστήματα πρακτόρων με ενορχηστρωτή:

  • Ορίζουν τις ροές λογικής μέσω προτροπών φυσικής γλώσσας αντί μέσω λογισμικού. Σημείωση: σε σύγκριση με μια γλώσσα προγραμματισμού, η φυσική γλώσσα είναι εγγενώς αμφίσημη και ευέλικτη — χαρακτηριστικά που έχουν τόσο θετικές όσο και αρνητικές πλευρές, όπως θα δούμε παρακάτω. Αντιλαμβανόμαστε αυτή την προσέγγιση ως «πρόθεση αντί για εντολή».

  • Μπορούν να παρέχουν πολλές επιλογές επεξεργασίας, με το LLM να καθορίζει τη σειρά και τη μέθοδο εκτέλεσης.

  • Μπορούν να δημιουργούν δυναμικά νέες διαδρομές λογικής, οι οποίες είναι δύσκολο να οριστούν ρητά στο λογισμικό.

  • Αυτή η ασάφεια μπορεί να οδηγήσει σε ασυνεπή αποτελέσματα, αλλά όταν η προσέγγιση λειτουργεί, μπορεί να μοιάζει «μαγική».

Το ακόλουθο παράδειγμα εφαρμόζει μια προσέγγιση ενορχηστρωτή στο ίδιο απλοποιημένο πρόβλημα αεροπορικής εταιρείας. Αντί να αφήνεται στο λογισμικό η επιλογή της κατάλληλης απάντησης, η λήψη αποφάσεων ανατίθεται στο επίπεδο του LLM. Εδώ έχουμε ένα σύστημα πολλαπλών πρακτόρων, στο οποίο ένας «κεντρικός» πράκτορας ενορχηστρωτής αξιολογεί το αίτημα του χρήστη και το παραδίδει σε έναν πράκτορα ειδικά σχεδιασμένο για αλλαγές πτήσεων, ο οποίος τελικά απαντά στον χρήστη.

Σε αυτό το παράδειγμα, το επίπεδο του LLM λειτουργεί ως ταξινομητής, δρομολογητής και συντάκτης της απάντησης. Στο παράδειγμα του δρομολογητή, λειτουργούσε μόνο ως ταξινομητής, ενώ το λογισμικό αναλάμβανε τα υπόλοιπα.

Διάγραμμα που απεικονίζει τη διαφορά μεταξύ δρομολογητή και ενορχηστρωτή.

Πλεονεκτήματα και προκλήσεις των αρχιτεκτονικών δρομολογητή

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

  • Ταχύτητα και αποδοτικότητα: Οι τοπικοί υπολογισμοί προσφέρουν μεγαλύτερη ταχύτητα από τους ενορχηστρωτές που εξαρτώνται από εξωτερικά API. Είναι επίσης πολύ οικονομικότερο να επεξεργάζεστε τη λογική «IF/ELSE» στην Python, αντί να πληρώνετε έναν πάροχο LLM για να τη διοχετεύει στο μοντέλο του με τις 400 δισεκατομμύρια παραμέτρους.

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

  • Διαφάνεια και αξιοπιστία: Η μικρότερη διακύμανση στη συμπεριφορά απλοποιεί την αντιμετώπιση προβλημάτων. Επιπλέον, μεγαλύτερο μέρος της ροής της εφαρμογής εκφράζεται με διαφανές λογισμικό υπό έλεγχο εκδόσεων, αντί να αποτυπώνεται στα αδιαφανή και μη ερμηνεύσιμα βάρη ενός LLM.

Τα μειονεκτήματα των προσεγγίσεων δρομολογητή είναι ότι μπορεί να είναι άκαμπτες, ανελαστικές και να δυσκολεύονται σε προβλήματα πιο ανοιχτού τύπου. Ένα chatbot που δίνει πάντα ακριβώς τις ίδιες απαντήσεις μπορεί να θεωρηθεί βαρετό ή στάσιμο από τους χρήστες του.

Πλεονεκτήματα και προκλήσεις των αρχιτεκτονικών ενορχηστρωτή

Οι αρχιτεκτονικές ενορχηστρωτή προσφέρουν ισχυρές δυνατότητες:

  1. Σχεδιασμός: Μπορούν να σχεδιάζουν δυναμικά τις απαντήσεις.

  2. Επιλογή εργαλείων/παράδοση σε πράκτορα: Επιλέγουν τα κατάλληλα εργαλεία ή αναθέτουν εργασίες σε πράκτορες.

  3. Επαναληπτικός συνδυασμός αποτελεσμάτων: Επεξεργάζονται επαναληπτικά και ανασυνδυάζουν δημιουργικά τα αποτελέσματα.

  4. Προσδιορισμός ολοκλήρωσης: Καθορίζουν πότε έχουν συγκεντρωθεί αρκετές πληροφορίες για να οριστικοποιηθεί μια απάντηση.

Πλαίσια όπως το Pydantic-AI ή το Agents SDK της OpenAI καθιστούν την ενορχήστρωση απλή και γρήγορη στην υλοποίηση. Έτσι, η προσέγγιση είναι ιδανική για επιδείξεις ή αποδείξεις εφικτότητας.

Τα μειονεκτήματα αυτής της προσέγγισης είναι τα εξής:

  • Δεν υπάρχει καμία εγγύηση ότι τα βήματα σχεδιασμού του LLM και οι επακόλουθες ενέργειες θα είναι σωστά ή κατάλληλα. Το σύστημα δρομολογητή αντιμετωπίζει το ίδιο ζήτημα, αλλά επειδή λειτουργεί υπό περισσότερους περιορισμούς, η συμπεριφορά του είναι πιο προβλέψιμη.

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

  • Επειδή το LLM περιέχει περισσότερη λογική, είναι πολύ πιο ευάλωτο σε κακόβουλους χρήστες που επιχειρούν να παρακάμψουν ή να εκμεταλλευτούν τις δικλίδες ασφαλείας.

  • Μεταφέρει τη λήψη αποφάσεων στο LLM, καθιστώντας έτσι δυσκολότερη την κατανόηση του συστήματός σας, αν και εργαλεία παρακολούθησης όπως το Langfuse ή το Braintrust μπορούν να βοηθήσουν εν μέρει.

Οι εμπειρικοί κανόνες μας για τον σχεδιασμό συστημάτων πρακτόρων

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

Κατανοήστε τις αποφάσεις που απαιτεί η εφαρμογή σας

Καθορίστε το εύρος του προβλήματός σας.

  • Μπορείτε να αποτυπώσετε εύκολα σε διάγραμμα την επιθυμητή λογική λήψης αποφάσεων;

  • Είναι απαράδεκτη για την εφαρμογή σας οποιαδήποτε αποτυχία ή απρόσμενη συμπεριφορά;

Μια καταφατική απάντηση σε οποιαδήποτε από τις παραπάνω ερωτήσεις υποδηλώνει ότι οι λειτουργίες δρομολογητή είναι προτιμότερες.

Πρώτα ο δρομολογητής και έπειτα οι υβριδικές προσεγγίσεις

Όπου είναι δυνατόν, συνιστούμε να χρησιμοποιείτε προσεγγίσεις δρομολογητή για όσο διάστημα επαρκούν. Ως γενική αρχή, αν ένα μέρος του συστήματός σας μπορεί να εκφραστεί σε κώδικα, εκφράστε το σε κώδικα — δηλαδή, μη χρησιμοποιείτε υπερβολικά τα LLM όταν δεν χρειάζονται.

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

  1. Επιλογή εργαλείων/παράδοση σε πράκτορα: Υλοποιείται εύκολα μέσω διακλαδώσεων υπό συνθήκη ή ταξινομητών LLM.

  2. Προσδιορισμός ολοκλήρωσης: Απλοί ταξινομητές LLM μπορούν να ελέγξουν αν η απάντηση είναι πλήρης πριν επιστραφεί στον χρήστη.

Ωστόσο, ο «Σχεδιασμός» και ο «Επαναληπτικός συνδυασμός αποτελεσμάτων» είναι αναμφίβολα πολύ πιο δύσκολο να επιτευχθούν σε ένα άκαμπτο σύστημα δρομολογητή. Όταν, λοιπόν, μια εργασία απαιτεί αυτές τις δυνατότητες —όπως προσδιορίζεται από έναν ταξινομητή LLM ή κάποια άλλη λογική— προτείνουμε να δημιουργείτε στο σύστημά σας έναν λιγότερο περιορισμένο κλάδο ενορχηστρωτή.

Συμπεράσματα και μελλοντικές προοπτικές

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

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

Συντάκτης

Andrew Liubinas