<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Μπλογκ του Maguyva</title><description>Τεχνικές αναλύσεις σε βάθος για την ευφυΐα κώδικα MCP, την αρχιτεκτονική πρακτόρων τεχνητής νοημοσύνης, και μαθήματα από την κατασκευή μιας πλατφόρμας αναζήτησης κώδικα πολλών γλωσσών.</description><link>https://maguyva.ai/el/blog</link><language>el</language><atom:link href="https://maguyva.ai/el/rss.xml" rel="self" type="application/rss+xml"/><item><title>Ένα πλαίσιο που ταξιδεύει μαζί σας</title><link>https://maguyva.ai/el/blog/context-that-travels</link><guid isPermaLink="true">https://maguyva.ai/el/blog/context-that-travels</guid><description>Ο μηχανισμός ευρετηρίασης του Cursor είναι εξαιρετικός μέσα στο Cursor. Το Maguyva είναι ο φιλοξενούμενος χάρτης MCP που ο ίδιος πράκτορας μπορεί να ρωτήσει από άλλους επεξεργαστές κώδικα, από το CLI και από το CI.</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ο μηχανισμός ευρετηρίασης του Cursor είναι εξαιρετικός μέσα στο Cursor. Η αυτόματη συμπλήρωση, η ενσωματωμένη επεξεργασία, η συνομιλία και ο πράκτορας σε εκείνο το παράθυρο στηρίζονται ήδη σε ένα ευρετήριο έργου που διαχειρίζεται το Cursor για τον ανοιχτό χώρο εργασίας. Αν το Cursor είναι η μόνη επιφάνεια όπου γράφετε, και αυτό το ευρετήριο βρίσκει ήδη τα σωστά αρχεία, μείνετε εκεί. Αυτή είναι η ειλικρινής περίπτωση «μείνετε εκεί που είστε», και δικαιολογημένα ανοίγει αυτό το κείμενο.&lt;/p&gt;
&lt;p&gt;Αυτό το κείμενο αφορά το άλλο μισό μιας συνηθισμένης εβδομάδας. Το ίδιο αποθετήριο ανοίγει και στο Claude Code, ερωτάται από το Codex CLI, ελέγχεται σε μια δεύτερη μηχανή, ή ρωτιέται από έναν πράκτορα που τρέχει σε CI. Το ερώτημα δεν είναι «ποιος μηχανισμός ευρετηρίασης είναι καλύτερος». Το ερώτημα είναι αν ο χάρτης που εμπιστεύεται ο πράκτορας σε ένα παράθυρο είναι ο ίδιος χάρτης που εμπιστεύεται στο επόμενο.&lt;/p&gt;
&lt;p&gt;Το Maguyva είναι αυτός ο χάρτης που ταξιδεύει μαζί σας. Είναι ένα απομακρυσμένο επίπεδο MCP για το context της βάσης κώδικα. Ο πράκτορας το ρωτάει με τον ίδιο τρόπο που ρωτάει οποιοδήποτε άλλο εργαλείο MCP. Τα αποτελέσματα επιστρέφουν ως ταξινομημένες διαδρομές αρχείων με αριθμούς γραμμής. Το Cursor παραμένει ο επεξεργαστής κώδικα. Αυτό που μετακινείται είναι το context.&lt;/p&gt;
&lt;h2 id=&quot;σε-τι-χρησιμεύει-ο-μηχανισμός-ευρετηρίασης-του-cursor&quot;&gt;Σε τι χρησιμεύει ο μηχανισμός ευρετηρίασης του Cursor&lt;/h2&gt;
&lt;p&gt;Η ενσωματωμένη ευρετηρίαση του Cursor υπάρχει ώστε η συνομιλία, ο πράκτορας και η αναζήτηση μέσα στον επεξεργαστή να μπορούν να ανακτούν σχετικό κώδικα αντί να βασίζονται μόνο σε ό,τι χωράει στο ακατέργαστο παράθυρο συμφραζομένων του μοντέλου. Αυτός είναι ο σωστός σχεδιασμός για ένα IDE. Αυτό το ευρετήριο είναι εγγενές στο Cursor. Δεν είναι διακομιστής MCP και δεν είναι προσβάσιμο από κανένα άλλο πρόγραμμα-πελάτη.&lt;/p&gt;
&lt;p&gt;Να πώς λειτουργεί, όπως περιγράφεται στην δημόσια τεκμηρίωση του Cursor και στην ίδια περιγραφή του Cursor τη στιγμή που γράφεται αυτό το κείμενο: η κύρια διαδρομή αναζήτησης δεν είναι πια ένα ευρετήριο στο cloud από διανυσματικές αναπαραστάσεις. Η ομάδα του Cursor δήλωσε στο φόρουμ της κοινότητάς τους ότι η αποκλειστική σημασιολογική αναζήτηση βασισμένη σε διανυσματικές αναπαραστάσεις αποσύρεται σταδιακά υπέρ μιας αναζήτησης βασισμένης σε grep, επειδή τα σημερινά μοντέλα εξερευνούν ήδη αρκετά καλά ένα ζωντανό δέντρο μόνα τους. Στη θέση της βρίσκεται το Instant Grep, ένα τοπικό ευρετήριο αναζήτησης χτισμένο από n-γράμματα, ανεστραμμένες λίστες και φίλτρα Bloom, διατηρημένο σε έναν πίνακα αναζήτησης αντιστοιχισμένο στη μνήμη, ώστε τα ερωτήματα να επιλύονται στο ίδιο το μηχάνημα του προγραμματιστή και όχι σε έναν διακομιστή.&lt;/p&gt;
&lt;p&gt;Το ίδιο το ευρετήριο ζει μέσα στον δικό του κατάλογο &lt;code&gt;.git/cursor/&lt;/code&gt; του αποθετηρίου, αγκυρωμένο σε ένα συγκεκριμένο git commit· οι αλλαγές από εκείνο το commit επιστρώνονται πάνω του αντί να προκαλούν νέα σάρωση, και το ευρετήριο ξαναχτίζεται μόνο όταν η τοπική κατάσταση έχει αποκλίνει σημαντικά από αυτό πάνω στο οποίο χτίστηκε. Επειδή βρίσκεται μέσα στο &lt;code&gt;.git&lt;/code&gt;, δεν παρακολουθείται ποτέ ούτε αποστέλλεται ποτέ σε απομακρυσμένο αποθετήριο — διέγραψε τον φάκελο, και το ευρετήριο εξαφανίζεται. Το &lt;code&gt;.gitignore&lt;/code&gt; τηρείται εξ ορισμού, αφού μόνο περιεχόμενο που παρακολουθείται από το git είναι επιλέξιμο, και το &lt;code&gt;.cursorignore&lt;/code&gt; επιβάλλεται στη διαδρομή ανάγνωσης. Δεν υπάρχει πια ούτε βήμα διανυσματικής αναπαράστασης στην πλευρά του διακομιστή ούτε απομακρυσμένη διανυσματική βάση δεδομένων σε αυτή τη διαδρομή. Παλαιότερη τεκμηρίωση περιέγραφε έναν σχεδιασμό υποβοηθούμενο από cloud — κρυπτογράφηση τμημάτων κώδικα, συγχρονισμό μέσω δέντρου Merkle, επαναχρησιμοποίηση ευρετηρίου μεταξύ συναδέλφων ομάδας — και η ίδια η ομάδα του Cursor έχει δηλώσει έκτοτε ότι αυτός ο σχεδιασμός αποσύρεται, οπότε αυτό το κείμενο δεν τον περιγράφει πια ως τρέχοντα.&lt;/p&gt;
&lt;p&gt;Ένα χαρακτηριστικό που ξεχωρίζει μέσα στον επεξεργαστή είναι ο βοηθητικός πράκτορας Explore του Cursor. Μπορεί να ξεκινήσει πολλαπλές παράλληλες αναζητήσεις στο δικό του παράθυρο συμφραζομένων με ένα ταχύτερο μοντέλο και να επιστρέψει μόνο τα σχετικά ευρήματα, ώστε η κύρια συνομιλία να μη διογκώνεται από αποτελέσματα αναζήτησης. Αυτή είναι μια πραγματική δύναμη μέσα στον επεξεργαστή. Κρατήστε την.&lt;/p&gt;
&lt;p&gt;Οι χώροι εργασίας πολλαπλών ριζών υποστηρίζονται: το context κάθε ανοιχτού φακέλου είναι διαθέσιμο στον Agent. Ορισμένα χαρακτηριστικά που εξαρτώνται από το git, όπως τα πρόσθετα δέντρα εργασίας (git worktree), απενεργοποιούνται σε ρυθμίσεις πολλαπλών ριζών, και τα Cloud Agents δεν υποστηρίζουν καθόλου χώρους εργασίας πολλαπλών ριζών.&lt;/p&gt;
&lt;p&gt;Τίποτα από αυτά δεν είναι λόγος να εγκαταλείψετε το Cursor. Είναι μια ακριβής περιγραφή ενός χάρτη που είναι εξαιρετικός εκεί όπου ζει.&lt;/p&gt;
&lt;h2 id=&quot;τι-σημαίνει-πραγματικά-ταξιδεύει-μαζί-σας&quot;&gt;Τι σημαίνει πραγματικά «ταξιδεύει μαζί σας»&lt;/h2&gt;
&lt;p&gt;Ένας χάρτης ταξιδεύει μαζί σας όταν οι ίδιες ερωτήσεις επιστρέφουν το ίδιο είδος απάντησης, με παραπομπές που μπορείτε να ανοίξετε, από περισσότερα από ένα προγράμματα-πελάτες.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Στο Cursor: «Πού ορίζεται το &lt;code&gt;parseConfig&lt;/code&gt; και ποιος το καλεί;»&lt;/li&gt;
&lt;li&gt;Στο Claude Code, στο ίδιο αποθετήριο: το ίδιο ερώτημα.&lt;/li&gt;
&lt;li&gt;Στο Codex CLI, σε ένα μηχάνημα ελέγχου που δεν άνοιξε ποτέ το παράθυρο του Cursor: το ίδιο ερώτημα.&lt;/li&gt;
&lt;li&gt;Σε έναν πράκτορα του CI που μιλάει MCP: το ίδιο ερώτημα, στο ίδιο φιλοξενούμενο στιγμιότυπο.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Αν κάθε επιφάνεια χτίζει το δικό της ιδιωτικό ευρετήριο, δεν έχετε έναν χάρτη. Έχετε πολλές κρυφές μνήμες που αποκλίνουν. Το ευρετήριο του επεξεργαστή μπορεί να είναι ενημερωμένο για το δέντρο στον δίσκο. Η συνεδρία CLI μπορεί να καθυστερεί μια μέρα. Η εργασία CI μπορεί να κοιτάζει ένα διαφορετικό αντίγραφο εργασίας. Και ο πράκτορας θα συνεχίσει να ακούγεται σίγουρος.&lt;/p&gt;
&lt;p&gt;Ο μηχανισμός ευρετηρίασης του Cursor δεν προορίζεται να το λύσει αυτό. Επειδή ζει μέσα στον επεξεργαστή, το context που χτίζει είναι για εκείνον τον επεξεργαστή. Ένας αναγνώστης που χρειάζεται επίσης ένα CLI, ένα pipeline CI, ή έναν διαφορετικό επεξεργαστή κώδικα χρειάζεται ένα ξεχωριστό εργαλείο για αυτές τις επιφάνειες. Αυτό είναι ένα γεγονός εμβέλειας, όχι ελάττωμα. Το Maguyva είναι αυτό το ξεχωριστό εργαλείο.&lt;/p&gt;
&lt;p&gt;Ένας δημοσιευμένος αριθμός γλωσσών για τον μηχανισμό ευρετηρίασης του Cursor δεν αναφέρεται στο υλικό που μπορεί να χρησιμοποιήσει αυτό το κείμενο. Το Maguyva δημοσιεύει υποστήριξη για περισσότερες από 279 γλώσσες και τεχνολογίες βασισμένες σε κείμενο. Η τιμολόγηση του Cursor επίσης δεν αντιγράφεται εδώ· δείτε τη σελίδα τιμών τους. Το Maguyva χρεώνει ανά χώρο εργασίας, όχι ανά θέση, με δημοσιευμένα πλάνα $0, $19, $49 και $149 ανάλογα με την έκταση ευρετηρίασης και το μέγεθος του χώρου εργασίας.&lt;/p&gt;
&lt;h2 id=&quot;ένας-φιλοξενούμενος-χάρτης-κάθε-πρόγραμμα-πελάτης-mcp&quot;&gt;Ένας φιλοξενούμενος χάρτης, κάθε πρόγραμμα-πελάτης MCP&lt;/h2&gt;
&lt;p&gt;Το Maguyva είναι ένας απομακρυσμένος διακομιστής MCP. Συνδέετε το GitHub, επιλέγετε τα αποθετήρια, και το pipeline στο cloud χτίζει σύμβολα, ακμές γράφου και έναν ταξινομημένο χάρτη. Προσθέτετε ένα κλειδί API στη ρύθμιση MCP του προγράμματος-πελάτη που ήδη χρησιμοποιείτε. Το Maguyva έχει οδηγούς ρύθμισης για 24 τεκμηριωμένα προγράμματα-πελάτες MCP — συμπεριλαμβανομένου του Cursor — και μπορεί να συνδεθεί με άλλα συμβατά με MCP προγράμματα-πελάτες που υποστηρίζουν τυπική ρύθμιση.&lt;/p&gt;
&lt;p&gt;Η &lt;a href=&quot;https://maguyva.ai/el/for-cursor&quot;&gt;σελίδα ρύθμισης του Cursor&lt;/a&gt; είναι η διαδρομή ειδική για αυτόν τον επεξεργαστή, αν εκεί δουλεύετε. Ο ίδιος διακομιστής απαντά στα Claude Code, VS Code, Windsurf, Codex CLI και τα υπόλοιπα. Δεν αλλάζετε επεξεργαστή κώδικα. Δίνετε σε κάθε πράκτορα την ίδια επιφάνεια εργαλείων: 11 εργαλεία MCP για το πρόγραμμα-πελάτη, που καλύπτουν αναζήτηση, σύμβολα, ανάλυση εξαρτήσεων, ανάκτηση αρχείων, context αποθετηρίου και ντετερμινιστικές ροές εργασίας βοηθητικών εργαλείων. Η σημασιολογική, δομική, γράφου και κειμενική αναζήτηση συγχωνεύονται σε ταξινομημένα αποτελέσματα.&lt;/p&gt;
&lt;p&gt;Αυτό είναι το πλεονέκτημα της φορητότητας. Οι παραπομπές που ελέγξατε στο Cursor σήμερα το πρωί έχουν την ίδια μορφή με τις παραπομπές που θα επιστρέψει το Codex CLI απόψε. Διαδρομή αρχείου και αριθμός γραμμής. Ανοίξτε τα. Αν είναι λάθος, το βλέπετε. Αν είναι σωστά, η επόμενη επεξεργασία έχει πού να προσγειωθεί. Ο εγκεκριμένος ισχυρισμός είναι λιγότερες παραισθητικές επεξεργασίες, όχι υπόσχεση ότι κάθε επεξεργασία είναι σωστή.&lt;/p&gt;
&lt;p&gt;Η φρεσκάδα δημοσιεύεται. Τα στιγμιότυπα φέρουν χρονοσφραγίδα, ώστε ο πράκτορας να ξέρει ποια έκδοση του δέντρου διαβάζει. Η συχνότητα ανακατασκευής είναι καθημερινή στο δωρεάν πλάνο και ωριαία στα επί πληρωμή. Ο ειλικρινής περιορισμός είναι η μη συγχρονισμένη τοπική εργασία: μια επεξεργασία που υπάρχει μόνο σε ένα τοπικό δέντρο εργασίας δεν έχει μπει ακόμα στον φιλοξενούμενο χάρτη. Αυτός ο περιορισμός είναι ίδιος ανεξαρτήτως από ποιο πρόγραμμα-πελάτη ρωτάτε, και αυτό ακριβώς είναι το νόημα. Η απόκλιση μεταξύ προγραμμάτων-πελατών δεν είναι πια ένας δεύτερος, κρυφός περιορισμός.&lt;/p&gt;
&lt;p&gt;Η &lt;a href=&quot;https://maguyva.ai/el/docs&quot;&gt;τεκμηρίωση&lt;/a&gt; δίνει τον βρόχο ενεργοποίησης που ισχύει για κάθε πρόγραμμα-πελάτη: ευρετηριάστε ένα αποθετήριο που ήδη γνωρίζετε, συνδέστε το πρόγραμμα-πελάτη, κάντε μία ερώτηση που μπορείτε να επαληθεύσετε. Κάντε το μία φορά στο Cursor. Κάντε το ξανά από το CLI που πραγματικά χρησιμοποιείτε τις μέρες ελέγχου. Αν και οι δύο απαντήσεις παραπέμπουν στον ίδιο χειριστή, ο χάρτης πράγματι ταξίδεψε μαζί σας.&lt;/p&gt;
&lt;h2 id=&quot;πώς-συνυπάρχουν-οι-δύο-χάρτες&quot;&gt;Πώς συνυπάρχουν οι δύο χάρτες&lt;/h2&gt;
&lt;p&gt;Χρησιμοποιήστε και τους δύο. Δεν είναι εναλλακτικές με την έννοια μιας σελίδας σύγκρισης.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Κρατήστε τον μηχανισμό ευρετηρίασης του Cursor ενεργό για το έργο στον δίσκο. Αφήστε το Explore, το Instant Grep και τον πράκτορα μέσα στον επεξεργαστή να τον χρησιμοποιούν. Αυτός ο βρόχος είναι εγγενής και γρήγορος.&lt;/li&gt;
&lt;li&gt;Προσθέστε το Maguyva ως διακομιστή MCP στο Cursor ώστε η ίδια συνεδρία να μπορεί επίσης να ρωτάει τον φιλοξενούμενο χάρτη του χώρου εργασίας. Το Cursor είναι τεκμηριωμένο πρόγραμμα-πελάτης του Maguyva. Δεν επιλέγετε ένα ευρετήριο διαγράφοντας το άλλο.&lt;/li&gt;
&lt;li&gt;Προσθέστε τον ίδιο διακομιστή Maguyva στο Claude Code, στο Codex CLI, ή σε οποιοδήποτε άλλο πρόγραμμα-πελάτη MCP που αγγίζει το αποθετήριο. Μία μορφή κλειδιού API. Ένας χώρος εργασίας.&lt;/li&gt;
&lt;li&gt;Αν ένας πράκτορας του CI είναι συμβατός με MCP, στρέψτε τον στον ίδιο διακομιστή. Θα διαβάσει το ίδιο στιγμιότυπο με χρονοσφραγίδα που διάβασε ο φορητός υπολογιστής σας.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Το ευρετήριο του επεξεργαστή παραμένει το καλύτερο εργαλείο για το ερώτημα «τι υπάρχει στον δίσκο σε αυτό το παράθυρο, αυτή τη στιγμή». Ο φιλοξενούμενος χάρτης είναι το καλύτερο εργαλείο για το ερώτημα «πώς φαίνεται αυτός ο χώρος εργασίας σε κάθε πράκτορα που θα τον αγγίξει σήμερα». Αυτές οι προτάσεις δεν ανταγωνίζονται.&lt;/p&gt;
&lt;p&gt;Τα όρια χώρου εργασίας δημοσιεύονται στη &lt;a href=&quot;https://maguyva.ai/el/pricing&quot;&gt;σελίδα τιμών&lt;/a&gt;: αποθετήρια, ευρετηριασμένες γραμμές και χρήστες, χρεωμένα ανά χώρο εργασίας. Πράκτορες και άνθρωποι μοιράζονται τον ίδιο μετρητή χρηστών. Ξεκινήστε δωρεάν με ένα αποθετήριο που ήδη ξέρετε να αξιολογείτε. Αυξήστε τον χώρο εργασίας μόνο αφού οι παραπομπές επιβιώσουν την επαφή με το δέντρο.&lt;/p&gt;
&lt;h2 id=&quot;τι-δεν-ισχυρίζεται-αυτή-η-σελίδα&quot;&gt;Τι δεν ισχυρίζεται αυτή η σελίδα&lt;/h2&gt;
&lt;p&gt;Δεν ισχυρίζεται ότι ο μηχανισμός ευρετηρίασης του Cursor είναι αδύναμος, ελλιπής, ή λόγος για αλλαγή επεξεργαστή κώδικα. Η πρώτη πρόταση αυτού του κειμένου λέει το αντίθετο.&lt;/p&gt;
&lt;p&gt;Δεν ισχυρίζεται ότι το Maguyva αντικαθιστά το Instant Grep ή τον βοηθητικό πράκτορα Explore. Αυτά είναι χαρακτηριστικά του Cursor. Παραμένουν στο Cursor.&lt;/p&gt;
&lt;p&gt;Δεν επινοεί έναν αριθμό γλωσσών, μια τιμή καθυστέρησης, ή εξοικονόμηση tokens για κανένα από τα δύο προϊόντα. Άγνωστοι αριθμοί παραμένουν αδημοσίευτοι.&lt;/p&gt;
&lt;p&gt;Δεν προσποιείται ότι τοπική εργασία που δεν έχει σταλεί ακόμα στο απομακρυσμένο αποθετήριο βρίσκεται στον φιλοξενούμενο χάρτη. Τα στιγμιότυπα με χρονοσφραγίδα κάνουν αυτόν τον περιορισμό ορατό. Δεν τον αφαιρούν.&lt;/p&gt;
&lt;p&gt;Το τεστ είναι συνηθισμένο. Ευρετηριάστε ένα αποθετήριο που ήδη γνωρίζετε. Κάντε μία ερώτηση που μπορείτε να επαληθεύσετε, πρώτα στο Cursor, μετά σε ένα δεύτερο πρόγραμμα-πελάτη MCP. Ένα context που ταξιδεύει μαζί σας είναι η ίδια παραπομπή και στα δύο μέρη.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// same map, wherever you opened it.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>Ecosystem</category><category>MCP</category><category>Portability</category></item><item><title>Πρώτα ο χάρτης, μετά η αξιολόγηση</title><link>https://maguyva.ai/el/blog/map-first-review-second</link><guid isPermaLink="true">https://maguyva.ai/el/blog/map-first-review-second</guid><description>Θεμελιώστε τον πράκτορα προγραμματισμού σε έναν χάρτη του αποθετηρίου πριν γράψει. Αφήστε το Greptile να αξιολογήσει το αίτημα συγχώνευσης μετά. Ένα συμπληρωματικό δίδυμο, όχι αντικατάσταση.</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Δύο διαφορετικές δουλειές κάθονται στις δύο πλευρές ενός αιτήματος συγχώνευσης. Πριν γράψει ο πράκτορας, χρειάζεται έναν χάρτη του δέντρου που πρόκειται να αλλάξει. Αφού ο πράκτορας ανοίξει ένα PR, κάτι θα πρέπει να διαβάσει αυτή την αλλαγή σε σχέση με το υπόλοιπο σύστημα και να αφήσει σχόλια που μπορεί να αξιοποιήσει ένας άνθρωπος.&lt;/p&gt;
&lt;p&gt;Αυτές οι δουλειές μοιάζουν από μακριά επειδή και οι δύο περιλαμβάνουν «κατανόηση της βάσης κώδικα». Δεν είναι το ίδιο προϊόν. Η μία απαντά στο «πού θα έπρεπε να προσγειωθεί αυτή η αλλαγή;». Η άλλη απαντά στο «τι έσπασε αυτό το diff που ένα εργαλείο στατικού ελέγχου γραμμή προς γραμμή θα χάσει;». Το να τις μπερδέψετε παράγει ένα χειρότερο πρώτο προσχέδιο και μια πιο θορυβώδη αξιολόγηση.&lt;/p&gt;
&lt;p&gt;Αυτό το κείμενο είναι ένας οδηγός κοινής ροής εργασίας. Το Maguyva είναι ο χάρτης που ρωτάει πρώτος ο πράκτορας. Το Greptile είναι ο πράκτορας αξιολόγησης που σχολιάζει το PR μετά. Το δίδυμο είναι συμπληρωματικό εκ κατασκευής: το Maguyva δεν αξιολογεί αιτήματα συγχώνευσης, και το Greptile δεν αντικαθιστά το επίπεδο context που χρησιμοποίησε ο πράκτορας για να τα γράψει.&lt;/p&gt;
&lt;h2 id=&quot;γιατί-αυτός-ο-διαχωρισμός-είναι-χρήσιμος&quot;&gt;Γιατί αυτός ο διαχωρισμός είναι χρήσιμος&lt;/h2&gt;
&lt;p&gt;Ένας πράκτορας προγραμματισμού που ξεκινά από όσα έμαθε στην εκπαίδευσή του συν μερικά επικολλημένα αρχεία θα επινοήσει μια εύλογη διαδρομή αρχείου και θα την επεξεργαστεί. Αυτή είναι η αποτυχία «λάθος αρχείου», και είναι πρόβλημα ανάκτησης. Το Maguyva είναι ένα απομακρυσμένο επίπεδο MCP για το context της βάσης κώδικα: σημασιολογική, δομική (AST), γράφου/εξαρτήσεων και κειμενική ανάκτηση συγχωνεύονται σε ταξινομημένα αποτελέσματα, συν αναζήτηση συμβόλων και ανάκτηση αρχείων. Τεκμηριωμένες απαντήσεις επιστρέφουν ως &lt;code&gt;path/file.ext:line&lt;/code&gt;, ώστε να μπορείτε να απορρίψετε ένα λάθος πριν υπάρξει patch. Ο ισχυρισμός παραμένει μετριοπαθής: λιγότερες παραισθητικές επεξεργασίες. Το μοντέλο μπορεί ακόμα να μαντέψει. Απλώς το πρώτο βήμα σταματά να είναι μαντεψιά.&lt;/p&gt;
&lt;p&gt;Το Greptile είναι ένας πράκτορας αξιολόγησης κώδικα με AI. Με δικά τους λόγια, αξιολογεί αυτόματα κάθε αίτημα συγχώνευσης με πλήρη κατανόηση της βάσης κώδικα, και το τοποθετεί απέναντι σε παραδοσιακά εργαλεία στατικού ελέγχου που ελέγχουν αρχεία απομονωμένα αντί για ολόκληρο το σύστημα. Η ρύθμιση συνίσταται στην εγκατάσταση της εφαρμογής GitHub ή GitLab και στην επιλογή αποθετηρίων. Δεν υπάρχει τοπικό ευρετήριο που πρέπει να λειτουργείτε. Η φιλοξενία είναι στο Greptile Cloud (δηλώνουν συμμόρφωση SOC 2 Type II, με αναφορά διαθέσιμη κατόπιν αιτήματος), με επιλογή αυτοφιλοξενίας που προσφέρεται σε επιχειρήσεις.&lt;/p&gt;
&lt;p&gt;Η δική τους αριθμημένη ροή είναι: σύνδεση και δημιουργία ενός γράφου εξαρτήσεων κάθε συνάρτησης, κλάσης και εξάρτησης· σε κάθε αίτημα συγχώνευσης, ανάλυση της αλλαγής χρησιμοποιώντας αυτόν τον πλήρη γράφο του αποθετηρίου και δημοσίευση ευρημάτων ως σχόλια PR με προτεινόμενες διορθώσεις, σε περίπου τρία λεπτά· κάθε σχόλιο μπορεί να παραδώσει το πρόβλημα σε έναν πράκτορα προγραμματισμού που η ομάδα ήδη χρησιμοποιεί. Δηλώνουν επίσης ότι διαβάζουν προηγούμενα ανθρώπινα σχόλια PR με την πάροδο του χρόνου, για να μάθουν τα πρότυπα κώδικα μιας ομάδας και να μειώσουν θορυβώδεις προτάσεις. Το σύστημα εκμάθησής τους, όπως δηλώνουν, χρειάζεται 2–3 εβδομάδες για να προσαρμοστεί.&lt;/p&gt;
&lt;p&gt;Αυτό είναι αξιολόγηση, όχι σύνταξη. Το δυνατό σημείο του Greptile είναι το context πλήρους γράφου του αποθετηρίου πάνω στην αλλαγή που έχει ήδη προσγειωθεί σε ένα PR, και έπειτα ένας κλειστός βρόχος που στέλνει το εύρημα στα Claude Code, Codex, Conductor, Cursor ή Devin. Το δυνατό σημείο του Maguyva είναι ο ταξινομημένος χάρτης που ρώτησε ο πράκτορας πριν γραφτεί αυτή η αλλαγή. Χρησιμοποιήστε και τα δύο. Μη ζητάτε από κανένα να κάνει τη δουλειά του άλλου.&lt;/p&gt;
&lt;p&gt;Μια επίσημη ενσωμάτωση προϊόντων Maguyva–Greptile πρώτου μέρους δεν δηλώνεται. Ούτε τη χρειάζεστε. Το Maguyva μιλάει με τον πράκτορα μέσω MCP. Το Greptile μιλάει με το GitHub ή το GitLab μέσω της εφαρμογής τους. Συναντιούνται στο αίτημα συγχώνευσης. Κανένα συνδετικό σενάριο, κανένα cron που συνδέει το ένα εργαλείο με το άλλο. Το δίδυμο δεν χρειάζεται bash επειδή κάθε προϊόν κάθεται ήδη στην επιφάνεια που του ανήκει.&lt;/p&gt;
&lt;h2 id=&quot;τι-δεν-είναι-αυτό&quot;&gt;Τι δεν είναι αυτό&lt;/h2&gt;
&lt;p&gt;Αυτό δεν είναι μια κατεδάφιση του Greptile. Δεν είναι μια σελίδα «αλλάξτε τον αξιολογητή σας». Το Greptile λανσαρίστηκε στο Hacker News στις 5 Μαρτίου 2024 ως εταιρεία Y Combinator W24, και εκείνο το νήμα συζήτησης είναι ο τρόπος που πολλοί άνθρωποι γνώρισαν πρώτη φορά το προϊόν. Αν έτσι τους βρήκατε, κρατήστε τους. Αυτή η σελίδα είναι το μισό που λείπει μπροστά από εκείνον τον βρόχο: να θεμελιώσετε τον πράκτορα εκ των προτέρων ώστε το PR που βλέπει το Greptile να στοχεύει ήδη τα σωστά αρχεία.&lt;/p&gt;
&lt;p&gt;Το διαφημιστικό υλικό του Greptile προηγείται με ισχυρισμούς για ταχύτητα αξιολόγησης και εντοπισμό σφαλμάτων. Αντιμετωπίστε τους ως δικούς τους ισχυρισμούς του Greptile, όχι ως ανεξάρτητα επαληθευμένους αριθμούς. Αυτό το κείμενο δεν τους επαναλαμβάνει ως γεγονότα.&lt;/p&gt;
&lt;p&gt;Η κάλυψη γλωσσών είναι το ίδιο είδος ειλικρίνειας. Το Greptile πλαισιώνει την υποστήριξη ως κάλυψη όλων των γλωσσών προγραμματισμού αντί για μια απαριθμημένη λίστα· ένας ακριβής αριθμός δεν δηλώνεται. Το Maguyva δημοσιεύει υποστήριξη για περισσότερες από 279 γλώσσες και τεχνολογίες βασισμένες σε κείμενο, με έναν τεχνικό διαχωρισμό (AST μέσω συντακτικού αναλυτή έναντι μόνο κειμένου) στον ιστότοπο όταν το ερώτημα είναι τεχνικό. Είναι διαφορετικά προϊόντα που κάνουν διαφορετικούς ισχυρισμούς. Μην τα ανακατεύετε.&lt;/p&gt;
&lt;p&gt;Η τιμολόγηση του Greptile δεν δηλώνεται στο υλικό που μπορεί να χρησιμοποιήσει αυτό το κείμενο. Επί πληρωμή πλάνα υπάρχουν· δείτε τη σελίδα τιμών τους. Το Maguyva χρεώνει ανά χώρο εργασίας, όχι ανά θέση. Τα πλάνα ξεκινούν δωρεάν. Η &lt;a href=&quot;https://maguyva.ai/el/pricing&quot;&gt;σελίδα τιμών&lt;/a&gt; απαριθμεί τα δημοσιευμένα επίπεδα αν χρειάζεστε τους αριθμούς χώρου εργασίας.&lt;/p&gt;
&lt;h2 id=&quot;ροή-εργασίας&quot;&gt;Ροή εργασίας&lt;/h2&gt;
&lt;p&gt;Τρία επώνυμα στάδια. Εκτελέστε τα με αυτή τη σειρά. Μην παραλείψετε κανένα την πρώτη φορά που δοκιμάζετε αυτό το δίδυμο.&lt;/p&gt;
&lt;h3 id=&quot;1-context-maguyva&quot;&gt;1. Context Maguyva&lt;/h3&gt;
&lt;p&gt;Ευρετηριάστε ένα αποθετήριο που ήδη γνωρίζετε. Συνδέστε το πρόγραμμα-πελάτη MCP στο οποίο ήδη γράφετε — Claude Code, Cursor, Codex CLI, VS Code, Windsurf, ή ένα άλλο συμβατό με MCP πρόγραμμα-πελάτη. Το Maguyva έχει οδηγούς ρύθμισης για 24 τεκμηριωμένα προγράμματα-πελάτες MCP και μπορεί να συνδεθεί με άλλα προγράμματα-πελάτες που υποστηρίζουν τυπική ρύθμιση MCP.&lt;/p&gt;
&lt;p&gt;Κάντε μια ερώτηση που μπορείτε να αξιολογήσετε πριν γράψει κανείς μια γραμμή. «Πού διαχειρίζεται η λήξη συνεδρίας, και τι το καλεί;» είναι μια καλύτερη πρώτη κίνηση από «διόρθωσε το auth». Απαιτήστε παραπομπές. Ανοίξτε τα αποτελέσματα &lt;code&gt;file.ext:line&lt;/code&gt;. Ακολουθήστε το σύμβολο. Επιβεβαιώστε την εξάρτηση που πρόκειται να αγγίξετε.&lt;/p&gt;
&lt;p&gt;Το Maguyva εκθέτει 11 εργαλεία MCP για το πρόγραμμα-πελάτη, που καλύπτουν αναζήτηση, σύμβολα, ανάλυση εξαρτήσεων, ανάκτηση αρχείων, context αποθετηρίου και ντετερμινιστικές ροές εργασίας βοηθητικών εργαλείων. Τέσσερις τρόποι ανάκτησης συγχωνεύονται σε ταξινομημένα αποτελέσματα· το &lt;code&gt;find_symbol&lt;/code&gt; είναι ξεχωριστό εργαλείο όταν ήδη γνωρίζετε το όνομα. Η &lt;a href=&quot;https://maguyva.ai/el/docs&quot;&gt;τεκμηρίωση&lt;/a&gt; περιγράφει τη συντομότερη διαδρομή: ξεκινήστε δωρεάν, ευρετηριάστε ένα αποθετήριο που ήδη γνωρίζετε, συνδέστε το πρόγραμμα-πελάτη, μετά κάντε μία ερώτηση που μπορείτε να επαληθεύσετε.&lt;/p&gt;
&lt;p&gt;Τα στιγμιότυπα φέρουν χρονοσφραγίδα, ώστε ο πράκτορας να μπορεί να πει ποια έκδοση του δέντρου διαβάζει. Ο ειλικρινής περιορισμός είναι η μη συγχρονισμένη τοπική εργασία. Αν η επεξεργασία υπάρχει μόνο σε ένα τοπικό δέντρο εργασίας και δεν έχει σταλεί στο απομακρυσμένο αποθετήριο, ο φιλοξενούμενος χάρτης δεν την περιέχει ακόμα. Τα αρχεία οδηγιών (&lt;code&gt;CLAUDE.md&lt;/code&gt;, &lt;code&gt;AGENTS.md&lt;/code&gt;) εξακολουθούν να έχουν τη θέση τους εδώ, για συμβάσεις και για ό,τι δεν πρέπει να αγγίζεται. Δεν είναι ζωντανός χάρτης. Χρησιμοποιήστε τα για συμπεριφορά. Χρησιμοποιήστε το Maguyva για γεγονότα.&lt;/p&gt;
&lt;p&gt;Μην αφήνετε τον πράκτορα να ανοίξει PR πριν οι παραπομπές επιβιώσουν την επαφή με το αποθετήριο. Αυτή η πύλη είναι όλο το νόημα αυτού του σταδίου.&lt;/p&gt;
&lt;h3 id=&quot;2-pr-του-πράκτορα&quot;&gt;2. PR του πράκτορα&lt;/h3&gt;
&lt;p&gt;Ο ίδιος πράκτορας τώρα γράφει την αλλαγή στο πρόγραμμα-πελάτη για το οποίο ήδη πληρώνετε. Το Maguyva δεν είναι επεξεργαστής κώδικα ούτε αξιολογητής. Ο πράκτορας εξακολουθεί να παράγει το diff. Εσείς εξακολουθείτε να ανοίγετε το αίτημα συγχώνευσης στο GitHub ή στο GitLab με τον τρόπο που ήδη κάνετε.&lt;/p&gt;
&lt;p&gt;Αυτό που θα έπρεπε να είναι διαφορετικό είναι το πρώτο αρχείο. Το PR θα πρέπει να ονομάζει τον χειριστή που πράγματι υλοποιεί τη συμπεριφορά, τον καλούντα που θα σπάσει, και τη δοκιμή που θα αποτύχει αν η αλλαγή είναι λάθος. Αν το στάδιο 1 παραλείφθηκε, το στάδιο 3 θα ξοδέψει τα σχόλιά του σε μια αλλαγή που προσγειώθηκε στο λάθος πακέτο. Το Greptile μπορεί ακόμα να βρει συστημικά προβλήματα. Δεν θα έπρεπε επιπλέον να χρειάζεται να ανακάμψει από μια παραισθητική διαδρομή αρχείου.&lt;/p&gt;
&lt;p&gt;Κρατήστε το PR περιορισμένο. Ένα τεκμηριωμένο πρώτο αρχείο δεν είναι άδεια να ξαναγράψετε την ενότητα κώδικα. Αυτό το συμπληρωματικό δίδυμο λειτουργεί όταν ο πράκτορας έκανε μια δουλειά με έναν χάρτη, και μετά ζήτησε από έναν αξιολογητή να κάνει μια άλλη δουλειά σε ένα οριοθετημένο diff.&lt;/p&gt;
&lt;h3 id=&quot;3-αξιολόγηση-greptile&quot;&gt;3. Αξιολόγηση Greptile&lt;/h3&gt;
&lt;p&gt;Το Greptile είναι ήδη συνδεδεμένο με το αποθετήριο μέσω της εφαρμογής GitHub ή GitLab. Στο νέο αίτημα συγχώνευσης αναλύει την αλλαγή χρησιμοποιώντας τον πλήρη γράφο του αποθετηρίου που έχτισε, και δημοσιεύει ευρήματα ως σχόλια με προτεινόμενες διορθώσεις. Το δικό τους υλικό τοποθετεί αυτό το πέρασμα στα περίπου τρία λεπτά.&lt;/p&gt;
&lt;p&gt;Διαβάστε τα σχόλια όπως θα διαβάζατε έναν προσεκτικό συνάδελφο ομάδας: ανοίξτε την παραπεμπόμενη τοποθεσία, αποφασίστε αν το εύρημα είναι πραγματικό, μετά ενεργήστε. Εκεί όπου το Greptile προσφέρει «Fix with your Agent», στέλνει το πρόβλημα — διαδρομές αρχείων, αριθμούς γραμμής, προτεινόμενο κώδικα — στα Claude Code, Codex, Conductor, Cursor ή Devin. Το «Fix All» στέλνει όλα τα προβλήματα της αξιολόγησης ταυτόχρονα. Παρέχουν επίσης ένα Greptile MCP και ένα πρόσθετο για το Claude Code για αυτή την παράδοση. Το Maguyva δεν βρίσκεται σε αυτή την επώνυμη λίστα στόχων· αυτή η απουσία δεν είναι πρόβλημα. Το Maguyva έχει ήδη κάνει τη δουλειά του στο στάδιο 1. Ο πράκτορας προγραμματισμού που έγραψε το PR είναι αυτός που θα έπρεπε να λάβει τα δεδομένα της διόρθωσης.&lt;/p&gt;
&lt;p&gt;Περιμένετε θόρυβο τις πρώτες 2–3 εβδομάδες όσο το σύστημα εκμάθησης του Greptile προσαρμόζεται στα σχόλια που πραγματικά αφήνει η ομάδα σας. Αυτό είναι το δηλωμένο χρονοδιάγραμμά τους, όχι ελάττωμα του διδύμου. Η ανθρώπινη αξιολόγηση παραμένει στον βρόχο. Το Greptile είναι το αυτοματοποιημένο πρώτο πέρασμα, όχι το κουμπί της συγχώνευσης.&lt;/p&gt;
&lt;p&gt;Αν ένα σχόλιο του Greptile δείχνει σε ένα αρχείο που ο πράκτορας δεν ρώτησε ποτέ στο στάδιο 1, αυτό είναι χρήσιμο σήμα. Είτε ο χάρτης έχασε έναν καλούντα, είτε ο πράκτορας παρέλειψε μια παραπομπή. Διορθώστε το προσχέδιο σύμφωνα με το σχόλιο. Μην απενεργοποιείτε τον αξιολογητή.&lt;/p&gt;
&lt;h2 id=&quot;πώς-να-κρατήσετε-αυτή-τη-συμπληρωματικότητα-ειλικρινή&quot;&gt;Πώς να κρατήσετε αυτή τη συμπληρωματικότητα ειλικρινή&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Το Maguyva πάντα πρώτο. Μια αξιολόγηση ενός PR με λάθος αρχείο παραμένει αξιολόγηση του λάθος αρχείου.&lt;/li&gt;
&lt;li&gt;Το Greptile πάντα μετά. Ένα καλά παραπεμπόμενο προσχέδιο χρειάζεται ακόμα μια ανάγνωση του diff σε επίπεδο ολόκληρου συστήματος.&lt;/li&gt;
&lt;li&gt;Μη ζητάτε από το Maguyva να δημοσιεύει σχόλια PR. Δεν το κάνει.&lt;/li&gt;
&lt;li&gt;Μη ζητάτε από το Greptile να είναι το πρώτο επίπεδο ανάκτησης του πράκτορα ενώ ακόμα επιλέγει διαδρομή αρχείου. Αυτή δεν είναι η δουλειά για την οποία είναι καλωδιωμένη η εφαρμογή τους GitHub ή GitLab.&lt;/li&gt;
&lt;li&gt;Μην επινοείτε μια αλυσίδα σεναρίων bash που τα «συγχρονίζει». Το PR είναι η διεπαφή.&lt;/li&gt;
&lt;li&gt;Επαληθεύστε και τις δύο πλευρές ανεξάρτητα. Ευρετηριάστε ένα αποθετήριο που ήδη γνωρίζετε. Κάντε μία ερώτηση που μπορείτε να επαληθεύσετε. Έπειτα ανοίξτε ένα μικρό PR και διαβάστε τι πραγματικά σχολιάζει το Greptile.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ο βρόχος είναι συνηθισμένος μόλις του δώσετε όνομα. Πρώτα ο χάρτης. Μετά το PR του πράκτορα. Μετά η αξιολόγηση. Κάθε προϊόν μένει στην πλευρά του αιτήματος συγχώνευσης στην οποία είναι καλό.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// map first. review second. in that order.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>Ecosystem</category><category>Workflow</category><category>Code Review</category></item><item><title>Δώστε σε πράκτορα AI το πλαίσιο μεγάλου αποθετηρίου χωρίς τοπικό ευρετήριο</title><link>https://maguyva.ai/el/blog/large-repo-context-without-a-local-indexer</link><guid isPermaLink="true">https://maguyva.ai/el/blog/large-repo-context-without-a-local-indexer</guid><description>Πώς να δώσετε σε έναν πράκτορα προγραμματισμού έναν αναζητήσιμο χάρτη ενός μεγάλου αποθετηρίου από το νέφος, χωρίς να τρέχετε τοπικό μηχανισμό ευρετηρίασης στον φορητό υπολογιστή σας.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Ένα μεγάλο αποθετήριο δεν χωράει σε ένα παράθυρο συμφραζομένων, και αν έχετε ποτέ στρέψει έναν μηχανισμό ευρετηρίασης στον φορητό σας υπολογιστή σε ένα πραγματικό monorepo, ξέρετε ότι δεν χωράει άνετα ούτε εκεί — η RAM εκτοξεύεται, η πρώτη ευρετηρίαση παίρνει μια ώρα, και ο πράκτοράς σας εξακολουθεί να ξεκινάει την επόμενη συνεδρία μαντεύοντας ποια αρχεία έχουν σημασία.&lt;/p&gt;
&lt;p&gt;Η συνήθης απάντηση είναι να τρέχετε έναν μηχανισμό ευρετηρίασης δίπλα στον επεξεργαστή κώδικα, και για ένα αποθετήριο που χωράει άνετα σε ένα μηχάνημα, είναι καλή απάντηση. Αν το monorepo σας ήδη ευρετηριάζεται γρήγορα στο Cursor και αυτό είναι το μόνο μέρος όπου χρειάζεστε τον χάρτη, αυτό το κείμενο δεν έχει τίποτα να προσθέσει — προσπεράστε το.&lt;/p&gt;
&lt;p&gt;Αυτό το κείμενο αφορά την άλλη περίπτωση — όταν ένας πράκτορας χρειάζεται έναν αναζητήσιμο χάρτη ενός μεγάλου αποθετηρίου, και δεν θέλετε να τρέχετε τοπικό μηχανισμό ευρετηρίασης για να τον αποκτήσετε.&lt;/p&gt;
&lt;h2 id=&quot;πότε-ένας-τοπικός-μηχανισμός-ευρετηρίασης-είναι-το-λάθος-εργαλείο&quot;&gt;Πότε ένας τοπικός μηχανισμός ευρετηρίασης είναι το λάθος εργαλείο&lt;/h2&gt;
&lt;p&gt;Ένα τοπικό ευρετήριο υποθέτει ότι ο κώδικας ζει στο μηχάνημα που το ρωτάει, και στην κλίμακα ενός πραγματικού monorepo αυτή η υπόθεση τεντώνεται ακόμα και μέσα σε έναν μόνο επεξεργαστή κώδικα. Το αποθετήριο είναι απλώς μεγαλύτερο από όσο θέλετε να κρατάτε «ζεστό» σε έναν φορητό υπολογιστή: δουλεύετε σε ένα πακέτο ενώ η ακτίνα επίδρασης βρίσκεται τρεις καταλόγους παρακάτω, και μια πρώτη κρύα ευρετηρίαση ενός δέντρου δύο εκατομμυρίων γραμμών δεν είναι κάτι που θέλετε να περάσετε δύο φορές — ούτε στο μηχάνημά σας, ούτε σε έναν εκτελεστή CI που δεν έχει κλωνοποιήσει ποτέ πριν αυτό το δέντρο. Ή ένας συνάδελφος θα έπρεπε να μπορεί να ρωτάει τον ίδιο χάρτη με εσάς, χωρίς να περιμένει το δικό του μηχάνημα να τελειώσει τον ίδιο μόχθο ευρετηρίασης.&lt;/p&gt;
&lt;p&gt;Τίποτα από αυτά δεν είναι λόγος να πετάξετε έναν καλό μηχανισμό ευρετηρίασης του επεξεργαστή σας. Είναι λόγος να έχετε επίσης έναν φιλοξενούμενο χάρτη που οποιοσδήποτε από τους πράκτορές σας μπορεί να ρωτήσει μέσω MCP.&lt;/p&gt;
&lt;p&gt;Και το πρόβλημα κλίμακας πάει πιο βαθιά από «πάρα πολλά αρχεία για να επικολλήσεις». Σε ένα μεγάλο δέντρο, το ενδιαφέρον ερώτημα σχεδόν ποτέ δεν είναι «δείξε μου αυτό το αρχείο» — είναι ποιο αρχείο, ποιο σύμβολο, ποιοι καλούντες, ποιες δοκιμές. Ένας πράκτορας που ξεκινά καταγράφοντας το &lt;code&gt;src/&lt;/code&gt; και διαβάζοντας τα πρώτα τρία αποτελέσματα θα χάσει ευχαρίστως τον χειριστή στο &lt;code&gt;apps/api&lt;/code&gt; και το παραγόμενο πρόγραμμα-πελάτη στο &lt;code&gt;packages/sdk&lt;/code&gt;. Αυτό που χρειάζεστε είναι ανάκτηση χτισμένη από ολόκληρο το δέντρο, μετά ταξινομημένη, μετά παραπεμπόμενη.&lt;/p&gt;
&lt;h2 id=&quot;τι-σημαίνει-πραγματικά-context-ενός-μεγάλου-αποθετηρίου&quot;&gt;Τι σημαίνει πραγματικά «context ενός μεγάλου αποθετηρίου»&lt;/h2&gt;
&lt;p&gt;Το να ρίχνετε αρχεία στην προτροπή του μοντέλου δεν είναι context — είναι ένα μικρότερο, χειρότερο αντίγραφο του δέντρου. Αυτό που πραγματικά χρειάζεται ο πράκτοράς σας είναι να κάνει ερωτήσεις και να παίρνει πίσω παραπεμπόμενες απαντήσεις: πού ορίζεται αυτό το σύμβολο και ποιος το καλεί, τι εξαρτάται από την ενότητα κώδικα που πρόκειται να αλλάξω, ποιο αρχείο δοκιμών καλύπτει αυτή τη συμπεριφορά, και πώς φαίνεται το δέντρο &lt;em&gt;τώρα&lt;/em&gt;, όχι το προηγούμενο τρίμηνο.&lt;/p&gt;
&lt;p&gt;Αυτές οι απαντήσεις πρέπει να προέρχονται από ένα ευρετήριο χτισμένο από το αποθετήριό σας και όχι από τη μνήμη του μοντέλου για ξένα αποθετήρια, και αυτό το ευρετήριο πρέπει να ζει κάπου έξω από το παράθυρο συμφραζομένων του πράκτορα. Για αυτό το πρόβλημα, θα έπρεπε επίσης να ζει κάπου έξω από τον φορητό υπολογιστή σας.&lt;/p&gt;
&lt;p&gt;Ένα ακόμα πράγμα που τα αρχεία οδηγιών δεν μπορούν να κάνουν για εσάς: τα &lt;code&gt;CLAUDE.md&lt;/code&gt; και &lt;code&gt;AGENTS.md&lt;/code&gt; είναι το σωστό μέρος για συμβάσεις και συμπεριφορά, αλλά δεν είναι ένας ζωντανός, ταξινομημένος, αναζητήσιμος χάρτης ενός δέντρου δύο εκατομμυρίων γραμμών. Χρησιμοποιήστε κανόνες για τη συμπεριφορά· χρησιμοποιήστε ευφυΐα αποθετηρίου για τα γεγονότα.&lt;/p&gt;
&lt;h2 id=&quot;χτίζουμε-τον-χάρτη-στο-cloud-τον-ρωτάμε-από-οποιοδήποτε-πρόγραμμα-πελάτη&quot;&gt;Χτίζουμε τον χάρτη στο cloud, τον ρωτάμε από οποιοδήποτε πρόγραμμα-πελάτη&lt;/h2&gt;
&lt;p&gt;Το Maguyva είναι ένα απομακρυσμένο επίπεδο MCP για το context της βάσης κώδικα. Συνδέετε το GitHub, επιλέγετε τα αποθετήριά σας, και μπορείτε να φύγετε όσο οι ροές επεξεργασίας στο cloud αναλύουν το δέντρο, χτίζουν σύμβολα και ακμές γράφου, και διατηρούν έναν ταξινομημένο χάρτη — χωρίς ποτέ τοπικό μηχανισμό ευρετηρίασης.&lt;/p&gt;
&lt;p&gt;Όταν στέλνετε κώδικα στο απομακρυσμένο αποθετήριο, τα αλλαγμένα αρχεία αναλύονται σταδιακά, και τα επίπεδα γράφου και κατάταξης ξαναχτίζονται σε πρόγραμμα: καθημερινά στο δωρεάν πλάνο, ωριαία στα επί πληρωμή. Κάθε στιγμιότυπο φέρει χρονοσφραγίδα, ώστε ο πράκτοράς σας να μπορεί να πει ποια έκδοση του δέντρου διαβάζει. Ο ειλικρινής περιορισμός εδώ είναι η μη συγχρονισμένη τοπική εργασία — μια επεξεργασία που υπάρχει μόνο στο τοπικό σας δέντρο εργασίας, που δεν στάλθηκε ποτέ στο απομακρυσμένο αποθετήριο, δεν είναι ακόμα στον φιλοξενούμενο χάρτη.&lt;/p&gt;
&lt;p&gt;Έπειτα συνδέετε όποιο πρόγραμμα-πελάτη ήδη χρησιμοποιείτε προσθέτοντας ένα κλειδί API στη ρύθμιση MCP του. Υπάρχουν οδηγοί ρύθμισης για 24 τεκμηριωμένα προγράμματα-πελάτες MCP, και οποιοδήποτε άλλο συμβατό με MCP πρόγραμμα-πελάτης που υποστηρίζει τυπική ρύθμιση μπορεί επίσης να συνδεθεί. Αν το Cursor είναι το σπίτι σας, η &lt;a href=&quot;https://maguyva.ai/el/for-cursor&quot;&gt;σελίδα Cursor&lt;/a&gt; διανύει αυτή τη διαδρομή· ο ίδιος διακομιστής απαντά στα Claude Code, VS Code, Windsurf, Codex CLI και τα υπόλοιπα.&lt;/p&gt;
&lt;p&gt;Δεν αλλάζετε επεξεργαστή κώδικα. Δίνετε στον πράκτορά σας μια επιφάνεια εργαλείων — 11 εργαλεία MCP για αναζήτηση, σύμβολα, ανάλυση εξαρτήσεων, ανάκτηση αρχείων και context αποθετηρίου — με κάλυψη πάνω από 279 γλώσσες και τεχνολογίες βασισμένες σε κείμενο, κάτι που μετράει περισσότερο απ’ όσο νομίζετε σε ένα monorepo που έχει πάψει να είναι μονόγλωσσο εδώ και χρόνια.&lt;/p&gt;
&lt;p&gt;Οι απαντήσεις επιστρέφουν τεκμηριωμένες, ως διαδρομές αρχείων με αριθμούς γραμμής. Η σημασιολογική, δομική, γράφου και κειμενική αναζήτηση συγχωνεύονται σε ταξινομημένα αποτελέσματα, ώστε μια ερώτηση όπως «τι εξαρτάται από το parseConfig» να μη σας δίνει ούτε έναν σωρό αποτελεσμάτων grep ούτε ένα μόνο σημασιολογικό απόσπασμα, αλλά τη χούφτα των τοποθεσιών που πραγματικά έχουν σημασία.&lt;/p&gt;
&lt;h2 id=&quot;ένας-συγκεκριμένος-οδηγός&quot;&gt;Ένας συγκεκριμένος οδηγός&lt;/h2&gt;
&lt;p&gt;Μην ξεκινάτε ευρετηριάζοντας όλη την εταιρεία. Να η διαδρομή που δουλεύει:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Διαλέξτε ένα αποθετήριο που ήδη γνωρίζετε καλά — ένα πακέτο που μπορείτε να αξιολογήσετε με το χέρι αξίζει περισσότερο από το μεγαλύτερο δέντρο που έχετε.&lt;/li&gt;
&lt;li&gt;Ξεκινήστε δωρεάν: 3 αποθετήρια, 50χιλ ευρετηριασμένες γραμμές, όλα τα 11 εργαλεία, χωρίς μηνιαία ποσόστωση ερωτημάτων. Αν το αντιπροσωπευτικό σας αποθετήριο είναι μεγαλύτερο, η &lt;a href=&quot;https://maguyva.ai/el/pricing&quot;&gt;σελίδα τιμών&lt;/a&gt; απαριθμεί τα επίπεδα χώρου εργασίας ($0, $19, $49, $149) κατά ευρετηριασμένη έκταση — όχι κατά αριθμό θέσεων.&lt;/li&gt;
&lt;li&gt;Συνδέστε το GitHub και περιμένετε να ολοκληρωθεί η πρώτη ευρετηρίαση. Δεν μεταγλωττίζετε τίποτα τοπικά.&lt;/li&gt;
&lt;li&gt;Συνδέστε το πρόγραμμα-πελάτη MCP — λίγες γραμμές ρύθμισης. Το Maguyva είναι απομακρυσμένος διακομιστής MCP, οπότε δεν υπάρχουν πρόσθετα, δεν υπάρχουν επεκτάσεις, και δεν υπάρχει δεύτερος επεξεργαστής κώδικα να υιοθετήσετε.&lt;/li&gt;
&lt;li&gt;Κάντε μία ερώτηση που μπορείτε να επαληθεύσετε. «Τι εξαρτάται από το parseConfig;» ή «Πού διαχειρίζεται η λήξη της συνεδρίας σύνδεσης;» Έπειτα ανοίξτε τα παραπεμπόμενα αποτελέσματα &lt;code&gt;file.ext:line&lt;/code&gt; και ελέγξτε τα ως προς το δέντρο μπροστά σας.&lt;/li&gt;
&lt;li&gt;Μόνο αφού οι παραπομπές επιβιώσουν αυτή την επαφή, αφήστε τον πράκτορα να επεξεργαστεί.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Αν το πρώτο αποθετήριο ταιριάζει καλά και το δέντρο σας είναι μεγάλο, ανεβάστε τον χώρο εργασίας ώστε να ταιριάζει με τις ευρετηριασμένες γραμμές σας και τον ρυθμό ανακατασκευής. Άνθρωποι και πράκτορες μοιράζονται τον ίδιο μετρητή χρηστών — το Maguyva χρεώνει ανά χώρο εργασίας, όχι ανά θέση — οπότε η προσθήκη ενός τρίτου πράκτορα στον βρόχο δεν σας κοστίζει τίποτα.&lt;/p&gt;
&lt;p&gt;Το τεστ ενεργοποίησης είναι το ίδιο που συνιστά η &lt;a href=&quot;https://maguyva.ai/el/docs&quot;&gt;τεκμηρίωση&lt;/a&gt; για κάθε πρώτη εκτέλεση: ευρετηριάστε ένα αποθετήριο που ήδη γνωρίζετε, κάντε μία ερώτηση που μπορείτε να επαληθεύσετε. Ένα μεγάλο αποθετήριο δεν αλλάζει το τεστ· απλώς κάνει ένα λάθος πρώτο αρχείο πιο ακριβό.&lt;/p&gt;
&lt;h2 id=&quot;τι-να-προσέχετε-αφού-συνδεθείτε&quot;&gt;Τι να προσέχετε αφού συνδεθείτε&lt;/h2&gt;
&lt;p&gt;Προσέξτε τρία πράγματα. Φρεσκάδα: τα επί πληρωμή πλάνα ξαναχτίζονται ωριαία, τα δωρεάν καθημερινά, και η τοπική εργασία που δεν έχει σταλεί στο απομακρυσμένο αποθετήριο δεν θα βρίσκεται στον χάρτη — αυτό είναι το αντάλλαγμα που αποδέχεστε. Εμβέλεια: ευρετηριάστε ένα αντιπροσωπευτικό σύνολο αποθετηρίων, όχι κάθε αρχειοθετημένο παράγωγο αποθετήριο· το δωρεάν επίπεδο έχει σκόπιμα το μέγεθος που έχει, ώστε να μάθετε αν οι απαντήσεις αξίζουν να διατηρηθούν. Και επαλήθευση: ένας χάρτης μεγάλου αποθετηρίου που δεν μπορεί να παραπέμψει σε διαδρομές αρχείων και αριθμούς γραμμής είναι απλώς μια πιο αργή μηχανή εικασίας, οπότε βάλτε τον πράκτορά σας να δείξει την τοποθεσία πριν παραδώσει το patch.&lt;/p&gt;
&lt;p&gt;Έπειτα τρέξτε το ίδιο τεστ που θα τρέχατε σε ένα μικρό αποθετήριο. Ευρετηριάστε ένα αποθετήριο που ήδη γνωρίζετε. Κάντε μία ερώτηση που μπορείτε να επαληθεύσετε. Αν ο χάρτης είναι αληθινός, ο πράκτοράς σας σταματάει να ξεκινά από ένα κρύο δέντρο.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// no laptop got hot building this map.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>AI Agents</category><category>MCP</category><category>Indexing</category><category>Monorepos</category></item><item><title>Γιατί ο πράκτορας προγραμματισμού AI σας επινοεί διαδρομές αρχείων</title><link>https://maguyva.ai/el/blog/why-ai-coding-agents-hallucinate-file-paths</link><guid isPermaLink="true">https://maguyva.ai/el/blog/why-ai-coding-agents-hallucinate-file-paths</guid><description>Οι πράκτορες προγραμματισμού AI επινοούν διαδρομές αρχείων όταν δεν έχουν πραγματικό χάρτη του αποθετηρίου. Να γιατί συμβαίνει αυτό, και πώς η θεμελίωση οδηγεί σε λιγότερες παραισθητικές επεξεργασίες.</description><pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Το τεκμήριο δεν είναι ένα λάθος σώμα συνάρτησης. Είναι μια σίγουρη επεξεργασία σε ένα αρχείο που δεν υπάρχει, ή σε ένα αρχείο που υπάρχει αλλά δεν είναι αυτό που υλοποιεί τη συμπεριφορά.&lt;/p&gt;
&lt;p&gt;Ζητήσατε μια διόρθωση λήξης συνεδρίας. Ο πράκτορας άνοιξε το &lt;code&gt;src/auth/session.ts&lt;/code&gt;. Αυτή η διαδρομή είναι εύλογη. Είναι επίσης λάθος. Ο πραγματικός χειριστής ζει στο &lt;code&gt;apps/api/src/middleware/expiry.ts&lt;/code&gt;, που μετονομάστηκε πριν από δύο αναδιαμορφώσεις κώδικα. Ο πράκτορας δεν σας είπε ψέματα. Συμπλήρωσε μια συμβολοσειρά σε σχήμα διαδρομής από όσα έμαθε στην εκπαίδευσή του συν ό,τι ήδη υπήρχε στο παράθυρο συμφραζομένων.&lt;/p&gt;
&lt;p&gt;Αυτό είναι το συνηθισμένο μοτίβο αποτυχίας σε ένα πραγματικό αποθετήριο. Το μοντέλο ξέρει να γράφει κώδικα. Το λάθος είναι στην επιλογή του λάθος μέρους για να τον γράψει.&lt;/p&gt;
&lt;h2 id=&quot;γιατί-οι-πράκτορες-επινοούν-διαδρομές-αρχείων&quot;&gt;Γιατί οι πράκτορες επινοούν διαδρομές αρχείων&lt;/h2&gt;
&lt;p&gt;Ένας πράκτορας προγραμματισμού είναι ένα μοντέλο πρόβλεψης επόμενου token με εργαλεία. Όταν λέτε «διόρθωσε τη λήξη συνεδρίας», πρέπει να ονομάσει ένα αρχείο πριν μπορέσει να διαβάσει ή να κάνει patch σε οτιδήποτε. Αν δεν έχει ήδη έναν θεμελιωμένο χάρτη, κατασκευάζει μια διαδρομή από:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Συμβάσεις ονομασίας που έχει δει σε άλλα αποθετήρια. Το &lt;code&gt;src/auth/session.ts&lt;/code&gt; είναι συχνό σχήμα.&lt;/li&gt;
&lt;li&gt;Αρχεία ήδη παρόντα στη συνομιλία, που μπορεί να είναι αυτά που επικολλήσατε την περασμένη εβδομάδα, όχι αυτά που μετράνε τώρα.&lt;/li&gt;
&lt;li&gt;Λίστες καταλόγων που έτυχε να τρέξει, ελλιπείς σε ένα μεγάλο δέντρο.&lt;/li&gt;
&lt;li&gt;Αρχεία οδηγιών. Τα &lt;code&gt;CLAUDE.md&lt;/code&gt; και &lt;code&gt;AGENTS.md&lt;/code&gt; λένε στον πράκτορα πώς να συμπεριφέρεται. Δεν είναι ζωντανό ευρετήριο συμβόλων, καλούντων ή τρεχουσών διαδρομών.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Καμία από αυτές τις πηγές δεν είναι χάρτης αυτού του αποθετηρίου, σήμερα. Το μοντέλο γεμίζει το κενό όπως γεμίζει κάθε κενό: με μια συνέχεια υψηλής πιθανότητας. Αυτή η συνέχεια συχνά μοιάζει με πραγματική διαδρομή. Μερικές φορές το αρχείο υπάρχει και βρίσκεται δίπλα στο σωστό. Μερικές φορές υπήρχε σε έναν κλάδο που συγχωνεύθηκε τον περασμένο μήνα. Μερικές φορές δεν υπήρξε ποτέ.&lt;/p&gt;
&lt;p&gt;Το grep δεν σας σώζει εδώ αν ο πράκτορας δεν αναζητά καν τη σωστή συμβολοσειρά. Ο πράκτορας μάντεψε μια διαδρομή, μετά διάβασε ό,τι επέστρεψε εκείνη η διαδρομή, μετά το επεξεργάστηκε. Το πρώτο λάθος βήμα ήταν η διαδρομή, όχι το patch.&lt;/p&gt;
&lt;p&gt;Το να διαβάζετε αρχεία επίσης δεν είναι το ίδιο με το να βρίσκετε τα σωστά. Τα Claude Code, Cursor, Codex και παρόμοια εργαλεία μπορούν να ανοίξουν οτιδήποτε τους δείξετε. Το ερώτημα είναι αν βρίσκουν αξιόπιστα τα σωστά αρχεία, τα σημαντικά σύμβολα, τις εξαρτήσεις, τις δοκιμές, και την ακτίνα επίδρασης πριν επεξεργαστούν. Η πρόσβαση σε αρχεία χωρίς χάρτη εξακολουθεί να ξεκινά με μαντεψιά.&lt;/p&gt;
&lt;h2 id=&quot;η-επεξεργασία-λάθος-αρχείου-είναι-πρόβλημα-ανάκτησης&quot;&gt;Η επεξεργασία λάθος αρχείου είναι πρόβλημα ανάκτησης&lt;/h2&gt;
&lt;p&gt;Αντιμετώπισε την επινοημένη διαδρομή ως λάθος ανάκτησης, όχι ως ελάττωμα χαρακτήρα.&lt;/p&gt;
&lt;p&gt;Αν ο πράκτορας έπρεπε να επιστρέψει &lt;code&gt;path/file.ext:line&lt;/code&gt; πριν του επιτραπεί να επεξεργαστεί, θα συνέβαιναν δύο πράγματα. Πρώτον, θα μπορούσατε να ανοίξετε την παραπομπή και να απορρίψετε τη δουλειά σε δέκα δευτερόλεπτα. Δεύτερον, ο πράκτορας θα έπρεπε να ρωτήσει κάτι που πράγματι γνωρίζει το δέντρο.&lt;/p&gt;
&lt;p&gt;Αυτή είναι η δουλειά ενός επιπέδου context για τη βάση κώδικα. Η σημασιολογική αναζήτηση μόνη της δεν αρκεί. Ένα κομμάτι που «ακούγεται σαν λήξη συνεδρίας» μπορεί ακόμα να προσγειωθεί σε ένα ξεπερασμένο πακέτο. Χρειάζεστε επίσης ακριβές κείμενο όταν ξέρετε τη συμβολοσειρά, αναζήτηση συμβόλων όταν ξέρετε το όνομα, δομική αναζήτηση όταν ξέρετε το σχήμα, και έναν γράφο εξαρτήσεων όταν χρειάζεστε καλούντες και ακτίνα επίδρασης.&lt;/p&gt;
&lt;p&gt;Το Maguyva είναι αυτό το επίπεδο για πράκτορες προγραμματισμού συμβατούς με MCP. Δεν είναι επεξεργαστής κώδικα. Τα Claude Code, Cursor, Codex CLI, VS Code, Windsurf και άλλα προγράμματα-πελάτες MCP παραμένουν εκεί που είναι. Ο πράκτορας ρωτά έναν ταξινομημένο χάρτη πριν αγγίξει μια γραμμή.&lt;/p&gt;
&lt;p&gt;Ο ισχυρισμός είναι σκόπιμα μετριοπαθής: λιγότερες παραισθητικές επεξεργασίες. Το Maguyva δεν αφαιρεί από το μοντέλο την ικανότητα να μαντεύει. Αλλάζει το προεπιλεγμένο πρώτο βήμα από «επινόησε μια εύλογη διαδρομή» σε «ζήτησε ταξινομημένες, παραπεμπόμενες τοποθεσίες».&lt;/p&gt;
&lt;h2 id=&quot;πώς-μοιάζει-μια-θεμελιωμένη-απάντηση&quot;&gt;Πώς μοιάζει μια θεμελιωμένη απάντηση&lt;/h2&gt;
&lt;p&gt;Μια χρήσιμη απάντηση στο «πού διαχειρίζεται η λήξη συνεδρίας» δεν είναι μια παράγραφος. Είναι μια σύντομη λίστα τοποθεσιών:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;apps/api/src/middleware/expiry.ts:48&lt;/code&gt; - ο χειριστής&lt;/li&gt;
&lt;li&gt;&lt;code&gt;apps/web/src/lib/auth-client.ts:112&lt;/code&gt; - ο καλών&lt;/li&gt;
&lt;li&gt;&lt;code&gt;apps/api/tests/expiry.test.ts:20&lt;/code&gt; - η δοκιμή που θα αποτύχει αν η αλλαγή είναι λάθος&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Μπορείτε να ανοίξετε αυτές τις γραμμές. Αν είναι λάθος, σταματάτε. Αν είναι σωστές, ο πράκτορας μπορεί να επεξεργαστεί. Η επαλήθευση είναι το θέμα, όχι ένα σύνθημα.&lt;/p&gt;
&lt;p&gt;Το Maguyva εκθέτει 11 εργαλεία MCP για το πρόγραμμα-πελάτη, που καλύπτουν αναζήτηση, σύμβολα, ανάλυση εξαρτήσεων, ανάκτηση αρχείων, context αποθετηρίου και ντετερμινιστικές ροές εργασίας βοηθητικών εργαλείων. Τέσσερις τρόποι ανάκτησης (σημασιολογικός, δομικός, γράφου/εξαρτήσεων και κειμενικός) συγχωνεύονται σε ταξινομημένα αποτελέσματα· η αναζήτηση συμβόλων είναι ξεχωριστό εργαλείο MCP (&lt;code&gt;find_symbol&lt;/code&gt;). Θεμελιωμένες απαντήσεις επιστρέφουν με διαδρομές αρχείων και αριθμούς γραμμής, ώστε να μπορείτε να τις βαθμολογήσετε ως προς το δέντρο μπροστά σας.&lt;/p&gt;
&lt;p&gt;Η &lt;a href=&quot;https://maguyva.ai/el/docs&quot;&gt;τεκμηρίωση&lt;/a&gt; περιγράφει τη συντομότερη διαδρομή: ξεκινήστε δωρεάν, ευρετηριάστε ένα αποθετήριο που ήδη γνωρίζετε, συνδέστε το πρόγραμμα-πελάτη, μετά κάντε μία ερώτηση που μπορείτε να επαληθεύσετε.&lt;/p&gt;
&lt;h2 id=&quot;ένας-βρόχος-που-αλλάζει-την-πρώτη-επεξεργασία&quot;&gt;Ένας βρόχος που αλλάζει την πρώτη επεξεργασία&lt;/h2&gt;
&lt;p&gt;Δεν χρειάζεστε μια νέα θρησκεία ροής εργασίας. Χρειάζεστε ένα επιπλέον βήμα πριν την πρώτη εγγραφή.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Κάντε μια ερώτηση που ήδη μπορείτε να αξιολογήσετε. «Ποιος κώδικας διαχειρίζεται τη σύνδεση και τη λήξη συνεδρίας;» είναι καλύτερο από «διόρθωσε το auth».&lt;/li&gt;
&lt;li&gt;Απαιτήστε παραπομπές. Διαδρομή αρχείου και αριθμό γραμμής, όχι μια περίληψη της «ενότητας αυθεντικοποίησης».&lt;/li&gt;
&lt;li&gt;Ανοίξτε τα παραπεμπόμενα αρχεία. Ακολουθήστε το σύμβολο. Επιβεβαιώστε την εξάρτηση που πρόκειται να αγγίξετε.&lt;/li&gt;
&lt;li&gt;Μόνο τότε αφήστε τον πράκτορα να κάνει patch.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Αν το βήμα 2 δεν επιστρέψει τίποτα χρήσιμο, ο πράκτορας δεν έχει δικαίωμα να αυτοσχεδιάσει μια διαδρομή. Ξαναψάχνει, ή του δείχνετε εσείς. Ακριβώς αυτή η μία πύλη είναι που παράγει λιγότερες παραισθητικές επεξεργασίες. Το μοντέλο είναι το ίδιο μοντέλο. Ο χάρτης είναι αυτό που άλλαξε.&lt;/p&gt;
&lt;p&gt;Τα αρχεία οδηγιών εξακολουθούν να έχουν σημασία. Κρατήστε τα. Χρησιμοποιήστε τα για συμβάσεις, κανόνες αξιολόγησης, και για ό,τι δεν πρέπει να αγγίζεται. Μην τους ζητάτε να είναι το ευρετήριο. Ένα &lt;code&gt;CLAUDE.md&lt;/code&gt; που απαριθμεί τρεις σημαντικούς καταλόγους θα είναι ξεπερασμένο μια εβδομάδα μετά τη διάσπαση ενός πακέτου. Ένας αναζητήσιμος χάρτης ενημερώνεται όταν ενημερώνεται το αποθετήριο.&lt;/p&gt;
&lt;p&gt;Μια συναφής αποτυχία είναι το σχεδόν-σωστό αρχείο: ο πράκτορας ανοίγει το &lt;code&gt;auth.ts&lt;/code&gt; ενώ η συμπεριφορά ζει στο &lt;code&gt;auth-client.ts&lt;/code&gt;, ή κάνει patch σε ένα παραγόμενο αρχείο αντί για την πηγή, ή επεξεργάζεται το αντίγραφο στο &lt;code&gt;packages/legacy&lt;/code&gt; επειδή το όνομα ταίριαξε. Οι παραπομπές δεν κάνουν αυτά τα λάθη αδύνατα. Τα κάνουν ορατά πριν προσγειωθεί το diff.&lt;/p&gt;
&lt;h2 id=&quot;τι-δεν-θα-διορθώσει-ένας-χάρτης-για-εσάς&quot;&gt;Τι δεν θα διορθώσει ένας χάρτης για εσάς&lt;/h2&gt;
&lt;p&gt;Να είστε νηφάλιοι για το τι παίρνετε. Ένας θεμελιωμένος χάρτης δεν θα κάνει κάθε επεξεργασία σωστή — ο πράκτοράς σας μπορεί ακόμα να γράψει ένα κακό patch ακριβώς στο σωστό αρχείο. Αν η βάση κώδικά σας στηρίζεται σε δυναμική αποστολή κλήσεων, ανάκλαση ή μπαλώματα κώδικα κατά την εκτέλεση, κάποιες αναζητήσεις συμβόλων θα επιστρέφουν πιο φτωχές από όσο θα θέλατε, επειδή αυτό ακριβώς κάνει η έμμεση αναφορά κατά τον χρόνο εκτέλεσης σε κάθε στατικό ευρετήριο. Και αν ελπίζετε σε ένα ποσοστό — «παραισθητικές διαδρομές μειωμένες κατά X%» — δεν θα το βρείτε εδώ, επειδή κανείς εκτός από εσάς δεν μπορεί να μετρήσει ειλικρινά αυτόν τον αριθμό για το αποθετήριό σας.&lt;/p&gt;
&lt;p&gt;Αυτό που μπορείτε να περιμένετε είναι στενότερο και πιο χρήσιμο: ο πράκτορας σταματά να ξεκινά τις επεξεργασίες του με μια μαντεμένη διαδρομή. Αυτό το πρώτο βήμα θεμελιώνεται σε έναν πραγματικό χάρτη, και από εκεί προέρχονται οι λιγότερες παραισθητικές επεξεργασίες. Όλα μετά την παραπομπή — η ανάγνωση του diff, η κρίση του patch — παραμένουν δουλειά σας, όπως πάντα ήταν.&lt;/p&gt;
&lt;p&gt;Το τεστ δεν σας κοστίζει σχεδόν τίποτα: ευρετηριάστε ένα αποθετήριο που ήδη γνωρίζετε και κάντε μία ερώτηση που μπορείτε να επαληθεύσετε. Ξεκινήστε με μια διαδρομή που σας έχει κάψει στο παρελθόν. Αν οι παραπομπές είναι λάθος, θα το δείτε αμέσως. Αν είναι σωστές, η επόμενη επεξεργασία του πράκτορά σας έχει καλύτερο μέρος να προσγειωθεί.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// it doesn&apos;t know the file. it knows how to find it.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>AI Agents</category><category>Hallucination</category><category>Retrieval</category><category>MCP</category></item><item><title>Γιατί Αναβαθμίσαμε την Αναζήτηση Κώδικα σε voyage-4-large</title><link>https://maguyva.ai/el/blog/upgrading-code-search-to-voyage-4-large</link><guid isPermaLink="true">https://maguyva.ai/el/blog/upgrading-code-search-to-voyage-4-large</guid><description>Μεταφέραμε τα ενσωματώματα κώδικά μας στο voyage-4-large — προς το παρόν στην κορυφή του δημόσιου πίνακα κατάταξης ανάκτησης κώδικα RTEB. Η ειλικρινής εκδοχή: ο συμβιβασμός που αποδεχόμαστε, τι πραγματικά ευρετηριάζουμε και γιατί πληρώνουμε για ενσωματώματα πρέμιουμ.</description><pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Οι βαθμολογίες των benchmarks σε αυτή την ανάρτηση αντικατοπτρίζουν τους πίνακες κατάταξης RTEB κατά τη δημοσίευση (Ιούνιος 2026). Οι πίνακες κατάταξης αλλάζουν· αντιμετωπίστε τις κατατάξεις ως στιγμιότυπο, όχι ως μόνιμο γεγονός.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Η ποιότητα της σημασιολογικής αναζήτησης εξαρτάται από τα ενσωματώματα στα οποία βασίζεται.&lt;/p&gt;
&lt;p&gt;Όταν ένας πράκτορας ρωτά το Maguyva «πού χειριζόμαστε τις επαναλήψεις αποτυχημένων προσπαθειών», δεν κάνει grep για τη λέξη «retry». Ζητά το &lt;em&gt;νόημα&lt;/em&gt; — τον βρόχο σταδιακής αναμονής μεταξύ προσπαθειών, τον μηχανισμό διακοπής κλήσεων μετά από επανειλημμένες αποτυχίες, το περιτύλιγμα γύρω από μια ασταθή κλήση. Αυτή η ερώτηση απαντιέται από ένα διανυσματικό μοντέλο που μετατρέπει τον κώδικα σε ένα σημείο στον χώρο και βρίσκει τους γείτονές του. Επιλέξτε ένα καλύτερο μοντέλο και κάθε σημασιολογικό ερώτημα στο προϊόν γίνεται σιωπηλά πιο ακριβές.&lt;/p&gt;
&lt;p&gt;Έτσι αλλάξαμε το δικό μας. Από τον Ιούνιο του 2026, τα ενσωματώματα κώδικα του Maguyva τρέχουν πάνω στο &lt;strong&gt;&lt;code&gt;voyage-4-large&lt;/code&gt;&lt;/strong&gt;, αντικαθιστώντας το &lt;code&gt;voyage-code-3&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;το-benchmark&quot;&gt;Το Benchmark&lt;/h2&gt;
&lt;p&gt;Δεν πήραμε αυτή την απόφαση με διαίσθηση. Το δημόσιο &lt;a href=&quot;https://embedding-benchmark-rteb.hf.space/code&quot;&gt;Benchmark Ενσωματωμάτων Ανάκτησης (RTEB)&lt;/a&gt; κατατάσσει μοντέλα ενσωματωμάτων σε πραγματικές εργασίες ανάκτησης, και στον πίνακα κατάταξης &lt;strong&gt;Code&lt;/strong&gt; το &lt;code&gt;voyage-4-large&lt;/code&gt; βρίσκεται στην &lt;strong&gt;#1 θέση συνολικά (90,86)&lt;/strong&gt; — μπροστά από το &lt;code&gt;gemini-embedding-2-preview&lt;/code&gt; (90,26) και, αξιοσημείωτα, μπροστά από το μοντέλο που ήδη χρησιμοποιούσαμε, το &lt;code&gt;voyage-code-3&lt;/code&gt; (89,73, #3).&lt;/p&gt;
&lt;p&gt;Αυτό είναι μια μικρή απόλυτη διαφορά. Όμως είναι μια διαφορά προς τη σωστή κατεύθυνση, σε ένα δημόσιο benchmark, στην ακριβή εργασία που μας ενδιαφέρει: την ανάκτηση κώδικα βάσει νοήματος.&lt;/p&gt;
&lt;h2 id=&quot;ο-συμβιβασμός-που-αποδεχόμαστε-δυαδική-κβάντιση&quot;&gt;Ο Συμβιβασμός που Αποδεχόμαστε: Δυαδική Κβάντιση&lt;/h2&gt;
&lt;p&gt;Εδώ είναι το κομμάτι που οι περισσότερες αναρτήσεις τύπου «αναβαθμίσαμε το μοντέλο μας» παραλείπουν.&lt;/p&gt;
&lt;p&gt;Το Maguyva δεν αποθηκεύει διανύσματα πλήρους ακρίβειας. Αποθηκεύουμε ενσωματώματα με &lt;strong&gt;δυαδική κβάντιση&lt;/strong&gt;: κάθε διάνυσμα 2048 διαστάσεων συμπτύσσεται σε μια υπογραφή 2048 μπιτ — &lt;strong&gt;256 μπάιτ ανά διάνυσμα&lt;/strong&gt;. Αυτές οι υπογραφές αναζητούνται με απόσταση Hamming, ευρετηριασμένες και κατατμημένες ανά tenant.&lt;/p&gt;
&lt;p&gt;Αυτό είναι ένας σκόπιμος συμβιβασμός. Η δυαδική κβάντιση θυσιάζει κάποια ακρίβεια ανάκτησης σε αντάλλαγμα για δραματικά μικρότερη αποθήκευση και γρήγορους, φθηνούς υπολογισμούς απόστασης χωρίς να χρειάζεται ξεχωριστή βάση δεδομένων διανυσμάτων για λειτουργία. Για ένα προϊόν που ευρετηριάζει ολόκληρα αποθετήρια ανά χώρο εργασίας, αυτή η οικονομία έχει μεγαλύτερη σημασία από το να αποσπάσετε το τελευταίο κλάσμα μιας μονάδας σε ένα benchmark.&lt;/p&gt;
&lt;p&gt;Το &lt;code&gt;voyage-4-large&lt;/code&gt; ταιριάζει σε αυτόν τον σχεδιασμό χωρίς να επιβάλλει μετάβαση του επιπέδου αποθήκευσης: παράγει έξοδο 2048 διαστάσεων, όπως ακριβώς και το &lt;code&gt;voyage-code-3&lt;/code&gt;, οπότε οι στήλες &lt;code&gt;bit(2048)&lt;/code&gt; και η διαδρομή αναζήτησης Hamming δεν άλλαξαν. Το μοντέλο έγινε καλύτερο· το σχήμα παρέμεινε ίδιο.&lt;/p&gt;
&lt;h2 id=&quot;ο-κώδικας-ήταν-μόνο-η-αρχή&quot;&gt;Ο Κώδικας Ήταν Μόνο η Αρχή&lt;/h2&gt;
&lt;p&gt;Το Maguyva είναι ένα εργαλείο ευφυΐας κώδικα. Όμως είμαστε επίσης ο δικός μας πρώτος πελάτης, και το στρέφουμε και σε κάτι άλλο: το markdown που ζει στα αποθετήριά μας δίπλα στον κώδικα. Αρχεία αρχιτεκτονικών αποφάσεων, οδηγούς λειτουργίας, συμβόλαια, οικονομικά και έγγραφα πολιτικής — όλα υπό έλεγχο εκδόσεων στο Git, όλα πίσω από τον ίδιο διακομιστή MCP, ένα σημασιολογικό ευρετήριο πάνω στα &lt;em&gt;έγγραφα&lt;/em&gt;, όχι μόνο στον πηγαίο κώδικα.&lt;/p&gt;
&lt;p&gt;Γι’ αυτό ακριβώς έχει σημασία το εύρος του voyage-4-large. Στην ίδια οικογένεια πινάκων κατάταξης RTEB βρίσκεται στην &lt;strong&gt;#1 θέση στα οικονομικά, #1 στην υγεία και #1 στη συνολική ανάκτηση κειμένου&lt;/strong&gt; — μπροστά από το Gemini Embedding της Google, το Embed v4 της Cohere και το text-embedding-3-large της OpenAI. (Η Voyage είναι συνδημιουργός του RTEB, οπότε το διαβάζουμε ως ισχυρό δημόσιο σήμα και όχι ως απόλυτα ουδέτερο διαιτητή — όμως αξιολογείται σε άμεση σύγκριση έναντι κάθε μεγάλου εμπορικού μοντέλου, σε μη δημόσια σύνολα δεδομένων που έχουν κρατηθεί για αξιολόγηση.) Το ίδιο ευρετήριο που βρίσκει τη σωστή συνάρτηση για έναν πράκτορα βρίσκει και τη σωστή ρήτρα σε ένα συμβόλαιο ή τη σωστή γραμμή σε μια πολιτική — και σε αυτούς τους τομείς, το voyage-4-large δεν είναι συμβιβασμός, είναι ο ηγέτης.&lt;/p&gt;
&lt;h2 id=&quot;γιατί-πληρώνουμε-για-ενσωματώματα-πρέμιουμ&quot;&gt;Γιατί Πληρώνουμε για Ενσωματώματα Πρέμιουμ&lt;/h2&gt;
&lt;p&gt;Υπάρχει ένας φθηνότερος τρόπος για να κάνετε αναζήτηση, και μεγάλο μέρος του είναι δωρεάν. Η λεξιλογική αναζήτηση — το BM25 και συγγενικά του — αντιστοιχίζει λέξεις-κλειδιά, τρέχει τοπικά και δεν κοστίζει τίποτα. Ανοιχτού κώδικα μοντέλα ενσωματωμάτων όπως τα BGE, Nomic και embeddinggemma προσφέρουν γνήσια &lt;em&gt;αξιοπρεπή&lt;/em&gt; σημασιολογική ανάκτηση, και μπορείτε να τα φιλοξενήσετε μόνοι σας για το κόστος μιας GPU. Το Maguyva χρησιμοποιεί και τη δωρεάν πλευρά: κάθε ερώτημα συγχωνεύει αναζήτηση κειμένου, AST, γράφου και σημασιολογική αναζήτηση. Αυτό στο οποίο δεν τσιγκουνευόμαστε είναι το σημασιολογικό επίπεδο.&lt;/p&gt;
&lt;p&gt;Πληρώνουμε ανά token για ενσωματώματα πρέμιουμ — &lt;code&gt;voyage-4-large&lt;/code&gt; — αντί να φιλοξενήσουμε μόνοι μας ένα δωρεάν μοντέλο, για δύο λόγους. Πρώτον, η αναζήτηση μόνο με λέξεις-κλειδιά δεν μπορεί να απαντήσει στο «πού χειριζόμαστε τις επαναλήψεις αποτυχημένων προσπαθειών» όταν ο κώδικας λέει &lt;code&gt;backoff&lt;/code&gt; και &lt;code&gt;circuit breaker&lt;/code&gt; και ποτέ δεν λέει τη λέξη «retry» — η αποτύπωση του νοήματος είναι ο βασικός σκοπός του ενσωματώματος, και στους τομείς που εξυπηρετούμε τα ανοιχτά μοντέλα υστερούν έναντι των πρέμιουμ: μερικές μονάδες πίσω σε γενικό κείμενο, και ακόμη πιο πίσω σε εξειδικευμένους τομείς όπως ο κώδικας, τα συμβόλαια και τα οικονομικά. Δεύτερον, από την εμπειρία μας η ποιότητα ανάκτησης διαμορφώνει την τελική απάντηση περισσότερο από το μοντέλο στην άλλη άκρη — ένας ισχυρός πράκτορας στον οποίο δίνεται λάθος πλαίσιο εξακολουθεί να απαντά λάθος, και ποτέ δεν βλέπει το έγγραφο που ποτέ δεν του δόθηκε.&lt;/p&gt;
&lt;p&gt;Έτσι τα ενσωματώματα πρέμιουμ είναι ένας λογαριασμός ανά token που κλιμακώνεται με κάθε αποθετήριο και έγγραφο που ευρετηριάζουμε — και τον πληρώνουμε σκόπιμα. Για το αποτέλεσμα που παίρνουν οι χρήστες μας, τη σωστή συνάρτηση ή τη σωστή ρήτρα, πιστεύουμε ότι αυτός ο συμβιβασμός αξίζει.&lt;/p&gt;
&lt;h2 id=&quot;το-ειλικρινές-κομμάτι&quot;&gt;Το Ειλικρινές Κομμάτι&lt;/h2&gt;
&lt;p&gt;Η ίδια η τεκμηρίωση της Voyage εξακολουθεί να χαρακτηρίζει το &lt;code&gt;voyage-code-3&lt;/code&gt; ως το μοντέλο βελτιστοποιημένο για κώδικα. Γιατί λοιπόν να αλλάξουμε;&lt;/p&gt;
&lt;p&gt;Επειδή διαβάζουμε το δημόσιο benchmark, όχι μόνο τον πίνακα μοντέλων του προμηθευτή, και το benchmark έβαλε το &lt;code&gt;voyage-4-large&lt;/code&gt; στην κορυφή για ανάκτηση κώδικα. Αυτή ήταν μια απόφαση με βλέμμα στο μέλλον: πάρτε το νεότερο, γενικά ισχυρότερο μοντέλο και επικυρώστε το έναντι ενός δημόσιου πίνακα κατάταξης στις εργασίες που έχουν σημασία. Νιώθουμε άνετα να κάνουμε αυτό το στοίχημα επειδή τα στοιχεία είναι ευρεία — το voyage-4-large δεν κερδίζει μόνο στον κώδικα, ηγείται και στα οικονομικά, στην υγεία και στη συνολική ανάκτηση.&lt;/p&gt;
&lt;h2 id=&quot;το-σιωπηλό-θεμέλιο&quot;&gt;Το Σιωπηλό Θεμέλιο&lt;/h2&gt;
&lt;p&gt;Κάθε εργαλείο που εκθέτουμε — σημασιολογική αναζήτηση, συλλογή πλαισίου εργασίας, τεκμηριωμένες ερωτοαπαντήσεις — βασίζεται στην ανάκτηση. Όταν ο ανακτητής βελτιώνεται, ο πράκτορας στην άλλη άκρη παίρνει καλύτερα στοιχεία, ακολουθεί λιγότερες λανθασμένες κατευθύνσεις και τεκμηριώνει τις απαντήσεις του στον σωστό κώδικα — ή στη σωστή ρήτρα, ή στη σωστή πολιτική. Ένα πιο ακριβές μοντέλο ενσωματωμάτων δεν είναι ένα εντυπωσιακό χαρακτηριστικό. Είναι το θεμέλιο κάτω από όλα τα υπόλοιπα, και μόλις το ενισχύσαμε. Δεν θα το προσέξετε. Αυτό είναι το νόημα.&lt;/p&gt;
</content:encoded><category>Embeddings</category><category>Search</category><category>Architecture</category></item><item><title>Αναδρομική Αυτο-βελτίωση Γλωσσών: Βελτιώνοντας Αδιάκοπα την Ευφυΐα Κώδικα σε ~280 Γλώσσες</title><link>https://maguyva.ai/el/blog/autonomous-quality-loops-language-grind</link><guid isPermaLink="true">https://maguyva.ai/el/blog/autonomous-quality-loops-language-grind</guid><description>Υποστηρίζουμε ευφυΐα κώδικα για ~280 γλώσσες. Κανένας άνθρωπος δεν μπορεί να ελέγξει χειροκίνητα κάτι τέτοιο. Έτσι φτιάξαμε έναν βρόχο αναδρομικής αυτο-βελτίωσης γλωσσών — δειγματοληπτικός έλεγχος, LLM ως κριτής, διόρθωση ενός πράγματος τη φορά, επανεπικύρωση — και τον τρέχουμε με έναν στόλο απομονωμένων πρακτόρων μέχρι η εξαγωγή να είναι πράγματι σωστή, όχι απλώς πράσινη.</description><pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Οι αριθμοί σε αυτή την ανάρτηση αντικατοπτρίζουν το σύστημα κατά τη δημοσίευση (Μάιος 2026). Δείτε τη &lt;a href=&quot;https://maguyva.ai/el/team&quot;&gt;σελίδα ομάδας&lt;/a&gt; μας για τα τρέχοντα στοιχεία.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Το Maguyva εξάγει σύμβολα, αναφορές και έναν γράφο εξαρτήσεων από πηγαίο κώδικα σε περίπου 280 γλώσσες. Κάθε γλώσσα είναι ένας προσαρμοσμένος χειριστής tree-sitter — ερωτήματα, ευρετικοί κανόνες, οριακές περιπτώσεις — και κάθε χειριστής μπορεί να κάνει τα δικά του δυσδιάκριτα λάθη. Μια κλήση μεθόδου που καταγράφεται ως ανάγνωση. Μια συνάρτηση που αποδίδεται στο λάθος περιβάλλον εμβέλειας. Μια σχέση που απλώς δεν υπάρχει.&lt;/p&gt;
&lt;p&gt;Αυτό δεν μπορείτε να το ελέγξετε χειροκίνητα. Καμία ομάδα δεν μπορεί να διαβάσει έξοδο εξαγωγής σε 280 γραμματικές και να εντοπίσει τις κακές ακμές. Οπότε το ενδιαφέρον ερώτημα δεν είναι «είναι σωστή η εξαγωγή μας» — είναι «πώς &lt;em&gt;ανακαλύπτεις&lt;/em&gt; ότι είναι λάθος, σε αυτό το εύρος, χωρίς άνθρωπο σε κάθε βρόχο». Η απάντησή μας είναι η αναδρομική αυτο-βελτίωση γλωσσών: ένας βρόχος ποιότητας που κινείται από πράκτορες γλωσσών, ένα LLM που δρα ως κριτής, και έναν κανόνα που συνεχώς ξαναμαθαίνουμε: το πράσινο δεν είναι το ίδιο με το σωστό.&lt;/p&gt;
&lt;h2 id=&quot;το-πράσινο-δεν-είναι-σωστό&quot;&gt;Το πράσινο δεν είναι σωστό&lt;/h2&gt;
&lt;p&gt;Κάθε γλώσσα έχει μια σουίτα fixtures, και μια πύλη έκδοσης τη βαθμολογεί σε πέντε διαστάσεις — ακρίβεια, δομική ακεραιότητα, πληρότητα, ποιότητα και απόδοση. Μια γλώσσα γίνεται &lt;strong&gt;ΠΡΑΣΙΝΗ&lt;/strong&gt; μόνο όταν, στα fixtures της, η ακρίβεια ≥ 0,95, η ανάκληση ≥ 0,99, και το F1 ≥ 0,97, με τουλάχιστον 20 αναμενόμενες ακμές για στατιστική εμπιστοσύνη. Κάτω από αυτό είναι ΚΙΤΡΙΝΗ ή ΚΟΚΚΙΝΗ, και δεν κυκλοφορεί.&lt;/p&gt;
&lt;p&gt;Αυτή η πύλη είναι αναγκαία αλλά όχι επαρκής. Τα fixtures επικυρώνονται έναντι fixtures που &lt;em&gt;εμείς γράψαμε&lt;/em&gt;. Κωδικοποιούν τις περιπτώσεις που ήδη είχαμε σκεφτεί. Ένας χειριστής μπορεί να είναι άψογος στα fixtures του και παρόλα αυτά να παραμορφώνει ένα μοτίβο που εμφανίζεται μόνο σε πραγματικό κώδικα — έναν ιδιωματισμό μακροεντολής, μια μέθοδο με περιορισμούς γενικών τύπων, ένα χαρακτηριστικό γλώσσας για το οποίο κανείς δεν έγραψε fixture. ΠΡΑΣΙΝΟ σημαίνει ότι περνούν τα fixtures. Δεν σημαίνει ότι ένα πραγματικό αποθετήριο εξάγεται καθαρά. Οπότε ο βρόχος πρέπει να αφήσει πίσω τα fixtures και να εξετάσει πραγματικές βάσεις κώδικα.&lt;/p&gt;
&lt;h2 id=&quot;ο-εσωτερικός-βρόχος-δειγματοληπτικός-έλεγχος-κρίση-διόρθωση-απόδειξη&quot;&gt;Ο εσωτερικός βρόχος: δειγματοληπτικός έλεγχος, κρίση, διόρθωση, απόδειξη&lt;/h2&gt;
&lt;p&gt;Ο πυρήνας του βρόχου τρέχει μία γλώσσα τη φορά:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ┌──────────────────────────────────────────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  1. corpus run ── clone real-world repos, extract relationships   │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  2. spot-check 100 edges (seed 42, then seed 123 to cross-check)  │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  3. LLM judge classifies every sampled edge:                      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        CORRECT · FALSE_POSITIVE · TYPE_ERROR ·                    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        SCOPE_ERROR · METADATA_ERROR                               │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  4. fix ONE thing — handler .py, .scm query, or config           │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  5. re-validate — F1 + re-classify + manifest diff (no regressions)│&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │                                                          │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   better? ──no──► revert, try a different fix ────────────────────┤&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │ yes                                                       │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼                                                           │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  6. promote the fix into fixtures (a permanent regression guard) ──┘&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Μερικά πράγματα κάνουν αυτό να λειτουργεί αντί να στροβιλίζεται χωρίς αποτέλεσμα.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ο κριτής είναι ο πράκτορας, όχι μια κλήση API.&lt;/strong&gt; Όταν λέμε «LLM ως κριτής», εννοούμε ότι ο ίδιος ο πράκτορας γλώσσας διαβάζει κάθε δειγματισμένη ακμή έναντι της πραγματικής πηγής και την ταξινομεί με μια σταθερή κλίμακα πέντε κατηγοριών: είναι αυτή η ακμή σωστή, ένα ψευδώς θετικό, η σωστή σχέση με λάθος τύπο, συνδεδεμένη στη λάθος εμβέλεια, ή φέρει λάθος μεταδεδομένα; Αυτή η κλίμακα είναι όλο το παιχνίδι — το «23% ποσοστό σφάλματος» δεν σημαίνει τίποτα μέχρι να ξέρετε αν πρόκειται για πραγματικά ελαττώματα ή για λάθος μέτρημα του κριτή.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Διορθώστε ένα πράγμα, μετά αποδείξτε το.&lt;/strong&gt; Κάθε επανάληψη αλλάζει ακριβώς ένα επεξεργάσιμο στοιχείο, μετά ξανατρέχει έναντι ενός σταθερού εργαλείου επικύρωσης και κρατά την αλλαγή μόνο αν το F1 βελτιώνεται και η επανα-ταξινόμηση φαίνεται καλύτερη. Αν όχι, επανέρχεται. Καμία παρτίδα αλλαγών βασισμένων σε εικασίες, κανένα «θα έπρεπε να είναι καλύτερο». Μια αλλαγή κερδίζει τη θέση της ή χάνεται. Και όταν μια διόρθωση αποδεικνύεται επιτυχής και διατηρείται, προάγεται στη σουίτα fixtures — έτσι ώστε το σφάλμα που διόρθωσε να μην μπορεί ποτέ να επιστρέψει σιωπηλά. Αυτό το βήμα προαγωγής είναι αυτό που κάνει τον βρόχο &lt;em&gt;αναδρομικό&lt;/em&gt; και όχι απλώς επαναληπτικό: κάθε πέρασμα ενισχύει το σύνολο αναφοράς με το οποίο ελέγχεται το επόμενο πέρασμα.&lt;/p&gt;
&lt;h2 id=&quot;το-μάθημα-που-συνεχώς-ξαναμαθαίνουμε-οι-μετρικές-αναφέρουν-υπερβολικά-πολλά-προβλήματα&quot;&gt;Το μάθημα που συνεχώς ξαναμαθαίνουμε: οι μετρικές αναφέρουν υπερβολικά πολλά προβλήματα&lt;/h2&gt;
&lt;p&gt;Να η παγίδα, και πέσαμε κατευθείαν μέσα της. Οι δευτερεύουσες μετρικές του σώματος κειμένων — πόσο συχνά ένας εξαγόμενος στόχος δεν έχει επιλύσιμο σύμβολο, πόσα σύμβολα φαίνονται «ορφανά», και ούτω καθεξής — αναφέρουν πολύ περισσότερα προβλήματα από όσα υπάρχουν. Είναι κυρίως &lt;em&gt;αποτελέσματα του προγραμματιστικού μοντέλου της γλώσσας&lt;/em&gt;, όχι σφάλματα.&lt;/p&gt;
&lt;p&gt;Το πιο καθαρό παράδειγμα: το &lt;code&gt;llvm&lt;/code&gt; κάποτε έδειξε ποσοστό «πηγής χωρίς σύμβολο» 73% και χαρακτηρίστηκε καταστροφικό. Σκάψαμε βαθύτερα. Η πραγματική ακρίβεια ήταν &lt;strong&gt;98,5%&lt;/strong&gt;. Τα «λείποντα σύμβολα» ήταν σχεδόν όλα έγκυρες εξωτερικές αναφορές — κλήσεις προς την τυπική βιβλιοθήκη, προς πλαίσια εργασίας, προς κώδικα που ζει έξω από το αποθετήριο. Η μετρική μετρούσε μια ιδιότητα της γλώσσας, όχι ένα ελάττωμα στον χειριστή. Γλώσσες όπως η Zig, η COBOL και η Odin εμφανίζουν ποσοστά «ορφάνιας» 65–70% και είναι εντελώς σωστές· η COBOL είχε μηδέν πραγματικά σφάλματα.&lt;/p&gt;
&lt;p&gt;Αν είχαμε αφήσει εκείνους τους αριθμούς να καθοδηγήσουν τη δουλειά, θα είχαμε ξοδέψει εβδομάδες «διορθώνοντας» χειριστές που ήταν ήδη σωστοί και αγνοώντας τις γλώσσες με σιωπηλά, πραγματικά σφάλματα. Το συμπέρασμα είναι ξεκάθαρο: οι συγκεντρωτικές μετρικές είναι, στην καλύτερη περίπτωση, ένα χονδρικό σήμα διαλογής. &lt;strong&gt;Το πραγματικό σήμα ποιότητας είναι ο δειγματοληπτικός έλεγχος με ταξινόμηση ακμών&lt;/strong&gt; — το να κοιτάτε πραγματικές ακμές σε πραγματικά αποθετήρια και να τις κρίνετε μία-μία. Δεδομένα πάνω από διαίσθηση, αλλά μόνο όταν ξέρετε ποια δεδομένα λένε την αλήθεια.&lt;/p&gt;
&lt;h2 id=&quot;ο-εξωτερικός-βρόχος-ένας-στόλος-όχι-ένας-μαραθώνιος&quot;&gt;Ο εξωτερικός βρόχος: ένας στόλος, όχι ένας μαραθώνιος&lt;/h2&gt;
&lt;p&gt;Μία γλώσσα τη φορά θα έπαιρνε αιώνες για 280 από αυτές, οπότε ο εσωτερικός βρόχος τυλίγεται σε έναν εξωτερικό που τρέχει πολλές παράλληλα.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   pick a wave of near-GREEN / high-error languages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   fan out 10–15 agents, each ISOLATED in its own git worktree,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   each grinding ONE language, committing to its own branch&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   orchestrator integrates serially: file-scoped apply, then&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   `manifest diff` — any cross-language regression blocks the batch&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;        ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;   gated push (reviewed and confirmed) ──► rotate to the next wave&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Κάθε πράκτορας δουλεύει σε ένα αναλώσιμο worktree ώστε να μην πατούν ο ένας τον άλλον. Ο ενορχηστρωτής ενσωματώνει τις διορθώσεις τους μία-μία, καθεμιά πίσω από έναν πλήρη έλεγχο οπισθοδρόμησης σε όλο το μανιφέστο: μια αλλαγή που βοηθά τη δική της γλώσσα αλλά σιωπηλά σπάει τρεις άλλες δεν ενσωματώνεται. Η ενσωμάτωση περνά από πύλη και επιβεβαιώνεται πριν γίνει οποιοδήποτε push — η πύλη οπισθοδρόμησης αποφασίζει τι είναι &lt;em&gt;ασφαλές&lt;/em&gt;, ένας άνθρωπος εξακολουθεί να αποφασίζει τι &lt;em&gt;κυκλοφορεί&lt;/em&gt;. Έπειτα η ομάδα πρακτόρων περνά στο επόμενο σύνολο γλωσσών και όλη η διαδικασία τρέχει ξανά.&lt;/p&gt;
&lt;h2 id=&quot;τι-εξακολουθεί-να-είναι-ατελές&quot;&gt;Τι εξακολουθεί να είναι ατελές&lt;/h2&gt;
&lt;p&gt;Ο κριτής μπορεί να κάνει λάθος, και το λάθος έχει κατεύθυνση: ένας πράκτορας που τρέχει με πολύ λίγο πλαίσιο &lt;em&gt;αναφέρει περισσότερα προβλήματα από όσα υπάρχουν&lt;/em&gt;. Σε μία παρτίδα, οκτώ γλώσσες σημειώθηκαν με σφάλμα 5–20%· κατά την επιθεώρηση μόνο μία είχε πραγματικό σφάλμα ειδικό για τη γλώσσα — οι υπόλοιπες ήταν λάθη του κριτή από την παράβλεψη της ιδιαίτερης σημασιολογίας κάθε γλώσσας (μία γραμμή πηγής που ορθά εκπέμπει αρκετές ακμές, δεσμεύσεις παραμέτρων μοντελοποιημένες ως αναθέσεις, γλώσσες με αναφορά-ανά-αναγνωριστικό). Γι’ αυτό δειγματίζουμε με δύο σπόρους (seeds) και κάνουμε διασταύρωση, και γι’ αυτό μια διαφωνία ανάμεσα στον κριτή και τα fixtures αντιμετωπίζεται ως το &lt;em&gt;πιο&lt;/em&gt; ενδιαφέρον σήμα, όχι ως τελεσίδικη ετυμηγορία — μερικές φορές το fixture είναι αυτό που είναι λάθος.&lt;/p&gt;
&lt;p&gt;Είμαστε επίσης ειλικρινείς για τον στόχο. Ο στόχος είναι μηδέν πραγματικά σφάλματα, τελεία — όμως το «μηδέν» είναι μια κατεύθυνση προς την οποία εργαζόμαστε σταθερά, γλώσσα προς γλώσσα, όχι ένα κουτάκι που τσεκάρεται. Πάντα υπάρχει ένα ακόμη αποθετήριο με ακόμη έναν ιδιωματισμό.&lt;/p&gt;
&lt;h2 id=&quot;κερδισμένο-όχι-διακηρυγμένο&quot;&gt;Κερδισμένο, Όχι Διακηρυγμένο&lt;/h2&gt;
&lt;p&gt;Ό,τι κάνει το Maguyva για έναν πράκτορα — η εύρεση ενός συμβόλου, η ανίχνευση μιας εξάρτησης, η απάντηση σε μια ερώτηση με παραπομπές σε κώδικα — στηρίζεται στο να είναι σωστή η εξαγωγή από κάτω. Σε 280 γλώσσες, το «σωστό» δεν μπορεί απλώς να διακηρυχθεί· πρέπει να &lt;em&gt;κερδίζεται&lt;/em&gt; συνεχώς έναντι πραγματικού κώδικα. Ο βρόχος είναι το πώς το κερδίζουμε: ένας αυτόνομος κύκλος δειγματοληπτικού ελέγχου-και-διόρθωσης που αντιμετωπίζει τις δικές του μετρικές με καχυποψία, αποδεικνύει κάθε αλλαγή και μετατρέπει κάθε διόρθωση σε φρουρό ενάντια στην επόμενη οπισθοδρόμηση. Δεν είναι εντυπωσιακό. Είναι η δουλειά που μας επιτρέπει να λέμε «υποστηρίζουμε τη γλώσσα σας» και να το εννοούμε. Το πράσινο είναι εύκολο. Το σωστό κερδίζεται.&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Languages</category><category>Agents</category></item><item><title>Πολυτροπική Συγχωνευμένη Αναζήτηση: Επιλέγοντας τον Σωστό Ανακτητή για Κάθε Ερώτημα</title><link>https://maguyva.ai/el/blog/multi-modal-fusion-search</link><guid isPermaLink="true">https://maguyva.ai/el/blog/multi-modal-fusion-search</guid><description>Ένα ερώτημα όπως «πού ορίζεται το parseConfig» θέλει διαφορετική αναζήτηση από το «πώς λειτουργεί η ταυτοποίηση». Το Maguyva ταξινομεί την πρόθεση, σταθμίζει ανάλογα τέσσερις τρόπους ανάκτησης και συγχωνεύει τα αποτελέσματα με σταθμισμένη Reciprocal Rank Fusion.</description><pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Σημείωση για τον ιστορικό σχεδιασμό: αυτό το άρθρο του Απριλίου 2026 περιγράφει τον τότε σχεδιασμό δρομολόγησης, όχι την τρέχουσα προεπιλεγμένη συμπεριφορά. Η διόρθωση του Σεπτεμβρίου παρακάτω αφορά μόνο έναν ισχυρισμό μέτρησης. Για την τρέχουσα δρομολόγηση, τις προεπιλογές και τον ρητό έλεγχο των τρόπων αναζήτησης, δείτε &lt;a href=&quot;https://maguyva.ai/el/docs/how-it-works&quot;&gt;Πώς λειτουργεί&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ένα ερώτημα αναζήτησης δεν είναι ένα και μόνο πράγμα.&lt;/p&gt;
&lt;p&gt;Το «πού ορίζεται το &lt;code&gt;parseConfig&lt;/code&gt;» θέλει ένα ακριβές σύμβολο — μία συγκεκριμένη τοποθεσία, γρήγορα. Το «πώς λειτουργεί η ταυτοποίηση» θέλει νόημα — το εύρος του σχετικού κώδικα που εξηγεί μια έννοια. Το «τι σπάει αν αλλάξω αυτή τη συνάρτηση» θέλει τον γράφο εξαρτήσεων. Το «βρες τη συμβολοσειρά &lt;code&gt;ECONNREFUSED&lt;/code&gt;» θέλει μια κυριολεκτική αντιστοίχιση, τίποτα έξυπνο.&lt;/p&gt;
&lt;p&gt;Το grep είναι εξαιρετικό για κυριολεκτικές αντιστοιχίσεις και χρήσιμο για κάποιες αναζητήσεις αναφορών, όμως δεν είναι γράφος εξαρτήσεων και δεν κατανοεί το νόημα. Τα ενσωματώματα καλύπτουν τη σημασιολογική πλευρά, όμως είναι το λάθος εργαλείο για ακριβείς συμβολοσειρές και ανάλυση επίδρασης. Τα περισσότερα εργαλεία αναζήτησης κώδικα επιλέγουν μία μηχανή και αναγκάζουν κάθε ερώτημα να ζει με αυτή την επιλογή. Το Maguyva δεν περιορίζεται σε μία μηχανή. Καταλαβαίνει τι είδους ερώτημα κάνατε, και έπειτα συνδυάζει τέσσερις ανακτητές στην αναλογία που αξίζει εκείνο το ερώτημα.&lt;/p&gt;
&lt;h2 id=&quot;τέσσερις-τρόποι-αναζήτησης&quot;&gt;Τέσσερις τρόποι αναζήτησης&lt;/h2&gt;
&lt;p&gt;Κάτω από την επιφάνεια υπάρχουν τέσσερις ανεξάρτητοι τρόποι για να βρεθεί κώδικας:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;σημασιολογικός&lt;/strong&gt; — διανυσματική αναζήτηση πάνω σε δυαδικά ενσωματώματα Voyage· βρίσκει κώδικα βάσει νοήματος.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;κειμενικός&lt;/strong&gt; — αντιστοίχιση τριγραμμάτων· βρίσκει κυριολεξίες, συμβολοσειρές σφαλμάτων, ακριβή αναγνωριστικά.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;δομικός&lt;/strong&gt; — ερωτήματα AST· βρίσκει ορισμούς, υπογραφές και δομικά στοιχεία της γλώσσας.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;γράφου&lt;/strong&gt; — ο γράφος εξαρτήσεων· βρίσκει καλούντες, καλούμενους και ακτίνα επίδρασης.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Καθένας είναι δυνατός σε διαφορετική κατηγορία ερωτήματος. Το κόλπο είναι να αποφασίσετε πόσο να εμπιστευτείτε τον καθέναν για το ερώτημα που έχετε μπροστά σας.&lt;/p&gt;
&lt;h2 id=&quot;ταξινόμηση-πρόθεσης&quot;&gt;Ταξινόμηση πρόθεσης&lt;/h2&gt;
&lt;p&gt;Πριν τρέξει οποιαδήποτε ανάκτηση, ένας ελαφρύς ταξινομητής κατατάσσει το ερώτημα σε μία από έξι προθέσεις, με μια βαθμολογία εμπιστοσύνης. Είναι σκόπιμα φθηνός — διατεταγμένοι ευρετικοί κανόνες, κερδίζει η πρώτη αντιστοίχιση — επειδή τρέχει στο κρίσιμο μονοπάτι και προσθέτει μόλις ένα ή δύο χιλιοστά του δευτερολέπτου:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ξεκινά με &lt;code&gt;def &lt;/code&gt;, &lt;code&gt;class &lt;/code&gt;, &lt;code&gt;func &lt;/code&gt;, &lt;code&gt;import &lt;/code&gt;… → &lt;strong&gt;find_definition&lt;/strong&gt; (εμπιστοσύνη 0,95)&lt;/li&gt;
&lt;li&gt;«who calls», «usages of», «references to» (ποιος καλεί, χρήσεις του, αναφορές σε) → &lt;strong&gt;find_references&lt;/strong&gt; (0,90)&lt;/li&gt;
&lt;li&gt;«impact», «blast radius», «what depends on» (επίδραση, ακτίνα επίδρασης, τι εξαρτάται από) → &lt;strong&gt;impact_analysis&lt;/strong&gt; (0,90)&lt;/li&gt;
&lt;li&gt;μια συμβολοσειρά σε εισαγωγικά όπως το &lt;code&gt;&quot;string&quot;&lt;/code&gt; ή ένα token σφάλματος όπως το &lt;code&gt;traceback&lt;/code&gt; → &lt;strong&gt;exact_match&lt;/strong&gt; (0,85–0,90)&lt;/li&gt;
&lt;li&gt;ένα αναγνωριστικό &lt;code&gt;CamelCase&lt;/code&gt; ή &lt;code&gt;snake_case&lt;/code&gt; → &lt;strong&gt;find_definition&lt;/strong&gt; (0,60–0,80)&lt;/li&gt;
&lt;li&gt;«how», «why», «explain», «architecture» (πώς, γιατί, εξήγησε, αρχιτεκτονική) → &lt;strong&gt;understand_code&lt;/strong&gt; (0,75)&lt;/li&gt;
&lt;li&gt;τίποτα δεν ταιριάζει → &lt;strong&gt;understand_code&lt;/strong&gt;, χαμηλή εμπιστοσύνη (0,40)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Κάθε πρόθεση κουβαλά ένα προφίλ βαρών στους τέσσερις τρόπους αναζήτησης. Αυτοί είναι οι πραγματικοί αριθμοί:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Πρόθεση&lt;/th&gt;
&lt;th&gt;σημασιολογικός&lt;/th&gt;
&lt;th&gt;κειμενικός&lt;/th&gt;
&lt;th&gt;δομικός (AST)&lt;/th&gt;
&lt;th&gt;γράφου&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;find_definition&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;find_references&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.5&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;understand_code&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.5&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;find_similar&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.3&lt;/td&gt;
&lt;td&gt;0.2&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;impact_analysis&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.7&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;exact_match&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;0.9&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.1&lt;/td&gt;
&lt;td&gt;0.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Έτσι το «πού ορίζεται το &lt;code&gt;parseConfig&lt;/code&gt;» στηρίζεται κυρίως στο AST (0,6). Το «πώς λειτουργεί η ταυτοποίηση» στηρίζεται σε σημασιολογικά διανύσματα (0,5). Το «τι εξαρτάται από αυτό» είναι σχεδόν αποκλειστικά γράφος (0,7). Το «βρες &lt;code&gt;ECONNREFUSED&lt;/code&gt;» είναι σχεδόν αποκλειστικά τριγράμματα (0,9), με το μοντέλο ενσωματωμάτων εντελώς απενεργοποιημένο — επειδή η σημασιολογική ομοιότητα είναι ακριβώς το λάθος εργαλείο για μια ακριβή συμβολοσειρά.&lt;/p&gt;
&lt;h2 id=&quot;το-γρήγορο-μονοπάτι-και-το-συγχωνευμένο-μονοπάτι&quot;&gt;Το γρήγορο μονοπάτι, και το συγχωνευμένο μονοπάτι&lt;/h2&gt;
&lt;p&gt;Όταν ο ταξινομητής είναι σίγουρος — βαθμολογία ≥ 0,85 — και το ερώτημα είναι συνηθισμένο, το Maguyva παρακάμπτει εντελώς τη συγχώνευση και δρομολογεί απευθείας στον έναν κυρίαρχο τρόπο αναζήτησης. Το «πού ορίζεται το X» δεν χρειάζεται τέσσερις ανακτητές· χρειάζεται το ευρετήριο AST, τώρα. Αυτό το απευθείας μονοπάτι αναφέρεται πίσω ως &lt;code&gt;fusion_strategy: &quot;direct&quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Οτιδήποτε είναι διφορούμενο περνά από συγχώνευση. Οι τέσσερις (ή τρεις, στην προεπιλεγμένη διαμόρφωση) τρόποι αναζήτησης τρέχουν παράλληλα, ο καθένας επιστρέφοντας τη δική του κατατεταγμένη λίστα, και τους συνδυάζουμε.&lt;/p&gt;
&lt;h2 id=&quot;σταθμισμένη-reciprocal-rank-fusion&quot;&gt;Σταθμισμένη Reciprocal Rank Fusion&lt;/h2&gt;
&lt;p&gt;Η συγχώνευση ετερογενών ανακτητών είναι πιο δύσκολη απ’ όσο ακούγεται: μια ομοιότητα συνημιτόνου 0,82 και μια βαθμολογία τριγράμματος 137 και μια κεντρικότητα γράφου 0,004 δεν βρίσκονται στην ίδια κλίμακα, οπότε δεν μπορείτε απλώς να τις προσθέσετε. Η Reciprocal Rank Fusion παρακάμπτει το πρόβλημα πετώντας τις ακατέργαστες βαθμολογίες και κρατώντας μόνο την &lt;strong&gt;κατάταξη&lt;/strong&gt; που έδωσε κάθε μηχανή. Η συνεισφορά ενός αποτελέσματος από έναν τρόπο αναζήτησης είναι:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;contribution = weight × 1 / (k + rank + 1)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;όπου το &lt;code&gt;rank&lt;/code&gt; είναι η θέση του στη λίστα εκείνου του τρόπου αναζήτησης και το &lt;code&gt;k&lt;/code&gt; είναι μια σταθερά εξομάλυνσης. Οι συνεισφορές αθροίζονται σε όλους τους τρόπους αναζήτησης για κάθε αποτέλεσμα που βρήκε περισσότερη από μία μηχανή — η συμφωνία μεταξύ ανακτητών φυσικά ανεβαίνει στην κορυφή. Χρησιμοποιούμε &lt;strong&gt;k = 40&lt;/strong&gt; στην προεπιλεγμένη διαμόρφωση και 60 στο &lt;code&gt;thorough&lt;/code&gt; (&lt;code&gt;quick&lt;/code&gt; τρέχει μόνο σημασιολογικά, οπότε η συγχώνευση δεν ενεργοποιείται ποτέ εκεί). Η αρχική εργασία για το RRF κατέληξε σε k = 60 για γενικού σκοπού ανάκτηση· η δική μας προεπιλογή δίνει λίγο περισσότερο βάρος στα αποτελέσματα που κατατάσσονται ψηλά σε πολλούς τρόπους αναζήτησης — και δεν συνιστούμε χειροκίνητη ρύθμιση.&lt;/p&gt;
&lt;p&gt;Επιπλέον, τα αποτελέσματα φέρουν μια &lt;strong&gt;ενίσχυση σπουδαιότητας γράφου&lt;/strong&gt;. Ένας κεντρικός κόμβος — μια συνάρτηση στην οποία στηρίζεται ολόκληρη η βάση κώδικα — πρέπει να κατατάσσεται πάνω από έναν λιγότερο γνωστό κόμβο-φύλλο ακόμη και με την ίδια κειμενική σχετικότητα, οπότε πολλαπλασιάζουμε κάθε συνεισφορά με:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;boost = min(1 + 0.3 × ln(1 + centrality), 1.5)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Η κεντρικότητα προέρχεται από τις προϋπολογισμένες μετρικές PageRank/βαθμού του pipeline, και η ενίσχυση είναι περιορισμένη στο 1,5× ώστε μια δημοφιλής συνάρτηση να μην μπορεί να θάψει εντελώς μια πιο σχετική αλλά λιγότερο γνωστή συνάρτηση. Τέλος υποβιβάζουμε αποτελέσματα από διαδρομές προμηθευτών, κατασκευής και αρχειοθέτησης, και αφαιρούμε διπλότυπα κρατώντας το καλύτερο τμήμα ανά αρχείο.&lt;/p&gt;
&lt;h2 id=&quot;τι-εξακολουθεί-να-είναι-ατελές&quot;&gt;Τι εξακολουθεί να είναι ατελές&lt;/h2&gt;
&lt;p&gt;Ο ταξινομητής πρόθεσης είναι μια σειρά κανονικών εκφράσεων, όχι ένα εκπαιδευμένο μοντέλο. Χειρίζεται συνήθεις μορφές ερωτημάτων με ευρετικούς κανόνες, ενώ ένα αμφίσημο ερώτημα καταλήγει στο &lt;code&gt;understand_code&lt;/code&gt; και σε ένα μείγμα με έμφαση στη σημασιολογία. Μια προηγούμενη έκδοση αυτού του άρθρου περιέγραφε τη μείωση του ποσοστού ερωτημάτων χωρίς αποτελέσματα από περίπου 15% σε κάτω από 5% ως επιτευχθείσα. Στην πραγματικότητα, η πρόταση του Δεκεμβρίου 2025 παρέθετε μια εκτιμώμενη αρχική τιμή και έναν στόχο· δεν παρέχεται υποστηρικτικό σύνολο ερωτημάτων ή αρχείο μέτρησης. Αποσύρουμε τον ισχυρισμό περί επιτευχθείσας βελτίωσης· δείτε τα &lt;a href=&quot;https://maguyva.ai/evidence/search-quality.md&quot;&gt;τεκμήρια πηγής και τη διόρθωση&lt;/a&gt;. Δεν έχουμε αντικαταστήσει τον ταξινομητή με εκπαιδευμένο μοντέλο, επειδή η οικονομική έκδοση είναι γρήγορη και επαρκής για τον προβλεπόμενο ρόλο δρομολόγησης, και επειδή ένας λανθασμένος αλλά βέβαιος ταξινομητής είναι χειρότερος από μια ειλικρινή εναλλακτική επιλογή. Τα ίδια τα βάρη είναι χειροκίνητα επιλεγμένες αρχικές παραδοχές, όχι τιμές που μαθαίνονται από δεδομένα κλικ, τα οποία δεν συλλέγουμε.&lt;/p&gt;
&lt;h2 id=&quot;κάντε-την-ερώτησή-σας-χωρίς-να-επιλέγετε-εργαλείο&quot;&gt;Κάντε την ερώτησή σας χωρίς να επιλέγετε εργαλείο&lt;/h2&gt;
&lt;p&gt;Ένας πράκτορας δεν θα έπρεπε να χρειάζεται να ξέρει αν πρέπει να καταφύγει στο grep, στα ενσωματώματα ή στον γράφο κλήσεων — θα έπρεπε να κάνει την ερώτησή του με απλά λόγια και να πάρει τη σωστή απάντηση. Η πολυτροπική συγχώνευση είναι αυτό που επιτρέπει στο &lt;code&gt;find_symbol&lt;/code&gt;, στη σημασιολογική αναζήτηση και στην ανάλυση εξαρτήσεων να βρίσκονται πίσω από μία ενιαία διεπαφή ερωτημάτων: το σύστημα διαβάζει το σχήμα της ερώτησης και συναρμολογεί σιωπηλά τον σωστό ανακτητή γι’ αυτήν. Το μοντέλο που βαθμολογεί τα ενσωματώματα έχει σημασία, όμως έχει σημασία και το να ξέρετε πότε &lt;em&gt;να μην&lt;/em&gt; τα χρησιμοποιήσετε. Η επιλογή του σωστού εργαλείου για κάθε ερώτημα είναι ένα δικό της είδος ποιότητας, και είναι ένα που προτιμούμε να αναλαμβάνουμε εμείς παρά να το μεταθέτουμε στον καλούντα.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;// you bring the question. it brings the tools.&lt;/code&gt;&lt;/p&gt;
</content:encoded><category>Search</category><category>Architecture</category></item><item><title>Παρατηρησιμότητα Πρακτόρων: Hooks, Alloy και Grafana</title><link>https://maguyva.ai/el/blog/agent-observability-hooks-alloy-grafana</link><guid isPermaLink="true">https://maguyva.ai/el/blog/agent-observability-hooks-alloy-grafana</guid><description>Συνδέσαμε το Claude Code και το Codex σε μία ενιαία στοίβα Grafana με OpenTelemetry και Alloy, και έπειτα χρησιμοποιήσαμε ίχνη (traces) και αρχεία καταγραφής για να εντοπίσουμε και να διορθώσουμε προβλήματα συμπεριφοράς πρακτόρων στην πηγή τους.</description><pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Τα συστήματα πρακτόρων αποτυγχάνουν με περίεργους τρόπους.&lt;/p&gt;
&lt;p&gt;Μερικές φορές το μοντέλο είναι το πρόβλημα. Μερικές φορές το εργαλείο είναι το πρόβλημα. Μερικές φορές ο διακομιστής σας MCP είναι εντάξει, όμως ο πράκτορας επέλεξε τον λάθος ειδικό, ή πέρασε τον μισό χρόνο της συνεδρίας κάνοντας εργασία shell που δεν περιμένατε, ή αύξησε σιωπηλά το κόστος σε έναν βρόχο που φαινόταν παραγωγικός απ’ έξω.&lt;/p&gt;
&lt;p&gt;Αν δεν μπορείτε να δείτε τη διαφορά, δεν λειτουργείτε πραγματικά ένα σύστημα πρακτόρων. Μαντεύετε.&lt;/p&gt;
&lt;p&gt;Έτσι χτίσαμε μια στοίβα παρατηρησιμότητας για τη δική μας ροή εργασίας: Claude Code, Codex, συμβάντα hook του Claude, συμβάντα notify του Codex, εγγενές OpenTelemetry, Grafana Alloy και Grafana Cloud στην άλλη άκρη.&lt;/p&gt;
&lt;p&gt;Το ενδιαφέρον κομμάτι δεν είναι «φτιάξαμε έναν πίνακα ελέγχου». Το ενδιαφέρον κομμάτι είναι ότι χρειάστηκε να χωρίσουμε την τηλεμετρία σε δύο διαφορετικές ροές επειδή καμία μεμονωμένη τροφοδοσία δεν μας έδινε την πλήρη εικόνα.&lt;/p&gt;
&lt;h2 id=&quot;το-πρόβλημα-η-τηλεμετρία-πρακτόρων-είναι-κατακερματισμένη&quot;&gt;Το Πρόβλημα: Η Τηλεμετρία Πρακτόρων Είναι Κατακερματισμένη&lt;/h2&gt;
&lt;p&gt;Οι σύγχρονοι πράκτορες κώδικα ήδη εκπέμπουν κάποια τηλεμετρία. Αυτό βοηθά, όμως δεν αρκεί.&lt;/p&gt;
&lt;p&gt;Το εγγενές OTEL είναι καλό στο να απαντά ερωτήματα όπως:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Πόσα αιτήματα κάναμε;&lt;/li&gt;
&lt;li&gt;Πόσο κόστισε μια συνεδρία;&lt;/li&gt;
&lt;li&gt;Πού βρίσκονται τα spans και τα traces;&lt;/li&gt;
&lt;li&gt;Υπήρξε αιχμή στην καθυστέρηση;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Είναι πολύ χειρότερο στο να απαντά ερωτήματα όπως:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Σε ποιον διακομιστή MCP στηρίχθηκε ο πράκτορας;&lt;/li&gt;
&lt;li&gt;Ήταν αυτή η αστοχία στο &lt;code&gt;Bash&lt;/code&gt;, σε ένα ενσωματωμένο εργαλείο αρχείων, ή σε μια κλήση MCP;&lt;/li&gt;
&lt;li&gt;Ποια δεξιότητα πράγματι ενεργοποιήθηκε;&lt;/li&gt;
&lt;li&gt;Ποιος τύπος υπο-πράκτορα δρομολογήθηκε;&lt;/li&gt;
&lt;li&gt;Έκανε η συνεδρία χρήσιμη δουλειά, ή απλώς στροβιλιζόταν χωρίς αποτέλεσμα;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Αυτή η δεύτερη κατηγορία ερωτημάτων ζει πιο κοντά στα hooks παρά στα traces.&lt;/p&gt;
&lt;p&gt;Όμως ισχύει και το αντίστροφο: μερικά από τα πιο σημαντικά ερωτήματα απόδοσης ζουν πιο κοντά στα traces παρά στα hooks.&lt;/p&gt;
&lt;p&gt;Αν θέλετε να ξέρετε πού πραγματικά συσσωρεύτηκε η καθυστέρηση, ποια spans ήταν αργά, ή αν η συνεδρία κατανάλωσε χρόνο σε κλήσεις μοντέλου έναντι εκτέλεσης εργαλείων, χρειάζεστε δεδομένα traces εξίσου με σημασιολογικά συμβάντα.&lt;/p&gt;
&lt;h2 id=&quot;η-αρχιτεκτονική-στην-οποία-καταλήξαμε&quot;&gt;Η Αρχιτεκτονική στην Οποία Καταλήξαμε&lt;/h2&gt;
&lt;p&gt;Τρέχουμε δύο μονοπάτια τηλεμετρίας παράλληλα.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Claude Code&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  native OTEL -&amp;gt; Alloy -&amp;gt; Grafana Cloud&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  hooks        -&amp;gt; send_event.py -&amp;gt; Grafana Cloud Loki&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Codex&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  native OTEL -&amp;gt; Alloy -&amp;gt; Grafana Cloud&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  notify hook -&amp;gt; codex_notify.py -&amp;gt; shared Loki schema&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτός ο διαχωρισμός είναι σκόπιμος.&lt;/p&gt;
&lt;p&gt;Είναι επίσης ασύμμετρος. Το Claude Code μας δίνει μια πολύ πλουσιότερη διεπαφή hooks κύκλου ζωής. Το Codex μας δίνει εγγενές OTEL συν μια διεπαφή notify, οπότε κανονικοποιούμε τα συμβάντα ολοκλήρωσης γύρου με λιγότερα δεδομένα στο ίδιο σχήμα καταγραφής αντί να προσποιούμαστε ότι και τα δύο περιβάλλοντα εκτέλεσης εκθέτουν τους ίδιους ελέγχους.&lt;/p&gt;
&lt;p&gt;Το &lt;strong&gt;εγγενές OTEL&lt;/strong&gt; μας δίνει τη βασική ροή: αρχεία καταγραφής και traces από το ίδιο το περιβάλλον εκτέλεσης, συν μετρικές όπου το περιβάλλον εκτέλεσης όντως τις εκπέμπει.&lt;/p&gt;
&lt;p&gt;Τα &lt;strong&gt;συμβάντα hook και notify&lt;/strong&gt; μας δίνουν το σημασιολογικό επίπεδο: πράγματα όπως τα &lt;code&gt;PreToolUse&lt;/code&gt;, &lt;code&gt;PostToolUse&lt;/code&gt;, &lt;code&gt;PostToolUseFailure&lt;/code&gt;, &lt;code&gt;UserPromptSubmit&lt;/code&gt;, &lt;code&gt;SubagentStop&lt;/code&gt;, &lt;code&gt;SkillActivated&lt;/code&gt;, και τα ταξινομημένα μεταδεδομένα που πραγματικά μας ενδιαφέρουν όταν αποσφαλματώνουμε τη συμπεριφορά πρακτόρων. Το Claude Code συνεισφέρει την πλουσιότερη ροή συμβάντων εδώ. Το Codex συνεισφέρει μια κανονικοποιημένη ροή με λιγότερα δεδομένα αλλά ακόμη χρήσιμη.&lt;/p&gt;
&lt;h2 id=&quot;γιατί-υπάρχουν-καν-τα-hooks&quot;&gt;Γιατί Υπάρχουν Καν τα Hooks&lt;/h2&gt;
&lt;p&gt;Ο αγωγός hooks μας εμπλουτίζει τα συμβάντα πριν φτάσουν στο Loki.&lt;/p&gt;
&lt;p&gt;Αντί να λέμε απλώς «έτρεξε ένα εργαλείο», ταξινομούμε το συμβάν σε πεδία όπως:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tool_type&lt;/code&gt;: builtin, mcp, skill, agent, bash&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mcp_server&lt;/code&gt;: ποιος υποκείμενος διακομιστής MCP χειρίστηκε την κλήση&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bash_cli&lt;/code&gt;: η οικογένεια εντολών shell&lt;/li&gt;
&lt;li&gt;&lt;code&gt;subagent_type&lt;/code&gt;: τι είδους ειδικός δρομολογήθηκε&lt;/li&gt;
&lt;li&gt;&lt;code&gt;agent_tool&lt;/code&gt;: αν η πηγή ήταν Claude Code ή Codex&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Αυτό σημαίνει ότι μπορούμε να κάνουμε ερωτήματα που έχουν λειτουργική σημασία:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;text&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;{service_name=&quot;claude-code-hooks&quot;} | agent_tool=&quot;codex-cli&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;{service_name=&quot;claude-code-hooks&quot;} | tool_type=&quot;mcp&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;{service_name=&quot;claude-code-hooks&quot;} | json | bash_cli=&quot;git&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτά δεν είναι πεδία επίδειξης. Είναι η διαφορά ανάμεσα στο «ο πράκτορας φάνηκε αργός» και στο «ο πράκτορας πέρασε τα τελευταία δέκα λεπτά σε βαριές λειτουργίες git μέσω shell με υψηλό ποσοστό αποτυχίας εργαλείων».&lt;/p&gt;
&lt;p&gt;Μια λεπτομέρεια υλοποίησης που φαίνεται πιο περίεργη απ’ όσο είναι: η κοινόχρηστη ροή Loki εξακολουθεί να χρησιμοποιεί το &lt;code&gt;service_name=&quot;claude-code-hooks&quot;&lt;/code&gt; ως ετικέτα ακόμη και όταν το συμβάν προήλθε από το Codex. Ο πραγματικός διαχωρισμός ανάμεσα στα περιβάλλοντα εκτέλεσης συμβαίνει στο &lt;code&gt;agent_tool&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&quot;γιατί-το-alloy-βρίσκεται-στη-μέση&quot;&gt;Γιατί το Alloy Βρίσκεται στη Μέση&lt;/h2&gt;
&lt;p&gt;Το Grafana Alloy δεν είναι απλώς ένας προωθητής σε αυτή τη ρύθμιση. Είναι το όριο πολιτικής.&lt;/p&gt;
&lt;p&gt;Στρέφουμε την εγγενή ροή OTEL από το Claude Code και το Codex σε έναν τοπικό διαμεσολαβητή Alloy στο &lt;code&gt;localhost:4318&lt;/code&gt;, και έπειτα αφήνουμε το Alloy να καθαρίσει το ωφέλιμο φορτίο πριν το προωθήσει στο Grafana Cloud.&lt;/p&gt;
&lt;p&gt;Αυτό έχει σημασία επειδή η ακατέργαστη τηλεμετρία πρακτόρων είναι γεμάτη πεδία υψηλής πληθικότητας που είναι χρήσιμα για ανάλυση αλλά απαίσια ως ευρετηριασμένες ετικέτες:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;session_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prompt_id&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;αριθμοί tokens&lt;/li&gt;
&lt;li&gt;διάρκειες&lt;/li&gt;
&lt;li&gt;δέσμες παραμέτρων εργαλείων&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Αν ευρετηριάσετε τα πάντα, ο αριθμός των ετικετών εκτοξεύεται και δημιουργεί λειτουργικά προβλήματα.&lt;/p&gt;
&lt;p&gt;Οπότε το Alloy κάνει τρία πράγματα για εμάς:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Κρατά ευρετηριασμένο ένα πολύ μικρό σύνολο ετικετών χαμηλής πληθικότητας.&lt;/li&gt;
&lt;li&gt;Μετακινεί θορυβώδη αλλά χρήσιμα πεδία σε δομημένα μεταδεδομένα.&lt;/li&gt;
&lt;li&gt;Απορρίπτει εντελώς τον καθαρό θόρυβο.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Η σημαντική ιδέα είναι απλή: &lt;strong&gt;παρατηρήστε περισσότερα, ευρετηριάστε λιγότερα&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&quot;γιατί-η-ροή-hook-παρακάμπτει-το-alloy&quot;&gt;Γιατί η Ροή Hook Παρακάμπτει το Alloy&lt;/h2&gt;
&lt;p&gt;Η ροή hook είναι ήδη διαμορφωμένη για το Loki.&lt;/p&gt;
&lt;p&gt;Μέχρι τη στιγμή που το &lt;code&gt;send_event.py&lt;/code&gt; σπρώχνει ένα συμβάν, έχουμε ήδη αποφασίσει ποια πεδία αξίζουν μεταχείριση ετικέτας και ποια ανήκουν στο δομημένο σώμα JSON. Εκείνη η ροή πηγαίνει κατευθείαν στην πύλη OTLP του Grafana Cloud αντί να περάσει ξανά από το Alloy.&lt;/p&gt;
&lt;p&gt;Οπότε το σύστημα έχει σαφή καταμερισμό εργασίας:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Το &lt;strong&gt;Alloy&lt;/strong&gt; δαμάζει την ακατέργαστη εγγενή ροή OTEL.&lt;/li&gt;
&lt;li&gt;Ο &lt;strong&gt;εμπλουτισμός hook&lt;/strong&gt; κάνει τα σημασιολογικά συμβάντα αναζητήσιμα.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Αυτό κρατά την αρχιτεκτονική απλούστερη από το να προσπαθείτε να περάσετε τα πάντα από ένα μονοπάτι.&lt;/p&gt;
&lt;h2 id=&quot;τι-δείχνει-πραγματικά-ο-πίνακας-ελέγχου&quot;&gt;Τι Δείχνει Πραγματικά ο Πίνακας Ελέγχου&lt;/h2&gt;
&lt;p&gt;Το στιγμιότυπο οθόνης παρακάτω προέρχεται από έναν από τους πίνακες ελέγχου παρατηρησιμότητας πίσω από τη ροή εργασίας πρακτόρων μας. Δεν είναι benchmark, και οι αριθμοί είναι απλώς ένα στιγμιότυπο μιας συγκεκριμένης χρονικής στιγμής. Το θέμα είναι το σχήμα των δεδομένων: ροή δραστηριότητας, κλήσεις εργαλείων, αστοχίες, προτροπές, και αναλύσεις ανά πράκτορα, ενσωματωμένα εργαλεία, χρήση MCP, εντολές shell και δεξιότητες.&lt;/p&gt;
&lt;p&gt;Το χρήσιμο κομμάτι είναι ότι αυτός ο πίνακας ελέγχου ζει στην ίδια στοίβα Grafana με την υπόλοιπη τηλεμετρία πρακτόρων. Μπορούμε να φιλτράρουμε κατά πράκτορα-πηγή και οικογένεια εργαλείων και να εξετάσουμε δεδομένα από όλα τα περιβάλλοντα εκτέλεσης χωρίς να επινοήσουμε μια διαφορετική ιστορία παρατηρησιμότητας για κάθε σύστημα.&lt;/p&gt;
&lt;figure class=&quot;feature-figure feature-figure--wide&quot;&gt;
  &lt;a
    href=&quot;https://maguyva.ai/blog/agent-observability-dashboard.png&quot;
    target=&quot;_blank&quot;
    rel=&quot;noreferrer&quot;
    aria-label=&quot;Άνοιγμα του στιγμιότυπου οθόνης του πίνακα ελέγχου παρατηρησιμότητας σε πλήρη ανάλυση&quot;
  &gt;
    &lt;img
      src=&quot;https://maguyva.ai/blog/agent-observability-dashboard.png&quot;
      alt=&quot;Πίνακας ελέγχου Grafana που δείχνει μια ροή δραστηριότητας, αριθμούς κλήσεων εργαλείων, αστοχίες, προτροπές, και αναλύσεις ανά πράκτορες, ενσωματωμένα εργαλεία, χρήση MCP, εντολές CLI και δεξιότητες για μια ροή εργασίας πρακτόρων.&quot;
    /&gt;
  &lt;/a&gt;
  &lt;figcaption&gt;
    Ένας από τους ζωντανούς πίνακες ελέγχου πίσω από τη ροή εργασίας πρακτόρων μας. Αυτό το στιγμιότυπο οθόνης είναι μόνο μία τομή μιας κοινόχρηστης στοίβας Grafana που δέχεται επίσης τηλεμετρία από τα άλλα περιβάλλοντα εκτέλεσης πρακτόρων και συστήματά μας. Κάντε κλικ στην εικόνα για την έκδοση πλήρους ανάλυσης.
  &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;h2 id=&quot;γιατί-τα-traces-έχουν-περισσότερη-σημασία-απ-όσο-φαίνεται-αρχικά&quot;&gt;Γιατί τα Traces Έχουν Περισσότερη Σημασία Απ’ Όσο Φαίνεται Αρχικά&lt;/h2&gt;
&lt;p&gt;Τα αρχεία καταγραφής μας λένε τι κατηγορία εργασίας συνέβη. Τα traces μας λένε πώς εξελίχθηκε η εργασία με τον χρόνο.&lt;/p&gt;
&lt;p&gt;Αυτή η διάκριση έχει σημασία σε συστήματα πρακτόρων επειδή το «αργό» είναι πολύ γενικό για να είναι χρήσιμο.&lt;/p&gt;
&lt;p&gt;Ένα trace μπορεί να μας πει αν το πρόβλημα προήλθε από:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;καθυστέρηση μοντέλου&lt;/li&gt;
&lt;li&gt;χρόνο εκτέλεσης εργαλείου&lt;/li&gt;
&lt;li&gt;επαναλαμβανόμενες επαναπροσπάθειες&lt;/li&gt;
&lt;li&gt;μία ιδιαίτερα δαπανηρή αλληλεπίδραση MCP&lt;/li&gt;
&lt;li&gt;μια μακριά ουρά μικρών λειτουργιών που φαίνονταν ακίνδυνες μεμονωμένα&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Στην πράξη χρησιμοποιούμε τη ροή hook και τα traces του Tempo μαζί.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Τα &lt;strong&gt;αρχεία καταγραφής hook&lt;/strong&gt; απαντούν: τι είδους πράγμα συνέβη;&lt;/li&gt;
&lt;li&gt;Τα &lt;strong&gt;traces&lt;/strong&gt; απαντούν: πού πήγε ο χρόνος;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ο συνδυασμός είναι αυτό που μετατρέπει την παρατηρησιμότητα από πίνακα ελέγχου σε εξήγηση.&lt;/p&gt;
&lt;h2 id=&quot;πού-χωράει-το-codex&quot;&gt;Πού Χωράει το Codex&lt;/h2&gt;
&lt;p&gt;Το Codex είναι μέρος της ίδιας στοίβας, όμως δεν είναι ταυτόσημο με το Claude Code.&lt;/p&gt;
&lt;p&gt;Για το Codex συνδέουμε δύο κομμάτια:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Εγγενές OTEL από το Codex στο Alloy&lt;/li&gt;
&lt;li&gt;Ένα notify webhook στο &lt;code&gt;codex_notify.py&lt;/code&gt;, που αντιστοιχίζει τις ολοκληρώσεις γύρων στο ίδιο σχήμα Loki που χρησιμοποιούμε για συμβάντα hook&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Αυτό μας δίνει ένα ενοποιημένο φίλτρο όπως το &lt;code&gt;agent_tool=&quot;codex-cli&quot;&lt;/code&gt; μέσα στην ίδια ροή καταγραφής.&lt;/p&gt;
&lt;p&gt;Η ειλικρινής επιφύλαξη: το ωφέλιμο φορτίο notify του Codex περιέχει προς το παρόν λιγότερα δεδομένα από το ωφέλιμο φορτίο hook του Claude Code επειδή δεν είναι το ίδιο είδος διεπαφής ενσωμάτωσης. Στη σημερινή μας ρύθμιση, οι ολοκληρώσεις γύρων του Codex μπορούν να κανονικοποιηθούν στο κοινό σχήμα, όμως η εξαγωγή αναλυτικών δεδομένων ανά εργαλείο εξακολουθεί να είναι καλύτερη στην εγγενή ροή OTEL παρά στη γέφυρα notify.&lt;/p&gt;
&lt;p&gt;Δεν παρουσιάζουμε αυτόν τον περιορισμό ως δικαιολογία. Είναι το νόημα της ανάρτησης. Τα πραγματικά συστήματα παρατηρησιμότητας συναρμολογούνται από ατελή σήματα.&lt;/p&gt;
&lt;h2 id=&quot;το-grafana-πάνω-από-mcp-αλλάζει-το-παιχνίδι&quot;&gt;Το Grafana Πάνω από MCP Αλλάζει το Παιχνίδι&lt;/h2&gt;
&lt;p&gt;Η μεγαλύτερη αλλαγή είναι ότι το Grafana δεν είναι μόνο ένα μέρος που επισκέπτονται άνθρωποι σε ένα πρόγραμμα περιήγησης.&lt;/p&gt;
&lt;p&gt;Σε αυτό το αποθετήριο εκθέτουμε επίσης το Grafana μέσω MCP. Αυτό σημαίνει ότι ένας πράκτορας μπορεί να θέσει ερωτήματα απευθείας στο Loki, στο Prometheus και στο Tempo αντί να περιμένει έναν άνθρωπο να επιθεωρήσει χειροκίνητα τους πίνακες ελέγχου πρώτα.&lt;/p&gt;
&lt;p&gt;Αυτό μετατρέπει την παρατηρησιμότητα σε ενεργή είσοδο στη ροή εργασίας.&lt;/p&gt;
&lt;p&gt;Ένας πράκτορας μπορεί να ρωτήσει:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ποιες οικογένειες εργαλείων απέτυχαν περισσότερο την τελευταία ώρα;&lt;/li&gt;
&lt;li&gt;Ποιος διακομιστής MCP κυριάρχησε σε μια συνεδρία;&lt;/li&gt;
&lt;li&gt;Οι πρόσφατες αλλαγές μείωσαν τις αστοχίες εργαλείων ή απλώς μετέφεραν την εργασία σε πιο βαριές διαδρομές shell με τα ίδια λάθη;&lt;/li&gt;
&lt;li&gt;Ποια traces δείχνουν την υψηλότερη καθυστέρηση ή επαναλαμβανόμενες επαναπροσπάθειες;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Μόλις το έχετε αυτό, είστε πολύ κοντά σε έναν βρόχο αυτο-βελτίωσης.&lt;/p&gt;
&lt;h2 id=&quot;από-τον-πίνακα-ελέγχου-στον-βρόχο-ανάδρασης&quot;&gt;Από τον Πίνακα Ελέγχου στον Βρόχο Ανάδρασης&lt;/h2&gt;
&lt;p&gt;Αυτό είναι το κομμάτι που βρίσκουμε πιο ενδιαφέρον.&lt;/p&gt;
&lt;p&gt;Μόλις η στοίβα παρατηρησιμότητας γίνει αναζητήσιμη από το επίπεδο πρακτόρων, η τηλεμετρία σταματά να είναι ένα παθητικό μέσο αναφοράς και γίνεται σήμα ελέγχου.&lt;/p&gt;
&lt;p&gt;Ο βρόχος μοιάζει ως εξής:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Η δραστηριότητα πρακτόρων εκπέμπει traces, μετρικές και εμπλουτισμένα αρχεία καταγραφής hook.&lt;/li&gt;
&lt;li&gt;Το Grafana αποθηκεύει τα στοιχεία στο Loki, στο Tempo και στο Prometheus όπου υπάρχουν μετρικές.&lt;/li&gt;
&lt;li&gt;Οι πράκτορες θέτουν ερωτήματα σε αυτά τα στοιχεία μέσω του Grafana MCP.&lt;/li&gt;
&lt;li&gt;Το σύστημα εντοπίζει κακό μείγμα εργαλείων, εύθραυστες δεξιότητες, αδύναμη δρομολόγηση, ή ροές εργασίας βαριές σε shell που συνεχίζουν να παράγουν αποφεύξιμα λάθη.&lt;/li&gt;
&lt;li&gt;Οι πράκτορες ή οι χειριστές προσαρμόζουν προτροπές, διαμορφώσεις πρακτόρων, περιγραφές δεξιοτήτων, κανόνες δρομολόγησης ή πρόσβαση σε εργαλεία.&lt;/li&gt;
&lt;li&gt;Η επόμενη συνεδρία παράγει ένα νέο σχήμα τηλεμετρίας, και ο κύκλος επαναλαμβάνεται.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Έτσι μετακινείστε από «ενδιαφέρων πίνακας ελέγχου» σε «μετρήσιμο σύστημα βελτίωσης».&lt;/p&gt;
&lt;p&gt;Ο στόχος δεν είναι να μεγιστοποιήσετε μία κατηγορία εργαλείων. Είναι να καταλήξετε στο σωστό μείγμα CLI, ενσωματωμένων εργαλείων, κλήσεων MCP και δεξιοτήτων για την εργασία που πράγματι γίνεται.&lt;/p&gt;
&lt;h2 id=&quot;τι-μας-επιτρέπει-να-απαντήσουμε&quot;&gt;Τι Μας Επιτρέπει να Απαντήσουμε&lt;/h2&gt;
&lt;p&gt;Μόλις και τα δύο περιβάλλοντα εκτέλεσης καταλήξουν στην ίδια στοίβα Grafana, μπορούμε να απαντήσουμε λειτουργικά ερωτήματα πολύ πιο γρήγορα:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Είναι οι αστοχίες συγκεντρωμένες σε μία οικογένεια εργαλείων;&lt;/li&gt;
&lt;li&gt;Δημιουργούν οι ροές εργασίας βαριές σε shell αποφεύξιμα λάθη εκεί όπου θα έπρεπε να υπάρχει ένα εργαλείο υψηλότερου επιπέδου;&lt;/li&gt;
&lt;li&gt;Ποιοι διακομιστές MCP κουβαλούν το φορτίο εργασίας;&lt;/li&gt;
&lt;li&gt;Πληρώνουμε για δραστηριότητα πρακτόρων που δεν παράγει ουσιαστική πρόοδο;&lt;/li&gt;
&lt;li&gt;Είναι μια συνεδρία προβληματική εξαιτίας του μοντέλου, των εργαλείων ή του επιπέδου ενορχήστρωσης;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Αυτό είναι ιδιαίτερα χρήσιμο σε ροές εργασίας πολλαπλών πρακτόρων, όπου το «ο πράκτορας ήταν απασχολημένος» δεν σας λέει σχεδόν τίποτα.&lt;/p&gt;
&lt;p&gt;Αν ένας ειδικός συνεχίζει να δρομολογείται και να παράγει υψηλά ποσοστά αποτυχίας, αυτό είναι πρόβλημα δρομολόγησης ή διαμόρφωσης προτροπής.&lt;/p&gt;
&lt;p&gt;Αν ένας διακομιστής MCP κυριαρχεί σε όλες τις κλήσεις, αυτό μπορεί να είναι καλή αρχιτεκτονική ή σημάδι ότι όλα τα υπόλοιπα είναι νεκρό βάρος.&lt;/p&gt;
&lt;p&gt;Αν οι αστοχίες εργαλείων εκτοξεύονται ενώ το κόστος παραμένει υψηλό, έχετε λειτουργικό πρόβλημα, όχι πρόβλημα ποιότητας.&lt;/p&gt;
&lt;p&gt;Αν η εργασία shell συνεχίζει να αποτυγχάνει με προβλέψιμους, αποφεύξιμους τρόπους εκεί όπου θα έπρεπε να υπάρχει ένα εργαλείο υψηλότερου επιπέδου, αυτό είναι σήμα προϊόντος.&lt;/p&gt;
&lt;p&gt;Αν μία δεξιότητα ενεργοποιείται συνεχώς αλλά δεν βελτιώνει τα αποτελέσματα, αυτό είναι σήμα προτροπής ή δρομολόγησης.&lt;/p&gt;
&lt;h2 id=&quot;το-πραγματικό-μάθημα&quot;&gt;Το Πραγματικό Μάθημα&lt;/h2&gt;
&lt;p&gt;Το βαθύτερο μάθημα εδώ είναι ότι η παρατηρησιμότητα πρακτόρων χρειάζεται τόσο &lt;strong&gt;τηλεμετρία χρόνου εκτέλεσης&lt;/strong&gt; όσο και &lt;strong&gt;τηλεμετρία ροής εργασίας&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Η τηλεμετρία χρόνου εκτέλεσης σας λέει τι έκανε το σύστημα.&lt;/p&gt;
&lt;p&gt;Η τηλεμετρία ροής εργασίας σας λέει τι νόμιζε ο πράκτορας ότι έκανε.&lt;/p&gt;
&lt;p&gt;Χρειαζόμαστε και τα δύο.&lt;/p&gt;
&lt;p&gt;Αν κρατάτε μόνο traces και μετρητές, χάνετε το σημασιολογικό επίπεδο. Αν κρατάτε μόνο συμβάντα hook, χάνετε την καθυστέρηση, τα spans και την ευρύτερη εικόνα χρόνου εκτέλεσης.&lt;/p&gt;
&lt;p&gt;Και αν κρατάτε και τα δύο αλλά ποτέ δεν τα τροφοδοτείτε πίσω στο επίπεδο πρακτόρων, έχετε παρακολούθηση, όχι προσαρμογή.&lt;/p&gt;
&lt;p&gt;Ο συνδυασμός είναι αυτό που κάνει το σύστημα αρκετά επεξηγήσιμο για να λειτουργεί και αρκετά ρυθμίσιμο για να βελτιώνεται.&lt;/p&gt;
&lt;h2 id=&quot;τι-εξακολουθεί-να-είναι-ατελές&quot;&gt;Τι Εξακολουθεί να Είναι Ατελές&lt;/h2&gt;
&lt;p&gt;Υπάρχουν ακόμη σημεία που χρειάζονται βελτίωση.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Δεν περιλαμβάνει κάθε συμβάν hook τα δεδομένα διάρκειας και tokens που θα θέλαμε.&lt;/li&gt;
&lt;li&gt;Μερικές από τις καλύτερες όψεις χρονισμού εξακολουθούν να προέρχονται από traces του Tempo, όχι από τα αρχεία καταγραφής hook.&lt;/li&gt;
&lt;li&gt;Το Codex σήμερα είναι λιγότερο σημασιολογικά πλούσιο από το Claude Code στην εμπλουτισμένη ροή συμβάντων.&lt;/li&gt;
&lt;li&gt;Το στιγμιότυπο οθόνης του πίνακα ελέγχου είναι μια οθόνη που χρησιμοποιείται στην καθημερινή λειτουργία, όχι ένα στιλβωμένο τεχνούργημα μάρκετινγκ.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Αυτό το τελευταίο σημείο είναι σκόπιμο. Προτιμούμε να δείξουμε τον πραγματικό πίνακα οργάνων παρά να προσποιηθούμε ότι τα συστήματα πρακτόρων είναι μαγικά αυτο-επεξηγούμενα.&lt;/p&gt;
&lt;h2 id=&quot;γιατί-αυτό-έχει-σημασία-για-το-maguyva&quot;&gt;Γιατί Αυτό Έχει Σημασία για το Maguyva&lt;/h2&gt;
&lt;p&gt;Το Maguyva αφορά το να δίνει στους πράκτορες καλύτερη ευφυΐα κώδικα. Όμως μόλις οι πράκτορες κάνουν πραγματικά χρήσιμη δουλειά, εμφανίζεται αμέσως μια νέα απαίτηση: χρειάζεται να δείτε πώς συμπεριφέρονται.&lt;/p&gt;
&lt;p&gt;Η ποιότητα αναζήτησης, η ποιότητα δρομολόγησης, η επιλογή εργαλείων και η αποδοτικότητα πλαισίου γίνονται όλα παρατηρήσιμα προβλήματα.&lt;/p&gt;
&lt;p&gt;Γι’ αυτό πιστεύουμε ότι αξίζει να γράψουμε γι’ αυτό. Η μελλοντική στοίβα πρακτόρων δεν είναι μόνο προτροπές και εργαλεία. Είναι προτροπές, εργαλεία, και το επίπεδο καταγραφής και μέτρησης που σας λέει αν όλο αυτό λειτουργεί.&lt;/p&gt;
&lt;p&gt;Αν χτίζετε σοβαρές ροές εργασίας πρακτόρων, η παρατηρησιμότητα δεν είναι προαιρετική υποδομή. Είναι μέρος του προϊόντος.&lt;/p&gt;
</content:encoded><category>Observability</category><category>Grafana</category><category>OpenTelemetry</category><category>Architecture</category></item><item><title>Εξόρυξη και Κλείσιμο του Βρόχου: Πώς οι Αλλαγές Γίνονται Θεσμική Μνήμη</title><link>https://maguyva.ai/el/blog/mining-workflow-closing-the-loop</link><guid isPermaLink="true">https://maguyva.ai/el/blog/mining-workflow-closing-the-loop</guid><description>Οι υποβολές του git μετατρέπονται σε δομημένες καταχωρίσεις ιστορικού αλλαγών και σε αρχεία αρχιτεκτονικών αποφάσεων, και έπειτα τροφοδοτούν πίσω τους πράκτορες AI ως αναζητήσιμη θεσμική μνήμη.</description><pubDate>Tue, 03 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Οι αριθμοί σε αυτή την ανάρτηση αντικατοπτρίζουν το σύστημα κατά τη δημοσίευση (Φεβρουάριος 2026). Δείτε τη &lt;a href=&quot;https://maguyva.ai/el/team&quot;&gt;σελίδα ομάδας&lt;/a&gt; μας για τα τρέχοντα στοιχεία.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Κάθε ομάδα μηχανικών αντιμετωπίζει την ίδια πρόκληση: οι αλλαγές συμβαίνουν συνεχώς, όμως το &lt;em&gt;γιατί&lt;/em&gt; πίσω από αυτές τις αλλαγές εξαφανίζεται. Έξι μήνες αργότερα, κάποιος ρωτά «γιατί υιοθετήσαμε το DuckDB για τα στάδια του αγωγού;» και η απάντηση ζει μόνο στο μυαλό όποιου πήρε εκείνη την απόφαση — αν εξακολουθεί να εργάζεται στην ομάδα.&lt;/p&gt;
&lt;p&gt;Χτίσαμε μια ροή εργασίας εξόρυξης που κλείνει αυτόν τον βρόχο. Οι αλλαγές ρέουν μέσα από υποβολές git, επεξεργάζονται από τον αγωγό εξόρυξής μας, γίνονται δομημένες καταχωρίσεις ιστορικού αλλαγών και αρχεία αρχιτεκτονικών αποφάσεων, και έπειτα τροφοδοτούν πίσω τους πράκτορές μας AI μέσω ερωτημάτων CLI. Το αποτέλεσμα: θεσμική μνήμη στην οποία μπορούν να έχουν πρόσβαση τόσο άνθρωποι όσο και AI.&lt;/p&gt;
&lt;h2 id=&quot;το-πρόβλημα-οι-αποφάσεις-εξατμίζονται&quot;&gt;Το Πρόβλημα: Οι Αποφάσεις Εξατμίζονται&lt;/h2&gt;
&lt;p&gt;Σκεφτείτε ένα τυπικό σενάριο. Ένας προγραμματιστής κάνει μια υποβολή (commit):&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;feat(canonical): add DuckDB runtime for pipeline stages&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτή η υποβολή αντιπροσωπεύει μια σημαντική αρχιτεκτονική επιλογή. Η ομάδα αξιολόγησε επιλογές, εξέτασε συμβιβασμούς και κατέληξε στο DuckDB για συγκεκριμένους λόγους. Όμως όλο αυτό το πλαίσιο ζει σε:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ένα νήμα Slack (πιθανώς διαγραμμένο)&lt;/li&gt;
&lt;li&gt;Τη μνήμη κάποιου (σίγουρα ξεθωριάζει)&lt;/li&gt;
&lt;li&gt;Ένα σχόλιο στον κώδικα (ίσως, αν είστε τυχεροί)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Τρεις μήνες αργότερα, ένα νέο μέλος της ομάδας ρωτά: «Πρέπει να χρησιμοποιήσω DuckDB ή SQLite για αυτό το νέο στάδιο;». Χωρίς θεσμική μνήμη, είτε ανακαλύπτουν ξανά τον τροχό είτε κάνουν ασυνεπείς επιλογές.&lt;/p&gt;
&lt;h2 id=&quot;ο-βρόχος-από-τις-υποβολές-στο-πλαίσιο&quot;&gt;Ο Βρόχος: Από τις Υποβολές στο Πλαίσιο&lt;/h2&gt;
&lt;p&gt;Η ροή εργασίας εξόρυξής μας μετατρέπει το ιστορικό git σε αναζητήσιμη γνώση:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Git Commits&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  mine sync          │  ← Build index from git history&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  mine candidates    │  ← Surface commits for review&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  Classification     │  ← Human or LLM assessment&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│  (changelog or ADR) │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ├──────────────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼                      ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────┐    ┌───────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ Changelog   │    │ Decisions     │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ Ledger      │    │ Registry      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ (JSONL)     │    │ (YAML files)  │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────┘    └───────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │                      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ▼                      ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;┌─────────────┐    ┌───────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ CHANGELOG.md│    │ orkestra CLI  │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;│ per package │    │ queries       │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└─────────────┘    └───────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    │                      │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    └──────────────────────┘&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;              │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;              ▼&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      ┌───────────────┐&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      │ AI Agents     │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      │ (via CLI)     │&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;      └───────────────┘&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Η βασική διορατικότητα: τόσο τα ιστορικά αλλαγών όσο και οι αρχιτεκτονικές αποφάσεις ρέουν από το ίδιο ιστορικό git, επεξεργασμένο μέσω ενός ενοποιημένου αγωγού. Αυτό εξασφαλίζει ότι τίποτα δεν χάνεται στα κενά.&lt;/p&gt;
&lt;h2 id=&quot;πώς-λειτουργεί-η-εξόρυξη&quot;&gt;Πώς Λειτουργεί η Εξόρυξη&lt;/h2&gt;
&lt;h3 id=&quot;βήμα-1-συγχρονισμός-του-ευρετηρίου&quot;&gt;Βήμα 1: Συγχρονισμός του Ευρετηρίου&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτή η εντολή σαρώνει το ιστορικό git και χτίζει ένα ευρετήριο όλων των υποβολών. Εξάγει δομημένα σήματα από κάθε υποβολή:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Τύπος βάσει του προτύπου Conventional Commits (&lt;code&gt;feat&lt;/code&gt;, &lt;code&gt;fix&lt;/code&gt;, &lt;code&gt;chore&lt;/code&gt;, &lt;code&gt;docs&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Εμβέλεια (ποιο πακέτο ή περιοχή)&lt;/li&gt;
&lt;li&gt;Δείκτες ασύμβατων αλλαγών&lt;/li&gt;
&lt;li&gt;Αρχεία που επηρεάστηκαν και μετρικές πολυπλοκότητας&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;βήμα-2-έλεγχος-κατάστασης-κάλυψης&quot;&gt;Βήμα 2: Έλεγχος Κατάστασης Κάλυψης&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; status&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Να πώς μοιάζει η τρέχουσα κατάστασή μας:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Mining Status&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;=============&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Decisions&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;---------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  Coverage:        100.0%&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Processed:     15637  (of 15637)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Extracted:       476&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Skipped:       15161&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;Changelog&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;---------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  Coverage:        100.0%&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Processed:     15637  (of 15637)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Released:       6799&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    Skipped:        8838&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;15.637 υποβολές έχουν υποβληθεί σε επεξεργασία. 476 έγιναν αρχιτεκτονικές αποφάσεις. 6.799 έγιναν καταχωρίσεις ιστορικού αλλαγών. Κάθε υποβολή έχει ταξινομηθεί.&lt;/p&gt;
&lt;h3 id=&quot;βήμα-3-λήψη-υποψηφίων-για-επισκόπηση&quot;&gt;Βήμα 3: Λήψη Υποψηφίων για Επισκόπηση&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; candidates&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --limit&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 50&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --full&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό αναδεικνύει υποβολές που δεν έχουν επεξεργαστεί ακόμη, με πλήρες πλαίσιο για ταξινόμηση:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;90571786d99166c0039ca2e80e4d9cd96184bd85&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;date&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;2026-01-26&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;subject&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;feat(canonical): add DuckDB runtime for pipeline stages&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;signals&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;commit_type&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;feat&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;scope&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;canonical&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;breaking&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;is_releasable_type&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;domains_affected&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;pipeline&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;data-architecture&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;body&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Establishes DuckDB as canonical in-process analytical database...&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;files_changed&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;packages/canonical/pipelines/stages/duckdb_runtime.py&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;...&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;stats&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;files&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;8&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;insertions&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;450&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;deletions&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;120&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Τα σήματα βοηθούν να καθοδηγηθεί η ταξινόμηση: το &lt;code&gt;is_releasable_type: true&lt;/code&gt; υποδεικνύει ότι αυτό πρέπει να εμφανιστεί στο ιστορικό αλλαγών. Ο μεγάλος αριθμός προστιθέμενων γραμμών και τα αρχεία υποδομής υποδεικνύουν ότι μπορεί επίσης να είναι αρχιτεκτονική απόφαση.&lt;/p&gt;
&lt;h3 id=&quot;βήμα-4-ταξινόμηση-υποβολών&quot;&gt;Βήμα 4: Ταξινόμηση Υποβολών&lt;/h3&gt;
&lt;p&gt;Δύο διαδρομές αποκλίνουν εδώ: καταχωρίσεις ιστορικού αλλαγών και αρχιτεκτονικές αποφάσεις.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Για καταχωρίσεις ιστορικού αλλαγών:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; classify&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; abc123&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --changelog&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; added&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό καταγράφει ότι η υποβολή &lt;code&gt;abc123&lt;/code&gt; πρέπει να εμφανιστεί στο ιστορικό αλλαγών κάτω από την κατηγορία «Added».&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Για αρχιτεκτονικές αποφάσεις:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Πρώτα, πάρτε ένα πραγματικό ID απόφασης:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; new&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --domain&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; pipeline&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --dry-run&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Returns: DEC-PL-143&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Έπειτα ταξινομήστε με το ID απόφασης:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; classify&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; abc123&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --decision&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; DEC-PL-143&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό συνδέει την υποβολή με ένα αρχείο απόφασης που θα δημιουργηθεί ή θα ενημερωθεί.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Για μαζική επεξεργασία (αυτό που κάνουμε στην πράξη):&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Generate classifications file with LLM assistance&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; commit&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --input&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; classifications.jsonl&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Η μορφή JSONL υποστηρίζει και τους δύο τομείς σε ένα πέρασμα:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;jsonl&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;abc123&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;domain&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;changelog&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;action&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;release&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;category&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;added&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;summary&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Add DuckDB runtime for pipeline stages&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;abc123&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;domain&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;decisions&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;action&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;extract&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;decision_id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;DEC-PL-142&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;def456&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;domain&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;changelog&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;action&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;skip&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;&quot;reason&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Chore: dependency update&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;βήμα-5-απόδοση-εξόδων&quot;&gt;Βήμα 5: Απόδοση Εξόδων&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; changelog&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; render&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --package&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;pk&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;g&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό παράγει αρχεία &lt;code&gt;CHANGELOG.md&lt;/code&gt; ανά πακέτο από το καθολικό. Τα ιστορικά αλλαγών είναι παράγωγα τεχνουργήματα — διαγράψτε τα και αναδημιουργούνται τέλεια από το πηγαίο καθολικό.&lt;/p&gt;
&lt;h2 id=&quot;η-δομή-του-αρχείου-απόφασης&quot;&gt;Η Δομή του Αρχείου Απόφασης&lt;/h2&gt;
&lt;p&gt;Οι εξαγόμενες αποφάσεις γίνονται αρχεία YAML με πλούσια μεταδεδομένα:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;DEC-PL-142&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Adopt DuckDB as Canonical Processing Runtime for Pipeline Stages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;domain&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;pipeline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;active&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;created&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;2026-01-26&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;summary&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  Establishes DuckDB as the canonical in-process analytical database for pipeline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  stage transformations. Provides a shared runtime module that resolves settings&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  from pipeline defaults with stage-level overrides.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;context&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  Pipeline stages performing data transformations each independently configured&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  DuckDB connections. This led to inconsistent settings, duplicated configuration&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;  code, and no way to tune DuckDB globally for a pipeline run.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;DuckDB provides efficient in-process OLAP with zero configuration deployment&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Centralized runtime module eliminates duplicated DuckDB setup across stages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Hierarchical settings enable global tuning with stage-level overrides&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Memory limits and thread counts can be adjusted per-pipeline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;impact&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  positive&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Consistent DuckDB configuration across all pipeline stages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Single point of control for memory/thread tuning&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Reduced code duplication in conversion and export stages&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  negative&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Adds dependency on shared runtime module&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Stages must adopt new configuration pattern&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;source_commits&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;sha&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;90571786d99166c0039ca2e80e4d9cd96184bd85&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    message&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;feat(canonical): add DuckDB runtime for pipeline stages&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    date&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;2026-01-26&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    role&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;primary&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;files&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;packages/canonical/pipelines/stages/duckdb_runtime.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;packages/canonical/pipelines/runner.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;packages/canonical/pipelines/stages/convert_hdx_admin_boundaries_to_geoparquet.py&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;related&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;DEC-DA-014&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # Data architecture decisions that influenced this&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Κάθε απόφαση συνδέεται πίσω με τις πηγαίες της υποβολές. Κάθε απόφαση προσδιορίζει ποια αρχεία επηρεάζει. Οι σχέσεις ανάμεσα σε αποφάσεις είναι ρητές.&lt;/p&gt;
&lt;h2 id=&quot;ενσωμάτωση-cli-ερωτήματα-στη-θεσμική-μνήμη&quot;&gt;Ενσωμάτωση CLI: Ερωτήματα στη Θεσμική Μνήμη&lt;/h2&gt;
&lt;p&gt;Εδώ είναι όπου κλείνει ο βρόχος. Οι πράκτορες μπορούν να θέτουν ερωτήματα σε αποφάσεις μέσω του CLI:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Search by topic&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --query&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;retry&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Επιστρέφει αποφάσεις σχετικά με λογική επανάληψης αποτυχημένων προσπαθειών, χειρισμό σφαλμάτων, μοτίβα ανάκαμψης.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Get full details on a specific decision&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; DEC-PL-142&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Επιστρέφει το πλήρες αρχείο απόφασης με πλαίσιο, αιτιολόγηση και επίδραση.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# List recent decisions for context&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --limit&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; 15&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Δείχνει ποιες αρχιτεκτονικές επιλογές έγιναν πρόσφατα.&lt;/p&gt;
&lt;h3 id=&quot;πώς-οι-πράκτορες-το-χρησιμοποιούν&quot;&gt;Πώς οι Πράκτορες το Χρησιμοποιούν&lt;/h3&gt;
&lt;p&gt;Οι βασικές οδηγίες του ενορχηστρωτή μας περιλαμβάνουν:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;markdown&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8;font-weight:bold&quot;&gt;**Essential CLI commands:**&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; `orkestra registry decisions search &quot;X&quot;`&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; — Find architectural decisions&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Όταν ζητείται από έναν πράκτορα να υλοποιήσει κάτι σχετικό με το DuckDB, μπορεί πρώτα να ελέγξει:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --query&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;DuckDB&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Και να ανακαλύψει το DEC-PL-142, μαθαίνοντας:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Γιατί επιλέξαμε το DuckDB (πλαίσιο)&lt;/li&gt;
&lt;li&gt;Πώς να το χρησιμοποιήσει σωστά (agent_guidance)&lt;/li&gt;
&lt;li&gt;Ποια αρχεία να κοιτάξει (files)&lt;/li&gt;
&lt;li&gt;Ποιες σχετικές αποφάσεις υπάρχουν (related)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ο πράκτορας δεν ανακαλύπτει ξανά τον τροχό. Χτίζει πάνω σε καθιερωμένα μοτίβα.&lt;/p&gt;
&lt;h2 id=&quot;το-τεστ-των-τριών-ερωτημάτων&quot;&gt;Το Τεστ των Τριών Ερωτημάτων&lt;/h2&gt;
&lt;p&gt;Δεν αξίζει κάθε υποβολή ένα αρχείο απόφασης. Χρησιμοποιούμε το Τεστ των Τριών Ερωτημάτων για να φιλτράρουμε:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Ήταν δύσκολο να ληφθεί;&lt;/strong&gt; Απαίτησε σημαντική ανάλυση, αξιολόγηση συμβιβασμών ή συζήτηση;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Είναι δαπανηρό να αλλάξει;&lt;/strong&gt; Θα απαιτούσε η αντιστροφή αυτής της απόφασης σημαντική επανεργασία;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Έχει επίδραση σε όλο το σύστημα;&lt;/strong&gt; Επηρεάζει πολλαπλά πακέτα ή θεσπίζει μοτίβα που θα ακολουθήσουν άλλοι;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Αν μια υποβολή απαντά «ναι» σε τουλάχιστον ένα από αυτά τα ερωτήματα, είναι υποψήφια για εξαγωγή απόφασης. Ο τυπικός μας ρυθμός: 1-4 αποφάσεις ανά 100 υποβολές (περίπου 1-4%).&lt;/p&gt;
&lt;p&gt;Για καταχωρίσεις ιστορικού αλλαγών, ο πήχης είναι χαμηλότερος: κάθε αλλαγή ορατή στον χρήστη (χαρακτηριστικά, διορθώσεις, βελτιώσεις) καταγράφεται. Εσωτερικές δουλειές συντήρησης, ενημερώσεις τεκμηρίωσης και αναδιαμορφώσεις συνήθως παραλείπονται. Ο τυπικός μας ρυθμός: 30-50 καταχωρίσεις ιστορικού αλλαγών ανά 100 υποβολές.&lt;/p&gt;
&lt;h2 id=&quot;αποθήκευση-δεδομένων-καθολικά-μόνο-για-προσθήκη&quot;&gt;Αποθήκευση Δεδομένων: Καθολικά Μόνο-για-Προσθήκη&lt;/h2&gt;
&lt;p&gt;Το σύστημα εξόρυξης χρησιμοποιεί καθολικά JSONL μόνο-για-προσθήκη για λειτουργία χωρίς συγκρούσεις με πολλούς πράκτορες:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;packages/orchestration/ai_assets/reference/changelog/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── commits_processed.jsonl  # Classification ledger (both domains)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── release_notes.jsonl      # Changelog entries&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── commits_index.yaml       # Derived index (gitignored)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;packages/orchestration/ai_assets/reference/decisions/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── registry.yaml            # Decision index&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── records/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ├── DEC-AD-001.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    ├── DEC-AD-002.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;    └── ...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Η μορφή JSONL με το &lt;code&gt;merge=union&lt;/code&gt; στο &lt;code&gt;.gitattributes&lt;/code&gt; σημαίνει ότι πολλοί πράκτορες μπορούν να ταξινομούν υποβολές ταυτόχρονα χωρίς συγκρούσεις συγχώνευσης. Κάθε γραμμή είναι ανεξάρτητη.&lt;/p&gt;
&lt;h2 id=&quot;πύλες-επικύρωσης&quot;&gt;Πύλες Επικύρωσης&lt;/h2&gt;
&lt;p&gt;Πριν από κάθε συνεδρία εξόρυξης, τρέχουμε επικύρωση:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mine&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; validate&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --quick&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό ελέγχει:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Εγκυρότητα μορφής SHA&lt;/li&gt;
&lt;li&gt;Συμμόρφωση μορφής ID απόφασης&lt;/li&gt;
&lt;li&gt;Καμία διπλή καταχώριση για το ίδιο SHA&lt;/li&gt;
&lt;li&gt;Ότι οι αναφερόμενες αποφάσεις όντως υπάρχουν&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Μετά την ταξινόμηση, επικυρώνουμε ξανά πριν υποβάλουμε τις αλλαγές.&lt;/p&gt;
&lt;h2 id=&quot;γιατί-έχει-σημασία&quot;&gt;Γιατί Έχει Σημασία&lt;/h2&gt;
&lt;p&gt;Ο βρόχος ανάδρασης που χτίσαμε λύνει αρκετά προβλήματα:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Για νέα μέλη της ομάδας:&lt;/strong&gt; Αντί να ρωτούν «γιατί κάναμε το X;», μπορούν να αναζητήσουν στο μητρώο αποφάσεων. Το πλαίσιο διατηρείται.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Για πράκτορες AI:&lt;/strong&gt; Δεν λειτουργούν σε κενό. Μπορούν να θέτουν ερωτήματα στη θεσμική γνώση πριν κάνουν συστάσεις. Όταν τους ζητηθεί να προσθέσουν ένα νέο στάδιο αγωγού, μπορούν να ανακαλύψουν το μοτίβο DuckDB και να το ακολουθήσουν.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Για αρχιτεκτονική συνέπεια:&lt;/strong&gt; Οι αποφάσεις είναι ρητές και αναζητήσιμες. Όταν κάποιος προτείνει μια προσέγγιση που έρχεται σε αντίθεση με μια υπάρχουσα απόφαση, το σύστημα μπορεί να αναδείξει τη σύγκρουση.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Για δημιουργία ιστορικού αλλαγών:&lt;/strong&gt; Οι σημειώσεις έκδοσης δεν είναι μια πανικόβλητη εργασία της τελευταίας στιγμής. Είναι παραπροϊόν συνεχούς ταξινόμησης κατά την ανάπτυξη.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Για ένταξη νέων μελών:&lt;/strong&gt; Οι νέοι πράκτορες κληρονομούν το πλήρες πλαίσιο της βάσης κώδικα. Δεν βλέπουν απλώς τον κώδικα — βλέπουν τις αποφάσεις που τον διαμόρφωσαν.&lt;/p&gt;
&lt;h2 id=&quot;τρέχουσα-κατάσταση&quot;&gt;Τρέχουσα Κατάσταση&lt;/h2&gt;
&lt;p&gt;Έως σήμερα:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;15.637 υποβολές&lt;/strong&gt; έχουν υποβληθεί σε επεξεργασία μέσω του αγωγού&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;476 αρχιτεκτονικές αποφάσεις&lt;/strong&gt; εξήχθησαν και τεκμηριώθηκαν&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;6.799 καταχωρίσεις ιστορικού αλλαγών&lt;/strong&gt; καταγράφηκαν&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;100% κάλυψη&lt;/strong&gt; και στους δύο τομείς&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Κάθε υποβολή από τότε που ξεκινήσαμε έχει ταξινομηθεί. Η θεσμική μνήμη είναι πλήρης και αναζητήσιμη.&lt;/p&gt;
&lt;h2 id=&quot;ξεκινώντας&quot;&gt;Ξεκινώντας&lt;/h2&gt;
&lt;p&gt;Αν θέλετε να υλοποιήσετε κάτι παρόμοιο:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ξεκινήστε με το πρότυπο Conventional Commits.&lt;/strong&gt; Ο αγωγός εξόρυξης λειτουργεί καλύτερα όταν οι υποβολές έχουν δομημένα προθέματα (&lt;code&gt;feat:&lt;/code&gt;, &lt;code&gt;fix:&lt;/code&gt;, &lt;code&gt;chore:&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ορίστε τους τομείς σας.&lt;/strong&gt; Χρησιμοποιούμε τομείς όπως &lt;code&gt;pipeline&lt;/code&gt;, &lt;code&gt;agent-design&lt;/code&gt;, &lt;code&gt;observability&lt;/code&gt;, &lt;code&gt;data-modeling&lt;/code&gt;. Αυτοί οργανώνουν τις αποφάσεις κατά περιοχή.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Χτίστε τη συνήθεια ταξινόμησης.&lt;/strong&gt; Η εξόρυξη λειτουργεί όταν οι ομάδες ταξινομούν τακτικά υποβολές. Η μαζική επεξεργασία με βοήθεια LLM βοηθά στην κλιμάκωση.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Κάντε τις αποφάσεις αναζητήσιμες.&lt;/strong&gt; Η αξία πολλαπλασιάζεται όταν οι πράκτορες μπορούν να αναζητήσουν αποφάσεις μέσω CLI. Δομήστε την έξοδό σας για κατανάλωση από μηχανή.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Κλείστε τον βρόχο.&lt;/strong&gt; Οι αποφάσεις πρέπει να επηρεάζουν τη μελλοντική εργασία. Συμπεριλάβετε αναφορές αποφάσεων σε οδηγίες πρακτόρων και λίστες ελέγχου επισκόπησης κώδικα.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ο στόχος δεν είναι τέλεια τεκμηρίωση. Είναι να γίνει το &lt;em&gt;γιατί&lt;/em&gt; πίσω από τις αλλαγές προσβάσιμο τόσο σε ανθρώπους όσο και σε AI, σήμερα και έξι μήνες από τώρα. Όταν οι αλλαγές γίνονται θεσμική μνήμη, οι ομάδες χτίζουν πάνω σε καθιερωμένα μοτίβα αντί να τα ανακαλύπτουν ξανά.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Η ροή εργασίας εξόρυξης είναι μέρος της μηχανής ενορχήστρωσής μας, συγκεκριμένα του αρθρώματος μηχανής πλαισίου στο πακέτο ενορχήστρωσής μας.&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Workflows</category></item><item><title>Εξόρυξη Δεξιοτήτων: Από 3.500 Υποψήφιες σε 466 Ικανότητες</title><link>https://maguyva.ai/el/blog/skill-mining-3500-and-counting</link><guid isPermaLink="true">https://maguyva.ai/el/blog/skill-mining-3500-and-counting</guid><description>Ελέγξαμε 3.500 υποψήφιες δεξιότητες και υιοθετήσαμε 466. Ένας συστηματικός βρόχος εξόρυξης και ενσωμάτωσης για τη δημιουργία μιας συνεκτικής βιβλιοθήκης δεξιοτήτων πρακτόρων AI σε κλίμακα.</description><pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Οι αριθμοί σε αυτή την ανάρτηση αντικατοπτρίζουν το σύστημα κατά τη δημοσίευση (Ιανουάριος 2026). Δείτε τη &lt;a href=&quot;https://maguyva.ai/el/team&quot;&gt;σελίδα ομάδας&lt;/a&gt; μας για τα τρέχοντα στοιχεία.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;το-πρόβλημα-των-3500-δεξιοτήτων&quot;&gt;Το Πρόβλημα των 3.500 Δεξιοτήτων&lt;/h2&gt;
&lt;p&gt;Όταν ξεκινήσαμε να χτίζουμε ένα σύστημα ενορχήστρωσης πρακτόρων, αντιμετωπίσαμε μια ενδιαφέρουσα πρόκληση: υπάρχουν χιλιάδες πιθανές δεξιότητες διάσπαρτες σε όλο το οικοσύστημα AI. Αποθετήρια GitHub, τεκμηρίωση προμηθευτών, έργα κοινότητας, εσωτερικά μοτίβα — οι δεξιότητες υπάρχουν παντού. Όμως ποιες έχουν σημασία; Ποιες λειτουργούν; Και πώς διατηρείτε μια συνεκτική βιβλιοθήκη δεξιοτήτων που οι πράκτορες μπορούν πράγματι να χρησιμοποιήσουν;&lt;/p&gt;
&lt;p&gt;Η απάντησή μας: ένας συστηματικός βρόχος εξόρυξης και ενσωμάτωσης.&lt;/p&gt;
&lt;h2 id=&quot;οι-αριθμοί-σήμερα&quot;&gt;Οι Αριθμοί Σήμερα&lt;/h2&gt;
&lt;p&gt;Μόλις λίγο πάνω από τρεις μήνες αφότου η Anthropic κυκλοφόρησε τα Agent Skills στις 16 Οκτωβρίου 2025, να πού βρισκόμασταν όταν δημοσιεύτηκε αυτή η ανάρτηση, στις 27 Ιανουαρίου 2026:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Μετρική&lt;/th&gt;
&lt;th&gt;Αριθμός&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Υποψήφιες εντοπισμένες&lt;/td&gt;
&lt;td&gt;3.500+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Δεξιότητες υιοθετημένες&lt;/td&gt;
&lt;td&gt;466&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Δεξιότητες προμηθευτών&lt;/td&gt;
&lt;td&gt;373&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Εσωτερικές δεξιότητες&lt;/td&gt;
&lt;td&gt;93&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ενεργοί προμηθευτές&lt;/td&gt;
&lt;td&gt;25+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Μέσος όρος tokens ανά δεξιότητα&lt;/td&gt;
&lt;td&gt;2.834&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Εργαλεία που αναφέρονται&lt;/td&gt;
&lt;td&gt;89&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Μοναδικές ετικέτες&lt;/td&gt;
&lt;td&gt;635&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Έχουμε επισκοπήσει πάνω από 3.500 υποψήφιες δεξιότητες. Έχουμε υιοθετήσει 466. Αυτό είναι ποσοστό υιοθέτησης 13% — και αυτή η επιλεκτικότητα είναι σκόπιμη.&lt;/p&gt;
&lt;h2 id=&quot;το-σύστημα-επιπέδων-γνώσης&quot;&gt;Το Σύστημα Επιπέδων Γνώσης&lt;/h2&gt;
&lt;p&gt;Δεν είναι όλες οι δεξιότητες ίδιες. Τις οργανώνουμε σε πέντε επίπεδα γνώσης (K0-K4), καθένα από τα οποία αντιπροσωπεύει διαφορετικό πεδίο εφαρμογής:&lt;/p&gt;
&lt;h3 id=&quot;k0-θεμέλια-καθολικά&quot;&gt;K0: Θεμέλια (Καθολικά)&lt;/h3&gt;
&lt;p&gt;Δεξιότητες που κάθε πράκτορας πρέπει να έχει. Αντιπροσωπεύουν ικανότητες τύπου «καλός στοχαστής» που λειτουργούν παντού.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;foundations/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── test-first-discipline       # TDD: Red-Green-Refactor&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── evidence-based-completion   # Verify before claiming done&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── systematic-debugging        # Root cause methodology&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── structured-planning         # Break work into tasks&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── context-budget-awareness    # Manage token consumption&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Οι δεξιότητες K0 είναι φορητές σε οποιοδήποτε έργο, οποιονδήποτε τομέα, οποιαδήποτε στοίβα. Κωδικοποιούν καθολικά γνωστικά μοτίβα.&lt;/p&gt;
&lt;h3 id=&quot;k1-ταυτότητες-επαγγελματικός-κλάδος&quot;&gt;K1: Ταυτότητες (Επαγγελματικός Κλάδος)&lt;/h3&gt;
&lt;p&gt;Δεξιότητες τύπου «καλός μηχανικός» ή «καλός ερευνητής» που εφαρμόζονται σε όλα τα έργα μέσα σε έναν επαγγελματικό κλάδο.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;identities/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── research-workflows          # Multi-source research&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── web-extraction-playbook     # Content extraction&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── code-review                 # PR review patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── cli-interface-standards     # CLI design patterns&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;k2-τομείς-εξειδίκευση-θέματος&quot;&gt;K2: Τομείς (Εξειδίκευση Θέματος)&lt;/h3&gt;
&lt;p&gt;Δεξιότητες τύπου «καλός ειδικός βάσεων δεδομένων» ή «καλός μηχανικός ασφάλειας» φορητές μέσα σε ένα πεδίο.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;domains/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── schema-migration-workflow   # Safe migration patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── rpc-validation-checklist    # RPC health checks&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── auth-validation-checklist   # JWT/OAuth patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── secrets-audit-checklist     # Credential scanning&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;k3-στοίβες-τεχνολογία&quot;&gt;K3: Στοίβες (Τεχνολογία)&lt;/h3&gt;
&lt;p&gt;Δεξιότητες τύπου «καλός χρήστης Supabase» ή «καλός προγραμματιστής Cloudflare» για συγκεκριμένες στοίβες τεχνολογίας.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;stacks/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── maguyva-quickstart          # Our semantic search patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── cloudflare-deployment       # Workers/Pages deployment&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── mcp-tool-best-practices     # MCP tool selection&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;k4-έργο-οργανισμός&quot;&gt;K4: Έργο (Οργανισμός)&lt;/h3&gt;
&lt;p&gt;Δεξιότητες ειδικές για τον οργανισμό και τις ροές εργασίας μας.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;project/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── agent-creation-workflow     # How we build agents&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── skill-authoring-workflow    # How we write skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── mining-session-workflow     # This very process&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── vendor-skill-evaluation     # Evaluation rubrics&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;ο-βρόχος-εξόρυξης&quot;&gt;Ο Βρόχος Εξόρυξης&lt;/h2&gt;
&lt;h3 id=&quot;φάση-1-ανακάλυψη&quot;&gt;Φάση 1: Ανακάλυψη&lt;/h3&gt;
&lt;p&gt;Οι δεξιότητες προέρχονται από παντού:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Αποθετήρια Προμηθευτών&lt;/strong&gt;: Η AWS, η Anthropic, η Cloudflare, η Supabase και συνεισφέροντες της κοινότητας δημοσιεύουν συλλογές δεξιοτήτων. Παρακολουθούμε 25+ ρίζες προμηθευτών.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Έργα Κοινότητας&lt;/strong&gt;: Το GitHub είναι γεμάτο πρότυπα Claude Code, μοτίβα πρακτόρων και ορισμούς ροών εργασίας.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Εσωτερικά Μοτίβα&lt;/strong&gt;: Καθώς η ομάδα μας λύνει προβλήματα, αναδύονται μοτίβα. Αυτά τυποποιούνται σε δεξιότητες.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Εξόρυξη Τεκμηρίωσης&lt;/strong&gt;: Η τεχνική τεκμηρίωση συχνά περιέχει σιωπηρές δεξιότητες — διαδικασίες, λίστες ελέγχου, δέντρα αποφάσεων.&lt;/p&gt;
&lt;p&gt;Η ανακάλυψη είναι συνεχής. Χρησιμοποιούμε μια λίστα εκκρεμοτήτων δεξιοτήτων για να παρακολουθούμε υποψήφιες πριν από την επίσημη αξιολόγηση.&lt;/p&gt;
&lt;h3 id=&quot;φάση-2-αξιολόγηση&quot;&gt;Φάση 2: Αξιολόγηση&lt;/h3&gt;
&lt;p&gt;Κάθε υποψήφια αξιολογείται με τα ίδια κριτήρια:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;adoption_criteria&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;fills_real_gap&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;      # We lack this capability&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;well_structured&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Progressive disclosure&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;actively_maintained&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt; # Commits in last 6 months&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;portable&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;            # Not hyper-specific&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;tested&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;              # Evidence of usage&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Πρέπει να πληρούνται και τα πέντε κριτήρια προϊόντος. Γι’ αυτό το 87% των υποψηφίων απορρίπτεται.&lt;/p&gt;
&lt;p&gt;Έπειτα κάθε υποψήφια περνά από ξεχωριστή επισκόπηση εμπιστοσύνης. Δεν αντιμετωπίζουμε ένα επίσημο αποθετήριο προμηθευτή, έναν γνωστό συντηρητή κοινότητας και ένα τυχαίο αποθετήριο GitHub ως ισοδύναμες πηγές αλήθειας.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;trust_review&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  vendor_credibility&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;ownership_verified&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;       # Official vendor, known maintainer, or internal source&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;maintenance_signal&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;       # Recent commits, issue response, release history&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;adoption_signal&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;          # Evidence of real use, stars alone are not enough&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;provenance_clear&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;         # We can trace where the skill came from&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  prompt_injection_scan&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;hidden_instruction_check&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt; # Buried &quot;ignore previous instructions&quot; patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;exfiltration_check&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;       # Prompts that try to leak files, secrets, or context&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;authority_check&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;          # Claims of priority over system or developer rules&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  script_audit&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;inspect_scripts&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;          # Read shell/python/js helpers before adoption&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;network_and_exec_review&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # curl|bash, remote downloads, subprocess execution&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;file_and_secret_review&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;   # Env vars, credential access, broad file writes&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;destructive_action_check&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt; # rm, reset, overwrite, or unsafe automation&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Οι έμπιστοι προμηθευτές παίρνουν μια ελαφρύτερη επισκόπηση προέλευσης, όχι όμως αυτόματη έγκριση. Οι μη έμπιστες ή άγνωστες πηγές παίρνουν έναν βαθύτερο χειροκίνητο έλεγχο, και δεν εκτελούμε συνοδευτικά σενάρια μέχρι να διαβαστούν, να οριοθετηθούν και να ταξινομηθούν ως ασφαλή.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ανάλυση Κενού&lt;/strong&gt;: Πριν την υιοθέτηση, αναζητούμε στο μητρώο μας:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; skills&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;&amp;lt;capability&amp;gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αν το έχουμε ήδη, δεν το χρειαζόμαστε. Αν έχουμε κάτι κοντινό, μπορεί να συγχωνεύσουμε αντί να υιοθετήσουμε.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Βαθμολόγηση Βάθους και Προτύπων&lt;/strong&gt;: Βαθμολογούμε επίσης πόσο πλήρως χρησιμοποιεί μια υποψήφια το μοντέλο δεξιότητας πράκτορα. Ένα μοναχικό &lt;code&gt;SKILL.md&lt;/code&gt; μπορεί ακόμη να είναι χρήσιμο, όμως οι βαθύτερες δεξιότητες είναι πιο πολύτιμες όταν διαχωρίζουν οδηγίες από υλικό αναφοράς, σενάρια και πόρους με τον τρόπο που ενθαρρύνει το &lt;code&gt;agentskills.io&lt;/code&gt;.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;skill_depth&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_1&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;SKILL.md only&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;                     # Single instruction file&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;SKILL.md + strong description&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Clear triggers and scope&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_3&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;adds references/&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;                  # Load docs only when needed&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_4&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;adds atomic scripts/&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;              # Small, reviewable helpers&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;level_5&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;adds assets/examples/templates&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;    # Full progressive disclosure&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;depth_signals&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;standards_adherence&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;        # Structure aligns with agentskills.io conventions&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;reference_quality&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;          # Curated references, not giant context dumps&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;script_atomicity&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;           # Focused helpers, not opaque monoliths&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;tool_boundary_clarity&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;      # Clear limits on what the skill can execute&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;community_signal&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;           # Stars/forks/users help, but only as a weak boost&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Τα αστέρια GitHub μπορούν να ανεβάσουν λίγο μια βαθμολογία αξιοπιστίας, όμως ποτέ δεν σώζουν μια ρηχή ή ανασφαλή δεξιότητα. Ένα αποθετήριο με πολλά αστέρια αλλά με ένα ασαφές &lt;code&gt;SKILL.md&lt;/code&gt; και αδιαφανή σενάρια βαθμολογείται χαμηλότερα από ένα μικρότερο αποθετήριο με ακριβή περιγραφή, επιμελημένα &lt;code&gt;references/&lt;/code&gt; και μικρά βοηθητικά προγράμματα με μία συγκεκριμένη λειτουργία που πράγματι αξιοποιούν την πλήρη ικανότητα της δεξιότητας.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Δομική Ανάλυση&lt;/strong&gt;: Ελέγχουμε την ποιότητα της δεξιότητας:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;wc&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; -l&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vendor/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;rep&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;skil&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/SKILL.md&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # Size check&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;ls&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vendor/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;rep&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;skil&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/scripts/&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Supporting files&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;ls&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; vendor/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;rep&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;skil&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;/references/&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # Bundled docs&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αν μια υποψήφια περιλαμβάνει σενάρια, αυτή η επισκόπηση γίνεται πιο αυστηρή. Μια καλή δεξιότητα δεν είναι απλώς χρήσιμη· πρέπει να είναι ευανάγνωστη, οριοθετημένη και ασφαλής να δοθεί σε έναν πράκτορα. Αυτό το φίλτρο ασφάλειας από μόνο του αποκλείει ένα σημαντικό κομμάτι από κατά τα άλλα ενδιαφέρουσες υποψήφιες.&lt;/p&gt;
&lt;h3 id=&quot;φάση-3-ενσωμάτωση&quot;&gt;Φάση 3: Ενσωμάτωση&lt;/h3&gt;
&lt;p&gt;Όταν μια δεξιότητα περνά την αξιολόγηση, εισέρχεται στο μητρώο. Όμως οι δεξιότητες δεν υιοθετούνται ποτέ αναλλοίωτες. Τροποποιούνται ώστε να ταιριάζουν στο σύστημά μας.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Τροποποιήσεις κατά την Υιοθέτηση&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Κανονικοποίηση Μεταδεδομένων&lt;/strong&gt;: Κάθε δεξιότητα παίρνει το δικό μας σχήμα frontmatter&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ανάθεση Επιπέδου K&lt;/strong&gt;: Οι δεξιότητες τοποθετούνται στο κατάλληλο επίπεδο γνώσης&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Εμπλουτισμός Ετικετών&lt;/strong&gt;: Προστίθενται ετικέτες για ανακάλυψη&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Δήλωση Εργαλείων&lt;/strong&gt;: Τα επιτρεπόμενα εργαλεία δηλώνονται ρητά&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ευθυγράμμιση Ενοτήτων&lt;/strong&gt;: Το περιεχόμενο αναδιαρθρώνεται ώστε να ταιριάζει στο πρότυπό μας&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ένα τυπικό YAML δεξιότητας μετά την ενσωμάτωση:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;metadata&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  identifier&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor-skill-evaluation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  name&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor-skill-evaluation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  description&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Systematic evaluation of vendor skills for adoption.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;workflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  layer&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;K4&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  semantic_folder&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;project&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  source&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;core&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  last_updated&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;2026-01-17&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;frontmatter&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  tags&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;agents&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;meta&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;skill-adoption&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  allowed_tools&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Bash&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Read&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Write&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Edit&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Grep&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Glob&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;Task&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;φάση-4-ανάθεση-εμβέλειας&quot;&gt;Φάση 4: Ανάθεση Εμβέλειας&lt;/h3&gt;
&lt;p&gt;Οι δεξιότητες ανατίθενται σε εμβέλειες — κατηγορίες που καθορίζουν ποιοι πράκτορες φορτώνουν ποιες δεξιότητες:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;scopes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  database&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    primary_skills&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;domains/schema-migration-workflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;domains/rpc-validation-checklist&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/supabase/supabase-database&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/supabase/supabase-auth&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  research&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    primary_skills&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;identities/research-workflows&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;identities/web-extraction-playbook&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;identities/dataset-discovery-quickstart&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Οι πράκτορες δηλώνουν τις εμβέλειές τους, και οι δεξιότητες ανατίθενται αυτόματα:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Agent definition&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;scopes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;database&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;research&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Gets: all database skills + all research skills + universal skills&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;φάση-5-παραγωγή-αρχείων&quot;&gt;Φάση 5: Παραγωγή Αρχείων&lt;/h3&gt;
&lt;p&gt;Οι δεξιότητες δεν ζουν ως YAML στην παραγωγή. Αποδίδονται σε αρχεία SKILL.md που το Claude Code μπορεί να φορτώσει:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτή η εντολή:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Διαβάζει όλους τους ορισμούς YAML δεξιοτήτων&lt;/li&gt;
&lt;li&gt;Τους αποδίδει μέσω προτύπων Jinja&lt;/li&gt;
&lt;li&gt;Γράφει αρχεία SKILL.md στο &lt;code&gt;.claude/skills/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Οργανώνει κατά επίπεδο K (foundations/, identities/, domains/, stacks/, project/)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Η τελική δομή εξόδου:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;.claude/skills/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── foundations/     # K0: Universal&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── identities/      # K1: Discipline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── domains/         # K2: Subject&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── stacks/          # K3: Technology&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;├── project/         # K4: Organization&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;└── vendor/          # External skills&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;το-μοτίβο-της-αδρανούς-εμβέλειας&quot;&gt;Το Μοτίβο της Αδρανούς Εμβέλειας&lt;/h2&gt;
&lt;p&gt;Ένα από τα πιο ισχυρά μοτίβα μας είναι δεξιότητες «υιοθετημένες-αλλά-όχι-φορτωμένες». Τις ονομάζουμε αδρανείς εμβέλειες.&lt;/p&gt;
&lt;p&gt;Σκεφτείτε δεξιότητες επιστημονικής υπολογιστικής από το αποθετήριο k-dense-scientific. Έχουμε υιοθετήσει 120+ δεξιότητες που καλύπτουν βιοπληροφορική, χημεία, κβαντικούς υπολογιστές και κλινική πληροφορική. Όμως οι περισσότεροι πράκτορές μας δεν χρειάζονται μοριακή προσάρτηση ή ανάλυση γονιδιακής έκφρασης.&lt;/p&gt;
&lt;p&gt;Αντί να φορτώνουμε και τις 120 δεξιότητες σε κάθε πράκτορα (φουσκώνοντας τα παράθυρα πλαισίου), εμείς:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Υιοθετούμε&lt;/strong&gt; τις δεξιότητες με μια συγκεκριμένη εμβέλεια (π.χ. &lt;code&gt;bioinformatics&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Τις κρατάμε &lt;strong&gt;αδρανείς&lt;/strong&gt; — καταχωρημένες αλλά όχι φορτωμένες&lt;/li&gt;
&lt;li&gt;Τις &lt;strong&gt;ενεργοποιούμε&lt;/strong&gt; μόνο όταν ένας πράκτορας δηλώνει εκείνη την εμβέλεια&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# In scopes.yaml - dormant scope&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;bioinformatics&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  description&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Bioinformatics and genomics&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  primary_skills&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: []  &lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Empty - skills exist but aren&apos;t loaded&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# When an agent needs bioinformatics:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Agent YAML&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;scopes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;research&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;bioinformatics&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]  &lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Now loads bioinformatics skills&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό το μοτίβο μας επιτρέπει να έχουμε 466 δεξιότητες στο μητρώο ενώ οι τυπικοί πράκτορες φορτώνουν μόνο 40-60 σχετικές.&lt;/p&gt;
&lt;h2 id=&quot;τύποι-δεξιοτήτων&quot;&gt;Τύποι Δεξιοτήτων&lt;/h2&gt;
&lt;p&gt;Οι δεξιότητες έρχονται σε τρία γνωστικά μοτίβα:&lt;/p&gt;
&lt;h3 id=&quot;ροή-εργασίας&quot;&gt;Ροή Εργασίας&lt;/h3&gt;
&lt;p&gt;Διατεταγμένα διαδικαστικά βήματα: «1. Κάνε X, 2. Μετά Y, 3. Τέλος Z»&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;workflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Examples: schema-migration-workflow, mining-session-workflow&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;πειθαρχία&quot;&gt;Πειθαρχία&lt;/h3&gt;
&lt;p&gt;Όρια συμπεριφοράς: «Πάντα X», «Ποτέ Y», «Προτίμησε Z»&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;discipline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Examples: test-first-discipline, evidence-based-completion&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;λίστα-ελέγχου&quot;&gt;Λίστα Ελέγχου&lt;/h3&gt;
&lt;p&gt;Κριτήρια επαλήθευσης: «Επιβεβαίωσε X», «Επαλήθευσε Y», «Έλεγξε Z»&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;checklist&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Examples: auth-validation-checklist, secrets-audit-checklist&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;πύλες-ποιότητας&quot;&gt;Πύλες Ποιότητας&lt;/h2&gt;
&lt;p&gt;Κάθε δεξιότητα πρέπει να περάσει επικύρωση πριν κυκλοφορήσει:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;validation&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  file_exists&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;           # Skill file at declared path&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  frontmatter_valid&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Frontmatter parses correctly&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  sections_complete&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;     # Expected sections present&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  tools_registered&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;      # Declared tools exist in registry&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Οι περιγραφές πρέπει να είναι 50-400 χαρακτήρες με φράσεις ενεργοποίησης («Χρησιμοποίησε όταν…», «Όταν χρειάζεσαι…»), ώστε το Claude Code να ξέρει πότε να τις προτείνει.&lt;/p&gt;
&lt;p&gt;Επικυρώνουμε συνεχώς:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; validate&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --show-warnings&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;το-οικοσύστημα-προμηθευτών&quot;&gt;Το Οικοσύστημα Προμηθευτών&lt;/h2&gt;
&lt;p&gt;Οι 373 δεξιότητες προμηθευτών μας προέρχονται από:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Προμηθευτής&lt;/th&gt;
&lt;th&gt;Δεξιότητες&lt;/th&gt;
&lt;th&gt;Τομέας&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;AWS Agent&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;Υπηρεσίες cloud&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;Δημιουργία εγγράφων&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloudflare&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Υπολογιστική άκρης δικτύου&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supabase&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Βάση δεδομένων&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;k-dense&lt;/td&gt;
&lt;td&gt;100+&lt;/td&gt;
&lt;td&gt;Επιστημονική υπολογιστική&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;silvainfm&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Επιστήμη δεδομένων&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Java Developer Kit&lt;/td&gt;
&lt;td&gt;45+&lt;/td&gt;
&lt;td&gt;Spring/Java&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vercel&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Αυτοματισμός προγράμματος περιήγησης&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Κάθε ρίζα προμηθευτή δηλώνεται στο metadata.yaml:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;vendor_roots&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/aws-agent-skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    provider&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;aws&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/k-dense-scientific/scientific-skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    provider&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;k-dense&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;vendor/supabase-skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    provider&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;supabase&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Όταν τρέχει το &lt;code&gt;orkestra sync&lt;/code&gt;, οι δεξιότητες προμηθευτών γίνονται symlink στο &lt;code&gt;.claude/skills/vendor/&lt;/code&gt; με το namespace του προμηθευτή τους.&lt;/p&gt;
&lt;h2 id=&quot;τι-μάθαμε&quot;&gt;Τι Μάθαμε&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Η επιλεκτικότητα αποδίδει.&lt;/strong&gt; Είναι δελεαστικό να υιοθετείτε οτιδήποτε φαίνεται χρήσιμο. Όμως κάθε δεξιότητα κοστίζει tokens. Με μέσο όρο 2.834 tokens ανά δεξιότητα, το περιττό περιεχόμενο γεμίζει γρήγορα το πλαίσιο. Το ποσοστό υιοθέτησής μας 13% κρατά τους πράκτορες ευέλικτους.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Η δομή επιτρέπει ανακάλυψη.&lt;/strong&gt; Το σύστημα επιπέδων K δεν είναι απλώς οργάνωση — αφορά τη φορητότητα. Οι δεξιότητες K0 μπορούν να επαναχρησιμοποιηθούν οπουδήποτε. Οι δεξιότητες K4 είναι σκόπιμα ειδικές για το έργο. Αυτή η σαφήνεια βοηθά τόσο τους ανθρώπους όσο και τους πράκτορες να βρουν αυτό που χρειάζονται.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Οι αδρανείς εμβέλειες κλιμακώνονται.&lt;/strong&gt; Μπορείτε να υιοθετήσετε εκατοντάδες δεξιότητες χωρίς να τις φορτώσετε όλες. Οι εμβέλειες σας επιτρέπουν να χτίσετε ένα εκτενές μητρώο διατηρώντας παράλληλα διαχειρίσιμα τα παράθυρα πλαισίου κάθε πράκτορα.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Η τροποποίηση κατά την υιοθέτηση είναι απαραίτητη.&lt;/strong&gt; Οι ακατέργαστες δεξιότητες προμηθευτών σπάνια ταιριάζουν στο σύστημά σας. Η διαδικασία ενσωμάτωσης — προσθήκη μεταδεδομένων, ανάθεση επιπέδων, εμπλουτισμός ετικετών — κάνει τις εξωτερικές δεξιότητες να λειτουργούν εσωτερικά.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Η εξόρυξη είναι συνεχής.&lt;/strong&gt; Ο αριθμός 3.500 συνεχίζει να μεγαλώνει. Νέα αποθετήρια προμηθευτών εμφανίζονται. Μοτίβα κοινότητας αναδύονται. Εσωτερικές ροές εργασίας σταθεροποιούνται. Ο βρόχος ποτέ δεν σταματά.&lt;/p&gt;
&lt;h2 id=&quot;τι-ακολουθεί&quot;&gt;Τι Ακολουθεί&lt;/h2&gt;
&lt;p&gt;Δουλεύουμε σε αρκετές βελτιώσεις:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Αυτοματοποιημένος εντοπισμός κενών&lt;/strong&gt;: Ειδοποίηση όταν συνηθισμένες αστοχίες πρακτόρων θα μπορούσαν να αντιμετωπιστούν από μια μη υιοθετημένη δεξιότητα&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ροές εργασίας κατάργησης δεξιοτήτων&lt;/strong&gt;: Επίσημη διαδικασία για την απόσυρση δεξιοτήτων που έχουν αντικατασταθεί ή δεν χρησιμοποιούνται&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Εξαρτήσεις μεταξύ δεξιοτήτων&lt;/strong&gt;: Ρητή δήλωση προαπαιτούμενων δεξιοτήτων&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Αναλυτικά χρήσης&lt;/strong&gt;: Παρακολούθηση του ποιες δεξιότητες πράγματι καλούν οι πράκτορες και ποιες απλώς φορτώνουν&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ο βρόχος εξόρυξης δεξιοτήτων είναι υποδομή. Δεν είναι εντυπωσιακός. Όμως είναι αυτό που κάνει 41 πράκτορες να λειτουργούν συνεκτικά με 466 ικανότητες, παραμένοντας μέσα στα όρια πλαισίου.&lt;/p&gt;
&lt;p&gt;Αυτή είναι η ιστορία του πώς το 3.500 γίνεται 466. Όχι αγνοώντας τα 3.000 — αξιολογώντας τα συστηματικά και υιοθετώντας μόνο ό,τι λειτουργεί.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Θέλετε να δείτε το σύστημα δεξιοτήτων σε δράση; Δείτε το &lt;code&gt;uv run orkestra skills list&lt;/code&gt; για να εξερευνήσετε το τρέχον μητρώο μας.&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Skills</category></item><item><title>Προοδευτική Αποκάλυψη: Παράθυρα CLI στα Συστήματα Πρακτόρων</title><link>https://maguyva.ai/el/blog/progressive-disclosure-cli-into-agents</link><guid isPermaLink="true">https://maguyva.ai/el/blog/progressive-disclosure-cli-into-agents</guid><description>Τα συστήματα πρακτόρων είναι αδιαφανή από προεπιλογή. Η προοδευτική αποκάλυψη δίνει στους χειριστές διαβαθμισμένες όψεις CLI, από γρήγορους ελέγχους κατάστασης έως πλήρη εσωτερικά στοιχεία πρακτόρων και ίχνη αποφάσεων.</description><pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Οι αριθμοί σε αυτή την ανάρτηση αντικατοπτρίζουν το σύστημα κατά τη δημοσίευση (Ιανουάριος 2026). Δείτε τη &lt;a href=&quot;https://maguyva.ai/el/team&quot;&gt;σελίδα ομάδας&lt;/a&gt; μας για τα τρέχοντα στοιχεία.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Τα συστήματα πρακτόρων είναι αδιαφανή εκ σχεδιασμού. Λαμβάνουν αποφάσεις, καλούν εργαλεία και συντονίζουν εργασία σε δεκάδες ειδικούς. Όμως όταν κάτι πάει στραβά — ή όταν απλώς θέλετε να καταλάβετε τι συμβαίνει — πού κοιτάτε;&lt;/p&gt;
&lt;p&gt;Η απάντηση είναι η προοδευτική αποκάλυψη: μια διαστρωματωμένη διεπαφή που αποκαλύπτει ακριβώς όση πολυπλοκότητα χρειάζεστε, ακριβώς όταν τη χρειάζεστε.&lt;/p&gt;
&lt;h2 id=&quot;το-πρόβλημα-της-αδιαφάνειας&quot;&gt;Το Πρόβλημα της Αδιαφάνειας&lt;/h2&gt;
&lt;p&gt;Ένα σύγχρονο σύστημα ενορχήστρωσης πρακτόρων μπορεί να έχει:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;40+ εξειδικευμένους πράκτορες, καθέναν με διακριτές ικανότητες&lt;/li&gt;
&lt;li&gt;700+ δεξιότητες που καλύπτουν εσωτερικό αυτοματισμό και ενσωματώσεις προμηθευτών&lt;/li&gt;
&lt;li&gt;470+ αρχιτεκτονικές αποφάσεις που διαμορφώνουν τη συμπεριφορά&lt;/li&gt;
&lt;li&gt;Δεκάδες διακομιστές εργαλείων MCP που παρέχουν εξωτερικές δυνατότητες&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Αυτή η πολυπλοκότητα είναι σκόπιμη. Οι πράκτορες χρειάζονται πρόσβαση σε πλούσιο πλαίσιο — γνώση τομέα, ευφυΐα κώδικα, σχήματα βάσεων δεδομένων — για να λαμβάνουν καλές αποφάσεις. Όμως αυτός ο ίδιος πλούτος δημιουργεί ένα πρόβλημα ορατότητας.&lt;/p&gt;
&lt;p&gt;Πώς ξέρετε ποιος πράκτορας χειρίζεται τις μεταβολές σχήματος βάσεων δεδομένων; Ποιες αποφάσεις διαμόρφωσαν τη συμπεριφορά κατάταξης του συστήματος αναζήτησης; Σε ποια εργαλεία έχει πρόσβαση ο σύμβουλος αρχιτεκτονικής;&lt;/p&gt;
&lt;p&gt;Χωρίς δομημένη πρόσβαση, καταλήγετε να διαβάζετε τον πηγαίο κώδικα ή να ελπίζετε ότι η τεκμηρίωση είναι ενημερωμένη.&lt;/p&gt;
&lt;h2 id=&quot;η-προοδευτική-αποκάλυψη-ως-αρχιτεκτονική&quot;&gt;Η Προοδευτική Αποκάλυψη ως Αρχιτεκτονική&lt;/h2&gt;
&lt;p&gt;Η προοδευτική αποκάλυψη δεν είναι απλώς ένα μοτίβο διεπαφής χρήστη. Είναι μια αρχιτεκτονική αρχή: οργάνωσε την πληροφορία σε επίπεδα, το καθένα βαθύτερο από το προηγούμενο, ώστε οι χρήστες να μπορούν να σταματήσουν στο επίπεδο που απαντά στην ερώτησή τους.&lt;/p&gt;
&lt;p&gt;Για συστήματα πρακτόρων, αυτό μεταφράζεται σε εντολές CLI σε αυξανόμενα βάθη:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Επίπεδο&lt;/th&gt;
&lt;th&gt;Εντολή&lt;/th&gt;
&lt;th&gt;Ερώτημα που Απαντιέται&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;code&gt;orkestra system status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Είναι όλα υγιή;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;code&gt;orkestra agents list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ποιοι πράκτορες υπάρχουν;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;&lt;code&gt;orkestra agents info &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Τι κάνει αυτός ο πράκτορας;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;&lt;code&gt;orkestra decisions search&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Γιατί λειτουργεί έτσι;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Εργαλεία MCP του Maguyva&lt;/td&gt;
&lt;td&gt;Δείξτε μου τον κώδικα.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Κάθε επίπεδο απαντά σε ένα φυσικό επόμενο ερώτημα. Σπάνια χρειάζεται να πηδήξετε κατευθείαν στο επίπεδο 5.&lt;/p&gt;
&lt;h2 id=&quot;επίπεδο-1-υγεία-συστήματος&quot;&gt;Επίπεδο 1: Υγεία Συστήματος&lt;/h2&gt;
&lt;p&gt;Το πρώτο ερώτημα είναι πάντα: λειτουργούν όλα;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; system&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; status&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;agents&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;40&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;skills_internal&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;466&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;skills_vendor&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;240&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;skills_total&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;706&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;commands&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;17&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Μία εντολή. Τέσσερις αριθμοί. Αρκετό για να ξέρετε ότι το σύστημα είναι διαμορφωμένο και τα μητρώα είναι γεμάτα.&lt;/p&gt;
&lt;p&gt;Αν ο αριθμός πρακτόρων πέσει απρόσμενα ή αν οι δεξιότητες αποτύχουν να φορτωθούν, το βλέπετε εδώ πρώτα. Δεν χρειάζεται βουτιά σε αρχεία καταγραφής.&lt;/p&gt;
&lt;h2 id=&quot;επίπεδο-2-απογραφή-πρακτόρων&quot;&gt;Επίπεδο 2: Απογραφή Πρακτόρων&lt;/h2&gt;
&lt;p&gt;Μόλις ξέρετε ότι το σύστημα είναι υγιές, το επόμενο ερώτημα είναι: τι είναι διαθέσιμο;&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό επιστρέφει δομημένα δεδομένα — ονόματα πρακτόρων, περιγραφές, προτιμήσεις μοντέλου, κάλυψη τομέα. Η έξοδος είναι JSON από προεπιλογή, κάνοντάς την εύκολη να περάσει μέσω σωλήνωσης στο &lt;code&gt;jq&lt;/code&gt; για φιλτράρισμα:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; jq&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &apos;.agents[] | select(.model == &quot;opus&quot;) | .name&apos;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Θέλετε πράκτορες που χειρίζονται εργασία βάσης δεδομένων; Η εντολή αναζήτησης το περιορίζει:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;database&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό σαρώνει ονόματα, περιγραφές και δυνατότητες. Βρίσκετε τον σωστό ειδικό χωρίς να διαβάσετε 40 ορισμούς πρακτόρων.&lt;/p&gt;
&lt;h2 id=&quot;επίπεδο-3-βαθιά-εξέταση-πράκτορα&quot;&gt;Επίπεδο 3: Βαθιά Εξέταση Πράκτορα&lt;/h2&gt;
&lt;p&gt;Βρήκατε έναν πράκτορα που φαίνεται σχετικός; Η εντολή &lt;code&gt;info&lt;/code&gt; αποκαλύπτει τα πάντα:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; architecture-advisor&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Η έξοδος περιλαμβάνει:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Μεταδεδομένα&lt;/strong&gt;: Όνομα, κατηγορία, προτίμηση μοντέλου, περιγραφή&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Τομείς&lt;/strong&gt;: Ποιες περιοχές γνώσης καλύπτει αυτός ο πράκτορας&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ταυτότητα&lt;/strong&gt;: Χαρακτηριστικά προσωπικότητας (αρχιτέκτονας, στρατηγικός σχεδιαστής, αρχιτέκτονας γνώσης)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Οδηγοί εργαλείων&lt;/strong&gt;: Ποια τεκμηρίωση εργαλείων προστίθεται στο πλαίσιο&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Εργαλεία&lt;/strong&gt;: Η πλήρης λίστα εργαλείων MCP διαθέσιμων σε αυτόν τον πράκτορα&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ένα δείγμα του τι βλέπετε:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;jsonc&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;metadata&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;name&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;architecture-advisor&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;model&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;opus&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;description&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Strategic decision-making and architectural guidance...&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  },&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;domains&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;product&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;development/architecture&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;meta/strategy&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;tools&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;mcp_tools&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      &quot;mcp__maguyva__intelligent_search&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      &quot;mcp__maguyva__analyze_dependencies&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;      &quot;mcp__supabase__execute_sql&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FDAEB7;font-style:italic&quot;&gt;      ...&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό σας λέει ακριβώς τι μπορεί να κάνει ο πράκτορας. Δεν χρειάζεται πηγαίος κώδικας.&lt;/p&gt;
&lt;h2 id=&quot;επίπεδο-4-αρχαιολογία-αποφάσεων&quot;&gt;Επίπεδο 4: Αρχαιολογία Αποφάσεων&lt;/h2&gt;
&lt;p&gt;Οι πράκτορες συμπεριφέρονται σύμφωνα με τεκμηριωμένες αποφάσεις. Όταν χρειάζεται να καταλάβετε &lt;em&gt;γιατί&lt;/em&gt; κάτι λειτουργεί με έναν συγκεκριμένο τρόπο, το μητρώο αποφάσεων είναι η πηγή αλήθειας.&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;agent&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό επιστρέφει αντίστοιχες αρχιτεκτονικές αποφάσεις:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;results&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;DEC-SR-049&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;title&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;AI-Agent-First Defaults with Graph Intelligence&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;domain&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;search&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;status&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;active&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Κάθε απόφαση έχει πλήρη προέλευση — πότε λήφθηκε, γιατί, ποιοι συμβιβασμοί εξετάστηκαν, ποιες υποβολές την υλοποίησαν:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; DEC-SR-049&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;DEC-SR-049&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;title&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;AI-Agent-First Defaults with Graph Intelligence&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;summary&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Changes default values for search tools to AI-agent-optimal behavior...&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;rationale&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;AI agents work better with pre-ranked, importance-weighted results&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;Graph metrics already computed by pipeline - leverage them&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    &quot;Community context helps agents understand feature scope in single query&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ],&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;source_commits&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;sha&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;156a880d05eae295669ef7c194b039023f245511&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;      &quot;message&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;feat(maguyva): enable boost_by_importance...&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτή είναι αρχιτεκτονική τεκμηρίωση που παραμένει ενημερωμένη επειδή εξορύσσεται από υποβολές, όχι επειδή συντηρείται χειροκίνητα.&lt;/p&gt;
&lt;h2 id=&quot;επίπεδο-5-άμεση-ευφυΐα-κώδικα&quot;&gt;Επίπεδο 5: Άμεση Ευφυΐα Κώδικα&lt;/h2&gt;
&lt;p&gt;Όταν χρειάζεται να δείτε την πραγματική υλοποίηση — όχι μεταδεδομένα γι’ αυτήν — τα εργαλεία MCP του Maguyva παρέχουν άμεση πρόσβαση.&lt;/p&gt;
&lt;p&gt;Μέσα από μια συνεδρία πράκτορα:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mcp__maguyva__intelligent_search&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  query: &quot;agent context loading&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό δρομολογεί αυτόματα σε σημασιολογική, κειμενική και αναζήτηση AST για να βρει σχετικό κώδικα. Για συγκεκριμένα σύμβολα:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mcp__maguyva__find_symbol&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  symbol_name: &quot;load_agent_context&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Για ανάλυση εξαρτήσεων:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;mcp__maguyva__analyze_dependencies&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  target: &quot;packages/orchestration/core/agents.py&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτά δεν είναι απλώς αντικαταστάτες του grep. Αξιοποιούν τον γράφο, διαθέτουν σημασιολογικό ευρετήριο και ενσωματώνονται στην ίδια ευφυΐα κώδικα που τροφοδοτεί τους ίδιους τους πράκτορες.&lt;/p&gt;
&lt;h2 id=&quot;ενοποιημένη-αναζήτηση-σε-όλα-τα-μητρώα&quot;&gt;Ενοποιημένη Αναζήτηση σε Όλα τα Μητρώα&lt;/h2&gt;
&lt;p&gt;Μερικές φορές δεν ξέρετε ποιο μητρώο κρατά την απάντηση. Η ενοποιημένη αναζήτηση καλύπτει τα πάντα:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;database&quot;&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --summary&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;json&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;query&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;database&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;total&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;254&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;  &quot;counts&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;agents&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;40&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;skills&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;59&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;decisions&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;476&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;truths&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    &quot;packages&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;254 αντιστοιχίσεις σε πέντε μητρώα. Η περίληψη σας λέει πού να εμβαθύνετε. Αφαιρέστε το &lt;code&gt;--summary&lt;/code&gt; για λεπτομερή αποτελέσματα, ή προσθέστε το &lt;code&gt;--limit 5&lt;/code&gt; για να κρατήσετε την έξοδο διαχειρίσιμη.&lt;/p&gt;
&lt;h2 id=&quot;γιατί-έχει-σημασία&quot;&gt;Γιατί Έχει Σημασία&lt;/h2&gt;
&lt;p&gt;Η προοδευτική αποκάλυψη δεν αφορά μόνο την ευκολία. Αλλάζει το πώς αλληλεπιδράτε με πολύπλοκα συστήματα.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Η αποσφαλμάτωση γίνεται διαχειρίσιμη.&lt;/strong&gt; Όταν ένας πράκτορας λαμβάνει μια απρόσμενη απόφαση, δεν κάνετε grep σε αρχεία καταγραφής. Ελέγχετε σε ποια εργαλεία έχει πρόσβαση (&lt;code&gt;agents info&lt;/code&gt;), ποιες αποφάσεις διαμορφώνουν τη συμπεριφορά του (&lt;code&gt;decisions search&lt;/code&gt;), και ανιχνεύετε την υλοποίηση αν χρειάζεται (&lt;code&gt;intelligent_search&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Η ένταξη νέων μελών επιταχύνεται.&lt;/strong&gt; Τα νέα μέλη της ομάδας δεν χρειάζεται να διαβάσουν ολόκληρη τη βάση κώδικα. Ξεκινούν με το &lt;code&gt;system status&lt;/code&gt;, εξερευνούν με το &lt;code&gt;agents list&lt;/code&gt;, και εμβαθύνουν μόνο όταν συναντήσουν κάτι που δεν καταλαβαίνουν.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Η τεκμηρίωση παραμένει ενημερωμένη.&lt;/strong&gt; Επειδή το CLI διαβάζει από τα ίδια μητρώα που διαμορφώνουν τους πράκτορες, η έξοδος είναι πάντα ακριβής. Δεν υπάρχει απόκλιση ανάμεσα σε αυτό που λένε τα έγγραφα και σε αυτό που κάνει το σύστημα.&lt;/p&gt;
&lt;h2 id=&quot;το-cli-ως-διεπαφή&quot;&gt;Το CLI ως Διεπαφή&lt;/h2&gt;
&lt;p&gt;Θα μπορούσαμε να είχαμε χτίσει έναν πίνακα ελέγχου web. Θα μπορούσαμε να είχαμε γράψει εκτενή τεκμηρίωση. Αντ’ αυτού, χτίσαμε ένα CLI που διαβάζει από την πηγή αλήθειας.&lt;/p&gt;
&lt;p&gt;Το CLI έχει πλεονεκτήματα:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Συνθέσιμο&lt;/strong&gt;: Περάστε την έξοδο μέσω σωλήνωσης στο &lt;code&gt;jq&lt;/code&gt;, ενσωματώστε με σενάρια&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Προγραμματιζόμενο&lt;/strong&gt;: Αυτοματοποιήστε ελέγχους, δημιουργήστε αναφορές&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Γρήγορο&lt;/strong&gt;: Χωρίς φορτώσεις σελίδων, χωρίς ροές ταυτοποίησης&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ακριβές&lt;/strong&gt;: Διαβάζει την πραγματική διαμόρφωση, όχι μια αποθηκευμένη αναπαράσταση σε κρυφή μνήμη&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Για συστήματα όπου η ορθότητα έχει μεγαλύτερη σημασία από την αισθητική, το CLI κερδίζει.&lt;/p&gt;
&lt;h2 id=&quot;χτίζοντας-τη-δική-σας-προοδευτική-αποκάλυψη&quot;&gt;Χτίζοντας τη Δική σας Προοδευτική Αποκάλυψη&lt;/h2&gt;
&lt;p&gt;Αν χτίζετε συστήματα πρακτόρων, σκεφτείτε πώς θα τα επιθεωρούν οι χρήστες:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Ξεκινήστε με ελέγχους υγείας.&lt;/strong&gt; Μία εντολή που σας λέει αν τα πράγματα λειτουργούν.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Παρέχετε όψεις απογραφής.&lt;/strong&gt; Καταγράψτε τι υπάρχει πριν εξηγήσετε τι κάνει.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ενεργοποιήστε στοχευμένα ερωτήματα.&lt;/strong&gt; Η αναζήτηση κερδίζει την περιήγηση σε κλίμακα.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Εκθέστε την προέλευση.&lt;/strong&gt; Αφήστε τους χρήστες να ανιχνεύουν αποφάσεις μέχρι τις ρίζες τους.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Συνδεθείτε με την ευφυΐα κώδικα.&lt;/strong&gt; Τελικά, οι χρήστες χρειάζεται να δουν την υλοποίηση.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Κάθε επίπεδο απαντά σε ένα επόμενο ερώτημα. Χτίστε τα με σειρά συχνότητας — οι περισσότεροι χρήστες σταματούν στο επίπεδο 2 ή 3. Μόνο οι προχωρημένοι χρήστες φτάνουν στο επίπεδο 5.&lt;/p&gt;
&lt;p&gt;Ο στόχος δεν είναι να εκθέσετε τα πάντα. Είναι να εκθέσετε ακριβώς ό,τι χρειάζεται, ακριβώς όταν χρειάζεται. Αυτό είναι η προοδευτική αποκάλυψη εφαρμοσμένη στην αρχιτεκτονική πρακτόρων.&lt;/p&gt;
</content:encoded><category>Architecture</category><category>CLI</category><category>Tooling</category></item><item><title>Ground Truths: Αγκυρώνοντας τους Πράκτορες AI στην Πραγματικότητα</title><link>https://maguyva.ai/el/blog/ground-truths-anchoring-ai-to-reality</link><guid isPermaLink="true">https://maguyva.ai/el/blog/ground-truths-anchoring-ai-to-reality</guid><description>Οι πράκτορες AI επινοούν ανακριβείς πληροφορίες με αυτοπεποίθηση. Τα Ground Truths είναι γεγονότα με διαχείριση εκδόσεων και σαφές πεδίο ισχύος που αγκυρώνουν τη συμπεριφορά των πρακτόρων στην πραγματικότητα. Δείτε πώς τα χτίσαμε και πώς τα επιβάλλουμε.</description><pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Οι αριθμοί σε αυτή την ανάρτηση αντικατοπτρίζουν το σύστημα κατά τη δημοσίευση (Ιανουάριος 2026). Δείτε τη &lt;a href=&quot;https://maguyva.ai/el/team&quot;&gt;σελίδα ομάδας&lt;/a&gt; μας για τα τρέχοντα στοιχεία.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Οι πράκτορες AI είναι εντυπωσιακά ικανοί. Μπορούν να συλλογίζονται, να συνθέτουν και να παράγουν. Όμως έχουν μια θεμελιώδη αδυναμία: επινοούν πράγματα. Όχι κακόβουλα, αλλά με αυτοπεποίθηση. Ένας πράκτορας μπορεί να εφεύρει παραμέτρους API που δεν υπάρχουν, να αναφερθεί σε διαμορφώσεις που ποτέ δεν ορίστηκαν, ή να εφαρμόσει μοτίβα από τα δεδομένα εκπαίδευσής του που έρχονται σε αντίθεση με την πραγματική σας αρχιτεκτονική.&lt;/p&gt;
&lt;p&gt;Ο τυπικός τρόπος αντιμετώπισης είναι «δώσε στον πράκτορα περισσότερο πλαίσιο». Όμως το πλαίσιο μπορεί να είναι αντιφατικό. Η τεκμηρίωση αποκλίνει από την υλοποίηση. Τα σχόλια λένε ψέματα. Ακόμη και ο κώδικας μπορεί να παραπλανήσει όταν διαβάζεται χωρίς κατανόηση της πρόθεσης.&lt;/p&gt;
&lt;p&gt;Χρειαζόμασταν κάτι πιο ρητό. Κάτι που δεν θα μπορούσε να αγνοηθεί ή να παρερμηνευτεί. Κάτι που θα αγκύρωνε τους πράκτορες σε επαληθεύσιμη πραγματικότητα.&lt;/p&gt;
&lt;p&gt;Τα ονομάζουμε Ground Truths.&lt;/p&gt;
&lt;h2 id=&quot;τι-είναι-ένα-ground-truth&quot;&gt;Τι Είναι ένα Ground Truth;&lt;/h2&gt;
&lt;p&gt;Ένα ground truth είναι μια ρητή δήλωση γεγονότος με διαχείριση εκδόσεων που οι πράκτορες πρέπει να σέβονται. Δεν είναι τεκμηρίωση. Δεν είναι σχόλιο. Είναι μια οντότητα πρώτης τάξης στο σύστημα με:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ένα μοναδικό αναγνωριστικό&lt;/strong&gt; (όπως το &lt;code&gt;GT-MAG-015&lt;/code&gt; ή το &lt;code&gt;GT-MAG-036&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Μια κατάσταση κύκλου ζωής&lt;/strong&gt; (τρέχουσα, υπό εξέταση, ή απαρχαιωμένη)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Μια εμβέλεια&lt;/strong&gt; (για ολόκληρη την πλατφόρμα, για συγκεκριμένο πακέτο ή για συγκεκριμένο τομέα)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Αποδεικτικά στοιχεία&lt;/strong&gt; (διαδρομές αρχείων, URLs, ή αναφορές που αποδεικνύουν τη δήλωση)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Καθοδήγηση πράκτορα&lt;/strong&gt; (ρητές οδηγίες τι να κάνει/τι να αποφύγει)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ορίστε ένα παράδειγμα από την πλατφόρμα ευφυΐας κώδικα Maguyva μας:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-015&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;current&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  scope&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;package&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Fuzzy symbol matching is opt-in via `find_similar=true`.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Default behavior returns empty results for non-existent symbols;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    `exact_match=true` enforces strict matching and disables all fuzzy fallbacks.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Deterministic defaults prevent agents from receiving misleading results.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Typos should fail explicitly rather than silently returning unrelated symbols.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  evidence&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;packages/maguyva/server/src/maguyva/services/code_analysis_service.py&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;packages/maguyva/server/docs/quick_reference/parameters.md&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  last_verified&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;2026-01-25&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  tags&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;product&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;ai_first&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;principle&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό δεν είναι πεζός λόγος. Είναι συμβόλαιο. Όταν ένας πράκτορας συναντά αυτό το ground truth, ξέρει:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Η προεπιλογή είναι ντετερμινιστική (κενά αποτελέσματα, όχι εικασίες από προσεγγιστική αντιστοίχιση)&lt;/li&gt;
&lt;li&gt;Υπάρχουν συγκεκριμένες παράμετροι (&lt;code&gt;find_similar&lt;/code&gt;, &lt;code&gt;exact_match&lt;/code&gt;) με ορισμένες συμπεριφορές&lt;/li&gt;
&lt;li&gt;Υπάρχουν αποδεικτικά στοιχεία σε συγκεκριμένα αρχεία που μπορούν να επαληθευτούν&lt;/li&gt;
&lt;li&gt;Η δήλωση επαληθεύτηκε σε συγκεκριμένη ημερομηνία&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;η-ανατομία-ενός-μητρώου-ground-truth&quot;&gt;Η Ανατομία ενός Μητρώου Ground Truth&lt;/h2&gt;
&lt;p&gt;Τα ground truths ζουν σε μητρώα YAML κάτω από το &lt;code&gt;ai_assets/reference/ground_truths.yaml&lt;/code&gt;. Κάθε πακέτο ή τομέας μπορεί να έχει το δικό του μητρώο. Η δομή είναι:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;metadata&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Maguyva Ground Truths&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  summary&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Foundational constraints and principles that guide Maguyva.&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  last_updated&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;2026-01-26&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  owner&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;maguyva&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  render&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    include_statuses&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;current&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;tentative&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    show_deprecated&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    groups&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Product Principles&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;        tags&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;product&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;principle&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;brand&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Architecture &amp;amp; Boundaries&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;        tags&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;architecture&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;boundaries&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;cqrs&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;statements&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-001&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;current&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    scope&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;package&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Maguyva is read-only with respect to user repositories...&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    ...&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Το μητρώο περιλαμβάνει μεταδεδομένα για την ίδια τη συλλογή, διαμόρφωση απόδοσης για τη δημιουργία τεκμηρίωσης, και τις ίδιες τις δηλώσεις. Κάθε δήλωση ακολουθεί ένα αυστηρό σχήμα επικυρωμένο από μοντέλα Pydantic:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; GroundTruthStatement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;BaseModel&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;    id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    status: GTStatus  &lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# current, tentative, deprecated&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    source: GTSource &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;  # claude-code, orkestra, discipline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    scope: GTScope  &lt;/span&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# platform, package, domain&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    statement: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    rationale: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    evidence: list[&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    last_verified: &lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; |&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    tags: list[&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    agent_guidance: AgentGuidance &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; None&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;πώς-οι-πράκτορες-έχουν-πρόσβαση-στα-ground-truths&quot;&gt;Πώς οι Πράκτορες Έχουν Πρόσβαση στα Ground Truths&lt;/h2&gt;
&lt;p&gt;Τα ground truths εκτίθενται μέσα από πολλαπλά κανάλια:&lt;/p&gt;
&lt;h3 id=&quot;1-αποδοσμένη-τεκμηρίωση&quot;&gt;1. Αποδοσμένη Τεκμηρίωση&lt;/h3&gt;
&lt;p&gt;Η εντολή &lt;code&gt;orkestra sync&lt;/code&gt; μετατρέπει μητρώα YAML σε αναγνώσιμο markdown:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό δημιουργεί αρχεία &lt;code&gt;GROUND_TRUTHS.md&lt;/code&gt; που περιλαμβάνονται στο πλαίσιο του πράκτορα. Η αποδοσμένη έξοδος ομαδοποιεί τις δηλώσεις κατά κατάσταση και κατηγορία:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;markdown&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF;font-weight:bold&quot;&gt;## Current&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF;font-weight:bold&quot;&gt;### Product Principles&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Maguyva is read-only with respect to user repositories... (GT-MAG-001)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Design tool responses for AI agents first... (GT-MAG-009)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#79B8FF;font-weight:bold&quot;&gt;### Architecture &amp;amp; Boundaries&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; Pipeline and Maguyva boundaries are intentional... (GT-MAG-006)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;2-αναζήτηση-cli&quot;&gt;2. Αναζήτηση CLI&lt;/h3&gt;
&lt;p&gt;Πράκτορες με πρόσβαση shell μπορούν να αναζητήσουν ground truths προγραμματιστικά:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; truths&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;embedding&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; truths&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --tag&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; security&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;uv&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; run&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; registry&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; truths&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --status&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; current&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Η συνάρτηση αναζήτησης βαθμολογεί αντιστοιχίσεις σε πολλαπλά πεδία με σταθμισμένη σχετικότητα:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;python&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#B392F0&quot;&gt; truth_fields&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;(gt: GroundTruthStatement) -&amp;gt; list[FieldSpec]:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;6&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[gt.id]),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;statement&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[gt.statement]),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;rationale&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;[gt.rationale] &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; gt.rationale &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; []),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;tags&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;gt.tags &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; []),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;        FieldSpec(&lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;evidence&quot;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;weight&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#FFAB70&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;gt.evidence &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; []),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    ]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;3-σύνθεση-πλαισίου&quot;&gt;3. Σύνθεση Πλαισίου&lt;/h3&gt;
&lt;p&gt;Όταν οι πράκτορες αποδίδονται από ορισμούς YAML, το πλαίσιό τους μπορεί να αναφέρεται σε μητρώα ground truth:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;context_composition&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  domain_knowledge&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;packages/maguyva/ai_assets/reference/ground_truths.yaml&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό εξασφαλίζει ότι τα σχετικά ground truths φορτώνονται πριν ο πράκτορας ξεκινήσει την εργασία.&lt;/p&gt;
&lt;h2 id=&quot;κατηγορίες-ground-truths&quot;&gt;Κατηγορίες Ground Truths&lt;/h2&gt;
&lt;p&gt;Κοιτάζοντας σε όλα τα μητρώα μας, τα ground truths συγκεντρώνονται σε αρκετά μοτίβα:&lt;/p&gt;
&lt;h3 id=&quot;αρχές-προϊόντος&quot;&gt;Αρχές Προϊόντος&lt;/h3&gt;
&lt;p&gt;Περιορισμοί για το τι είναι και τι δεν είναι το προϊόν:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;«Το Maguyva είναι μόνο-για-ανάγνωση ως προς τα αποθετήρια χρηστών· το μόνο μη-ανακατασκευάσιμο στοιχείο είναι η πληρωμένη κρυφή μνήμη ενσωματωμάτων.» (GT-MAG-001)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;όρια-αρχιτεκτονικής&quot;&gt;Όρια Αρχιτεκτονικής&lt;/h3&gt;
&lt;p&gt;Πού ζουν οι ευθύνες και γιατί:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;«Τα όρια ανάμεσα στο pipeline και το Maguyva είναι σκόπιμα: το pipeline είναι επαναχρησιμοποιήσιμο, το Maguyva κρατά τη λογική ειδική για κώδικα, και το CQRS διαχωρίζει τις εγγραφές σταδίου από τις αναγνώσεις διακομιστή.» (GT-MAG-006)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;κανόνες-κατά-της-παραίσθησης&quot;&gt;Κανόνες Κατά της Παραίσθησης&lt;/h3&gt;
&lt;p&gt;Ρητές εντολές που κρατούν τα συμβόλαια εργαλείων ντετερμινιστικά αντί για συναγόμενα:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;«Η προσεγγιστική αντιστοίχιση συμβόλων είναι προαιρετική μέσω του &lt;code&gt;find_similar=true&lt;/code&gt;. Η προεπιλεγμένη συμπεριφορά επιστρέφει κενά αποτελέσματα για ανύπαρκτα σύμβολα· το &lt;code&gt;exact_match=true&lt;/code&gt; επιβάλλει αυστηρή αντιστοίχιση και απενεργοποιεί όλες τις εναλλακτικές προσεγγιστικής αντιστοίχισης.» (GT-MAG-015)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;πύλες-ποιότητας&quot;&gt;Πύλες Ποιότητας&lt;/h3&gt;
&lt;p&gt;Πρότυπα που πρέπει να διατηρούνται:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;«Αλλαγές στην κοινόχρηστη υποδομή (post_filters.py, εξαγωγείς σχέσεων, κοινόχρηστοι χειριστές) ΠΡΕΠΕΙ να επικυρώνονται έναντι ΟΛΩΝ των υποστηριζόμενων γλωσσών μέσω πλήρους δημιουργίας μανιφέστου πριν από το commit. Μια επικύρωση μίας μόνο γλώσσας δεν επαρκεί για κοινόχρηστο κώδικα.» (GT-MAG-036)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id=&quot;μοτίβα-κώδικα&quot;&gt;Μοτίβα Κώδικα&lt;/h3&gt;
&lt;p&gt;Απαιτήσεις υλοποίησης:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;«Χρησιμοποιήστε το &lt;code&gt;asyncio.to_thread()&lt;/code&gt; για εργασία με έντονη χρήση CPU σε ασύγχρονα πλαίσια· το απαρχαιωμένο μοτίβο &lt;code&gt;loop.run_in_executor()&lt;/code&gt; δεν πρέπει να χρησιμοποιείται σε νέο κώδικα.» (GT-MAG-018)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;ο-κύκλος-ζωής-ενός-ground-truth&quot;&gt;Ο Κύκλος Ζωής ενός Ground Truth&lt;/h2&gt;
&lt;p&gt;Τα ground truths δεν είναι στατικά. Εξελίσσονται μέσα από έναν ορισμένο κύκλο ζωής:&lt;/p&gt;
&lt;h3 id=&quot;υπό-εξέταση&quot;&gt;Υπό Εξέταση&lt;/h3&gt;
&lt;p&gt;Μια προτεινόμενη αλήθεια υπό αξιολόγηση. Η δήλωση καταγράφεται αλλά μπορεί να αλλάξει:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-044&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;tentative&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    get_file with include_metadata=false may still return metadata in the&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    response because middleware may re-inject it for AI agent disambiguation.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;τρέχουσα&quot;&gt;Τρέχουσα&lt;/h3&gt;
&lt;p&gt;Μια επαληθευμένη αλήθεια που οι πράκτορες πρέπει να σέβονται. Τα αποδεικτικά στοιχεία έχουν επικυρωθεί:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-017&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;current&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  last_verified&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;2026-01-26&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  evidence&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;    - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;packages/maguyva/server/src/maguyva/services/supabase.py&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;απαρχαιωμένη&quot;&gt;Απαρχαιωμένη&lt;/h3&gt;
&lt;p&gt;Μια αλήθεια που δεν ισχύει πλέον. Διατηρείται για ιστορική αναφορά με έναν δείκτη προς αυτό που την αντικατέστησε:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-099&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  status&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;deprecated&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  superseded_by&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-015&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  notes&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Replaced when we moved to explicit matching behavior&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&quot;γιατί-όχι-απλώς-τεκμηρίωση&quot;&gt;Γιατί Όχι Απλώς Τεκμηρίωση;&lt;/h2&gt;
&lt;p&gt;Η τεκμηρίωση εξυπηρετεί διαφορετικό σκοπό. Εξηγεί. Διδάσκει. Μπορεί να είναι ασαφής, μπορεί να χρησιμοποιεί προσδιοριστικά όπως «γενικά» ή «συνήθως».&lt;/p&gt;
&lt;p&gt;Τα ground truths δεν μπορούν να είναι ασαφή. Είναι διαβεβαιώσεις. Είτε ισχύουν είτε όχι.&lt;/p&gt;
&lt;p&gt;Σκεφτείτε τη διαφορά:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Τεκμηρίωση:&lt;/strong&gt; «Το API γενικά επιστρέφει κενά αποτελέσματα όταν δεν βρεθεί ένα σύμβολο, αν και η προσεγγιστική αντιστοίχιση μπορεί να είναι ενεργοποιημένη σε ορισμένες διαμορφώσεις.»&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ground Truth:&lt;/strong&gt; «Η προεπιλεγμένη συμπεριφορά επιστρέφει κενά αποτελέσματα για ανύπαρκτα σύμβολα· το &lt;code&gt;exact_match=true&lt;/code&gt; επιβάλλει αυστηρή αντιστοίχιση και απενεργοποιεί όλες τις εναλλακτικές προσεγγιστικής αντιστοίχισης.»&lt;/p&gt;
&lt;p&gt;Το πρώτο είναι χρήσιμο για ανθρώπους που μαθαίνουν το σύστημα. Το δεύτερο είναι εφαρμόσιμο για πράκτορες που λαμβάνουν αποφάσεις.&lt;/p&gt;
&lt;h2 id=&quot;καθοδήγηση-πράκτορα-κάντε-και-αποφύγετε&quot;&gt;Καθοδήγηση Πράκτορα: Κάντε και Αποφύγετε&lt;/h2&gt;
&lt;p&gt;Μερικά ground truths περιλαμβάνουν ρητή καθοδήγηση πράκτορα:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-022&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Accuracy fixes must happen at extraction time via production code,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    never via validator filters.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  agent_guidance&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    do&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Fix extraction bugs in YAML config, handlers, or tree-sitter queries&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Add test cases at the layer where the fix lives&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;    avoid&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Adding validator filters to mask production bugs&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;      - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&quot;Creating test-only workarounds for extraction issues&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό αφαιρεί την ασάφεια. Ένας πράκτορας που το διαβάζει ξέρει όχι μόνο τι είναι αληθές, αλλά και ποιες ενέργειες συνεπάγεται αυτή η αλήθεια.&lt;/p&gt;
&lt;h2 id=&quot;επαλήθευση-και-συντήρηση&quot;&gt;Επαλήθευση και Συντήρηση&lt;/h2&gt;
&lt;p&gt;Τα ground truths χρειάζονται συντήρηση. Παρακολουθούμε:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;last_verified&lt;/strong&gt;: Πότε κάποιος επιβεβαίωσε ότι η δήλωση εξακολουθεί να ισχύει&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;evidence&lt;/strong&gt;: Αρχεία που αποδεικνύουν τη δήλωση (μπορούν να ελεγχθούν για ύπαρξη)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;source&lt;/strong&gt;: Από πού προήλθε η αλήθεια (επιθεώρηση CLI, επισκόπηση αρχιτεκτονικής, μάθηση μετά από περιστατικό)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ένα ground truth με παλιές ημερομηνίες επαλήθευσης ή σπασμένους συνδέσμους αποδεικτικών στοιχείων είναι ένα σήμα για διερεύνηση. Είτε η αλήθεια εξακολουθεί να ισχύει και χρειάζεται επανεπαλήθευση, είτε η πραγματικότητα άλλαξε και η αλήθεια χρειάζεται ενημέρωση.&lt;/p&gt;
&lt;h2 id=&quot;πραγματικά-παραδείγματα-από-την-παραγωγή&quot;&gt;Πραγματικά Παραδείγματα από την Παραγωγή&lt;/h2&gt;
&lt;h3 id=&quot;όριο-ασφάλειας&quot;&gt;Όριο Ασφάλειας&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-014&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Maguyva queries are search patterns, not executable code.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    SQL injection prevention is handled by PostgREST parameterization;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    application-layer SQL keyword blocking must never be added.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Blocking SQL keywords breaks legitimate code search. Users search FOR&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    code containing patterns like &apos;DROP TABLE&apos;, they don&apos;t execute them.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό το ground truth αποτρέπει μια κατηγορία παραπλανημένων «βελτιώσεων ασφάλειας» που θα έσπαγαν το προϊόν.&lt;/p&gt;
&lt;h3 id=&quot;ακρίβεια-κατά-τη-στιγμή-της-εξαγωγής&quot;&gt;Ακρίβεια Κατά τη Στιγμή της Εξαγωγής&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-022&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Accuracy fixes must happen at extraction time via production code&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    (YAML config, handlers, queries), never via validator filters.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Validator filters only run during tests. They can hide extractor bugs&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    while production responses remain wrong.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό προήλθε από επώδυνη εμπειρία. Οι πράκτορες μπαλώνανε αποτυχημένα πακέτα γλωσσών προσθέτοντας φίλτρα που λειτουργούν μόνο στον επικυρωτή και έκαναν τα αποτελέσματα των δοκιμών να φαίνονται καλύτερα, ενώ ο ζωντανός εξαγωγέας Maguyva εξακολουθούσε να παράγει τις λάθος ακμές. Ο κανόνας αναγκάζει τις διορθώσεις πίσω στο πραγματικό μονοπάτι: διαμόρφωση YAML, ερωτήματα, ή χειριστές.&lt;/p&gt;
&lt;h3 id=&quot;πολυεπίπεδο-φιλτράρισμα&quot;&gt;Πολυεπίπεδο Φιλτράρισμα&lt;/h3&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;- &lt;/span&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;GT-MAG-023&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  statement&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Language engine uses three-tier filtering: external_method_patterns&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    (builtins/stdlib), allowlists (legitimate idioms), and expected_call_targets&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    (validation-time deduplication). Each tier serves a distinct purpose.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;  rationale&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;|&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    Conflating filter purposes leads to either over-filtering (missing real&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;    relationships) or under-filtering (noise).&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτό εμποδίζει τους πράκτορες από το να προσθέτουν φίλτρα στο λάθος σημείο, ένα συνηθισμένο λάθος που προκάλεσε οπισθοδρομήσεις ακρίβειας.&lt;/p&gt;
&lt;h2 id=&quot;ενσωμάτωση-με-το-σύστημα-ενορχήστρωσης&quot;&gt;Ενσωμάτωση με το Σύστημα Ενορχήστρωσης&lt;/h2&gt;
&lt;p&gt;Τα ground truths είναι ένα επίπεδο ενός ευρύτερου συστήματος πλαισίου:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Αρχιτεκτονικές Αποφάσεις (ADRs)&lt;/strong&gt; - Καταγράφουν γιατί επιλέξαμε την προσέγγιση Α αντί της Β&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ground Truths&lt;/strong&gt; - Δηλώνουν τι είναι οριστικά αληθές αυτή τη στιγμή&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Μοτίβα Τομέα&lt;/strong&gt; - Περιγράφουν πώς να κάνετε τα πράγματα σωστά&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Αντι-Μοτίβα&lt;/strong&gt; - Περιγράφουν τι να αποφύγετε και γιατί&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ένας πράκτορας που δουλεύει στο σύστημα έχει πρόσβαση και στα τέσσερα. Τα ground truths παρέχουν την πραγματολογική άγκυρα, ενώ οι αποφάσεις εξηγούν την ιστορία, τα μοτίβα καθοδηγούν την υλοποίηση, και τα αντι-μοτίβα προειδοποιούν για παγίδες.&lt;/p&gt;
&lt;h2 id=&quot;μέτρηση-επίδρασης&quot;&gt;Μέτρηση Επίδρασης&lt;/h2&gt;
&lt;p&gt;Από τότε που εισαγάγαμε τα ground truths, έχουμε παρατηρήσει:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Λιγότερους κύκλους «διόρθωσε τη λανθασμένη διόρθωση»&lt;/li&gt;
&lt;li&gt;Πιο σίγουρη λήψη αποφάσεων από πράκτορες όταν τα γεγονότα είναι σαφή&lt;/li&gt;
&lt;li&gt;Καλύτερες επισκοπήσεις PR επειδή οι προσδοκίες είναι ρητές&lt;/li&gt;
&lt;li&gt;Μειωμένο χρόνο ένταξης για νέους πράκτορες (και ανθρώπους)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Η επένδυση στη συντήρηση των ground truths αποδίδει σε μειωμένη αποσφαλμάτωση και σαφέστερα όρια συστήματος.&lt;/p&gt;
&lt;h2 id=&quot;ξεκινώντας&quot;&gt;Ξεκινώντας&lt;/h2&gt;
&lt;p&gt;Για να προσθέσετε ένα ground truth στο σύστημά σας:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Δημιουργήστε ένα &lt;code&gt;ground_truths.yaml&lt;/code&gt; στον κατάλογο &lt;code&gt;ai_assets/reference/&lt;/code&gt; του πακέτου σας&lt;/li&gt;
&lt;li&gt;Ορίστε μεταδεδομένα και διαμόρφωση απόδοσης&lt;/li&gt;
&lt;li&gt;Προσθέστε δηλώσεις ακολουθώντας το σχήμα&lt;/li&gt;
&lt;li&gt;Τρέξτε το &lt;code&gt;uv run orkestra sync&lt;/code&gt; για να δημιουργήσετε τεκμηρίωση&lt;/li&gt;
&lt;li&gt;Συμπεριλάβετε το μητρώο στη σύνθεση πλαισίου του πράκτορα&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ξεκινήστε με τα γεγονότα που προκαλούν τη μεγαλύτερη σύγχυση ή τους περιορισμούς που παραβιάζονται πιο συχνά. Αυτά είναι τα ground truths υψηλότερης αξίας σας.&lt;/p&gt;
&lt;h2 id=&quot;συμπέρασμα&quot;&gt;Συμπέρασμα&lt;/h2&gt;
&lt;p&gt;Οι πράκτορες AI θα επινοούν ανακριβείς πληροφορίες. Αυτή είναι η φύση τους. Όμως μπορούμε να δημιουργήσουμε περιβάλλοντα όπου η παραίσθηση περιορίζεται, όπου ορισμένα γεγονότα δεν είναι διαπραγματεύσιμα, όπου οι πράκτορες μπορούν να ελέγχουν τις υποθέσεις τους έναντι επαληθευμένης πραγματικότητας.&lt;/p&gt;
&lt;p&gt;Τα ground truths δεν είναι μια πλήρης λύση. Χρειάζονται συντήρηση. Μπορούν να παλιώσουν. Προσθέτουν επιβάρυνση στη διαδικασία ανάπτυξης.&lt;/p&gt;
&lt;p&gt;Όμως προσφέρουν κάτι πολύτιμο: ένα κοινό λεξιλόγιο γεγονότων που τόσο άνθρωποι όσο και πράκτορες μπορούν να εμπιστευτούν. Σε έναν κόσμο όπου οι πράκτορες συμμετέχουν όλο και περισσότερο στην ανάπτυξη λογισμικού, αυτό το κοινό θεμέλιο γίνεται απαραίτητο.&lt;/p&gt;
&lt;p&gt;Η εναλλακτική είναι ατέλειωτοι κύκλοι πρακτόρων που κάνουν λάθη με αυτοπεποίθηση και ανθρώπων που τα διορθώνουν. Τα ground truths σπάνε αυτόν τον κύκλο κάνοντας τις διορθώσεις ρητές και διαρκείς.&lt;/p&gt;
&lt;p&gt;Οι πράκτορές σας αξίζουν να ξέρουν τι είναι αληθές. Πείτε τους το.&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Grounding</category></item><item><title>Orkestra: Ενορχηστρώνοντας Πράκτορες AI σε Κλίμακα</title><link>https://maguyva.ai/el/blog/orkestra-agent-orchestration</link><guid isPermaLink="true">https://maguyva.ai/el/blog/orkestra-agent-orchestration</guid><description>Ένας ενορχηστρωτής δρομολογεί εργασία σε εξειδικευμένους πράκτορες AI, καθέναν με διαφορετικές δεξιότητες και μνήμη. Πώς το Orkestra συντονίζει 46 πράκτορες και 466 δεξιότητες σε παραγωγή.</description><pubDate>Tue, 06 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Οι αριθμοί σε αυτή την ανάρτηση αντικατοπτρίζουν το σύστημα κατά τη δημοσίευση (Ιανουάριος 2026). Δείτε τη &lt;a href=&quot;https://maguyva.ai/el/team&quot;&gt;σελίδα ομάδας&lt;/a&gt; μας για τα τρέχοντα στοιχεία.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Όταν ξεκινήσαμε να χτίζουμε με το Claude Code, πέσαμε πάνω σε ένα πρόβλημα που κάθε ομάδα που χρησιμοποιεί βοηθούς κώδικα AI αντιμετωπίζει τελικά: ένας μεμονωμένος πράκτορας δεν μπορεί να κάνει τα πάντα καλά.&lt;/p&gt;
&lt;p&gt;Μπορείτε να προτρέψετε έναν πράκτορα να είναι ειδικός βάσεων δεδομένων. Ή ελεγκτής ασφάλειας. Ή μηχανικός της πλευράς χρήστη. Όμως τη στιγμή που του ζητάτε να είναι και τα τρία ταυτόχρονα, η ποιότητα υποφέρει. Το πλαίσιο αραιώνει. Οι οδηγίες συγκρούονται. Ο πράκτορας γίνεται ένας γενικολόγος που είναι μέτριος σε όλα.&lt;/p&gt;
&lt;p&gt;Έτσι χτίσαμε το Orkestra.&lt;/p&gt;
&lt;h2 id=&quot;τι-είναι-το-orkestra&quot;&gt;Τι Είναι το Orkestra;&lt;/h2&gt;
&lt;p&gt;Το Orkestra είναι ένα σύστημα ενορχήστρωσης πρακτόρων για το Claude Code και παρόμοια εργαλεία κώδικα AI. Συντονίζει πολλαπλούς εξειδικευμένους πράκτορες, καθέναν με διαφορετική εξειδίκευση, κάτω από έναν μοναδικό ενορχηστρωτή που δρομολογεί εργασία στον σωστό ειδικό.&lt;/p&gt;
&lt;p&gt;Σκεφτείτε το ως ένα γραφείο στελέχωσης για πράκτορες AI. Ο ενορχηστρωτής λαμβάνει μια εργασία, εντοπίζει ποιος ειδικός πρέπει να τη χειριστεί, και την αναθέτει με το σωστό πλαίσιο. Όταν η εργασία ολοκληρωθεί, τα αποτελέσματα ρέουν πίσω στον ενορχηστρωτή για σύνθεση.&lt;/p&gt;
&lt;p&gt;Οι αριθμοί λένε την ιστορία:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Στοιχείο&lt;/th&gt;
&lt;th&gt;Αριθμός&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Εξειδικευμένοι πράκτορες&lt;/td&gt;
&lt;td&gt;46&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Επαναχρησιμοποιήσιμες δεξιότητες&lt;/td&gt;
&lt;td&gt;466&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Αρχέτυπα ταυτότητας&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Νοοτροπίες&lt;/td&gt;
&lt;td&gt;11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Στυλ επικοινωνίας&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Τομείς γνώσης&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&quot;το-σύστημα-χαρακτήρων-dd-για-πράκτορες&quot;&gt;Το Σύστημα Χαρακτήρων: D&amp;amp;D για Πράκτορες&lt;/h2&gt;
&lt;p&gt;Η βασική διορατικότητα πίσω από το Orkestra είναι ότι η συμπεριφορά ενός πράκτορα αναδύεται από τρία συνθέσιμα δομικά στοιχεία:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Η Ταυτότητα&lt;/strong&gt; ορίζει &lt;em&gt;τι&lt;/em&gt; είναι ο πράκτορας. Ένας αρχιτέκτονας σχεδιάζει δομές συστημάτων. Ένας αποσφαλματωτής ανιχνεύει αστοχίες μέχρι τη ρίζα τους. Ένας φύλακας επιβάλλει συμμόρφωση και όρια ασφάλειας. Έχουμε 27 αρχέτυπα ταυτότητας που μπορούν να συνδυαστούν.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Η Νοοτροπία&lt;/strong&gt; ορίζει &lt;em&gt;πώς&lt;/em&gt; σκέφτεται ο πράκτορας. Μια αναλυτική νοοτροπία θεμελιώνει τους ισχυρισμούς σε στοιχεία και ποσοτικοποιεί την αβεβαιότητα. Μια σκεπτικιστική νοοτροπία αμφισβητεί τις υποθέσεις και αναζητά στοιχεία που τις διαψεύδουν. Μια εξερευνητική νοοτροπία αγκαλιάζει την ασάφεια και δοκιμάζει πολλαπλές προσεγγίσεις.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Το Στυλ&lt;/strong&gt; ορίζει &lt;em&gt;πώς&lt;/em&gt; επικοινωνεί ο πράκτορας. Ένα τεχνικό στυλ περιλαμβάνει ακριβείς τιμές και αναφέρεται σε συγκεκριμένα αρχεία. Ένα συνοπτικό στυλ κόβει το περιττό και ξεκινά με την απάντηση. Ένα διπλωματικό στυλ ισορροπεί την ειλικρίνεια με το τακτ.&lt;/p&gt;
&lt;p&gt;Ένας πράκτορας συνδυάζει αυτά τα δομικά στοιχεία:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;yaml&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# architecture-advisor.yaml&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;identity&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;knowledge-architect&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;architect&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;  - &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;strategist&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;mindset&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;analytical&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#85E89D&quot;&gt;style&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;concise&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτή η σύνθεση δημιουργεί έναν πράκτορα που σχεδιάζει συστήματα (αρχιτέκτονας), συνδέει γνώση σε διάφορους τομείς (αρχιτέκτονας γνώσης), θέτει στρατηγική κατεύθυνση (στρατηγικός σχεδιαστής), σκέφτεται με στοιχεία και δεδομένα (αναλυτικός), και επικοινωνεί χωρίς περιττά (συνοπτικός).&lt;/p&gt;
&lt;p&gt;Η δύναμη βρίσκεται στη συνδυαστική έκρηξη. 27 ταυτότητες επί 11 νοοτροπίες επί 10 στυλ αποδίδουν σχεδόν 3.000 πιθανές προσωπικότητες πρακτόρων. Όμως ορίζετε μόνο τους συνδυασμούς που έχουν σημασία για τη δουλειά σας.&lt;/p&gt;
&lt;h2 id=&quot;δεξιότητες-επαναχρησιμοποιήσιμα-αρθρώματα-ικανοτήτων&quot;&gt;Δεξιότητες: Επαναχρησιμοποιήσιμα Αρθρώματα Ικανοτήτων&lt;/h2&gt;
&lt;p&gt;Οι δεξιότητες είναι η γνώση και οι ροές εργασίας που μπορούν να επικαλεστούν οι πράκτορες. Ακολουθούν ένα διαβαθμισμένο σύστημα βασισμένο στην εμβέλεια:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Επίπεδο&lt;/th&gt;
&lt;th&gt;Όνομα&lt;/th&gt;
&lt;th&gt;Εμβέλεια&lt;/th&gt;
&lt;th&gt;Παράδειγμα&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;K0&lt;/td&gt;
&lt;td&gt;Θεμέλια&lt;/td&gt;
&lt;td&gt;Καθολική μεθοδολογία&lt;/td&gt;
&lt;td&gt;Πειθαρχία πρώτα-το-τεστ, ολοκλήρωση βασισμένη σε στοιχεία&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K1&lt;/td&gt;
&lt;td&gt;Ταυτότητες&lt;/td&gt;
&lt;td&gt;Ροές εργασίας βασισμένες σε ρόλο&lt;/td&gt;
&lt;td&gt;Πρότυπα διεπαφής CLI, εγχειρίδιο απόδοσης&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K2&lt;/td&gt;
&lt;td&gt;Τομείς&lt;/td&gt;
&lt;td&gt;Γνώση ειδική για τομέα&lt;/td&gt;
&lt;td&gt;Μοτίβα μετάβασης βάσεων δεδομένων, επικύρωση ταυτοποίησης&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K3&lt;/td&gt;
&lt;td&gt;Στοίβες&lt;/td&gt;
&lt;td&gt;Ειδικές για τεχνολογία&lt;/td&gt;
&lt;td&gt;Ανάπτυξη Cloudflare, λειτουργίες Supabase&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;K4&lt;/td&gt;
&lt;td&gt;Έργο&lt;/td&gt;
&lt;td&gt;Μόνο αυτή η βάση κώδικα&lt;/td&gt;
&lt;td&gt;Ροές εργασίας και συμβάσεις ειδικές για το έργο&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Οι δεξιότητες φορτώνονται μόνο όταν χρειάζονται. Ένας πράκτορας βλέπει ονόματα και περιγραφές δεξιοτήτων κατά την εκκίνηση, όμως το πλήρες περιεχόμενο μιας δεξιότητας φορτώνεται μόνο όταν ενεργοποιείται. Αυτό κρατά το πλαίσιο ελαφρύ ενώ κάνει εκατοντάδες δεξιότητες ανακαλύψιμες.&lt;/p&gt;
&lt;p&gt;Κάθε δεξιότητα περιλαμβάνει:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Σαφείς συνθήκες ενεργοποίησης («Χρησιμοποίησε όταν μεταβάλλεις σχήματα βάσεων δεδομένων»)&lt;/li&gt;
&lt;li&gt;Καθοδήγηση βήμα-προς-βήμα&lt;/li&gt;
&lt;li&gt;Επιτρεπόμενα εργαλεία για τη ροή εργασίας&lt;/li&gt;
&lt;li&gt;Κριτήρια επιτυχίας και διαδρομές ανάκαμψης από αποτυχία&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Οι 466 δεξιότητες στο μητρώο μας καλύπτουν τα πάντα, από την απομόνωση git worktree έως ροές εργασίας διαδικτυακής έρευνας έως έλεγχο σωστής λειτουργίας μετά την εγκατάσταση.&lt;/p&gt;
&lt;h2 id=&quot;γιατί-έχει-σημασία-η-ενορχήστρωση&quot;&gt;Γιατί Έχει Σημασία η Ενορχήστρωση&lt;/h2&gt;
&lt;p&gt;Οι αρχιτεκτονικές ενός-πράκτορα προσκρούουν γρήγορα σε τοίχους:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Αραίωση πλαισίου.&lt;/strong&gt; Ένα παράθυρο πλαισίου 200 χιλιάδων tokens ακούγεται μεγάλο μέχρι να φορτώσετε σχήματα βάσεων δεδομένων, τεκμηρίωση API, fixtures δοκιμών και γνώση τομέα. Οι ειδικοί μπορούν να δουλέψουν με στοχευμένο πλαίσιο.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Συγκρούσεις οδηγιών.&lt;/strong&gt; Το να λέτε σε έναν πράκτορα να είναι «διεξοδικός αλλά γρήγορος» και να «επαληθεύει τα πάντα αλλά να μην υπερμηχανικοποιεί» δημιουργεί ένταση. Οι ειδικοί το λύνουν αυτό έχοντας σαφή εμβέλεια.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Βάθος εξειδίκευσης.&lt;/strong&gt; Ένας γενικολόγος πράκτορας ξέρει λίγα για τα πάντα. Ένας εξειδικευμένος πράκτορας, συντεθειμένος με τη σωστή ταυτότητα και δεξιότητες, γνωρίζει τον τομέα του σε βάθος.&lt;/p&gt;
&lt;p&gt;Το Orkestra υλοποιεί επίπεδη ενορχήστρωση: ένας ενορχηστρωτής συντονίζει πολλαπλούς ειδικούς. Οι ειδικοί δεν μπορούν να γεννήσουν υπο-ειδικούς. Αυτό αποτρέπει την έκρηξη πολυπλοκότητας ενώ επιτρέπει παράλληλη εργασία.&lt;/p&gt;
&lt;p&gt;Ο ενορχηστρωτής έχει πρόσβαση σε 2,2 εκατομμύρια tokens ενεργής χωρητικότητας: το δικό του παράθυρο 200 χιλιάδων συν 10 ταυτόχρονους υπο-πράκτορες με από 200 χιλιάδες τον καθένα. Εργασία που θα εξαντλούσε έναν μεμονωμένο πράκτορα τρέχει άνετα σε όλο τον στόλο.&lt;/p&gt;
&lt;h2 id=&quot;το-pipeline-παραγωγής-αρχείων&quot;&gt;Το Pipeline Παραγωγής Αρχείων&lt;/h2&gt;
&lt;p&gt;Οι ορισμοί πρακτόρων ζουν σε YAML. Το Claude Code διαβάζει Markdown. Το Orkestra γεφυρώνει αυτό το χάσμα με έναν ντετερμινιστικό pipeline παραγωγής αρχείων:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;YAML Registries → Jinja Templates → .claude/agents/*.md&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Οι χειριστές επεξεργάζονται πηγή YAML. Τρέχουν το &lt;code&gt;orkestra sync&lt;/code&gt;. Το αποδοσμένο Markdown εμφανίζεται στο &lt;code&gt;.claude/agents/&lt;/code&gt;. Το Claude Code παίρνει τις αλλαγές.&lt;/p&gt;
&lt;p&gt;Αυτός ο διαχωρισμός εξυπηρετεί διαφορετικά ακροατήρια:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Η &lt;strong&gt;πηγή YAML&lt;/strong&gt; περιλαμβάνει μεταδεδομένα κύκλου ζωής, ετικέτες, κανόνες επικύρωσης και σημειώσεις κατάργησης για τα εργαλεία&lt;/li&gt;
&lt;li&gt;Το &lt;strong&gt;αποδοσμένο Markdown&lt;/strong&gt; περιλαμβάνει μόνο ό,τι χρειάζεται το μοντέλο: περιγραφή, εργαλεία, δεξιότητες και συμπεριφορική καθοδήγηση&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ο αγωγός συνθέτει ταυτότητες, νοοτροπίες, στυλ και δεξιότητες σε μία ενιαία συνεκτική προτροπή. Ένας πράκτορας αρχιτέκτονας-αναλυτικός-συνοπτικός παίρνει μια πολύ διαφορετική προτροπή συστήματος από έναν πράκτορα αποσφαλματωτής-σκεπτικιστής-τεχνικός, ακόμη και αν μοιράζονται κάποιες υποκείμενες δεξιότητες.&lt;/p&gt;
&lt;h2 id=&quot;γνώση-τομέα-το-μοτίβο-τεσσάρων-αρχείων&quot;&gt;Γνώση Τομέα: Το Μοτίβο Τεσσάρων Αρχείων&lt;/h2&gt;
&lt;p&gt;Κάθε τομέας γνώσης ακολουθεί μια συνεπή δομή:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;plaintext&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span&gt;domain-name/&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  decisions.md      # Key choices, rationale, consequences&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  patterns.md       # Step-by-step guidance and examples&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  anti-patterns.md  # Failure modes and remediation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span&gt;  evolution.md      # Dated log of changes&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Αυτή η δομή εξυπηρετεί τη φόρτωση πλαισίου πράκτορα. Ένας πράκτορας που δουλεύει σε ταυτοποίηση φορτώνει το &lt;code&gt;authentication/patterns.md&lt;/code&gt; για καθοδήγηση και το &lt;code&gt;authentication/anti-patterns.md&lt;/code&gt; για να αποφύγει γνωστές παγίδες. Τα αρχεία έχουν μέγεθος για αποδοτική φόρτωση πλαισίου: αρκετά εστιασμένα για να είναι χρήσιμα, αρκετά εκτενή για να είναι έγκυρα.&lt;/p&gt;
&lt;p&gt;Διατηρούμε 21 τομείς ανώτατου επιπέδου, συμπεριλαμβανομένων αναλυτικών, ταυτοποίησης, επιστήμης δεδομένων, υποδομής, μηχανικής μάθησης, απόδοσης, ασφάλειας και άλλων. Κάθε τομέας μπορεί να έχει υπο-τομείς για μεγαλύτερη εξειδίκευση.&lt;/p&gt;
&lt;h2 id=&quot;αξίες-το-λειτουργικό-σύστημα&quot;&gt;Αξίες: Το Λειτουργικό Σύστημα&lt;/h2&gt;
&lt;p&gt;Όλοι οι πράκτορες μοιράζονται ένα βασικό επίπεδο αξιών που ορίζουν πώς λειτουργούν:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Απλότητα πρώτα.&lt;/strong&gt; Χρησιμοποίησε την απλούστερη λύση που λειτουργεί. Πρόσθεσε πολυπλοκότητα μόνο όταν δικαιολογείται.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Διόρθωσε τις βασικές αιτίες.&lt;/strong&gt; Ποτέ μην μπαλώνεις γύρω από αστοχίες. Αν ένας αγωγός αποτυγχάνει, αποσφαλμάτωσε τον αγωγό. Αν ένα τεστ αποτυγχάνει, διόρθωσε τον κώδικα ή το τεστ.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Βασισμένο σε στοιχεία.&lt;/strong&gt; Χαρακτήρισε τους ισχυρισμούς ως «επαληθευμένους» (με benchmarks) ή «εκτιμώμενους» (με υποθέσεις). Ένα μοτίβο που εντοπίστηκε δεν ισοδυναμεί με πρόβλημα που επιβεβαιώθηκε.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Οικονομικά πλαισίου.&lt;/strong&gt; Τα εργαλεία MCP κοστίζουν 0,1% του πλαισίου. Οι αναγνώσεις αρχείων κοστίζουν 2% η καθεμία. Εφάρμοσε εξειδίκευση τομέα πριν εξερευνήσεις τον κώδικα.&lt;/p&gt;
&lt;p&gt;Αυτές οι αξίες διαχέονται σε κάθε ειδικό μέσω του pipeline παραγωγής αρχείων. Ο τρόπος σύνθεσης του πράκτορα δεν του επιτρέπει να τις παρακάμψει.&lt;/p&gt;
&lt;h2 id=&quot;cli-το-επίπεδο-ελέγχου&quot;&gt;CLI: Το Επίπεδο Ελέγχου&lt;/h2&gt;
&lt;p&gt;Το Orkestra διανέμεται με ένα CLI για τη διαχείριση του οικοσυστήματος πρακτόρων:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Discovery&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;database&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; agents&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; database-architect&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Validation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; validate&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --show-warnings&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Rendering&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt; --dry-run&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; sync&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Skills&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; skills&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; list&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; skills&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; info&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; schema-migration-workflow&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#959da5&quot;&gt;# Decisions&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;orkestra&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; decisions&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; search&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &quot;authentication&quot;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Το CLI είναι η πηγή αλήθειας για το ποιοι πράκτορες υπάρχουν, ποιες δεξιότητες έχουν, και αν το σύστημα είναι υγιές. Τρέχει επικύρωση πριν από τον συγχρονισμό για να πιάσει προβλήματα νωρίς.&lt;/p&gt;
&lt;h2 id=&quot;σκέψεις-για-ανοιχτό-κώδικα&quot;&gt;Σκέψεις για Ανοιχτό Κώδικα&lt;/h2&gt;
&lt;p&gt;Χτίσαμε το Orkestra για να λύσουμε το δικό μας πρόβλημα: τον συντονισμό πρακτόρων AI σε κλίμακα για μια πολύπλοκη βάση κώδικα. Τα μοτίβα που ανακαλύψαμε δεν είναι ειδικά για τον δικό μας τομέα.&lt;/p&gt;
&lt;p&gt;Το σύστημα σύνθεσης χαρακτήρα (ταυτότητα + νοοτροπία + στυλ) εφαρμόζεται σε κάθε ομάδα που ορίζει προσωπικότητες πρακτόρων.&lt;/p&gt;
&lt;p&gt;Το σύστημα επιπέδων δεξιοτήτων (K0-K4) παρέχει ένα νοητικό μοντέλο για την οργάνωση επαναχρησιμοποιήσιμων ικανοτήτων κατά εμβέλεια.&lt;/p&gt;
&lt;p&gt;Το μοτίβο pipeline παραγωγής αρχείων (πηγή YAML + πρότυπα + παραγόμενα τεχνουργήματα) διαχωρίζει τις ανάγκες των εργαλείων από τις ανάγκες χρήσης του περιεχομένου από το μοντέλο.&lt;/p&gt;
&lt;p&gt;Το μοντέλο επίπεδης ενορχήστρωσης (ένας συντονιστής, πολλοί ειδικοί) αποφεύγει την πολυπλοκότητα ενώ επιτρέπει παραλληλισμό.&lt;/p&gt;
&lt;p&gt;Το αν το Orkestra θα γίνει ανοιχτού κώδικα εξαρτάται από το αν αυτά τα μοτίβα έχουν αξία για άλλους που χτίζουν με το Claude Code. Αν προσκρούετε στους τοίχους που περιγράψαμε, η αρχιτεκτονική μπορεί να βοηθήσει.&lt;/p&gt;
&lt;h2 id=&quot;τι-μάθαμε&quot;&gt;Τι Μάθαμε&lt;/h2&gt;
&lt;p&gt;Το χτίσιμο του Orkestra μας δίδαξε ότι η ενορχήστρωση δεν αφορά το να κάνετε τους πράκτορες πιο έξυπνους. Αφορά το να τους κάνετε πιο εστιασμένους.&lt;/p&gt;
&lt;p&gt;Ένας μεμονωμένος πράκτορας με τέλειες οδηγίες εξακολουθεί να εξαντλεί το πλαίσιο. Ένας μεμονωμένος πράκτορας με όλες τις δεξιότητες εξακολουθεί να μπερδεύεται για το ποια να εφαρμόσει. Ένας μεμονωμένος πράκτορας που προσπαθεί να είναι τα πάντα παράγει μέτρια αποτελέσματα παντού.&lt;/p&gt;
&lt;p&gt;Σαράντα ειδικοί, καθένας εξαιρετικός στον τομέα του, συντονισμένοι από έναν ενορχηστρωτή που ξέρει πότε να αναθέσει: έτσι παραδίδουμε.&lt;/p&gt;
&lt;p&gt;Οι αριθμοί έχουν λιγότερη σημασία από την αρχιτεκτονική. Μπορεί να χρειαστείτε πέντε πράκτορες ή πενήντα. Η αρχή παραμένει: σύνθεση αντί ικανότητας, εξειδίκευση αντί γενίκευσης, συντονισμός αντί ατομικών κατορθωμάτων.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Το Orkestra τροφοδοτεί το οικοσύστημα πρακτόρων πίσω από το Maguyva, την πλατφόρμα ευφυΐας κώδικα μας. Θέλετε να μάθετε περισσότερα; Επικοινωνήστε με την ομάδα.&lt;/em&gt;&lt;/p&gt;
</content:encoded><category>Architecture</category><category>Open Source</category></item></channel></rss>