spinny:~/writing $ less agentic-infrastructure-stack.md
12Συχνά έχουμε μιλήσει για πρακτορεία. LangGraph, CrewAI, AutoGen, διάφορα SDK, βρόχος, κλήση εργαλείων, μνήμη, προγραμματιστής, κριτικός, επόπτης. Όλες οι χρήσιμες λέξεις, για το καλό. Αλλά όσο περισσότερο κοιτάζω τους πράκτορες που χρησιμοποιούνται στην πραγματικότητα, τόσο περισσότερο μου φαίνεται ότι το ενδιαφέρον μέρος έχει μετακινηθεί κάτω από το επίπεδο πλαισίου.34Το ερώτημα δεν είναι πλέον μόνο: ποια βιβλιοθήκη θα χρησιμοποιήσω για να σκεφτώ ένα βηματικό μοντέλο;56Το πραγματικό ερώτημα είναι: πού μένει αυτός ο πράκτορας όταν σταματήσει να είναι demo;78Επειδή ένας σοβαρός πράκτορας δεν είναι μια συνάρτηση που καλεί ένα μοντέλο και επιστρέφει κείμενο. Είναι ένα μικρό κατανεμημένο σύστημα. Πρέπει να διαβάζει το πλαίσιο, να χρησιμοποιεί εργαλεία, να εκτελεί κώδικα, να αγγίζει αρχεία, να θυμάται αποφάσεις, να ζητά άδεια, να αποτυγχάνει καλά, να επανεκκινεί, να αφήνει αρχεία καταγραφής, να μην καίει τον προϋπολογισμό και να μην μετατρέπεται σε μπουλντόζα μέσα στο αποθετήριο παραγωγής.910Το πλαίσιο είναι το τιμόνι. Η υποδομή είναι ο δρόμος, τα φρένα, το γκαράζ, η ασφάλεια και ο άνθρωπος που ξέρει πού είναι τα κλειδιά.1112## Γιατί γίνεται πολύς λόγος για αυτό τώρα1314Το 2023 και το 2024 η συζήτηση ήταν πολύ μοντελοκεντρική. Ποιο LLM; Πόσο πλαίσιο; Πόσο κοστίζει; Πόσο καλός είναι στον προγραμματισμό;1516Το 2025 και το 2026 η συζήτηση έχει αλλάξει. Τα μοντέλα είναι αρκετά καλά για να κάνουν πραγματική δουλειά, αλλά γι' αυτό τα βαρετά κομμάτια γίνονται ορατά: χρόνος εκτέλεσης, ασφάλεια, σύνδεσμοι, ταυτότητα, παρατηρησιμότητα, εκτέλεση κώδικα, ανάπτυξη, επαναφορά.1718Είναι η φυσική μετάβαση από τη μαγεία στη μηχανική.1920Όταν ένας πράκτορας χρειάζεται απλώς να δημιουργήσει μια απάντηση, μια συνομιλία αρκεί. Όταν χρειάζεται να ανοίξετε ένα αίτημα έλξης, να υποβάλετε ερώτημα σε μια βάση δεδομένων, να καλέσετε ένα CRM, να ξεκινήσετε μια εργασία, να πλοηγηθείτε σε έναν ιστότοπο, να διαβάσετε το Slack, να μεταγλωττίσετε κώδικα και να ενημερώσετε ένα έγγραφο, χρειάζεστε ένα λειτουργικό σύστημα γύρω από αυτό.2122Όχι με κυριολεκτική έννοια. Με οργανωτική έννοια.2324## Το πρώτο κομμάτι: ένας χρόνος εκτέλεσης όπου ο πράκτορας μπορεί να διαρκέσει2526Ένας πράκτορας συχνά εργάζεται σε βήματα. Look at the state, choose an action, use a tool, observe the result, update the plan, repeat.2728If this loop lives inside a single HTTP request, you immediately have a problem. Ορισμένες ενέργειες είναι αργές. Μερικοί περιμένουν την ανθρώπινη συμβολή. Μερικοί αποτυγχάνουν και πρέπει να δοκιμαστούν ξανά. Κάποιοι πρέπει να επιβιώσουν από την ανάπτυξη ή το timeout.2930This is where durable workflows, queues, job backgrounds and state machines come into play. Δεν είναι λαμπεροί, αλλά είναι η διαφορά ανάμεσα σε έναν πράκτορα που φαίνεται έξυπνος στο demo και σε έναν που μπορείς να αφήσεις να εργάζεται ενώ πας να πάρεις καφέ.3132For me the agentic runtime must answer very concrete questions:3334- πού μπορώ να σώσω το κράτος ανάμεσα στο ένα βήμα και το άλλο;35- what happens if the process dies halfway through?36- Μπορώ να σταματήσω και να ζητήσω έγκριση;37- Μπορώ να επαναλάβω ένα τρέξιμο για να καταλάβω γιατί έκανε αυτή την επιλογή;38- Μπορώ να περιορίσω τη διάρκεια, τη μνήμη, τα εργαλεία και το κόστος;3940Η Vercel πιέζει σκληρά σε αυτό το μέτωπο με AI SDK, λειτουργίες, ροές εργασίας και εργαλεία για τη δημιουργία πρακτόρων σε εφαρμογές web. Αλλά το θέμα δεν είναι μόνο ο Vercel. The point is that the agent needs an operational home, not a single endpoint.4142## Το δεύτερο κομμάτι: sandbox, γιατί ο πράκτορας πρέπει να μπορεί να λερωθεί χωρίς να σπάσει4344As soon as an agent writes code or executes commands, a sandbox is needed.4546Μοιάζει με τεχνική λέξη, αλλά η ιδέα είναι εγχώρια: του δίνεις έναν πάγκο εργασίας. Μπορεί να ανοίξει αρχεία, να εγκαταστήσει εξαρτήσεις, να εκτελέσει δοκιμές, να κάνει πειράματα, να δημιουργήσει έξοδο. Αν το κάνει λάθος, έχετε περιορίσει τη ζημιά. Εάν λειτουργεί, προωθήστε το αποτέλεσμα.4748Ένα πρακτορείο sandbox πρέπει να έχει ορισμένες ιδιότητες:4950- απομονωμένο σύστημα αρχείων.51- CPU, μνήμη και χρονικά όρια.52- ελεγχόμενο δίκτυο.53- τα μυστικά τοποθετούνται μόνο όταν χρειάζεται.54- πλήρη αρχεία καταγραφής55- δυνατότητα εξαγωγής αντικειμένων·56- καθαρή επαναφορά μεταξύ των δρομολογίων, όταν είναι απαραίτητο.5758Το Vercel Sandbox πηγαίνει ακριβώς προς αυτήν την κατεύθυνση: απομονωμένα περιβάλλοντα για εκτέλεση κώδικα, εγκατάσταση εξαρτήσεων, εργασία με αρχεία και παραγωγή τεχνουργημάτων χωρίς να εκτελούνται τα πάντα στον χρόνο εκτέλεσης της κύριας εφαρμογής.5960Αυτό το πράγμα είναι πιο σημαντικό από όσο φαίνεται. Πολλά πρωτότυπα πράκτορα μεταπηδούν απευθείας από το μοντέλο στο πραγματικό σύστημα. Το μοντέλο μπορεί να καλέσει το εργαλείο. Τα εργαλεία μπορούν να κάνουν πράγματα. Όλα φαίνονται κομψά μέχρι την πρώτη λάθος εντολή, την πρώτη εξάρτηση που εγκαταστάθηκε σε λάθος μέρος, το πρώτο διακριτικό που καταλήγει σε ένα αρχείο καταγραφής.6162Το sandbox είναι ο τρόπος για να πούμε για ενήλικες: προχωρήστε, αλλά εδώ.6364## Το τρίτο κομμάτι: MCP και πρόβλημα σύνδεσης6566Το Πρωτόκολλο Περιεχομένου Μοντέλου έχει γίνει ένα από τα πιο ενδιαφέροντα μέρη του οικοσυστήματος, επειδή προσπαθεί να τυποποιήσει κάτι που διαφορετικά γρήγορα γίνεται μη διαχειρίσιμο: πώς ένα μοντέλο ανακαλύπτει και χρησιμοποιεί εξωτερικά εργαλεία.6768Χωρίς πρότυπο, κάθε ένταξη είναι ένα μικρό νησί. Μια σύνδεση για το GitHub με έναν τρόπο, μια για το Slack με άλλη, μια για βάσεις δεδομένων με διαφορετική σημασιολογία, μια για αυτοματοποίηση προγράμματος περιήγησης που δεν μοιάζει με τίποτα.6970Το MCP προτείνει μια κοινή γλώσσα μεταξύ πελάτη και διακομιστή: εργαλεία, πόροι, προτροπές, εξουσιοδοτήσεις, μεταφορά, ανακάλυψη. Δεν λύνει μαγικά τη διακυβέρνηση και την ασφάλεια, αλλά δίνει μια γραμματική.7172Και η γραμματική έχει σημασία. Όταν ένας πράκτορας μπορεί να συνδεθεί με πολλά εργαλεία, το ερώτημα δεν είναι απλώς «μπορεί να το κάνει;». Το πρόβλημα είναι «καταλαβαίνει τι μπορεί να κάνει, με ποια όρια, για λογαριασμό ποιου και τι ίχνος αφήνει;».7374Για μένα το MCP δεν είναι διαφημιστική εκστρατεία επειδή "κάνει κλήση εργαλείων". Το κάναμε ήδη. Είναι διαφημιστική εκστρατεία επειδή μετατοπίζει το κέντρο βάρους από την ενιαία ενσωμάτωση στον λειτουργικό κατάλογο εργαλείων.7576Σε μια καλή αρχιτεκτονική πράκτορα, το MCP γίνεται ένα είδος πίνακα ενημέρωσης κώδικα:7778- GitHub for code and issues;79- Slack for conversational context;80- Linear or Jira for planned work;81- read-only database for analytics;82- πρόγραμμα περιήγησης ή ξύστρα ελεγχόμενο για εξωτερικούς ιστότοπους.83- αποθήκευση εγγράφων84- isolated execution environments;85- εσωτερικά συστήματα εκτεθειμένα με αυστηρές άδειες.8687Το δύσκολο μέρος είναι ότι ένας κατάλογος εργαλείων χωρίς πολιτική είναι απλώς ένας πιο κομψός τρόπος για να δημιουργήσετε χάος.8889## The fourth piece: identity and permissions9091Αυτή είναι η περιοχή όπου πολλά demos κάνουν τα στραβά μάτια.9293An agent acts on someone's behalf. Πρέπει λοιπόν να είναι ξεκάθαρο ποιο είναι το αντικείμενο της δράσης.9495Is it using user permissions? Λογαριασμού υπηρεσίας; Χώρου εργασίας; Do you have temporary or permanent access? Can you read everything or just some resources? Μπορείτε να γράψετε; Μπορείτε να ακυρώσετε; Μπορεί να στείλει μήνυμα σε αληθινούς ανθρώπους;9697Εάν δεν απαντήσετε καλά σε αυτές τις ερωτήσεις, αργά ή γρήγορα θα φτιάξετε έναν βοηθό με κλειδιά σπιτιού και χωρίς να θυμάται ποιος του τα έδωσε.9899Ο εμπειρικός κανόνας που μου αρέσει είναι ο εξής: ο πράκτορας πρέπει να μπορεί να κάνει λιγότερα από τον άνθρωπο, όχι περισσότερα από τον άνθρωπο. Και όταν πρέπει να κάνει κάτι πιο ριψοκίνδυνο, πρέπει να σταματήσει και να ρωτήσει.100101Αυτό σημαίνει OAuth, εύρος διακριτικού, μυστική διαχείριση, αρχείο καταγραφής ελέγχου, πολιτική εργαλείου, λίστα επιτρεπόμενων, βήμα έγκρισης. Όχι πολύ ρομαντικά πράγματα. Απαραίτητα πράγματα.102103## Το πέμπτο κομμάτι: μνήμη και πλαίσιο, αλλά χωρίς να συσσωρεύονται σκουπίδια104105Οι πράκτορες χρειάζονται μνήμη, αλλά η μνήμη είναι επικίνδυνη όταν γίνεται σοφίτα.106107There are at least three types of memory:108109- μνήμη εκτέλεσης: τι συνέβη σε αυτήν την εκτέλεση.110- μνήμη έργου: συμβάσεις, αποφάσεις, περιορισμοί.111- προσωπική ή ομαδική μνήμη: προτιμήσεις, τόνος, τελετουργίες, διαδικασίες.112113Η συντόμευση είναι η τοποθέτηση των πάντων στην προτροπή. Λειτουργεί μέχρι να μην λειτουργεί πια. Πρέπει να λαμβάνεται μέριμνα για τη χρήσιμη μνήμη: ευρετηριασμένη, ενημερωμένη, ληγμένη, επαληθευμένη, δυνατότητα αναφοράς.114115Ένας πράκτορας που θυμάται άσχημα είναι χειρότερος από έναν πράκτορα που δεν θυμάται. Γιατί μιλάει με σιγουριά.116117Επομένως η υποδομή πρέπει να περιλαμβάνει ανάκτηση, αρχεία οδηγιών, βάση γνώσεων, ενσωμάτωση όταν χρειάζεται, αλλά και καθαρισμό. Χρειαζόμαστε μια κουλτούρα μνήμης: τι μπαίνει, ποιος το εγκρίνει, πότε φθείρεται, πώς το διορθώνω.118119## Το έκτο κομμάτι: παρατηρησιμότητα, αξιολόγηση και επανάληψη120121Εάν ένας πράκτορας κάνει λάθος, το αρχείο καταγραφής "που ονομάζεται μοντέλο" δεν είναι αρκετό.122123Θέλετε να δείτε τη διαδρομή. Τι πλαίσιο έλαβε; Ποια εργαλεία ήταν διαθέσιμα; Ποιο εργαλείο επιλέξατε; Με ποια επιχειρήματα; Τι απάντηση λάβατε; Πόσο κόστισε; Που κόλλησε; Ο άνθρωπος ενέκρινε κάτι; Είναι το μοντέλο σφάλματος, το εργαλείο, η προτροπή, τα δεδομένα ή το σφάλμα άδειας;124125Εδώ οι πράκτορες μοιάζουν περισσότερο με κατανεμημένα συστήματα παρά με chatbot.126127Χρειάζεστε ευανάγνωστα ίχνη, όχι μόνο αρχεία καταγραφής κειμένου. Πρέπει να είστε σε θέση να επαναλάβετε ένα τρέξιμο. Είναι απαραίτητο να συγκρίνουμε δύο εκδόσεις του ίδιου πράκτορα σε γνωστές εργασίες. Πρέπει να μετρήσουμε τις παλινδρομήσεις: όχι μόνο «απαντάει καλύτερα», αλλά «κλείνει το σωστό δελτίο χωρίς να αγγίζει αυτόκλητα αρχεία».128129Οι πρακτικές αξιολογήσεις είναι πιο δύσκολες από τις αξιολογήσεις κειμένου επειδή περιλαμβάνουν ενέργειες. Δεν αρκεί η σύγκριση μιας αναμενόμενης συμβολοσειράς. Πρέπει να εξετάσετε τις αλληλουχίες, τις παρενέργειες, την ποιότητα του αντικειμένου, τον χρόνο, το κόστος, τον αριθμό των ανθρώπινων παρεμβάσεων.130131Το αστείο είναι ότι πάντα επιστρέφουμε εκεί: μηχανική λογισμικού. Δοκιμές, περιβάλλοντα, ίχνη, ανατροπές. Μόνο που ο κωδικός τώρα αποφασίζει επίσης τι θα κάνουμε στη συνέχεια.132133## Το έβδομο κομμάτι: ανθρώπινες διεπαφές134135Ο πράκτορας δεν χρειάζεται να ζει απλώς σε μια συνομιλία.136137Μερικοί πράκτορες χρειάζονται συμβούλιο. Άλλοι μια σελίδα με κατάσταση και αρχείο καταγραφής. Άλλα ενός κουμπιού "έγκριση". Περισσότερα ενσωματωμένα σχόλια. Άλλοι πάλι ενός CLI.138139Το UI αλλάζει συμπεριφορά. Εάν ο μόνος τρόπος για να ελέγξετε έναν πράκτορα είναι να γράψετε ένα μεγάλο μήνυμα, ο χρήστης θα δώσει στον πράκτορα αόριστες οδηγίες. Αν, ωστόσο, δει το σχέδιο, τη διαφορά, τις πηγές, τους κινδύνους και την επόμενη δράση, μπορεί να επέμβει με ακρίβεια.140141Μια αξιοπρεπής υποδομή πρακτόρων περιλαμβάνει επιφάνειες ελέγχου:142143- τρέχουσα κατάσταση.144- επεξεργάσιμο σχέδιο.145- παραγόμενα τεχνουργήματα.146- Διαφ.147- αιτήματα έγκρισης·148- χρονολογία149- κουμπί διακοπής150- κουμπί επανάληψης151- ορατά δικαιώματα.152153Φαίνεται ασήμαντο, αλλά δεν είναι. Η διαφορά μεταξύ του "ανατριχιαστικού AI" και του "αξιόπιστου βοηθού" είναι συχνά απλώς ότι ο δεύτερος σας δείχνει πού έχει τα χέρια του.154155## Η ψυχική στοίβα156157Αν το σχεδιάζα σήμερα, η ελάχιστη στοίβα πρακτόρων θα ήταν αυτή:1581591. Μοντέλο: συλλογισμός, παραγωγή, κλήση εργαλείου, πολυτροπικό εάν είναι απαραίτητο.1602. Ενορχήστρωση: loop, step, planner, policy, human-in-the-loop.1613. Ανθεκτικός χρόνος εκτέλεσης: ροή εργασίας, ουρά, επανάληψη, παύση, συνέχιση.1624. Sandbox: εκτέλεση κώδικα, απομονωμένο σύστημα αρχείων, περιορισμοί, τεχνουργήματα.1635. Επίπεδο εργαλείου: MCP, εσωτερικό API, πρόγραμμα περιήγησης, βάση δεδομένων, αποθετήριο.1646. Επίπεδο ταυτότητας: OAuth, πεδίο εφαρμογής, μυστικό, έλεγχος, πολιτική.1657. Επίπεδο μνήμης: πλαίσιο έργου, ανάκτηση, οδηγίες, λήξη.1668. Παρατηρησιμότητα: μετρήσεις ίχνους, επανάληψης, αξιολόγησης, κόστους και ποιότητας.1679. Επιφάνεια προϊόντος: συνομιλία όταν είναι αρκετό, πίνακας ελέγχου όταν χρειάζεται, αναθεώρηση όταν έχει σημασία.168169Το πρακτορείο καλύπτει κυρίως τα σημεία 2 και ένα κομμάτι του σημείου 1. Το υπόλοιπο είναι η πραγματική δουλειά.170171## Τι θα έκανα στην πράξη172173Αν μια ομάδα μου έλεγε «θέλουμε πράκτορες στην παραγωγή», δεν θα ξεκινούσα με δέκα πράκτορες.174175Θα ξεκινούσα με μια μικρή, επαναλαμβανόμενη και παρατηρήσιμη ροή εργασίας. Για παράδειγμα: άνοιγμα PR συντήρησης, ενημέρωση τεκμηρίωσης από κλειστά θέματα, προετοιμασία εβδομαδιαίας αναθεώρησης, διαλογή διπλών σφαλμάτων, δημιουργία δοκιμών για επηρεαζόμενα αρχεία.176177Τότε θα έβαζα πολύ ξεκάθαρα όρια:178179- Δεν υπάρχει γραφή χωρίς κλαδιά ή sandbox.180- δεν υπάρχουν μυστικά στην προτροπή181- εργαλεία στη λίστα επιτρεπόμενων182- ανθρώπινη έγκριση για εξωτερικές δράσεις.183- υποχρεωτικό ημερολόγιο και ίχνος.184- προϋπολογισμός ανά διαδρομή185- Η έξοδος είναι πάντα επιθεωρήσιμη.186187Μόνο τότε θα επεκτανόμουν.188189Οι πράκτορες δεν αποτυγχάνουν μόνο και μόνο επειδή τα μοντέλα το κάνουν λάθος. Αποτυγχάνουν γιατί τους βάζουμε σε ασαφή περιβάλλοντα, με μπερδεμένες άδειες και θεατρικές προσδοκίες.190191## Η ανάγνωση μου192193Η πρακτορική υποδομή είναι βαρετή με τον καλύτερο τρόπο.194195Δεν είναι το κομμάτι που σε κάνει να χειροκροτήσεις στο demo. Είναι το μέρος που σας επιτρέπει να χρησιμοποιήσετε πραγματικά την επίδειξη το πρωί της Δευτέρας, με πραγματικούς ανθρώπους, πραγματικά δεδομένα και πραγματικές συνέπειες.196197Το μέλλον των πρακτόρων δεν θα κριθεί μόνο από το ποιος έχει το καλύτερο πρότυπο. Θα το αποφασίσει όποιος κατασκευάσει το καλύτερο μέρος για να τον κάνει να δουλέψει: απομονωμένος όταν πειραματίζεται, συνδεδεμένος όταν χρειάζεται, πάντα παρατηρήσιμος, εξουσιοδοτημένος με κριτήρια και αρκετά ταπεινός για να σταματήσει όταν δεν ξέρει.198199Εκεί οι πράκτορες παύουν να είναι παιχνιδάκι και γίνονται υποδομές.200201## Πηγές202203- [Vercel: Πώς να δημιουργήσετε πράκτορες AI με το Vercel και το AI SDK](https://vercel.com/kb/guide/how-to-build-ai-agents-with-vercel-and-the-ai-sdk)204- [Έγγραφα Vercel: Sandbox](https://vercel.com/docs/sandbox)205- [Vercel Docs: Working with Sandbox](https://vercel.com/docs/sandbox/working-with-sandbox)206- [Έγγραφα Vercel: MCP](https://vercel.com/docs/mcp)207- [Model Context Protocol: Specification](https://modelcontextprotocol.io/specification)208- [OpenAI: Νέα εργαλεία για κατασκευαστικούς παράγοντες](https://openai.com/index/new-tools-for-building-agents/)209- [Cloudflare Blog: Agents on Cloudflare](https://blog.cloudflare.com/agents-on-cloudflare/)210
:Η πρακτορική υποδομή και το νέο backendlines 1-210 (END) — press q to close