← Όλα τα insights
EVALS · 12 ΜΑΪ 2026 · 8 ΛΕΠΤΑ · Ομάδα μηχανικών

Γιατί η σουίτα evals σας ανήκει στο CI.

Αν τα evals σας δεν τρέχουν σε κάθε PR, δεν είναι evals — είναι ένα screenshot από μια σύσκεψη του Μαρτίου.

Υπάρχει ένα μοτίβο που βλέπουμε σχεδόν σε κάθε agentic σύστημα που τρέχει πάνω από έξι μήνες: ένας φάκελος με όνομα evals/ με 40 σενάρια γραμμένα με ενθουσιασμό στη δεύτερη εβδομάδα, και ένα last_run.json από πριν την πιο πρόσφατη αλλαγή prompt.

Αυτό δεν είναι σουίτα evals. Είναι ένα screenshot από μια σύσκεψη του Μαρτίου.

Το πρόβλημα των δύο ρόλων

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

  1. Να πείσει εσάς τους ίδιους ότι το σύστημα λειτουργεί (τρέξτε μία φορά, demo, αρχειοθέτηση)
  2. Να εντοπίσει regressions πριν το κάνουν οι χρήστες (τρέξτε σε κάθε αλλαγή, gate releases)

Ο πρώτος ρόλος ανταμείβει την πληρότητα — γράψτε 200 cases που καλύπτουν κάθε άκρη. Ο δεύτερος ανταμείβει την ταχύτητα — τρέξτε σε λιγότερο από πέντε λεπτά αλλιώς κανείς δεν θα περιμένει.

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

Τι σημαίνει στην πραγματικότητα «στο CI»

Τρία συγκεκριμένα πράγματα, κατά σειρά κόστους:

  1. Ένα υποσύνολο τρέχει σε κάθε PR. Επιλέξτε 20–40 γρήγορες περιπτώσεις υψηλής κάλυψης. Πρέπει να τελειώνουν σε λιγότερο από 90 δευτερόλεπτα και να μπλοκάρουν το merge αν αποτύχουν.
  2. Η πλήρης σουίτα τρέχει νυχτερινά στο main branch. Οι αποτυχίες ειδοποιούν κάποιον — όχι τη rotation του on-call, τον ιδιοκτήτη του prompt.
  3. Τα score deltas παρακολουθούνται διαχρονικά. Όχι μόνο pass/fail. Ένα 4% regression στην ακρίβεια citations που δεν αποτυγχάνει σε ένα hard gate παραμένει regression.

Το μεσαίο σημείο — οι αποτυχίες ειδοποιούν τον ιδιοκτήτη — είναι το κομμάτι που οι ομάδες παραλείπουν και μετά αναρωτιούνται γιατί το drift συσσωρεύεται.

Τι παραδίδουμε με κάθε σύστημα

Ένα target pnpm eval (ή αντίστοιχο) που τρέχει το γρήγορο υποσύνολο τοπικά σε λιγότερο από δύο λεπτά. Ένα GitHub Action που τρέχει το ίδιο σε PR. Ένα νυχτερινό που τρέχει το πλήρες σύνολο έναντι των prod prompts. Και ένα dashboard με δύο γραφήματα: pass rate ανά tag, και pass rate διαχρονικά.

Αυτό είναι όλο. Τίποτα από όσα παραπάνω δεν είναι καινούργιο. Η καινοτομία είναι ότι στήνεται από την πρώτη μέρα και παραμένει στημένο αφού φύγουμε.

Γιατί λειτουργεί αυτό

Οι μηχανικοί δεν θα γράψουν evals για συστήματα που δεν τα επιβάλλουν. Η σουίτα evals δεν είναι ηθικό artifact, είναι ένα φέρον τμήμα της test pyramid. Βάλτε την εκεί όπου ζουν τα υπόλοιπα tests.

ΕΚΚΙΝΗΣΗ

Βγάλτε ζωντανό το πρώτο σύστημα.

Discovery σταθερής τιμής σε 2 εβδομάδες. Φεύγετε με αρχιτεκτονική, λειτουργικό spike και σχέδιο υλοποίησης.