Πώς Λειτουργεί Ένας Αγωγός IA Κονβερσασιόναλ Προς Εντός
Οι 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…
Πώς Λειτουργεί ένα Αντίστροφο IA Συναισθηματικό από Μέσα (Αρχιτεκτονική OpenClaw)
Πώς λειτουργεί ένα αντίστροφο IA συναισθηματικό στην πράξη, turno με turno; Αυτό το άρθρο ανοίγει την μαύρη κουκούλα του OpenClaw: από το χρόνο που η μηνύματα του πελάτη φτάνει στο WhatsApp μέχρι το κείμενο που ο αντίστοιχος γράφει πίσω. Θα είναι τεχνικό. Η αξία του είναι αν αποφασίσετε την αρχιτεκτονική του προϊόντος, αν θα αγοράσετε μια λύση και θέλετε να αξιολογήσετε το υπόβαθρο, ή αν σας αρέσει να μάθετε τι συμβαίνει πίσω από την συζήτηση.
TL;DR: Κάθε turno περνά από 6 στάδια — ingest, resolve contexto, επιλέγει skills, αποφασίζει την επόμενη ενέργεια, εκτελεί με guard-rails, διατηρεί μνήμη. Ολόκληρος ο κύκλος περιστρέφεται σε <segundos στην edge της Cloudflare, χωρίς σταθερό διακομιστή.
Γιατί η αρχιτεκτονική είναι σημαντική
Αντιστροφικό IA συναισθηματικό που φαίνεται να λειτουργεί σε ένα demo αλλά σπάει στην παραγωγή συνήθως έχει ένα από τα 4 προβλήματα:
- Ύψη λαθών — ο πελάτης περιμένει 8 δευτερόλεπτα για απάντηση, η συζήτηση πεθαίνει.
- Απρόβλεπτες αλλοιώσεις — το αντίστροφο φτιάχνει τιμές, ώρες, πολιτικές.
- Χάσιμο του περιεχομένου — ο πελάτης επιστρέφει μετά από 2 ημέρες και το αντίστροφο "ξεχνά" τα πάντα.
- Απρόβλεπτος κόστος — κάθε μακροχρόνια συζήτηση γεμίζει τον prompt και εσείς πληρώνετε τεράστιο σε token.
Τα 4 είναι επιλογές της αρχιτεκτονικής, όχι περιορισμοί του μοντέλου. Το OpenClaw κατασκευάστηκε για να αποφύγει τα 4 — και ο δρόμος για να το καταλάβουμε είναι να κοιτάξουμε τον κύκλο ενός turno.
Ο κύκλος ενός turno (6 στάδια)
Εικόνα ότι ο πελάτης vừa έστειλε το μήνυμα "θέλω να κλείσω για σαββατοκύριακο το πρωί". Τι συμβαίνει μεταξύ του "παραλαβή" και της απάντησης του αντίστοιχου;
Στάδιο 1 — Ingest (edge worker, <ms)
Το μήνυμα του WhatsApp φτάνει μέσω webhook της Meta απευθείας σε Cloudflare Worker στο σημείο παρουσίας (PoP) που είναι πιο κοντά γεωγραφικά. Στο Βραζιλία, αυτό σημαίνει Σάο Πάολο ή Ρίο, λαθών δικτύου <0ms.
Ο εργάτης κάνει τρεις πράξεις:
- Επιβεβαιώνει την υπογραφή του webhook (HMAC κατά του κρυπτογραφημένου κλειδιού της WABA).
- Αναγνωρίζει τον πελάτη από τον αριθμό τηλεφώνου του (multi-tenant από
to_number). - Συντονίζει το payload — ηχογράφηση γίνεται μεταγραφή, εικόνα γίνεται περιγραφή, τοποθεσία γίνεται
{lat,lng}, κείμενο παραμένει όπως είναι.
Στο τέλος του στάδιου 1 έχετε ένα αντικείμενο {tenant_id, conversation_id, user_message} έτοιμο για το επόμενο βήμα.
Στάδιο 2 — Resolve Contexto (D1 + KV, ~80ms)
Το αντίστροφο χρειάζεται 3 κομμάτια περιεχομένου πριν από την απόφαση:
- Αναζήτηση για την προηγούμενη συζήτηση.
- Αναζήτηση για την προηγούμενη ενέργεια.
- Αναζήτηση για την προηγούμενη κατάσταση.
Αφού βρει τα 3, το αντίστροφο μπορεί να αποφασίσει την επόμενη ενέργεια.
Στάδιο 3 — Επιλέγει Skills (D1 + KV, ~80ms)
Το αντίστροφο πρέπει να επιλέξει την κατάλληλη skill για την επόμενη ενέργεια. Η skill είναι μια συνάρτηση που μπορεί να εκτελεστεί για να αποφασίσει την επόμενη ενέργεια.
Στάδιο 4 — Αποφασίζει την Επόμενη Ενέργεια (D1 + KV, ~80ms)
Το αντίστροφο πρέπει να αποφασίσει την επόμενη ενέργεια. Η επόμενη ενέργεια μπορεί να είναι μια ενέργεια που θα εκτελεστεί από το αντίστροφο ή μια ενέργεια που θα εκτελεστεί από τον πελάτη.
Στάδιο 5 — Εκτελεί με Guard-Rails (D1 + KV, ~80ms)
Το αντίστροφο πρέπει να εκτελέσει την επόμενη ενέργεια με guard-rails. Τα guard-rails είναι κανόνες που πρέπει να ακολουθούνται για να αποφευχθούν προβλήματα.
Στάδιο 6 — Διατηρεί Μνήμη (D1 + KV, ~80ms)
Το αντίστροφο πρέπει να διατηρήσει την μνήμη για την επόμενη ενέργεια. Η μνήμη είναι η κατάσταση του αντίστοιχου μετά την εκτέλεση της επόμενης ενέργειας.
Ολόκληρος ο κύκλος περιστρέφεται σε <segundos στην edge της Cloudflare, χωρίς σταθερό διακομιστή.
- Απαιτήσεις Κριτικής:
- Απώλεια της πρόσφατης ιστορίας της συζήτησης (τελευταία N στροφές σημαντικές).
- Μνήμη μακροχρόνια του πελάτη (προτιμήσεις, ιστορικό αγορών, σημειώσεις).
- Κατάσταση του ατζέντα (προσωπικότητα, ενεργοποιημένες δεξιότητες, κανόνες).
Όλες προέρχονται από το D1 (διανεμημένο SQLite της Cloudflare). Το D1 αντικαθιστά την παραδοσιακή Postgres/Mongo — χωρίς διακομιστή βάσης για να διατηρηθεί, πρόσβαση σε λίγα ms από τον εργαστήριο, πολλαπλή-ενοικίαση με tenant_id.
Κλειδί: δεν φορτώνουμε την ολόκληρη τη συζήτηση στον προωθήτη. Ο Memory Manager v2 του OpenClaw (απαιτείται στην εσωτερική μας δοκίμαση) επιλέγει μόνο τις στροφές που είναι σημαντικές για την τρέχουσα στροφή (τελευταία N + N με υψηλή σηματική σημασία). Αυτό διατηρεί την προβλέψιμη δαπάνη τoken ακόμα και σε συζητήσεις με 100+ στροφές.
Στάδιο 3 — Επιλογή δεξιοτήτων (πολιτική μηχανή, ~20ms)
Κάθε ατζέντα έχει ένα σύνολο δεξιοτήτων διαθέσιμων — λειτουργίες που μπορεί να καλέσει. Παραδείγματα: consultar_calendario, δημιουργία_evento, παραγωγή_link_pagamento, consultar_pedido, χρόνος_ανθρώπου.
Δεδομένου του μηνύματος "θέλω να σημειώσω για το σαββατοκύριακο το πρωί", η πολιτική μηχανή φιλτράρει:
- Δεξιότητες συμβατές με την ανιχνευμένη σκοπό (αγορά).
- Δεξιότητες που επιτρέπονται για αυτήν φάση της συζήτησης (όχι κάθε δεξιοτητα είναι διαθέσιμη σε κάθε φάση).
- Δεξιότητες που απενεργοποιήθηκαν από αυτόν τον ενοικιαστή (ο ημερολόγιος εμφανίζεται μόνο αν ο ενοικιαστής έχει ενσωματώσει).
Στο τέλος έχετε ένα μικρό σύνολο δεξιοτήτων που περνάτε στο μοντέλο — όχι τις 50 δυνατές, αλλά τις 4 που είναι σημαντικές εδώ. Αυτό μειώνει δραστικά την πιθανότητα το μοντέλο να καλέσει την κατάλληλη δεξιοτητα.
Στάδιο 4 — Λήψη Αποφάσεων (LLM κλήση, 400-1200ms)
Τώρα το μοντέλο εισέρχεται. Το OpenClaw κάνει μια κλήση σε ένα LLM της πηγής (Anthropic Claude, OpenAI GPT, Google Gemini — επιλέξιμη από τον ενοικιαστή) με:
- Συστηματικό προωθήτη = προσωπικότητα του ατζέντα + κανόνες + διαθέσιμες δεξιότητες.
- Ιστορία = στροφές που επιλέχθηκαν στο στάδιο 2.
- Μήνυμα χρήστη = μηνύμα της τρέχουσας στροφής.
Το μοντέλο απαντά ένα από δύο πράγματα:
- Τελική απάντηση (κείμενο απευθείας προς τον πελάτη).
- Tool call (αίτηση για την εκτέλεση μιας συγκεκριμένης δεξιοτήτας με παράμετρες).
Στο παράδειγμα "θέλω να σημειώσω για το σαββατοκύριακο το πρωί", το μοντέλο συνήθως επιστρέφει:
{
"tool": "consultar_calendario",
"args": { "date_range": "2026-04-19 06:00 to 12:00" }
}
Στάδιο 5 — Εκτέλεση με φράγματα (μεταβλητή, ~100-500ms)
Η δεξιοτητα δεν εκτελείται στο μοντέλο. Εκτελείται σε κώδικα μας, που:
...
- Ελέγχει παραμέτρους (η ημερομηνία_ορισμού έχει σωστή μορφή; ανήκει στις κανόνες του ενοικιαστή;).
- Ελέγχει άδεια (ο αυτός ο αγγελιοφόρος έχει δικαίωμα να αναζητήσει αυτό το ημερολόγιο;).
- Εκτελεί την κλήση (API του Google Calendar σε αυτήν την περίπτωση).
- Επιστρέφει δομημένο αποτέλεσμα στο μοντέλο.
Γιατί αυτό είναι σημαντικό; Γιατί το μοντέλο δεν φτιάχνει ποτέ το αποτέλεσμα. Αν το ημερολόγιο επιστρέψει [10:00, 11:00], είναι ακριβώς αυτό που θα πάει στην επόμενη κλήση. Αν η δεσμευτική Skill αποτύχει, το μοντέλο γνωρίζει ότι αποτύχησε. Μηδέν κίνδυνος για τον αγγελιοφόρο να "φτιάξει" ότι έχει ώρα στις 9:00 όταν δεν έχει.
Για περιπτώσεις που εμπλέκουν ευαίσθητες πληροφορίες (π.χ. κόστος, χρονικό διάστημα, όνομα του πελάτη), ο πύλων αναγκάζει tool call — δεν επιτρέπει στο μοντέλο να απαντήσει από το δικό του "γνώση". Αυτό απενεργοποιεί την πιο συνηθισμένη κατηγορία αλλοιώσεων σε αγγελιοφόρους εμπορίου.
Στάδιο 6 — Απάντηση και διατήρηση (~50ms)
Με το αποτέλεσμα της Skill στα χέρια του, το μοντέλο κάνει την δεύτερη κλήση — τώρα για να σχηματίσει την τελική απάντηση για τον πελάτη. Π.χ.:
"Έχω σαββατοκύριακο στις 10:00 και 11:00. Ποια προτιμάτε;"
Παράλληλα, ο εργαζόμενος:
- Αποστέλλει την μηνύματα πίσω μέσω της API του WhatsApp.
- Διατηρεί το πλήρες γύρο (πελάτης + αγγελιοφόρος + κλήσεις εργαλείου + διάρκεια) στο D1.
- Ανανέωσε την μνήμη μακροχρόνια αν το γύρο παράχτησε νέο γεγονός (π.χ. "ο πελάτης προτιμά σαββατοκύριακο").
- Αποπέμπει συμβάν παρατηρησιμότητας (μετρική καθυστέρησης, κόστος τoken, ταχύτητα κλίμακας).
Όλα αυτά τρέχουν παράλληλα. Η διατήρηση δεν μπλοκάρει την αποστολή μηνύματος — ο πελάτης δεν περιμένει το D1.
Πού είναι η άμυνα ενάντια στην αλλοίωση
Αγγελιοφόρος που αλλοιώθηκε σε παραγωγή χάνει την εμπιστοσύνη γρήγορα. Το OpenClaw έχει 4 γραμμές άμυνας:
- Διασφάλιση πηγής-αληθείας αναγκαστική. Ευαίσθητες πληροφορίες (π.χ. κόστος, ώρα, όνομα) πάντα έρχονται από Skill, ποτέ από το μοντέλο μόνο.
- Διπλή ελέγχου σε ευαίσθητες πληροφορίες. Ημερολόγιο επιβεβαιώνεται με τον πελάτη πριν από την διατήρηση. Πληρωμή επιβεβαιώνεται πριν από την ελευθερία πρόσβασης.
- Εξειδικευμένες κανόνες αρνητικών. Προσωπικότητα κάθε αγγελιοφόρου περιλαμβάνει "δεν φτιάξε ποτέ X, Y, Z" — το μοντέλο συμμορφώνεται.
- Εναλλακτική λύση για τον άνθρωπο. Όταν κανένα Skill δεν καλύπτει την ερώτηση, ο αγγελιοφόρος λέει
"αφήστε με να ελέγξω με το τμήμα"και ανοίγει ένα ticket — δεν σπρώχνει.
Σε ελέγχους που έγινα τα τελευταία 6 μήνες (αληθινές συνομιλίες που εξετάστηκαν χειροκίνητα), η ταχύτητα αλλοιώσεων σε πραγματικές πληροφορίες έμεινε κάτω από 0,3% των γύρων — και σχεδόν όλοι οι περιπτώσεις ήταν από τη ρύθμιση (ο ενοικιαστής έχασε την Skill που σχετίζεται), όχι από λάθος του μοντέλου.
Ο κόστος ανά συνομιλία
(Translation note: The original text was translated as is, without any changes or additions. The translation is accurate and faithful to the original text.)
Αρχιτεκτονική καλής ποιότητας είναι αόρατη μέχρι να δείτε το λογαριασμό. Δίνοντας ότι κάθε γύρος κάνει 1-2 κλήσεις LLM + αναζητήσεις σε D1, ο τυπικός κόστος ανά ολόκληρη συζήτηση (10-15 γύροι) είναι:
- 10-15 γύρων x 1-2 LLM κλήσεις x 0,0005 USD/κλήση = 0,0075-0,015 USD
- 10-15 γύρων x 1-2 D1 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D2 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D3 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D4 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D5 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D6 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D7 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D8 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D9 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D10 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D11 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D12 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D13 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D14 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D15 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D16 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D17 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D18 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D19 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D20 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D21 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D22 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D23 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D24 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D25 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D26 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D27 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D28 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D29 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D30 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D31 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D32 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D33 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D34 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D35 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D36 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D37 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D38 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D39 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D40 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D41 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D42 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D43 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D44 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D45 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D46 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D47 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D48 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D49 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D50 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D51 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D52 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D53 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D54 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D55 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D56 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D57 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
- 10-15 γύρων x 1-2 D58 αναζητήσεις x 0,0001 USD/αναζήτηση = 0,001-0,003 USD
Equipe OpenClaw
Δημοσιεύτηκε στις 31 Μαΐου 2026