AI agent observability: πώς βλέπετε πού καθυστερεί, αποτυγχάνει ή παίρνει λάθος απόφαση
Ένας παραδοσιακός API endpoint δέχεται input, εκτελεί κώδικα και επιστρέφει αποτέλεσμα. Ένας AI agent μπορεί να κάνει retrieval, να καλέσει μοντέλο, να επιλέξει εργαλείο, να ξαναδοκιμάσει και να ζητήσει ανθρώπινη έγκριση. Αν βλέπετε μόνο το τελικό response, χάνετε όλη τη διαδρομή.
Το AI agent observability δίνει στην ομάδα traces, metrics και logs που εξηγούν τι συνέβη σε κάθε βήμα, πόσο χρόνο πήρε και πού προέκυψε αποτυχία. Δεν αντικαθιστά τα evaluations, αλλά κάνει τα production προβλήματα διαγνώσιμα.
Τι πρέπει να απαντά ένα trace
Για μία εκτέλεση του agent θέλετε να γνωρίζετε:
- ποιο workflow και version έτρεξε
- ποιο μοντέλο χρησιμοποιήθηκε
- πόσες model calls έγιναν
- ποια documents ή records ανακτήθηκαν
- ποια tools κλήθηκαν και με ποιο αποτέλεσμα
- αν υπήρξαν retries ή fallback
- πόσο διήρκεσε κάθε βήμα
- πού σταμάτησε η ροή
- αν χρειάστηκε ανθρώπινη παρέμβαση
- ποιο ήταν το επιχειρηματικό outcome
Χωρίς αυτή τη σύνδεση, η ομάδα βλέπει ένα λάθος αποτέλεσμα αλλά δεν γνωρίζει αν έφταιξε το retrieval, το prompt, το tool ή το downstream API.
Trace, span, metric και log
Ένα trace αντιπροσωπεύει ολόκληρη την εκτέλεση. Κάθε σημαντικό βήμα μπορεί να είναι span: model inference, retrieval, tool execution, database query ή approval wait.
Τα metrics δείχνουν τάσεις, όπως:
- latency ανά workflow
- ποσοστό επιτυχίας tool calls
- retries ανά provider
- token usage και κόστος ανά λειτουργία
- rate ανθρώπινης παρέμβασης
- timeouts και cancellations
Τα logs κρατούν διακριτά events και τεχνικό context. Οι τρεις μορφές πρέπει να συνδέονται με κοινό trace ή correlation ID.
Παρακολουθήστε logical operation και attempts
Αν ένα model call αποτύχει προσωρινά και ξαναγίνει, ο χρήστης βλέπει μία logical operation αλλά το σύστημα έκανε δύο attempts. Η τηλεμετρία πρέπει να δείχνει και τα δύο επίπεδα.
Το ίδιο ισχύει για tools. Ένα CRM update μπορεί να επιχειρηθεί ξανά μετά από timeout. Θέλετε να γνωρίζετε ότι έγινε retry, χωρίς να δημιουργηθεί διπλή εγγραφή. Παρατηρησιμότητα και idempotency πρέπει να σχεδιάζονται μαζί.
Tool calls: το πιο κρίσιμο σημείο του agent
Οι tool calls είναι εκεί όπου ο agent αλλάζει πραγματικά δεδομένα ή επηρεάζει άλλα συστήματα. Για κάθε call αξίζει να καταγράφονται με ασφάλεια:
- tool name και version
- αποτέλεσμα success ή failure
- latency και timeout
- error category
- retry count
- approval status
- read ή write classification
- opaque reference του επηρεαζόμενου record
Δεν χρειάζεται να καταγράφετε ολόκληρα arguments ή responses. Συχνά περιέχουν προσωπικά δεδομένα, emails, έγγραφα ή credentials.
Prompt και output logging με privacy by design
Το να αποθηκεύετε όλα τα prompts και outputs φαίνεται χρήσιμο για debugging, αλλά μπορεί να δημιουργήσει νέο αποθετήριο ευαίσθητων δεδομένων. Χρειάζεται ρητή πολιτική:
- capture απενεργοποιημένο by default για ευαίσθητες ροές
- redaction γνωστών πεδίων
- sampling αντί για πλήρη καταγραφή
- μικρή retention περίοδος
- role-based πρόσβαση στα traces
- encryption και audit access
- ξεχωριστή απόφαση για production και staging
Τα secrets δεν πρέπει ποτέ να εμφανίζονται σε telemetry. Ακόμη και harmless metadata χρειάζεται έλεγχο cardinality και privacy.
Business outcome, όχι μόνο τεχνική επιτυχία
Ένα trace μπορεί να είναι τεχνικά επιτυχημένο και επιχειρηματικά λάθος. Ο agent ίσως κάλεσε σωστά όλα τα tools αλλά ταξινόμησε λάθος το αίτημα ή δημιούργησε draft που ο άνθρωπος απέρριψε.
Γι' αυτό χρειάζονται outcome signals όπως:
- accepted χωρίς αλλαγή
- edited από άνθρωπο
- rejected
- escalated
- task completed
- downstream correction
Αυτά συνδέουν observability και evaluation. Τα traces δείχνουν τη διαδρομή, ενώ τα evals κρίνουν αν το αποτέλεσμα ήταν καλό με βάση συγκεκριμένο rubric.
Alerts που οδηγούν σε ενέργεια
Μην δημιουργείτε alert για κάθε μεμονωμένο model error. Χρήσιμα alerts βασίζονται σε service-level συμπεριφορά:
- απότομη αύξηση latency
- επαναλαμβανόμενα tool failures
- ασυνήθιστη αύξηση retries ή token usage
- workflow που δεν ολοκληρώνεται
- queue backlog
- αυξημένο human escalation rate
- provider errors πάνω από όριο
Κάθε alert χρειάζεται owner, runbook και σύνδεση προς τα σχετικά traces. Διαφορετικά γίνεται απλώς επιπλέον θόρυβος.
Standards και μεταβλητότητα εργαλείων
Το OpenTelemetry ορίζει κοινές semantic conventions για traces, metrics και logs, ενώ οι GenAI conventions καλύπτουν model, retrieval και tool operations. Οι σχετικές προδιαγραφές εξελίσσονται, οπότε είναι συνετό να συγκεντρώνετε το mapping των attributes σε ένα instrumentation layer και να μην εξαρτάτε όλη την εφαρμογή από vendor-specific πεδία.
Έτσι μπορείτε να αλλάξετε backend observability ή framework με λιγότερες αλλαγές και να διατηρήσετε κοινή γλώσσα με την υπόλοιπη εφαρμογή.
Πώς το υλοποιεί η Ai Foundry
Στην Ai Foundry σχεδιάζουμε το observability μαζί με τον AI agent, όχι αφού παρουσιαστεί το πρώτο production incident. Χωρίζουμε κάθε workflow σε διαγνώσιμα βήματα, συνδέουμε model calls, retrieval και tools με trace IDs και ορίζουμε metrics που αντιστοιχούν σε πραγματική επιχειρηματική αξία.
Παράλληλα εφαρμόζουμε privacy-safe telemetry, redaction, περιορισμένη retention και ανθρώπινα outcome signals. Έτσι η ομάδα μπορεί να βρει αν ένα πρόβλημα προέρχεται από δεδομένα, model, integration ή workflow χωρίς να μετατρέπει το monitoring σε ανεξέλεγκτο αντίγραφο των δεδομένων πελατών.
Checklist για production agents
- Έχει κάθε run μοναδικό trace ID;
- Διαχωρίζονται model, retrieval και tool spans;
- Καταγράφονται retries και fallbacks;
- Συνδέεται το trace με workflow version;
- Μετριούνται latency, errors και token usage;
- Καταγράφονται business outcomes και human review;
- Αποφεύγονται prompts, outputs και secrets by default;
- Υπάρχουν redaction, retention και access controls;
- Τα alerts έχουν όρια, owner και runbook;
- Μπορεί η τηλεμετρία να εξαχθεί σε vendor-neutral μορφή;
Συμπέρασμα
Ένας AI agent δεν γίνεται αξιόπιστος μόνο επειδή δίνει καλές απαντήσεις στο demo. Χρειάζεται να μπορείτε να δείτε τη διαδρομή κάθε εκτέλεσης, να μετρήσετε outcomes και να διαγνώσετε εργαλεία και integrations χωρίς να εκθέτετε τα δεδομένα που προσπαθείτε να προστατεύσετε.
Πηγές για περαιτέρω ανάγνωση: OpenTelemetry GenAI agent spans, OpenTelemetry GenAI spans, OpenTelemetry semantic conventions.