Ο Σιωπηλός Δολοφόνος του AI μου: Πώς τα λάθος context windows με ''σκότωσαν
Όταν η Τεχνητή Νοημοσύνη Σκοντάφτει σε Ρυθμίσεις
Υπάρχει ένα συγκεκριμένο είδος απογοήτευσης που προέρχεται από την παρακολούθηση ενός ευφυούς συστήματος να αποτυγχάνει για χαζούς λόγους. Το βίωσα πρόσφατα πειραματιζόμενος με τοπικούς AI coding agents — μια τάση που κερδίζει έδαφος καθώς τα open-weight models γίνονται ισχυρότερα και η ανάπτυξη με έμφαση στην ιδιωτικότητα αποκτά σημασία.
Το πείραμα ήταν απλό στη σύλληψη: μπορεί ένας coding agent που τρέχει αποκλειστικά σε τοπικό υλικό να φτιάξει ένα λειτουργικό παιχνίδι; Όχι ένα απλό demo, αλλά κάτι με πραγματική διαχείριση state, λογική rendering, χειρισμό εισόδου και playable UI. Η απάντηση, μετά από αρκετό ξύσιμο κεφαλιού, ήταν ναι — αλλά η διαδρομή μέχρι εκεί αποκάλυψε μια κατηγορία προβλημάτων που το οικοσύστημα AI εργαλείων δεν χειρίζεται με χάρη.
Το Setup που Έπρεπε να Δουλέψει
Το stack αποτελούνταν από τρία components που αντιπροσωπεύουν την αιχμή της τοπικής AI ανάπτυξης: ένα provider-agnostic coding agent CLI, το Ollama που σερβίρει ένα OpenAI-compatible API από το localhost, και το Qwen3.8 27B που τρέχει στον υπολογιστή. Για context, αυτό δεν είναι κάποιο low-power setup — το 27B μοντέλο στα 17GB χωράει άνετα σε 32GB unified memory και υποστηρίζει tool calling με αξιοσέβαστες δυνατότητες reasoning.
Τα αρχικά αποτελέσματα ήταν ελπιδοφόρα. Μέσα σε δεκαπέντε λεπτά, ο agent είχε παράγει μια ολοκληρωμένη HTML δομή και σχεδόν 200 γραμμές NES-flavored CSS με beveled cabinet styling και σωστή color palette. Πιο εντυπωσιακά, ο agent έπιασε το δικό του λάθος εν ώρα εργασίας: έγραψε ένα αρχείο, το ξαναδιάβασε, παρατήρησε μια ασυμφωνία μεταξύ αυτού που σκόπευε και αυτού που κατέληξε στον δίσκο, και το διόρθωσε χωρίς prompting. Αυτή είναι γνήσια agentic συμπεριφορά, και υποδείκνυε ότι το μοντέλο ήταν ικανό για την αποστολή.
Και τότε ο agent επιχείρησε να γράψει το αρχείο game logic, και όλα σταμάτησαν.
Ο Φαύλος Κύκλος
Αυτό που ακολούθησε ήταν μια αλληλουχία που όποιος έχει παλέψει με AI tooling θα αναγνωρίσει. Δεκατρείς διαδοχικές προσπάθειες να γράψει το game engine file, κάθε μία διακοπτόμενη στη μέση της δημιουργίας. Το stream απλά πέθαινε, χωρίς error, χωρίς εξήγηση, χωρίς χρήσιμο output.
Το πιο εκνευριστικό δεν ήταν η αποτυχία καθαυτή — ήταν η παρακολούθηση της reasoning διαδικασίας του agent. Επειδή κάθε προσπάθεια ξεκινούσε από το μηδέν, το μοντέλο επανάβγαζε τις ίδιες αρχιτεκτονικές αποφάσεις από την αρχή, καταλήγοντας σε διαφορετικούς πίνακες scoring και διαφορετικές υλοποιήσεις κάθε φορά. Τρεις retries σήμαιναν τρεις διαφορετικές απαντήσεις στο ίδιο αρχιτεκτονικό ερώτημα. Ο agent έκανε μια ώρα σκέψης και δεν παρήγαγε τίποτα.
Το προφανές ύποπτο φαινόταν η μνήμη. Το κλείσιμο καρτέλων του browser απελευθέρωσε αρκετά gigabytes RAM και τα πράγματα βελτιώθηκαν οριακά, κάτι που φαινόταν να επιβεβαιώνει τη διάγνωση. Αλλά αυτό ήταν το λάθος συμπέρασμα.
Τι Αποκάλυψαν τα Logs
Η επιστροφή στα server logs έδωσε διαφορετική εικόνα. Δεν υπήρχε ένα μόνο out-of-memory error σε κανένα από αυτά. Η ελεύθερη system memory κυμαινόταν άνετα μεταξύ 21 και 27 gigabytes καθ' όλη τη διάρκεια, έναντι αποτυπώματος μόλις 17 gigabytes για το μοντέλο. Η μνήμη δεν ήταν ποτέ το πρόβλημα.
Το πραγματικό ζήτημα ήταν ένα configuration mismatch που δεν παρήγαγε ορατό error. Το config του agent διαφήμιζε context window 32.768 tokens. Αλλά ο Ollama server είχε επανεκκινηθεί με όριο 8.192 tokens, και αυτή η απόκλιση πέρασε απαρατήρητη. Ο agent σχεδίαζε χαρούμενα ένα αρχείο 800 γραμμών να γραφτεί μονορούφι, γιατί όσο ήξερε, είχε 32k περιθώριο. Όταν η πραγματική δημιουργία έφτανε στον τοίχο των 8k εν μέσω tool-call, η σύνδεση έκοβε χωρίς μήνυμα λάθους πάνω στο οποίο ο agent μπορούσε να σκεφτεί.
Υπήρχε μια δευτερεύουσα επιπλοκή κρυμμένη στα startup logs: το Ollama είχε εκκινήσει με context-shifting ενεργοποιημένο, κάτι που θα επέτρεπε στο window να ολισθαίνει όταν εξαντλούνταν, θυσιάζοντας παλαιότερα tokens για να χωρέσουν τα νέα. Αλλά η αρχιτεκτονική του μοντέλου δεν υποστήριζε αυτό το feature, οπότε απενεργοποιήθηκε σιωπηλά. Αυτό που θα έπρεπε να είναι ένα soft limit έγινε σκληρός τοίχος.
Η DevOps Πειθαρχία που Απαιτεί η AI Ανάπτυξη
Αυτή η εμπειρία κρυσταλλώνει κάτι σημαντικό για την τοπική AI ανάπτυξη που ο ενθουσιασμός γύρω από τα open-weight models τείνει να σκιάσει. Όταν τρέχεις μοντέλα στο δικό σου hardware, δεν γράφεις απλά κώδικα — χειρίζεσαι υποδομή. Και η υποδομή απαιτεί την ίδια διαγνωστική πειθαρχία, το configuration management, και την προσοχή σε επιχειρησιακές παραμέτρους που απαιτούν τα production συστήματα.
Τα context windows δεν είναι αφηρημένες ιδιότητες μοντέλου για να τα ορίσεις και να τα ξεχάσεις. Είναι επιχειρησιακές παράμετροι που αλληλεπιδρούν με την tool chain με μη προφανείς τρόπους. Όταν το configured context του agent δεν ταιριάζει με το πραγματικό όριο του server, δεν παίρνεις warning — παίρνεις silent failures που μοιάζουν με ανικανότητα του μοντέλου όταν στην πραγματικότητα είναι operational misconfiguration.
Το πρακτικό συμπέρασμα για developers που εξερευνούν τοπικούς AI coding agents είναι απλό: κάνε validate το περιβάλλον σου με τον ίδιο ζήλο που θα έκανες validate ένα production deployment. Έλεγξε ότι το config του agent ταιριάζει με τις runtime παραμέτρους σου. Διάβασε τα server logs, όχι μόνο την agent output. Κατανόησε ποια features η αρχιτεκτονική του μοντέλου σου υποστηρίζει πραγματικά έναντι αυτών που το tooling επιχειρεί να ενεργοποιήσει.
Τα μοντέλα βελτιώνονται. Το tooling ωριμάζει. Αλλά το χάσμα μεταξύ "δουλεύει σε demos" και "δουλεύει αξιόπιστα στην καθημερινή χρήση" εξακολουθεί να απαιτεί ανθρώπινη κρίση για να γεφυρωθεί — και αυτή η κρίση μοιάζει πολύ με παραδοσιακή DevOps πειθαρχία εφαρμοσμένη σε μια νέα κατηγορία υποδομής.
Το Tetris build τελικά πέτυχε. Πήρε τέσσεριςμιση ώρες σε δύο μέρες, παρήγαγε καθαρό κώδικα σε τρία αρχεία, και λειτουργεί σωστά. Αλλά τα μαθήματα δεν προήλθαν από την επιτυχία, αλλά από την κατανόηση του γιατί συνέβησαν οι αποτυχίες — και την αναγνώριση ότι μερικές φορές τα πιο ακριβά προβλήματα δεν έχουν καμία σχέση με την ευφυΐα.