AI Agents
Ένας AI Agent είναι επαναχρησιμοποιήσιμο, ρυθμισμένο αντικείμενο - όπως ένα template - που διαβάζει περιορισμένο context και εκπέμπει επικυρωμένο structured output. Η έξοδος χρησιμοποιείται από το περιβάλλον journey ή catalog job· ο agent δεν στέλνει, δεν κάνει branch, δεν ενημερώνει γνώρισμα και δεν καλεί API.
Θα τους βρείτε στις Ρυθμίσεις → AI Agents. Η δημιουργία και επεξεργασία agents απαιτεί role scope settings:write (ή API key με ai_agents:write). Η προβολή απαιτεί settings:read / ai_agents:read.
Μόνο παραγωγή: αποφασίζει, δεν ενεργεί
Αυτή είναι η βασική και σκόπιμη ιδέα. Ένας AI Agent δεν είναι αυτόνομο bot που καλεί εργαλεία. Δεν έχει tools ούτε actions. Σε κάθε εκτέλεση:
- Διαβάζει μόνο το context στο οποίο επιλέξατε να έχει πρόσβαση (επιλεγμένα γνωρίσματα, τμήματα, πεδία catalog, brand voice, πρόσφατο engagement).
- Ζητά από το μοντέλο να παράγει έξοδο που ταιριάζει με ένα αυστηρό output schema που ορίσατε.
- Επικυρώνει αυτή την έξοδο και την επιστρέφει - μαζί με προαιρετικό
explanationγια τη συλλογιστική του μοντέλου.
Ό,τι ενεργεί πάνω στο αποτέλεσμα υπάρχει ήδη στο Joryio: το journey σας στέλνει το μήνυμα, παίρνει branch ή γράφει γνώρισμα· το catalog enrichment job γράφει την τιμή σε πεδίο. Ο agent παρέχει μόνο την παραγόμενη τιμή. Αυτό διατηρεί τον ισχυρό μηχανισμό με side effects μέσα στα guardrails που ήδη εμπιστεύεστε (sending caps, suppression, branching) και περιορίζει την AI σε αυτό που κάνει καλά - παραγωγή και αποφάσεις.
Δημιουργία agent
Instructions
Οι instructions είναι ο στόχος του agent - το system prompt του. Χρησιμοποιούν Liquid templates με το λεξιλόγιο workspace και το επιλεγμένο context κατά τον χρόνο εκτέλεσης, ώστε να μπορείτε να αναφέρετε πραγματικά ονόματα γνωρισμάτων και συμβάντων. Περιγράψτε τι θέλετε να παραχθεί και τους κανόνες που πρέπει να ακολουθούνται (tone, μήκος, επιτρεπόμενες τιμές).
Το μοντέλο βλέπει μόνο τα context fields που καταχωρίζετε στους Context selectors. Αν οι instructions αναφέρουν όνομα πεδίου (π.χ. «έλεγξε την τιμή») αλλά το πεδίο δεν βρίσκεται στο context, το μοντέλο δεν μπορεί να ενεργήσει πάνω του. Αναφέρετε το ακριβές πεδίο που εκθέσατε - π.χ. «αν το series_id είναι μεγαλύτερο από 1200…». Το run history δείχνει την ακριβή είσοδο που είδε το μοντέλο, πράγμα που κάνει αυτό το σφάλμα εύκολο να εντοπιστεί.
Tags
Δώστε σε έναν agent tags για οργάνωση και φιλτράρισμα της βιβλιοθήκης agents. Τα tags προέρχονται από το κοινό pool tags του workspace (τα ίδια tags που χρησιμοποιείτε σε καμπάνιες, journeys και templates), επομένως συμπληρώνονται αυτόματα κατά την πληκτρολόγηση και μπορείτε να φιλτράρετε τη λίστα agents ανά tag. Τα tags μετρώνται στο UI διαχείρισης Tags όπως κάθε άλλος tagged resource.
Model: managed ή BYO
Κάθε agent εκτελείται σε ένα μοντέλο, ρυθμισμένο με δύο τρόπους:
- Managed - Joryio Auto. Μία επιλογή: το Joryio επιλέγει αυτόματα το καλύτερο hosted model (και reasoning effort) για κάθε εκτέλεση. Δεν υπάρχει τίποτα για ρύθμιση - ούτε model id ούτε thinking level. Πληρώνετε το token cost συν markup, χρεωμένο ως ένα credit ανά εκτέλεση από το wallet. Χωρίς ρύθμιση κλειδιού· απλώς λειτουργεί.
- BYO (bring your own) - δικό σας provider key. Υποστηριζόμενοι providers: Anthropic, OpenAI, Google (Gemini), Azure OpenAI και AWS Bedrock. Εδώ ορίζετε το συγκεκριμένο model id προς κλήση (π.χ.
claude-opus-4-8,gpt-4o,gemini-1.5-pro). Πληρώνετε τον LLM provider απευθείας για tokens· το Joryio λαμβάνει μικρή σταθερή platform fee ανά εκτέλεση. Προσθέστε το κλειδί στις Provider Keys πριν επιλέξετε BYO.
Context selectors (τι μπορεί να διαβάσει ο agent)
Το context είναι opt-in. Ένας agent δεν διαβάζει τίποτα για επαφή ή εγγραφή εκτός αν το καταχωρίσετε εδώ:
- Attribute keys - τα γνωρίσματα επαφής που θα συμπεριληφθούν.
- Segment memberships - flags για τα τμήματα που καταχωρίζετε.
- Catalog fields - πεδία από catalog ή entity record που εμπλουτίζεται.
- Required fields - υποσύνολο πεδίων catalog που πρέπει να υπάρχουν για να εκτελεστεί ο agent. Κατά τον εμπλουτισμό, κάθε γραμμή που δεν έχει ένα από αυτά παραλείπεται και δεν χρεώνεται ποτέ (καταγράφεται ο λόγος παράλειψης).
- Brand voice - συμπεριλάβετε το brand voice workspace ώστε η έξοδος να ακούγεται σύμφωνα με το brand.
- Recent engagement - σύντομη περίληψη πρόσφατης δραστηριότητας επαφής.
- PII masking - το PII διαχειρίζεται καθολικά: σημειώστε γνώρισμα ως PII στις Custom Attributes και αυτό redacts αυτόματα πριν το δει το μοντέλο, σε κάθε agent.
Output schema
Το output schema περιορίζει τι μπορεί να επιστρέψει το μοντέλο, ώστε οι downstream nodes να έχουν πάντα προβλέψιμο σχήμα:
- Type -
string,number,booleanήjson. - Για
json, λίστα από ονομασμένα fields, το καθένα με primitive type (string,number,boolean) και προαιρετική περιγραφή. - Include explanation - καταγραφή της συλλογιστικής μοντέλου σε πεδίο
explanation(φθηνό και επιθεωρήσιμο trace).
Έξοδος που δεν ταιριάζει με το schema απορρίπτεται και αντιμετωπίζεται ως αποτυχία (δείτε error contract παρακάτω).
Fallback value
Κάθε agent έχει fallback value - την τιμή που αντικαθίσταται όταν μια εκτέλεση αποτυγχάνει για οποιονδήποτε λόγο. Αυτό εγγυάται ότι το journey δεν μένει ποτέ σε αναμονή για το μοντέλο: στην αποτυχία είτε ακολουθεί το συνδεδεμένο error edge είτε συνεχίζει με fallback.
Daily cap
Κάθε agent έχει δικό του ημερήσιο όριο εκτελέσεων (προεπιλογή 250.000· 0 = απεριόριστο) - τον μέγιστο αριθμό φορών που αυτός ο agent τρέχει ανά ημέρα. Μόλις επιτευχθεί, επιπλέον εκτελέσεις αποτυγχάνουν κλειστά με outcome budget_exceeded (και ακολουθούν fallback / error edge), προστατεύοντας τη δαπάνη σας από ανεξέλεγκτο journey. Ο λογαριασμός έχει επίσης ημερήσιο όριο σε όλο το workspace για όλους τους agents μαζί, διαχειριζόμενο από το Joryio.
Guardrails
Runtime guardrails ανά εκτέλεση: σκληρό timeout (προεπιλογή 20 δευτ.), προαιρετικό όριο max output tokens, και επιλογή retry on transient errors (rate limits και 5xx μόνο - ποτέ σε κακό key ή μη έγκυρη έξοδο).
Δημιουργία agent από τον AI Assistant
Μπορείτε επίσης να ζητήσετε από τον Joryio Assistant να δημιουργήσει agent: περιγράψτε τι θέλετε (π.χ. «agent που διαβάζει την τιμή προϊόντος και γράφει high ή low») και προτείνει έτοιμο agent προς εφαρμογή. Εμφανίζει κάρτα Apply που συνοψίζει τον agent· δεν δημιουργείται τίποτα μέχρι να επιλέξετε Apply. Στο Apply, ο agent δημιουργείται ως draft και λαμβάνετε σύνδεσμο για άνοιγμα στον editor - ώστε πάντα να τον ελέγχετε, δοκιμάζετε και ενεργοποιείτε εσείς πριν εκτελεστεί. Οι agents που δημιουργούνται από Assistant είναι πάντα Managed (Joryio Auto)· ο Assistant δεν επιλέγει BYO provider ούτε χειρίζεται keys.
Χρήση agent σε journey
Τοποθετήστε κόμβο AI Agent σε journey και επιλέξτε τον agent. Για κάθε επαφή, ο κόμβος διαβάζει context, εκτελεί τον agent και γράφει την έξοδο στο execution snapshot ώστε μεταγενέστεροι nodes (μηνύματα, branches, ενημερώσεις γνωρισμάτων) να μπορούν να την αναφέρουν.
Ο κόμβος εκθέτει first-class outcome edges ώστε να κάνετε branch με βάση την έκβαση:
success- το μοντέλο επέστρεψε έγκυρη έξοδο· η έξοδος είναι διαθέσιμη downstream.fallback- εκτέλεση απέτυχε αλλά δεν συνδέσατε συγκεκριμένο error edge· χρησιμοποιείται fallback value και το journey συνεχίζει.erroroutcomes -timeout,rate_limited,invalid_configκαιbudget_exceeded. Κάθε ένα είναι ξεχωριστό branch edge στον κόμβο, ώστε να μπορείτε να συνδέσετε κάθε error outcome σε δική του ξεχωριστή διαδρομή στο canvas (ή να αφήσετε οποιοδήποτε να πέσει στοfallback).
Αυτό το ρητό error contract είναι σκόπιμο πλεονέκτημα: αντί να αποτυγχάνει σιωπηρά σε null και να σας αναγκάζει να προστατεύετε κάθε downstream node, ένας AI Agent σάς επιτρέπει να δρομολογείτε «ο agent έκανε σφάλμα → ακολούθησε αυτό το branch» όπως κάθε άλλη απόφαση.
Εμπλουτισμός Catalog
Ένας agent μπορεί επίσης να εκτελείται πάνω σε catalog ή custom-entity records για παραγωγή ή κατηγοριοποίηση πεδίου - περιγραφές προϊόντων, tags, next-best-item ή κανονικοποιημένη κατηγορία. Επιλέγετε agent, entity, το πεδίο-στόχο στο οποίο γράφεται η έξοδος και προαιρετικό filter για περιορισμό των εγγραφών που επεξεργάζονται. Η εκτέλεση κάθε γραμμής μετράται και ιχνηλατείται ακριβώς όπως εκτέλεση journey.
Το enrichment job εκτελείται ασύγχρονα στο παρασκήνιο: υποβάλλετε job και επιστρέφει αμέσως queued job id, ώστε μεγάλο catalog (έως 100k γραμμές) να επεξεργάζεται εκτός request path αντί να μπλοκάρει. Έπειτα κάνετε poll το job για κατάσταση και μετρήσεις - η κατάσταση περνά queued → running → completed (ή failed) και οι μετρήσεις (total, processed, succeeded, failed, skipped) συμπληρώνονται καθώς προχωρά. Το job είναι idempotent ανά εγγραφή, άρα νέα εκτέλεση δεν επαναχρεώνει ήδη εμπλουτισμένη γραμμή. Μπορείτε να το ενεργοποιήσετε και να δείτε πρόοδο από dashboard ή μέσω των enrichment endpoints.
Μόνο επιτυχημένες εκτελέσεις γράφουν το πεδίο. Μια γραμμή παραλείπεται (η υπάρχουσα τιμή της μένει ανέπαφη) όταν ο agent επιστρέφει outcome χωρίς επιτυχία - missing required field, άδειο wallet (budget_exceeded), λανθασμένο BYO key (invalid_config) κ.ο.κ. Όταν παραλείπονται γραμμές, το job εμφανίζει reason (π.χ. «2 από 2 γραμμές δεν γράφτηκαν - invalid_config: …») ώστε να γνωρίζετε γιατί δεν γράφτηκε τίποτα, αντί για απλό αριθμό. Ο catalog enrichment χρεώνεται ανά εκτέλεση· το Test και preview είναι δωρεάν (δείτε παρακάτω).
Testing και preview
Πριν αναπτύξετε agent, χρησιμοποιήστε το Test για dry-run με sample context που παρέχετε (sample attributes, memberships τμημάτων, catalog record, περίληψη engagement). Το preview επιστρέφει ακριβώς ό,τι θα παρήγαγε πραγματική εκτέλεση:
outcome-success,fallbackή ένα από τα error outcomes.output- η επικυρωμένη structured output (ή fallback σε αποτυχία).explanation- η συλλογιστική μοντέλου, όταν το schema σας την περιλαμβάνει.
Οι εκτελέσεις test και preview χρησιμοποιούν νέο run key, δεν μετρούν σε πραγματικό journey και είναι δωρεάν - δεν απαιτείται υπόλοιπο wallet - ώστε να επαναλαμβάνετε agent (wallet με χρήματα απαιτείται μόνο για πραγματικές εκτελέσεις journey/catalog). Αν ένα test αναφέρει outcome χωρίς επιτυχία, εμφανίζεται ο ακριβής λόγος σφάλματος ώστε να το διορθώσετε (missing key, wallet χωρίς χρήματα, output που απέτυχε στην επικύρωση schema κ.ο.κ.).
Το error contract
Κάθε εκτέλεση τελειώνει ακριβώς με μία έκβαση:
| Outcome | Σημασία | Επανάληψη; |
|---|---|---|
success | Έγκυρη έξοδος που ταιριάζει με schema. | - |
fallback | Εκτέλεση απέτυχε και δεν συνδέθηκε συγκεκριμένο error edge· χρησιμοποιείται fallback value. | - |
timeout | Η εκτέλεση ξεπέρασε το timeout ανά εκτέλεση. | Transient - επαναλαμβάνεται αν είναι ενεργό. |
rate_limited | Ο provider περιόρισε το αίτημα λόγω ρυθμού. | Transient - επαναλαμβάνεται αν είναι ενεργό. |
invalid_config | Προβλέψιμη αποτυχία: κακό/ληγμένο key, σφάλμα ρύθμισης τιμολόγησης/χρέωσης ή έξοδος μοντέλου που αποτυγχάνει στην επικύρωση schema. | Όχι - ποτέ επανάληψη. |
budget_exceeded | Επιτεύχθηκε όριο δαπάνης: ημερήσιο όριο agent, ημερήσιο όριο workspace λογαριασμού ή ανεπαρκές υπόλοιπο wallet για χρεώσιμη εκτέλεση. | Όχι. |
Οι επαναλήψεις χρησιμοποιούν bounded exponential backoff και εφαρμόζονται μόνο σε transient αποτυχίες.
Metering και κόστος
Οι εκτελέσεις μετρώνται ανά invocation:
- Managed - 1 credit ανά εκτέλεση, χρεωμένο από το wallet. Το credit τιμολογείται με token headroom συν markup.
- BYO - μικρή σταθερή platform fee ανά εκτέλεση· πληρώνετε τον provider σας για τα tokens απευθείας.
Δωρεάν AI credit. Κάθε λογαριασμός λαμβάνει μηνιαίο pool free AI credit (προεπιλογή $5/μήνα) που μπορεί να δαπανηθεί μόνο από εκτελέσεις AI agent - είναι χωριστό από messaging wallet, επομένως SMS/WhatsApp/email δεν το μειώνουν. Κάθε εκτέλεση καταναλώνει πρώτα free credit, και έπειτα χρησιμοποιεί paid wallet μόλις εξαντληθεί το credit. Το credit επαναφέρεται στην αρχή κάθε μήνα (use-it-or-lose-it) και το υπόλοιπό του εμφανίζεται στις Ρυθμίσεις → Usage. Οι εκτελέσεις Test και preview είναι πάντα δωρεάν, ανεξάρτητα από credit.
Οι χρεώσεις είναι idempotent ανά run id, άρα ένα journey step που επαναλαμβάνεται δεν χρεώνεται ποτέ δύο φορές. Τα token counts και το εσωτερικό κόστος παρακολουθούνται σε κάθε run για reporting χρήσης.
Όρια δαπάνης. Κάθε agent έχει δικό του ημερήσιο όριο εκτελέσεων και ο λογαριασμός σας έχει καθολικό ημερήσιο όριο AI-run σε όλους τους agents και workspaces. Τόσο το ποσό free-credit όσο και το όριο λογαριασμού μπορούν να ρυθμιστούν ανά λογαριασμό από το Joryio.
Run history
Κάθε εκτέλεση καταγράφεται και είναι διαθέσιμη στη δική της οθόνη Run history του agent - ανοίξτε την από το κουμπί Runs του agent στη λίστα (είναι αποκλειστική σελίδα, όχι κρυμμένη στον config editor). Κάθε run μπορεί να επεκταθεί και δείχνει:
- το outcome, τυχόν λόγο error, latency και κόστος·
- την είσοδο που είδε το μοντέλο - το ακριβές prompt (system instructions + επιλεγμένο, ήδη masked context)·
- την έξοδο που επέστρεψε και το προαιρετικό explanation.
Η προβολή της πραγματικής εισόδου δίπλα στην έξοδο είναι ο ταχύτερος τρόπος debugging και βελτίωσης agent: αν η απάντηση είναι λάθος, η είσοδος συνήθως εξηγεί γιατί (π.χ. η instruction ανέφερε πεδίο που δεν εκθέσατε). Μπορείτε επίσης να ανακτήσετε runs μέσω του runs endpoint.
Διακυβέρνηση δεδομένων
- Το PII είναι opt-in. Ένας agent βλέπει μόνο attributes, segments και fields που επιλέγετε ρητά. Τίποτα για επαφή δεν φτάνει στο μοντέλο από προεπιλογή.
- Καθολικό PII masking. Σημειώστε ένα attribute ως PII μία φορά στις Custom Attributes και γίνεται αυτόματα redacted πριν το context φτάσει στο μοντέλο, σε κάθε agent - δεν το επανεπιλέγετε ανά agent.
- Η είσοδος αποθηκεύεται masked, για επιθεώρηση. Για debugging και βελτίωση agents, κάθε run αποθηκεύει το prompt που είδε το μοντέλο (system + context) - μετά το PII masking και με περιορισμένο μέγεθος. Δεν περιέχει ποτέ τιμές που έχετε σημειώσει ως PII.
- Απομόνωση Workspace. Ένας agent μπορεί να διαβάσει μόνο το workspace στο οποίο εκτελείται και τα BYO keys ζουν σε per-workspace encrypted vault - οι μυστικές τιμές τους δεν επιστρέφονται ποτέ από το API.
Επόμενα βήματα
- AI Agents API - διαχειριστείτε agents, provider keys και runs μέσω REST.
- Canvas (Journey Builder) - όπου βρίσκεται ο κόμβος AI Agent.
- Brand Voice & AI Writing - το brand voice που μπορεί να διαβάσει agent.
- Usage & Billing - το wallet από το οποίο χρεώνονται credits ανά run.