Μοτίβα ενορχήστρωσης πολλών πρακτόρων και βέλτιστες πρακτικές

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

Ενσωματωμένοι πράκτορες

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

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

Συνδεδεμένοι πράκτορες

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

Ωστόσο, η χρήση συνδεδεμένων παραγόντων απαιτεί προσεκτική διαχείριση:

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

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

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

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

Πότε να διαχωρίσετε τους πράκτορες

Μην δημιουργείτε ξεχωριστό παράγοντα για κάθε δευτερεύουσα εργασία. Χρησιμοποιήστε ξεχωριστούς παράγοντες εάν η δευτερεύουσα εργασία:

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

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

Βέλτιστες πρακτικές για ενορχήστρωση πολλών αντιπροσώπων

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

1. Αρχή μοναδικής απόκρισης

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

  • Do: Προσθέστε στις γονικές οδηγίες: "Είστε ο μόνος παράγοντας που επικοινωνεί με τον χρήστη. Συνδυάστε τα ευρήματα από όλους τους δευτερεύοντες πράκτορες σε μία ενιαία απάντηση.
  • Μην: το αφήνετε ασαφές. Χωρίς ρητή καθοδήγηση, οι υποπράκτορες απαντούν απευθείας στον χρήστη, προκαλώντας διπλά ή ελλιπή μηνύματα.

Σημείωση

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

2. Οι οδηγίες του υποπράκτορα πρέπει να δηλώνουν τον ρόλο του

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

  • Do: Προσθέστε στις οδηγίες κάθε δευτερεύοντος πράκτορα: "Είστε ένας δευτερεύων πράκτορας. Μην απαντήσετε απευθείας στον χρήστη. Η εργασία σας είναι να αναζητήσετε πληροφορίες και να επιστρέψετε τα ευρήματά σας στον γονικό παράγοντα. Ο γονικός παράγοντας χειρίζεται όλες τις επικοινωνίες με τον χρήστη."
  • Μην: Υποθέτετε ότι οι υποπράκτορες καταλαβαίνουν το μοτίβο ενορχήστρωσης από μόνοι τους.

3. Χρήση σαφούς, άμεσης γλώσσας στις οδηγίες

Να χρησιμοποιείτε πάντα γλώσσα οδηγιών. Αποφύγετε την απαλή ή ευγενική διατύπωση. Η πλατφόρμα εγχέει οδηγίες σε επίπεδο συστήματος χρησιμοποιώντας ισχυρή γλώσσα (ΠΡΕΠΕΙ, ΝΑ ΜΗΝ, ΠΟΤΕ). Οι οδηγίες που συντάσσονται με προσωρινή γλώσσα ("παρακαλώ προσπαθήστε να", "θα πρέπει", "θα ήταν καλό να") χάνουν την προτεραιότητά τους όταν έρχονται σε διένεξη.

  • Do: "ΠΟΤΕ μην απαντατε απευθείας στον χρήστη. Επιστρέψτε ΜΌΝΟ τα ευρήματά σας."
  • Do: "Πρέπει να υπάρχει ακριβώς μία τελική απάντηση ανά ερώτηση χρήστη."
  • Μην: "Προσπαθήστε να αποφύγετε την αποστολή μηνυμάτων στον χρήστη και αντ' αυτού επιστρέψτε τα ευρήματά σας."
  • Μην: "Ιδανικά, θέλουμε μια μοναδική συνδυασμένη απάντηση."

4. Χρησιμοποιήστε μία προέλευση γνώσεων ανά πληθυντικό (χωρίς επικάλυψη)

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

  • Do: Η CA-1 πραγματοποιεί αναζήτηση στην Προέλευση γνώσης Α (για παράδειγμα, σε πολιτικές ανθρώπινου δυναμικού). Το CA-2 πραγματοποιεί αναζήτηση στην Πηγή γνώσης Β (για παράδειγμα, στην τεκμηρίωση Πληροφορικής).
  • Don't: Εκχωρήστε και στους δύο δευτερεύοντες παράγοντες πρόσβαση στα ίδια έγγραφα, στους ίδιους πίνακες Dataverse ή στις ίδιες τοποθεσίες SharePoint.
  • Σημείωση: Εάν έχετε μόνο μία πηγή γνώσης, χρησιμοποιήστε έναν μόνο παράγοντα με γνώση αντί να το χωρίσετε σε δύο υποπαράγοντες. Η προσέγγιση πολλαπλών πρακτόρων προσθέτει αξία μόνο όταν οι πηγές είναι πραγματικά διαφορετικές.

5. Χρησιμοποιήστε ακριβείς και διακριτές περιγραφές για τις δευτερεύουσες ροές

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

  • Do: CA-1: "Αναζητά έγγραφα πολιτικής ανθρώπινου δυναμικού για ερωτήσεις που σχετίζονται με υπαλλήλους." CA-2: "Αναζητά τη βάση γνώσεων IT για ερωτήσεις τεχνικής υποστήριξης."
  • Μην: Δώστε και στους δύο παράγοντες την ίδια περιγραφή όταν εξυπηρετούν διαφορετικούς τομείς.
  • Μην: Χρησιμοποιήστε γενικές περιγραφές όπως "Αυτός ο παράγοντας μπορεί να βοηθήσει με ερωτήσεις."

6. Οι γονικές οδηγίες πρέπει να ορίζουν το μοτίβο ενορχήστρωσης

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

  • Do: "Όταν ο χρήστης κάνει μια ερώτηση: 1. Καλέστε αμφότερους τους θυγατρικούς παράγοντες για τη συλλογή πληροφοριών. 2. Περιμένετε να επιστρέψουν και οι δύο θυγατρικούς παράγοντες με τα ευρήματά τους. 3. Συνδυάστε τα ευρήματα σε μια μοναδική, ενοποιημένη απόκριση. 4. Παροχή ακριβώς μίας απόκρισης στον χρήστη. Οι δευτερεύοντες παράγοντες δεν πρέπει να απαντούν απευθείας στον χρήστη.
  • Μην: "Όταν ο χρήστης υποβάλλει μια ερώτηση, ενεργοποιήστε υποπράκτορες, λάβετε την απάντηση και από τις δύο πηγές και δώστε μία ενιαία απάντηση που να συνδυάζει και τις δύο." (Πολύ ασαφές. Η οδηγία δεν λέει στους υποπράκτορες να παραμείνουν σιωπηλοί.)

7. Συμπεριλάβετε την οδηγία "καμία άμεση απάντηση" στην ανάθεση εργασιών

Ακόμη και με σαφείς οδηγίες για τον υποπράκτορα, η προσθήκη ενίσχυσης στην εργασία που έχει ανατεθεί παρέχει μια δικλίδα ασφαλείας.

  • Do: Προσθέστε στις γονικές οδηγίες: "Κατά την ανάθεση σε έναν θυγατρικό παράγοντα, συμπεριλάβετε πάντα στην εργασία: 'Επιστρέψτε μόνο τα ευρήματά σας. Μην απαντήσετε στον χρήστη.'"
  • Μην το κάνετε: Βασιστείτε αποκλειστικά στις οδηγίες του ίδιου του υποβασιλέα. Το περιβάλλον εργασίας παρέχει στη δευτερεύουσα περιοχή περισσότερα σήματα που ενισχύουν το μοτίβο.

8. Δοκιμή με ερωτήματα ασυμφωνίας τομέα

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

  • Do: Δοκιμή με ερωτήματα εκτός όλων των τομέων δευτερεύουσας περιοχής (για παράδειγμα, ρωτήστε σχετικά με τον καιρό όταν οι παράγοντες χειρίζονται το HR και το IT).
  • Τι να κάνετε: Επαληθεύστε ότι το γονικό στοιχείο χειρίζεται ομαλά την περίπτωση «κανένας από τους δύο παράγοντες δεν βρήκε τίποτα».
  • Μην: Δοκιμάστε μόνο με απλούστερα ερωτήματα υπόθεσης που ταιριάζουν απόλυτα με τον τομέα μιας δευτερεύουσας περιοχής.

9. Προτιμήστε το «ρωτήστε» αντί για το «ενημερώστε» όταν αναμένετε συνέχεια

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

  • Do: Γράφετε οδηγίες όπως: "Εάν χρειάζεστε διευκρινίσεις, υποβάλετε μια ερώτηση στον χρήστη και περιμένετε την απάντησή του."
  • Μην: Συντάξτε οδηγίες όπως: "Ενημερώστε τον χρήστη σχετικά με τις επιλογές και αφήστε τον να επιλέξει." Το "Inform" σηματοδοτεί ένα μονόδρομο μήνυμα, ενώ το "ask" σηματοδοτεί μια αμφίδρομες ανταλλαγή.

Λίστα ελέγχου γρήγορης αναφοράς

# Έλεγχος
1 Οι οδηγίες γονέα αναφέρουν ρητά "μόνο εγώ απαντώ στον χρήστη"
2 Κάθε οδηγία δευτερεύουσας περιοχής λέει "μην απαντάτε απευθείας στον χρήστη"
3 Οι οδηγίες χρησιμοποιούν ισχυρή γλώσσα οδηγιών (MUST, NEVER, ONLY)
4 Κάθε υποπράκτορας έχει μια μοναδική, μη επικαλυπτόμενη πηγή γνώσης
5 Οι περιγραφές των υποπρακτόρων είναι ακριβείς, διακριτές και συγκεκριμένες
6 Οι γονικές οδηγίες ορίζουν το πλήρες μοτίβο ενορχήστρωσης (καλέστε → αναμονή → συνδυάσετε → απαντήσετε)
7 Το γονικό στοιχείο μεταβιβάζει το "χωρίς άμεση απάντηση" στο πλαίσιο ανατεθειμένης εργασίας
8 Δοκιμάστηκε με ερωτήματα ασυμφωνίας τομέα
9 Η διάκριση μεταξύ αιτήματος και ενημέρωσης είναι σωστή στις οδηγίες του υποπράκτορα