← Πίσω στο Blog

Ένας λογιστής AI 24/7: Το stack της Techthos

ai λογιστική ελλάδα mcp openai gpt-5 go mydata
Ένας λογιστής AI 24/7: Το stack της Techthos

Ο τελικός στόχος

Φανταστείτε ότι λέτε στον λογιστή σας μία φορά:

«Τιμολόγησε την ΑΒΓ Α.Ε. μηνιαία, με βάση τις καταγεγραμμένες ώρες του μήνα. Χρησιμοποίησε το τυπικό μου πρότυπο. Υποβολή στο myDATA την επομένη της έκδοσης. Σήμανε ό,τι μου φαίνεται ασυνήθιστο πριν φύγει.»

…και μετά να μην το ξανασκεφτείτε ποτέ. Αυτός είναι ο πράκτορας. Ξυπνάει με το πρόγραμμα, διαβάζει την κατάσταση της δουλειάς σας, κάνει μια πρόταση, παίρνει την έγκρισή σας με ένα tap (ή προχωρά αν τον έχετε εξουσιοδοτήσει εκ των προτέρων) και αναφέρει τι έκανε. Είναι, με την κυριολεκτική έννοια, ένας hosted υπάλληλος — μόνο που ο χώρος εργασίας του είναι ένα σύνολο από MCP servers και η μνήμη του ένα σύνολο από Skills.

Η αρχιτεκτονική, από πάνω προς τα κάτω

flowchart TD
    A["<b>Hosted Λογιστής-Πράκτορας</b><br/><i>GPT-5 · 24/7</i><br/><br/><b>Skills</b><br/>invoicing-policy · greek-vat<br/>reconciliation · client-comms<br/>myDATA-submission"]:::agent
    A -->|MCP| B["<b>clockwork</b><br/><i>χρόνος</i>"]:::tool
    A -->|MCP| C["<b>invoicework</b><br/><i>τιμολόγια</i>"]:::tool
    A -->|MCP| D["<b>gofolio</b><br/><i>PDF</i>"]:::tool
    A -->|MCP| E["<b>yourdata-mcp</b><br/><i>ΑΑΔΕ</i>"]:::tool
    E --> F["<b>yourdata-sdk</b><br/><i>REST / XML</i>"]:::sdk

    classDef agent fill:#494fdf,stroke:#376cd5,color:#ffffff,stroke-width:2px
    classDef tool fill:#1e293b,stroke:#64748b,color:#f1f5f9,stroke-width:1.5px
    classDef sdk fill:#334155,stroke:#94a3b8,color:#e2e8f0,stroke-width:1px,stroke-dasharray: 5 3

Τρία στρώματα, καθένα αντικαταστάσιμο:

  1. Το στρώμα του πράκτορα — GPT-5 (ή οποιοδήποτε μοντέλο μιλάει MCP) σε hosted χρονοπρογραμματισμό. Εδώ ζει η κρίση.
  2. Το στρώμα των Skills — γνώση πεδίου κωδικοποιημένη ως Skills: πώς αριθμείται ένα ελληνικό τιμολόγιο, ποιο καθεστώς ΦΠΑ ισχύει, πότε δέχεται το myDATA εκπρόθεσμες υποβολές, πώς διατυπώνεται μια ευγενική υπενθύμιση πληρωμής. Τα Skills είναι το πώς ο πράκτορας σκέφτεται σαν λογιστής.
  3. Το στρώμα των εργαλείων — πέντε ανεξάρτητες Go εφαρμογές, η καθεμία με τη δική της επιφάνεια MCP. Τα Skills είναι αυτό που ο πράκτορας σκέφτεται· οι MCP servers είναι αυτό που μπορεί να κάνει.

Τι συνεισφέρει το κάθε στρώμα

Εργαλεία (MCP servers). Ντετερμινιστικά, ελέγξιμα, βαρετά. Το καθένα κάνει μία δουλειά, έχει τη δική του βάση δεδομένων και μπορεί να χειριστεί από άνθρωπο μέσω terminal:

  • clockwork — ανάγνωση/εγγραφή ωρών, σύνοψη χρόνου, εξαγωγή δραστηριότητας από το git
  • invoicework — σύνταξη, αποθήκευση και αρίθμηση τιμολογίων και προσφορών (πολλαπλά ΑΦΜ, πολλαπλές σειρές)
  • gofolio — render οποιασδήποτε προδιαγραφής εγγράφου σε YAML προς PDF
  • yourdata-mcp (πάνω στο yourdata-sdk) — προεπισκόπηση, επικύρωση και υποβολή XML στο myDATA της ΑΑΔΕ

Skills. Άρρητη γνώση που γίνεται ρητή. Ένα Skill είναι ένα αρχείο markdown που ο πράκτορας φορτώνει όταν ταιριάζει ένας trigger, και του λέει πώς να κάνει κάτι σωστά: ποια πεδία απορρίπτει το myDATA στην παραγωγή ενώ τα δέχεται στο sandbox, πώς να στρογγυλοποιεί τον ΦΠΑ στο σεντ, πότε να εκδώσει πιστωτικό τιμολόγιο αντί να ακυρώσει, πώς να συντάξει μια υπενθύμιση πληρωμής στα ελληνικά που να μην ακούγεται μηχανική.

Ο hosted πράκτορας. Ο ενορχηστρωτής. Σε αυτόν ανήκουν το πρόγραμμα (ρουτίνες τύπου cron: «κάθε 1η του μήνα, σύνταξη τιμολογίων από τις ώρες του προηγούμενου μήνα»), η μνήμη (ποιοι πελάτες με ποιους όρους) και η πολιτική κλιμάκωσης (πότε ρωτά τον άνθρωπο, πότε δρα αυτόνομα).

Γιατί αυτό το σχήμα και όχι μονόλιθος

Ένα κλασικό SaaS λογιστικής θα τα έβαζε όλα μέσα σε μία εφαρμογή με μία βάση δεδομένων και ένα UI. Εμείς επίτηδες δεν το κάναμε, για τρεις λόγους:

  1. Ο πράκτορας είναι το UI. Όταν το chat είναι η κύρια διεπαφή, δεν χρειάζεται ενοποιημένο frontend — χρειάζεται ενοποιημένη σημασιολογία εργαλείων. Το MCP το δίνει αυτό χωρίς να συζευγνύει τις υλοποιήσεις.
  2. Κάθε εργαλείο παραμένει χρήσιμο και χωρίς τον πράκτορα. Το clockwork είναι ολοκληρωμένος χρονομετρητής από μόνο του. Το yourdata-sdk χρησιμοποιείται από οποιοδήποτε Go πρόγραμμα. Αν δεν θέλετε τον πράκτορα, δεν τον χρειάζεστε. Αν ο πράκτορας πέσει, τα τιμολόγιά σας παραμένουν στο αρχείο bbolt στον δίσκο σας.
  3. Τα Skills εξελίσσονται πιο γρήγορα από τον κώδικα. Οι ελληνικοί φορολογικοί κανόνες αλλάζουν. Οι προτιμήσεις των πελατών αλλάζουν. Ένα Skill είναι μια αλλαγή σε markdown· μια schema migration δεν είναι.

Τι σημαίνει πραγματικά «24/7»

Ο hosted πράκτορας δεν είναι chatbot που περιμένει είσοδο. Είναι ένα σύνολο προγραμματισμένων ρουτινών συν ένα inbox:

  • Προγραμματισμένα: «Την 1η, σύνταξε τα τιμολόγια του προηγούμενου μήνα.» «Κάθε Δευτέρα, συμφώνησε τις υποβολές myDATA με την κατάσταση του invoicework.» «Κάθε τρίμηνο, ετοίμασε τη συνοπτική κατάσταση ΦΠΑ.»
  • Αντιδραστικά: «Όταν ένας πελάτης γράφει για κάποιο τιμολόγιο, βρες το και σύνταξε απάντηση.» «Όταν το clockwork δείχνει >40 ώρες σε μη χρεώσιμο έργο, σημάνε το.»
  • Άνθρωπος στη ροή: κάθε ενέργεια που κοστίζει χρήμα, στέλνει email ή χτυπά κρατικό API έχει ρυθμιζόμενο σημείο έγκρισης.

Πού είμαστε, πού πάμε

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

  • Βιβλιοθήκη Skills — να κωδικοποιήσουμε το playbook του λογιστή ελληνικών ΜμΕ ως Skills (πολιτική τιμολόγησης, καθεστώτα ΦΠΑ, ιδιαιτερότητες myDATA, εθιμοτυπία υπενθυμίσεων).
  • Hosted runtime — να βγάλουμε τον πράκτορα από το laptop και να τον βάλουμε σε προγραμματισμένο, μόνιμο host με ανθεκτική μνήμη και audit logs.
  • Επιφάνεια έγκρισης — ένα minimal UI φιλικό σε κινητό για τη μία δουλειά που δεν μπορεί να κάνει ο πράκτορας μόνος του: να πει «ναι, στείλ’ το».

Το όραμα είναι μικρό και συγκεκριμένο: ένας πράκτορας, μία φορά προσληφθείς, σε λειτουργία πάντα, για τα βαρετά κομμάτια της καθημερινότητας μιας ελληνικής ΜμΕ.