BLOG

TECHNICAL ARTICLES

Βάλτε το AI να δουλέψει με τα δεδομένα της επιχείρησής σας

AI | MCP | RBAC

AI | MCP | RBAC

Το πρόβλημα

Ερωτήσεις που διατυπώνονται σε μία πρόταση και απαντώνται σε μισή μέρα

Αν διευθύνετε μια επιχείρηση, κάποια από τις παρακάτω ερωτήσεις την κάνατε σίγουρα την τελευταία εβδομάδα:

  • «Έφυγε το φορτηγό για την παραγγελία XYZ και πότε φτάνει;»
  • «Τι προσφορά είχαμε δώσει στον πελάτη ABC την περασμένη άνοιξη και την αποδέχθηκε ποτέ;»
  • «Ποιοι έχουν βάρδια σήμερα στο εργοτάξιο ABC και έχουν όλοι πιστοποιητικό ασφαλείας σε ισχύ;»
  • «Πόσες ώρες ξοδεύουμε πραγματικά σε έργα αυτής της κατηγορίας, σε σχέση με όσες υπολογίζουμε στις προσφορές;»
  • «Σε ποιους πελάτες έχουμε εκτελέσει εργασίες που δεν έχουμε ακόμη τιμολογήσει;»
  • «Με ποιους πελάτες δεν έχουμε επικοινωνήσει εδώ και 90 ημέρες;»

Καμία από αυτές δεν είναι δύσκολη ερώτηση. Κάθε απάντηση υπάρχει ήδη σε κάποιο σύστημα για το οποίο η εταιρεία πληρώνει. Το δύσκολο είναι ότι το φορτηγό βρίσκεται στο σύστημα δρομολόγησης, η προσφορά σε ένα PDF σε κοινόχρηστο φάκελο, το πρόγραμμα βαρδιών σε ένα υπολογιστικό φύλλο, οι ώρες στην εφαρμογή καταγραφής χρόνου και τα τιμολόγια στο λογιστικό πρόγραμμα. Και αυτός που ρωτά σπάνια έχει πρόσβαση και στα πέντε.

Έτσι η ερώτηση γίνεται e-mail, το e-mail γίνεται δύο εξαγωγές δεδομένων και κάποιος τις ενώνει με το χέρι. Όταν φτάσει η απάντηση είναι πια Πέμπτη, και ο ιδιοκτήτης έχει πάψει να κάνει τέτοιες ερωτήσεις. Αυτό είναι το πραγματικό κόστος.

Τα μεγάλα γλωσσικά μοντέλα (LLMs) είναι πολύ καλά ακριβώς σε αυτή τη συρραφή. Στις περισσότερες εταιρείες όμως, οι μόνοι που μπορούν να στρέψουν ένα AI σε ζωντανά επιχειρησιακά δεδομένα είναι οι προγραμματιστές. Όλοι οι άλλοι έχουν ένα παράθυρο συνομιλίας που δεν γνωρίζει τίποτα για την εταιρεία, ή τη συνήθεια του copy-paste, που αθόρυβα διοχετεύει δεδομένα σε κάποια καταναλωτική εφαρμογή chat.

Υπάρχει και ένα δεύτερο πρόβλημα, που ξεχνιέται εύκολα μέχρι να κοστίσει. Ένας βοηθός AI με πρόσβαση σε εταιρικά δεδομένα είναι τόσο ασφαλής όσο τα δικαιώματά του. Ένας πωλητής που ρωτά «ποιο είναι το μισθολογικό κόστος της ομάδας υποστήριξης;» πρέπει να πάρει από το AI την ίδια απάντηση που θα έπαιρνε από το σύστημα μισθοδοσίας: δεν έχετε δικαίωμα να το δείτε. Το να δώσετε σε ένα AI ένα connection string με πλήρη δικαιώματα και να ελπίζετε ότι το prompt θα το κρατήσει υπό έλεγχο δεν είναι μοντέλο ασφάλειας.

Το άρθρο περιγράφει πώς λύσαμε και τα δύο προβλήματα στη δική μας πλατφόρμα λειτουργιών, το NoetikAdmin, όπου η τέταρτη και η πέμπτη ερώτηση τίθενται καθημερινά. Με λίγα λόγια: εκθέτουμε την επιχείρηση μέσω ενός MCP server, τοποθετούμε τον server πίσω από τον ίδιο έλεγχο πρόσβασης βάσει ρόλων (RBAC) που προστατεύει ήδη τη web εφαρμογή, και αφήνουμε τους ανθρώπους να τον χρησιμοποιούν από όποιον AI client έχουν ήδη. Το AI δεν αποκτά ποτέ περισσότερη πρόσβαση από τον άνθρωπο που πληκτρολογεί. Το NoetikAdmin είναι το παράδειγμά μας· το μοτίβο εφαρμόζεται σε κάθε εταιρεία με διάσπαρτα συστήματα και έναν πάροχο ταυτότητας (identity provider).

Τι είναι το MCP

Τι είναι ένας MCP server

Το Model Context Protocol (MCP) είναι ένα ανοιχτό πρότυπο που παρουσίασε η Anthropic στα τέλη του 2024 και έχουν έκτοτε υιοθετήσει η OpenAI, η Microsoft, η Google και οι περισσότεροι κατασκευαστές εργαλείων AI. Ορίζει πώς μια εφαρμογή AI ανακαλύπτει και καλεί εξωτερικές δυνατότητες. Σκεφτείτε το σαν μια θύρα USB για το AI: ένα κοινό βύσμα, ώστε κάθε client να συνδέεται με κάθε server χωρίς ειδική διασύνδεση για κάθε ζεύγος.

Μια εγκατάσταση MCP έχει τρία μέρη:

  • Host. Η εφαρμογή AI με την οποία συνομιλεί ο χρήστης: Claude Desktop, Claude Code, ChatGPT, Cursor, VS Code ή το δικό σας chat. Ο host εκτελεί το γλωσσικό μοντέλο (ή το καλεί μέσω API).
  • Client. Ένας connector μέσα στον host, που μιλά το πρωτόκολλο με έναν server. Ο host μπορεί να έχει πολλούς clients ταυτόχρονα.
  • Server. Ένα μικρό πρόγραμμα που εκθέτει όσα μπορεί να κάνει ένα σύστημα. Μπορεί να τρέχει τοπικά στον υπολογιστή (μέσω standard input/output) ή απομακρυσμένα μέσω HTTPS, που είναι και αυτό που χρειάζεστε για μια υπηρεσία σε επίπεδο εταιρείας.

Ένας server προσφέρει τρία είδη δυνατοτήτων:

ΣτοιχείοΤι είναιΠαράδειγμα από το NoetikAdmin
ToolsΣυναρτήσεις που μπορεί να καλέσει το μοντέλο, καθεμία με όνομα, περιγραφή και JSON schema για τα ορίσματά τηςfind_clients, get_charges_summary, get_time_entries
ResourcesΔεδομένα μόνο για ανάγνωση, που ο host μπορεί να επισυνάψει ως context και εντοπίζονται με URIΤο έγγραφο προδιαγραφών ενός έργου, η καρτέλα χρεώσεων ενός πελάτη
PromptsΕπαναχρησιμοποιήσιμα πρότυπα prompt που προτείνει ο server στον χρήστη«Ετοίμασε τη μηνιαία ανασκόπηση τιμολόγησης για τον πελάτη X»

Το βασικό χαρακτηριστικό είναι ότι το μοντέλο δεν αγγίζει ποτέ τη βάση δεδομένων. Βλέπει έναν κατάλογο εργαλείων με κατανοητές περιγραφές, αποφασίζει ποιο απαντά στην ερώτηση, συμπληρώνει τα ορίσματα και λαμβάνει πίσω δομημένο JSON. Ό,τι γνωρίζει το μοντέλο για την επιχείρησή σας περνά από αυτή την πόρτα, και γι' αυτό ακριβώς η πόρτα είναι το κατάλληλο σημείο για την επιβολή δικαιωμάτων.

Αρχιτεκτονική

Η αρχιτεκτονική: ένα επίπεδο MCP μπροστά από middleware που γνωρίζει τους ρόλους

Το κλειδί είναι να μη χτίσετε τίποτα καινούριο για την εξουσιοδότηση. Οι περισσότερες εταιρείες με κάποια χρόνια λειτουργίας διαθέτουν ήδη ένα middleware ή ένα επίπεδο υπηρεσιών ανάμεσα στους χρήστες και στα διάσπαρτα συστήματά τους: αυτό που καλούν η web εφαρμογή, η mobile εφαρμογή και οι νυχτερινές αναφορές. Το επίπεδο αυτό γνωρίζει ήδη ποιος είναι ο χρήστης, ποιους ρόλους έχει και ποιες εγγραφές επιτρέπεται να βλέπει κάθε ρόλος. Ο MCP server γίνεται απλώς ένας ακόμη client του.

Αρχιτεκτονική: AI clients, MCP server, middleware με RBAC, υφιστάμενα συστήματα και identity provider

Τα δικαιώματα επιβάλλονται μία φορά, κάτω από τον MCP server, για κάθε AI client

Διαβάστε το διάγραμμα από πάνω προς τα κάτω: ο χρήστης συνδέεται στον AI client του μέσω του εταιρικού identity provider, ο client μεταφέρει το token που προκύπτει σε κάθε κλήση MCP, ο MCP server προωθεί την κλήση στο middleware και το middleware εφαρμόζει τα ίδια φίλτρα ρόλων που εφαρμόζει και στη web εφαρμογή, πριν αγγίξει τα υφιστάμενα συστήματα.

Στην πράξη τα επίπεδα είναι:

  1. Υφιστάμενα συστήματα. Τιμολόγηση, CRM, ticketing, timesheets, ένας κοινόχρηστος φάκελος αρχείων. Μένουν ακριβώς όπως είναι. Κανείς δεν χρειάζεται να μεταφέρει τίποτα.
  2. Middleware με RBAC. Ένα codebase που περιβάλλει αυτά τα συστήματα με ενιαίο μοντέλο οντοτήτων (πελάτης, έργο, αίτημα εξυπηρέτησης, χρέωση, καταχώριση χρόνου) και έναν ενιαίο έλεγχο δικαιωμάτων. Στο NoetikAdmin είναι το επίπεδο υπηρεσιών σε ASP.NET Core που χρησιμοποιεί ήδη το web UI. Ένας manager βλέπει όλους τους πελάτες· ένα μέλος έργου βλέπει μόνο τα έργα στα οποία συμμετέχει· ένας εξωτερικός συνεργάτης βλέπει μόνο τις δικές του καταχωρίσεις χρόνου. Οι κανόνες αυτοί ορίζονται εδώ, μία φορά.
  3. MCP server. Ένας λεπτός adapter. Κάθε tool είναι λίγες γραμμές: επικύρωση του bearer token, δημιουργία αιτήματος εκ μέρους του συγκεκριμένου χρήστη, κλήση του middleware, επιστροφή του αποτελέσματος ως JSON. Ο server δεν έχει connection string, δεν έχει service account και δεν μπορεί να απαντήσει σε καμία ερώτηση που ο χρήστης δεν θα μπορούσε να απαντήσει μόνος του από τη web εφαρμογή.
  4. AI clients. Ό,τι χρησιμοποιεί ήδη ο καθένας. Το μοντέλο ενημερώνεται για το ποια tools υπάρχουν και τι κάνουν, και τα συνδυάζει για να απαντήσει.

Ταυτότητα και ρόλοι

Από πού προκύπτουν οι ρόλοι: OpenID Connect, OAuth 2.0 και ο κατάλογος χρηστών που ήδη έχετε

Ο MCP server δεν δημιουργεί δική του βάση χρηστών. Εμπιστεύεται τον identity provider που διαθέτει ήδη η εταιρεία, μέσω δύο προτύπων που υποστηρίζει πλέον κάθε AI client:

  • Το OAuth 2.0 απαντά στο ερώτημα «επιτρέπεται σε αυτόν τον client να καλεί αυτόν τον server εκ μέρους αυτού του ανθρώπου, και με ποιο εύρος δικαιωμάτων (scope);». Η προδιαγραφή του MCP απαιτεί οι απομακρυσμένοι servers να δέχονται OAuth 2.0 bearer token, και οι βασικοί clients (Claude, ChatGPT, VS Code, Cursor) υλοποιούν έτοιμη τη ροή authorization code με PKCE. Όταν κάποιος προσθέτει τον connector του NoetikAdmin στο Claude, ανοίγει ένα παράθυρο browser, συνδέεται με τον εταιρικό του λογαριασμό και ο client λαμβάνει ένα token, το οποίο επισυνάπτει σε κάθε κλήση tool.
  • Το OpenID Connect (OIDC) χτίζει πάνω στο OAuth και απαντά στο ερώτημα «ποιος είναι αυτός ο άνθρωπος;». Το ID token και το endpoint userinfo μεταφέρουν το αναγνωριστικό του χρήστη, το e-mail του και, το σημαντικότερο, τα claims των ομάδων ή των ρόλων του.

Το ποιος identity provider βρίσκεται πίσω από αυτά τα πρότυπα είναι επιλογή εγκατάστασης, όχι αρχιτεκτονικής:

Identity providerΠού ταιριάζειΠώς φτάνουν οι ρόλοι στο middleware
Microsoft Entra ID (Microsoft 365)Εταιρείες που χρησιμοποιούν ήδη Microsoft 365· οι ρόλοι ακολουθούν τα υπάρχοντα security groupsClaims groups ή app roles στο access token, που αντιστοιχίζονται σε ρόλους της εφαρμογής
OpenIddictΟμάδες .NET που θέλουν ο authorization server να βρίσκεται μέσα στην ίδια την εφαρμογήΗ εφαρμογή εκδίδει το token και γνωρίζει ήδη τους ρόλους της
Keycloak, Auth0, Okta, Google WorkspaceΜικτά περιβάλλοντα, ή εταιρείες που θέλουν προϊόν ταυτότητας ανεξάρτητο από το ERPClaims ρόλων ή ομάδων, ή αναζήτηση με το subject id στον πίνακα χρηστών της εφαρμογής

Το NoetikAdmin χρησιμοποιεί OpenIddict μέσα στην ίδια την εφαρμογή, επειδή η εφαρμογή ήταν ήδη η πηγή αλήθειας για το ποιος επιτρέπεται να κάνει τι. Για έναν πελάτη με Microsoft 365 θα επιλέγαμε federation: το Entra ID ταυτοποιεί τον χρήστη και το middleware αντιστοιχίζει τα groups του Entra στους εσωτερικούς του ρόλους. Το επίπεδο AI δεν αντιλαμβάνεται τη διαφορά.

Το σημαντικό είναι τι συμβαίνει αφού φτάσει το token. Το middleware δεν εμπιστεύεται τυφλά ένα claim ρόλου. Αντιστοιχίζει το token σε χρήστη, φορτώνει τους ενεργούς ρόλους και τις αναθέσεις του (ποια έργα, ποιοι πελάτες, ποιες ομάδες) και χτίζει κάθε ερώτημα με αυτούς τους περιορισμούς ενσωματωμένους. Αν ένας manager αφαιρέσει κάποιον από ένα έργο στις 10:00, το AI παύει να βλέπει τα δεδομένα του έργου στις 10:00, χωρίς νέο deployment και χωρίς αλλαγή στο prompt.

Τρεις τρόποι χρήσης

Τρεις τρόποι χρήσης, ένα μοντέλο δικαιωμάτων

Από τη στιγμή που υπάρχει ο server, το ερώτημα είναι από πού θα του μιλούν οι άνθρωποι. Καταλήξαμε να υποστηρίζουμε και τους τρεις παρακάτω τρόπους, γιατί διαφορετικοί ρόλοι μέσα στην εταιρεία θέλουν διαφορετικά πράγματα.

1. Έτοιμοι AI clients: Claude και ChatGPT

Ο ταχύτερος δρόμος. Το Claude (web, desktop και Claude Code) και το ChatGPT επιτρέπουν σε έναν οργανισμό να καταχωρίσει έναν απομακρυσμένο MCP server ως connector. Ο χρήστης τον προσθέτει μία φορά, συνδέεται μέσω της ροής OAuth που περιγράψαμε και από εκεί και πέρα μπορεί να ρωτά «ποια από τα έργα μου έχουν ατιμολόγητο χρόνο αυτόν τον μήνα;» στο ίδιο chat που χρησιμοποιεί για όλα τα άλλα.

Για τους προγραμματιστές είναι το φυσικό περιβάλλον. Ένας συνάδελφος στο Claude Code μπορεί να ζητήσει τα ανοιχτά αιτήματα εξυπηρέτησης ενός πελάτη την ώρα που διορθώνει ένα bug για τον ίδιο πελάτη, χωρίς να φύγει από το terminal. Επειδή το token είναι δικό του, βλέπει ό,τι θα έβλεπε στη web εφαρμογή και τίποτα περισσότερο.

Τι χάνετε: τον έλεγχο του μοντέλου, του system prompt, των ρυθμίσεων διατήρησης δεδομένων και του τόπου επεξεργασίας της συνομιλίας. Περισσότερα στην ενότητα για το data residency.

2. Εταιρικό chat πάνω στο API της Anthropic ή της OpenAI

Για το μη τεχνικό προσωπικό φτιάξαμε μια σελίδα chat μέσα στο ίδιο το NoetikAdmin. Είναι ένα λεπτό UI που καλεί το Anthropic Messages API (με το OpenAI Responses API ως εναλλακτικό backend), περνά τα tools του MCP server ως tool definitions και εκτελεί τον κύκλο των κλήσεων. Ο χρήστης είναι ήδη συνδεδεμένος στη web εφαρμογή, άρα δεν χρειάζεται δεύτερο login: το chat χρησιμοποιεί την υπάρχουσα συνεδρία του για να πάρει token για τον MCP server.

Αυτός ο δρόμος κοστίζει περισσότερο σε ανάπτυξη, αλλά δίνει όσα δεν μπορούν να δώσουν οι δημόσιοι clients: system prompt που μιλά το λεξιλόγιο της εταιρείας, έλεγχο του ποιο μοντέλο απαντά σε ποιο είδος ερώτησης και με τι κόστος, γραφήματα και πίνακες αντί για σκέτο κείμενο, και πλήρες αρχείο κάθε ερώτησης και κάθε κλήσης tool στη δική σας βάση δεδομένων.

3. Agents που δημιουργεί η ίδια η εταιρεία

Ο τρίτος δρόμος δεν έχει καθόλου παράθυρο chat. Σε αυτή την αρχιτεκτονική, ένας agent δεν είναι τίποτα πιο εξωτικό από μια αποθηκευμένη οδηγία, ένα trigger, μια ταυτότητα και μια λίστα επιτρεπόμενων tools. Ένας manager τη γράφει σε απλή γλώσσα, σε μια φόρμα της web εφαρμογής, όπως θα ενημέρωνε έναν νέο βοηθό:

Κάθε Δευτέρα στις 08:00, δες τα αιτήματα χρέωσης που μένουν ανοιχτά πάνω από 30 ημέρες. Ομαδοποίησέ τα ανά πελάτη και στείλε μου τη λίστα με e-mail. Αν κάποιος πελάτης ξεπερνά τα 2.000 ευρώ, ετοίμασε ένα πρόχειρο τιμολόγιο για να το εγκρίνω.

Ο server αποθηκεύει το κείμενο, το προγραμματίζει ως background job και, όταν ενεργοποιηθεί το trigger, εκτελεί τον ίδιο κύκλο μοντέλου που χρησιμοποιεί και το chat: η οδηγία μπαίνει ως εργασία, τα MCP tools ως κατάλογος, και το μοντέλο διαβάζει, συλλογίζεται και αναφέρει. Το trigger μπορεί να είναι ένα χρονοδιάγραμμα ή ένα επιχειρησιακό γεγονός: ένα ticket που ξεπερνά το SLA, ένας διαγωνισμός που ταιριάζει σε ένα προφίλ, μια συνδρομή που πλησιάζει στην ανανέωση.

Αυτό που κρατά έναν τέτοιο agent μέσα στα όρια είναι οι ίδιοι κανόνες με όλα τα υπόλοιπα του άρθρου, και μερικοί ακόμη:

  • Ο agent εκτελείται ως κάποιος. Είτε ως ο άνθρωπος που τον δημιούργησε, οπότε δεν βλέπει ποτέ περισσότερα από εκείνον, είτε ως ειδικός service user με στενότερο ρόλο. Αν απενεργοποιηθεί ο χρήστης, σταματούν και οι agents του.
  • Ο agent προτείνει, δεν εκτελεί ποτέ. Όταν ο παραπάνω agent θέλει να ετοιμάσει πρόχειρο τιμολόγιο, καλεί το ίδιο tool propose_* που θα καλούσε και ένα chat, και το αποτέλεσμα είναι μια εκκρεμής ενέργεια που περιμένει άνθρωπο. Ο agent δεν μπορεί να εγκρίνει τις δικές του προτάσεις και δεν μαθαίνει τον κωδικό έγκρισης.
  • Κάθε εκτέλεση έχει προϋπολογισμό και ιστορικό. Ανώτατο όριο σε ευρώ και σε κλήσεις tools ανά εκτέλεση, χρονικό όριο, και ευανάγνωστη καταγραφή του τι διάβασε, τι συμπέρανε και τι πρότεινε.

Για έναν ιδιοκτήτη αυτό έχει σημασία επειδή στους agents κερδίζεται πραγματικά ο χρόνος. Μια ερώτηση που απαντιέται στο chat γλιτώνει σε κάποιον δέκα λεπτά. Ένας agent που ελέγχει το ίδιο πράγμα κάθε πρωί και μιλά μόνο όταν υπάρχει κάτι να πει βγάζει την ερώτηση εντελώς από το μυαλό κάποιου. Και επειδή βασίζεται στον MCP server, η δημιουργία ενός νέου είναι μια φόρμα, όχι ένα έργο: χωρίς προγραμματιστή, χωρίς deployment, χωρίς νέα δικαιώματα.

Αυτό είναι το κομμάτι του NoetikAdmin που αναπτύσσουμε τώρα, για έναν πελάτη που έθεσε ακριβώς αυτό το ερώτημα: «μπορούμε να φτιάχνουμε agents μόνοι μας πάνω σε αυτό;». Ο πρώτος είναι η αναφορά ληξιπρόθεσμων χρεώσεων που είδατε παραπάνω.

RBAC σε κάθε διαδρομή

Οι τρεις τρόποι διαφέρουν σε UI, κόστος και τόπο επεξεργασίας, αλλά καταλήγουν όλοι στην ίδια πόρτα. Είτε το token εκδόθηκε για το Claude, για το ChatGPT, για το εσωτερικό chat ή για μια νυχτερινή εργασία, το middleware βλέπει έναν χρήστη με ρόλους και εφαρμόζει τα ίδια φίλτρα. Στον κώδικα των δικαιωμάτων δεν υπάρχει «λειτουργία AI». Αυτή την ιδιότητα αξίζει να προστατεύετε όσο μεγαλώνει το σύστημα: προσθέτετε αύριο έναν τέταρτο client και δεν αλλάζετε τίποτα στην εξουσιοδότηση.

Δικλίδες ασφαλείας

Δικλίδες ασφαλείας για τα tools που μπορούν να προκαλέσουν ζημιά

Η ανάγνωση είναι η εύκολη περίπτωση. Από τη στιγμή που ένα tool μπορεί να αλλάξει κάτι (να εγκρίνει μια χρέωση, να στείλει e-mail σε πελάτη, να κλείσει ένα ticket, να αλλάξει μια βάρδια) ή να επιστρέψει πραγματικά ευαίσθητα δεδομένα (μισθούς, συμβάσεις, ιατρικά στοιχεία), οι ρόλοι από μόνοι τους δεν αρκούν. Ο χρήστης είναι εξουσιοδοτημένος, και το μοντέλο μπορεί παρ' όλα αυτά να καλέσει το σωστό tool με λάθος ορίσματα τη λάθος στιγμή.

Το ίδιο middleware που επιβάλλει τους ρόλους είναι το σημείο για ένα δεύτερο επίπεδο προστασίας, που επιλέγεται ανά tool:

ΔικλίδαΤι κάνειΠού χρησιμοποιείται
Μόνο ανάγνωση εξ ορισμούΤα tools που γράφουν αποτελούν ξεχωριστό σύνολο, που ο διαχειριστής ενεργοποιεί ανά ρόλο και δεν περιλαμβάνεται ποτέ στον βασικό connectorΣε κάθε εγκατάσταση
Step-up authenticationΗ κλήση του tool γίνεται δεκτή μόνο αν ο χρήστης ολοκλήρωσε δεύτερο παράγοντα ταυτοποίησης (authenticator app, passkey) τα τελευταία λεπτά· διαφορετικά ο client καλείται να ξαναταυτοποιηθείΜισθοδοσία, συμβάσεις, οτιδήποτε υπόκειται σε ρυθμιστικό πλαίσιο
Εκτέλεση μετά από έγκρισηΤο μοντέλο προετοιμάζει την ενέργεια και το middleware την αποθηκεύει ως πρόχειρη· ένας άνθρωπος την εγκρίνει στη web εφαρμογή και μόνο τότε εκτελείταιΤιμολόγια, e-mail προς πελάτες, παραγγελίες αγοράς
Προεπισκόπηση πριν από την εκτέλεσηΤο tool επιστρέφει ακριβώς τι θα αλλάξει (εγγραφές, ποσά, παραλήπτες) και μια δεύτερη κλήση με token μίας χρήσης το εκτελείΜαζικές ενημερώσεις, οτιδήποτε μη αναστρέψιμο
Απόκρυψη στην πηγήΤα ευαίσθητα πεδία αποκρύπτονται μέσα στο middleware πριν φτάσει το αποτέλεσμα στο μοντέλο, εκτός αν το tool και ο ρόλος τα επιτρέπουν ρητάΑΦΜ, τραπεζικοί λογαριασμοί, προσωπικά δεδομένα
Όρια ρυθμού και δαπάνηςΚλήσεις ανά λεπτό, γραμμές ανά απάντηση και χρήματα ανά ημέρα, ανά χρήστη και ανά toolΣε κάθε εγκατάσταση
Ίχνος ελέγχου (audit trail)Ποιος ρώτησε τι, ποιο tool εκτελέστηκε με ποια ορίσματα, τι επέστρεψε, ποιο μοντέλο το είδεΣε κάθε εγκατάσταση, και το πρώτο που ζητά ένας ελεγκτής

Αυτό που κάνει όλες αυτές τις δικλίδες φθηνές είναι ότι το μοντέλο δεν εκτελεί ποτέ τίποτα· προτείνει. Στο NoetikAdmin κάθε tool που γράφει ονομάζεται propose_* και κάνει ακριβώς αυτό: ελέγχει το αίτημα, δημιουργεί μια προεπισκόπηση και αποθηκεύει μια εκκρεμή ενέργεια που λήγει σε δέκα λεπτά. Ο χρήστης λαμβάνει έναν σύνδεσμο και έναν διψήφιο αριθμό. Στη σελίδα έγκρισης βλέπει την προεπισκόπηση και τρεις αριθμούς, και πρέπει να πατήσει αυτόν που του έδειξε ο βοηθός, ώστε ένα μοντέλο που έχει πέσει θύμα prompt injection ή έχει μπερδευτεί να μην μπορεί να εγκρίνει για λογαριασμό του. Για ενέργειες υψηλού κινδύνου, όπως η δημιουργία πρόχειρου τιμολογίου, πληκτρολογεί επιπλέον έναν νέο κωδικό από την εφαρμογή authenticator. Μόνο τότε εκτελείται η ενέργεια, στον server και ως ο συγκεκριμένος χρήστης, και ο βοηθός διαβάζει το αποτέλεσμα με ξεχωριστό tool. Η διαβίβαση του τιμολογίου στη φορολογική αρχή και η αποστολή e-mail σε πελάτες παραμένουν σκόπιμα στη web εφαρμογή.

Παράδειγμα σε λειτουργία

Ένα παράδειγμα σε λειτουργία: το επίπεδο AI του NoetikAdmin

Το NoetikAdmin είναι η εσωτερική πλατφόρμα με την οποία λειτουργεί η Noetik: πελάτες, έργα, αιτήματα εξυπηρέτησης, tickets υποστήριξης, καταγραφή χρόνου, αιτήματα χρέωσης και τιμολόγηση, με περίπου τριάντα MCP tools από πάνω. Στην οθόνη που ακολουθεί τα στοιχεία έχουν αποκρυφτεί, η συμπεριφορά όμως είναι πραγματική.

AI chat του NoetikAdmin: ένας account manager ζητά γράφημα με τα ανοιχτά αιτήματα χρέωσης ανά πελάτη, ο βοηθός καλεί ένα MCP tool και αποδίδει την απάντηση

Μία ερώτηση, μία κλήση tool, και απάντηση περιορισμένη σε όσα επιτρέπεται να δει ο χρήστης

Ένας account manager πληκτρολόγησε «Δείξε μου σε γράφημα τα ανοιχτά αιτήματα χρέωσης ανά πελάτη». Τι συνέβη στη συνέχεια:

  1. Το εσωτερικό chat έστειλε την ερώτηση στο μοντέλο, μαζί με τη λίστα των tools που δηλώνει ο server για τον συγκεκριμένο χρήστη.
  2. Το μοντέλο επέλεξε το get_charges_summary και το κάλεσε μία φορά. Η πράσινη ένδειξη κάτω από την απάντηση δείχνει το όνομα του tool και τον χρόνο απόκρισής του, ώστε ο χρήστης να βλέπει από πού προήλθαν τα νούμερα.
  3. Το middleware εκτέλεσε το συγκεντρωτικό ερώτημα, φιλτραρισμένο στους πελάτες που επιτρέπεται να βλέπει ο συγκεκριμένος manager, και επέστρεψε συγκεντρωτικές γραμμές.
  4. Το μοντέλο σχεδίασε ένα ραβδόγραμμα από αυτές τις γραμμές και έγραψε τρεις προτάσεις: το σύνολο, τα τρία μεγαλύτερα υπόλοιπα και ποια από αυτά έχουν ήδη τιμολογηθεί και ποια περιμένουν τιμολόγηση.

Οι λεπτομέρειες γύρω από την απάντηση είναι αυτές που συνήθως ενδιαφέρουν έναν ιδιοκτήτη:

  • Το κόστος φαίνεται ανά μήνυμα και ανά συνομιλία. Η γραμμή πάνω από το chat δείχνει τα tokens εισόδου και εξόδου, τα cache hits και το κόστος σε ευρώ. Η συγκεκριμένη απάντηση κόστισε περίπου τρία λεπτά του ευρώ.
  • Επιλογή μοντέλου με σχετικές τιμές. Ο χρήστης επιλέγει ανάμεσα σε ένα μικρό, ένα μεσαίο και ένα μεγάλο μοντέλο, με ενδείξεις ×1, ×2 και ×5. Οι γρήγορες αναζητήσεις μένουν φθηνές· οι μηνιαίες αναλύσεις μπορούν να χρησιμοποιούν το μεγάλο.
  • Ημερήσιο όριο δαπάνης ανά χρήστη, που εμφανίζεται δίπλα στην επιλογή μοντέλου και επιβάλλεται στον server.
  • Δεν δημιουργήθηκαν νέα δικαιώματα. Ο manager βλέπει τους ίδιους 60 πελάτες που βλέπει και στη λίστα πελατών. Ένας συνάδελφος με στενότερο ρόλο θα έβλεπε μικρότερο γράφημα για την ίδια ερώτηση.

Data residency

Data residency: τι φεύγει πραγματικά από την εταιρεία

Το RBAC ορίζει ποιος βλέπει τα δεδομένα. Το data residency ορίζει πού γίνεται η επεξεργασία τους από τη στιγμή που τα βλέπει το μοντέλο, και τα δύο συγχέονται εύκολα. Κάθε αποτέλεσμα tool που επιστρέφει ο MCP server αποστέλλεται σε ένα γλωσσικό μοντέλο. Αν το μοντέλο εκτελείται σε data centre στις ΗΠΑ, η λίστα των πελατών σας μόλις διέσχισε τον Ατλαντικό, με την άδεια ενός απολύτως εξουσιοδοτημένου χρήστη.

Οι ερωτήσεις που πρέπει να θέσετε σε κάθε πάροχο, για οποιονδήποτε από τους τρεις τρόπους χρήσης:

ΕρώτησηΓιατί έχει σημασία
Σε ποια περιοχή γίνεται η επεξεργασία του prompt;Κανόνες διαβίβασης του GDPR· ορισμένοι πελάτες απαιτούν συμβατικά επεξεργασία εντός ΕΕ
Για πόσο διάστημα διατηρούνται τα prompts και τα αποτελέσματα;Ένα αποτέλεσμα tool με ονόματα πελατών που μένει σε logs για 30 ημέρες είναι μια αποθήκη δεδομένων που δεν είχατε σχεδιάσει
Χρησιμοποιούνται τα δεδομένα για εκπαίδευση μοντέλων;Στα καταναλωτικά πακέτα των προϊόντων chat η προεπιλογή είναι συχνά «ναι»· στα επαγγελματικά και στα API «όχι»
Υπάρχει υπογεγραμμένη Σύμβαση Επεξεργασίας Δεδομένων (DPA) και κατάλογος υπεργολάβων επεξεργασίας;Απαραίτητα για να χρησιμοποιείτε νόμιμα τον πάροχο ως εκτελούντα την επεξεργασία
Μπορεί να οριστεί μηδενική διατήρηση για το API;Η ισχυρότερη δικλίδα για το εσωτερικό chat

Πώς συγκρίνονται οι τρεις τρόποι τη στιγμή που γράφεται το άρθρο (ελέγξτε τους τρέχοντες όρους του παρόχου πριν βασιστείτε σε αυτά):

  • Δημόσιοι AI clients (Claude, ChatGPT). Τα business και enterprise πακέτα και των δύο δεν εκπαιδεύουν μοντέλα με τα δεδομένα σας και προσφέρουν συμβάσεις επεξεργασίας δεδομένων· ορισμένα προσφέρουν και επεξεργασία εντός ΕΕ ως επιλογή του πακέτου. Τα καταναλωτικά και ατομικά πακέτα είναι άλλη υπόθεση, και είναι αυτά που έχουν ήδη οι περισσότεροι εργαζόμενοι στο κινητό τους. Αν επιτρέψετε αυτόν τον τρόπο, να γίνεται μέσα από workspace που διαχειρίζεται ο οργανισμός, όχι από προσωπικούς λογαριασμούς.
  • Απευθείας API (Anthropic, OpenAI). Και οι δύο προσφέρουν επαγγελματικούς όρους χωρίς εκπαίδευση πάνω στην κίνηση του API, ρυθμίσεις διατήρησης και συμφωνίες μηδενικής διατήρησης δεδομένων για πελάτες που πληρούν τις προϋποθέσεις. Η προεπιλεγμένη περιοχή επεξεργασίας είναι οι ΗΠΑ, εκτός αν επιλέξετε διαφορετικά, γι' αυτό ρωτήστε ρητά.
  • Τα ίδια μοντέλα μέσα από cloud region που ήδη εμπιστεύεστε. Το Claude διατίθεται μέσω Amazon Bedrock, Google Cloud Vertex AI και Microsoft Foundry· τα μοντέλα της OpenAI μέσω Azure OpenAI. Καθεμία από αυτές τις υπηρεσίες επιτρέπει να δεσμεύσετε την επεξεργασία σε region της ΕΕ, όπως η Φρανκφούρτη, το Παρίσι ή η Στοκχόλμη, με το υπάρχον DPA του παρόχου cloud. Για μια εταιρεία που φιλοξενεί ήδη το ERP της σε ευρωπαϊκό region ενός από αυτά τα clouds, αυτός είναι συνήθως ο δρόμος με τη μικρότερη αντίσταση.
  • Self-hosted μοντέλα ανοιχτών βαρών. Για τις πιο ευαίσθητες ροές (μισθοδοσία, νομικά) ένα μοντέλο που τρέχει σε δικό σας εξοπλισμό ή στο δικό σας VPC εξαλείφει το ερώτημα, με κόστος στην ποιότητα του μοντέλου και στη λειτουργική προσπάθεια. Τον MCP server δεν τον απασχολεί ποιο μοντέλο βρίσκεται στην άλλη άκρη.

Δύο μέτρα ισχύουν ανεξάρτητα από τον τρόπο και κοστίζουν ελάχιστα:

  1. Περιορίστε όσα επιστρέφουν τα tools. Το get_charges_summary επιστρέφει σύνολα ανά πελάτη, όχι κάθε γραμμή χρέωσης. Αναγνωριστικά που είναι χρήσιμα μόνο στη βάση δεδομένων (εσωτερικά IDs, ΑΦΜ) παραλείπονται από τα αποτελέσματα, εκτός αν τα χρειάζεται η ερώτηση.
  2. Κρατήστε τα logs τοπικά. Το εσωτερικό chat αποθηκεύει τη συνομιλία, τις κλήσεις tools και τα ορίσματά τους στη βάση δεδομένων του ίδιου του NoetikAdmin, στη δική μας περιοχή. Έτσι τα logs του παρόχου μπορούν να απενεργοποιηθούν χωρίς να χαθεί η δυνατότητα ελέγχου.

Για την αντίστοιχη συζήτηση στην πλευρά των εγγράφων, δείτε τον οδηγό μας για τα ιδιωτικά AI knowledge systems (RAG).

Συμπεράσματα

Τι θα λέγαμε σε έναν άλλο ιδιοκτήτη

Το επίπεδο AI χρειάστηκε εβδομάδες και όχι μήνες, επειδή δεν χτίσαμε ένα σύστημα AI. Χτίσαμε έναν λεπτό adapter πρωτοκόλλου πάνω σε ένα μοντέλο δικαιωμάτων που υπήρχε ήδη. Αν εξετάζετε κάτι αντίστοιχο:

  • Ξεκινήστε από το επίπεδο εξουσιοδότησης, όχι από το μοντέλο. Αν τα συστήματά σας δεν έχουν ένα κοινό σημείο που γνωρίζει ποιος επιτρέπεται να βλέπει τι, χτίστε πρώτα αυτό. Αποδίδει εξίσου για τη web εφαρμογή, τις αναφορές και το AI.
  • Χρησιμοποιήστε τα πρότυπα. MCP για τα tools, OAuth 2.0 και OpenID Connect για την ταυτότητα. Τα υποστηρίζει κάθε σοβαρός AI client, άρα δεν ποντάρετε σε έναν μόνο προμηθευτή.
  • Δώστε στο μοντέλο λιγότερα και καλύτερα tools. Τριάντα καλά περιγεγραμμένα tools που επιστρέφουν συγκεντρωτικά, ήδη φιλτραρισμένα δεδομένα είναι πάντα προτιμότερα από ένα tool «εκτέλεσε SQL», τόσο σε ακρίβεια όσο και σε ασφάλεια.
  • Αποφασίστε για το data residency πριν από το πρώτο demo. Είναι πολύ πιο δύσκολο να μεταφέρετε ένα chat που οι άνθρωποι έχουν ήδη αγαπήσει από το να επιλέξετε το σωστό region την πρώτη μέρα.
  • Δείξτε το κόστος. Οι άνθρωποι χρησιμοποιούν το AI υπεύθυνα όταν βλέπουν το ποσό σε ευρώ δίπλα στην απάντηση.

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

Αν η εταιρεία σας λειτουργεί με μια χούφτα συστήματα που δεν επικοινωνούν μεταξύ τους και θέλετε να δείτε πώς θα έμοιαζε αυτό στα δικά σας δεδομένα, επικοινωνήστε μαζί μας ή διαβάστε περισσότερα για τις λύσεις AI και ευφυούς αυτοματοποίησης.

Θέλετε να μιλήσουμε?

Είμαστε στη διάθεσή σας να συζητήσουμε για την ιδέα, την επιχείρηση ή το προϊόν σας, να διευκρινήσουμε τις ανάγκες και τους στόχους σας και να συνεργαστούμε για να δημιουργήσουμε κάτι πραγματικά σπουδαίο!

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.