Πώς Λειτουργεί ένας Συνομιλητικός Πράκτορας AI από Μέσα
Τα 6 στάδια ενός γύρου συνομιλίας στο OpenClaw — με πραγματική καθυστέρηση, κόστος ανά συνομιλία και τις 4 γραμμές άμυνας κατά της ψευδαίσθησης.
Equipe OpenClaw · Time de Engenharia & Produto
A Equipe OpenClaw é formada por engenheiros, designers e especialistas em IA dedicados a construir a melhor plataforma de agentes conversacionais para negócios brasileiros. Combinamos expertise…
Πώς Λειτουργεί Ένας Συνομιλητικός Πράκτορας ΤΝ Εσωτερικά (Αρχιτεκτονική OpenClaw)
Πώς λειτουργεί ένας συνομιλητικός πράκτορας ΤΝ στην πράξη, γύρο με γύρο; Αυτό το άρθρο ανοίγει το μαύρο κουτί του OpenClaw: από τη στιγμή που το μήνυμα του πελάτη φτάνει στο WhatsApp μέχρι το κείμενο που ο πράκτορας γράφει πίσω. Θα είναι τεχνικό. Αξίζει τον κόπο αν αποφασίζετε αρχιτεκτονική προϊόντος, αν πρόκειται να αγοράσετε μια λύση και θέλετε να αξιολογήσετε σε βάθος, ή αν σας αρέσει να ξέρετε τι συμβαίνει πίσω από τη συνομιλία.
TL;DR: κάθε γύρος περνάει από 6 στάδια — ingest, επίλυση πλαισίου, επιλογή skills, απόφαση επόμενης ενέργειας, εκτέλεση με guard-rails, αποθήκευση μνήμης. Ολόκληρος ο κύκλος τρέχει σε <2 δευτερόλεπτα στο edge της Cloudflare, χωρίς σταθερό server.
Γιατί η αρχιτεκτονική έχει σημασία
Συνομιλητικός πράκτορας που φαίνεται να λειτουργεί σε ένα demo αλλά σπάει στην παραγωγή συνήθως έχει ένα από αυτά τα 4 προβλήματα:
- Υψηλή καθυστέρηση — ο πελάτης περιμένει 8 δευτερόλεπτα για απάντηση, η συνομιλία πεθαίνει.
- Ανεξέλεγκτη ψευδαίσθηση — ο πράκτορας επινοεί τιμή, ωράριο, πολιτική.
- Χαμένο πλαίσιο — ο πελάτης επιστρέφει μετά από 2 μέρες και ο πράκτορας "ξεχνάει" τα πάντα.
- Ανεξέλεγκτο κόστος — κάθε μεγάλη συνομιλία γεμίζει το prompt και πληρώνετε περιουσία σε tokens.
Και τα 4 είναι επιλογές αρχιτεκτονικής, όχι περιορισμοί του μοντέλου. Το OpenClaw χτίστηκε για να αποφεύγει και τα 4 — και ο τρόπος για να το κατανοήσετε είναι να δείτε τον κύκλο ενός γύρου.
Ο κύκλος ενός γύρου (6 στάδια)
Φανταστείτε ότι ο πελάτης μόλις έστειλε το μήνυμα "quero marcar pra sábado de manhã". Τι συμβαίνει μεταξύ του "received" και της απάντησης του πράκτορα;
Στάδιο 1 — Ingest (edge worker, <50ms)
Το μήνυμα του WhatsApp φτάνει μέσω webhook της Meta κατευθείαν σε έναν Cloudflare Worker στο πλησιέστερο γεωγραφικά σημείο παρουσίας (PoP). Στη Βραζιλία, αυτό σημαίνει Σάο Πάολο ή Ρίο, καθυστέρηση δικτύου < 20ms.
Ο worker κάνει τρία πράγματα:
- Επικυρώνει την υπογραφή του webhook (HMAC έναντι του μυστικού της WABA).
- Αναγνωρίζει τον tenant από τον αριθμό τηλεφώνου του παραλήπτη (multi-tenant μέσω
to_number). - Κανονικοποιεί το payload — ο ήχος γίνεται μεταγραφή, η εικόνα γίνεται περιγραφή, η τοποθεσία γίνεται
{lat,lng}, το κείμενο μένει ως έχει.
Στο τέλος του σταδίου 1 έχετε ένα αντικείμενο {tenant_id, conversation_id, user_message} έτοιμο για το επόμενο βήμα.
Στάδιο 2 — Επίλυση πλαισίου (D1 + KV, ~80ms)
Ο πράκτορας χρειάζεται 3 κομμάτια πλαισίου πριν αποφασίσει:
- Πρόσφατο ιστορικό της συνομιλίας (τελευταίοι N σχετικοί γύροι).
- Μακροπρόθεσμη μνήμη του πελάτη (προτιμήσεις, ιστορικό αγορών, σημειώσεις).
- Κατάσταση του agent (persona, ενεργοποιημένα skills, κανόνες).
Όλα προέρχονται από το D1 (κατανεμημένη SQLite της Cloudflare). Το D1 αντικαθιστά τα παραδοσιακά Postgres/Mongo — χωρίς server βάσης δεδομένων για συντήρηση, πρόσβαση σε λίγα ms από τον worker, multi-tenant μέσω tenant_id.
Βασικό σημείο: εμείς δεν φορτώνουμε ολόκληρη τη συνομιλία στο prompt. Ο Memory Manager v2 του OpenClaw (που περιγράφεται στην εσωτερική τεκμηρίωσή μας) επιλέγει μόνο τους σχετικούς γύρους για τον τρέχοντα γύρο (τελευταίοι N + N υψηλής σημασιολογικής συνάφειας). Αυτό διατηρεί το κόστος token προβλέψιμο ακόμα και σε συνομιλίες 100+ γύρων.
Στάδιο 3 — Επιλογή skills (policy engine, ~20ms)
Κάθε agent έχει ένα σύνολο διαθέσιμων skills — λειτουργίες που μπορεί να καλέσει. Παραδείγματα: consultar_calendario, criar_evento, gerar_link_pagamento, consultar_pedido, chamar_humano.
Δεδομένου του μηνύματος "quero marcar pra sábado de manhã", ο policy engine φιλτράρει:
- Skills συμβατά με την ανιχνευμένη πρόθεση (προγραμματισμός ραντεβού).
- Skills επιτρεπόμενα για αυτή τη φάση της συνομιλίας (δεν είναι όλα τα skills διαθέσιμα συνεχώς).
- Skills που αυτός ο tenant έχει ενεργοποιήσει (το calendar εμφανίζεται μόνο αν ο tenant έχει κάνει ενσωμάτωση).
Στο τέλος έχετε ένα μικρό υποσύνολο skills που περνάει στο μοντέλο — όχι τα 50 πιθανά, μόνο τα 4 που έχουν νόημα εδώ. Αυτό μειώνει δραστικά την πιθανότητα το μοντέλο να καλέσει λάθος skill.
Στάδιο 4 — Απόφαση (LLM call, 400-1200ms)
Τώρα μπαίνει το μοντέλο. Το OpenClaw κάνει μία μοναδική κλήση σε ένα LLM αιχμής (Anthropic Claude, OpenAI GPT, Google Gemini — παραμετροποιήσιμο ανά tenant) με:
- System prompt = persona του agent + κανόνες + διαθέσιμα skills.
- History = γύροι που επιλέχθηκαν στο στάδιο 2.
- User message = μήνυμα του τρέχοντος γύρου.
Το μοντέλο απαντά ένα από δύο πράγματα:
- Τελική απάντηση (κείμενο απευθείας προς τον πελάτη).
- Tool call (αίτημα εκτέλεσης ενός συγκεκριμένου skill με παραμέτρους).
Στο παράδειγμα "quero marcar pra sábado de manhã", το μοντέλο τυπικά επιστρέφει:
{
"tool": "consultar_calendario",
"args": { "date_range": "2026-04-19 06:00 to 12:00" }
}
Στάδιο 5 — Εκτέλεση με guard-rails (μεταβλητό, ~100-500ms)
Το skill δεν τρέχει στο μοντέλο. Τρέχει σε δικό μας κώδικα, ο οποίος:
- Επικυρώνει παραμέτρους (το date_range έχει σωστή μορφή; είναι εντός των κανόνων του tenant;).
- Ελέγχει δικαιώματα (αυτός ο agent έχει δικαίωμα να αναζητήσει αυτό το ημερολόγιο;).
- Εκτελεί την κλήση (Google Calendar API σε αυτή την περίπτωση).
- Επιστρέφει δομημένο αποτέλεσμα στο μοντέλο.
Γιατί αυτό έχει σημασία; Επειδή το μοντέλο δεν κατασκευάζει ποτέ το αποτέλεσμα. Αν το ημερολόγιο επιστρέψει [10h, 11h], αυτό ακριβώς πηγαίνει στην επόμενη κλήση. Αν το skill αποτύχει, το μοντέλο γνωρίζει ότι απέτυχε. Μηδενικός κίνδυνος ο agent να «επινοήσει» ότι υπάρχει διαθέσιμο ραντεβού στις 9π.μ. όταν δεν υπάρχει.
Για περιπτώσεις που περιλαμβάνουν ευαίσθητες πληροφορίες (τιμή, προθεσμία, όνομα πελάτη), το pipeline επιβάλλει tool call — δεν αφήνει το μοντέλο να απαντήσει από τη δική του «γνώση». Αυτό εξαλείφει την κατηγορία ψευδαισθήσεων που είναι πιο συχνή σε εμπορικούς agents.
Στάδιο 6 — Απάντηση και αποθήκευση (~50ms)
Με το αποτέλεσμα του skill στα χέρια, το μοντέλο κάνει τη δεύτερη κλήση — τώρα για να σχηματίσει την τελική απάντηση προς τον πελάτη. Π.χ.:
"Έχω Σάββατο στις 10π.μ. και 11π.μ. Ποια προτιμάτε;"
Παράλληλα, ο worker:
- Αποστέλλει το μήνυμα πίσω μέσω του API του WhatsApp.
- Αποθηκεύει τον πλήρη γύρο (user + assistant + tool calls + διάρκεια) στο D1.
- Ενημερώνει τη μακροπρόθεσμη μνήμη αν ο γύρος παρήγαγε νέο γεγονός (π.χ.: "ο πελάτης προτιμά Σάββατο").
- Εκπέμπει event παρατηρησιμότητας (μετρική καθυστέρησης, κόστος token, ποσοστό κλιμάκωσης).
Όλα αυτά τρέχουν παράλληλα. Η αποθήκευση δεν μπλοκάρει την αποστολή του μηνύματος — ο πελάτης δεν περιμένει το D1.
Πού βρίσκεται η άμυνα κατά των ψευδαισθήσεων
Agent που παραισθάνεται σε παραγωγή χάνει εμπιστοσύνη γρήγορα. Το OpenClaw έχει 4 γραμμές άμυνας:
- Επιβεβλημένη πηγή αλήθειας. Πραγματικά δεδομένα (τιμή, ωράριο, όνομα) πάντα προέρχονται από skill, ποτέ από το μοντέλο μόνο του.
- Διπλή επαλήθευση σε ευαίσθητα δεδομένα. Το ραντεβού επιβεβαιώνεται με τον πελάτη πριν αποθηκευτεί. Η πληρωμή επιβεβαιώνεται πριν δοθεί πρόσβαση.
- Ρητοί αρνητικοί κανόνες. Η persona κάθε agent περιλαμβάνει "ποτέ μην επινοήσεις X, Y, Z" — το μοντέλο υπακούει.
- Fallback σε άνθρωπο. Όταν κανένα skill δεν καλύπτει την ερώτηση, ο agent λέει
"αφήστε με να το ελέγξω με την ομάδα"και ανοίγει ένα ticket — δεν μαντεύει.
Σε ελέγχους που κάναμε τους τελευταίους 6 μήνες (πραγματικές συνομιλίες που εξετάστηκαν χειροκίνητα), το ποσοστό πραγματικών ψευδαισθήσεων παρέμεινε κάτω από 0,3% των γύρων — και σχεδόν όλες οι περιπτώσεις οφείλονταν σε config (ο tenant ξέχασε να ενεργοποιήσει σχετικό skill), όχι σε σφάλμα του μοντέλου.
Το κόστος ανά συνομιλία
Η καλή αρχιτεκτονική είναι αόρατη μέχρι να δεις το τιμολόγιο. Δεδομένου ότι κάθε γύρος κάνει 1-2 κλήσεις LLM + αναζητήσεις σε D1, το τυπικό κόστος ανά ολοκληρωμένη συνομιλία (10-15 γύροι) είναι:
Equipe OpenClaw
Δημοσιεύτηκε στις 27 Μαΐου 2026