Ένας AI πράκτορας χωρίς μνήμη κολλάει να ξανασυστήνεται κάθε συνομιλία. Η λύση είναι μια vector database — αποθηκεύει embeddings των εγγράφων, σημειώσεων ή παλιών chats σας ώστε ο πράκτορας να μπορεί να ανακαλέσει τα σχετικά κομμάτια κατ' απαίτηση (αυτό είναι το «R» στο RAG). Μπορείτε να το νοικιάσετε ως managed υπηρεσία, ή μπορείτε να το τρέξετε μόνοι σας σε ένα VPS και να κρατήσετε τα δεδομένα σας — που είναι συχνά τα δικά σας ιδιωτικά δεδομένα — σε ένα box που ελέγχετε. Ιδού πώς, και τι πραγματικά κοστίζει σε RAM.
Δύο καλές επιλογές
Δεν χρειάζεστε τίποτα εξωτικό. Δύο διαδρομές καλύπτουν σχεδόν όλους:
pgvector — ένα extension Postgres. Αν ήδη τρέχετε Postgres (ή είστε πρόθυμοι), αυτό προσθέτει vector search στη βάση δεδομένων που ήδη έχετε. Μία υπηρεσία, ένα backup, SQL που ξέρετε. Το ξεκίνημα ελάχιστης προσπάθειας με μεγάλο περιθώριο.
Qdrant — ένα ειδικά χτισμένο vector engine. Στραφείτε σε αυτό όταν έχετε πολλά vectors (χαμηλά εκατομμύρια+) ή θέλετε γρήγορο metadata filtering και ένα αποκλειστικό API. Είναι μια ξεχωριστή υπηρεσία να τρέχετε, αλλά είναι φτιαγμένο ακριβώς γι' αυτή τη δουλειά.
Για τους περισσότερους πράκτορες που βρίσκουν τα πόδια τους, το pgvector είναι η σωστή πρώτη απάντηση. Μεταβείτε στο Qdrant όταν το ξεπεράσετε, όχι πριν.
Η πραγματικότητα της RAM (αυτό είναι το μέρος που υποτιμούν οι άνθρωποι)
Η vector search είναι γρήγορη επειδή το index ζει στη μνήμη — οπότε η RAM, όχι ο δίσκος, είναι ο πραγματικός σας περιορισμός. Ένας πρόχειρος οδηγός:
- Μερικές εκατοντάδες χιλιάδες embeddings — άνετα σε 2 GB.
- Χαμηλά εκατομμύρια — σχεδιάστε για 4 GB+ και ρυθμίστε το index.
- Ο δίσκος είναι το εύκολο μέρος: ένα εκατομμύριο embeddings είναι μόνο μερικά GB, οπότε 25–45 GB καλύπτουν ένα σοβαρό store.
Οπότε ορίστε το μέγεθος για το index, όχι το αρχείο. (Ίδια λογική με τον γενικό οδηγό μεγέθους — το βαρύ πράγμα δεν είναι προφανές μέχρι να το μετρήσετε.)
Γρήγορο ξεκίνημα: pgvector
Σε ένα box με Postgres (το Docker είναι το ευκολότερο — ίδιο μοτίβο με το self-hosting του n8n):
CREATE EXTENSION IF NOT EXISTS vector;
CREATE TABLE memory (
id bigserial PRIMARY KEY,
content text,
embedding vector(1536) -- match your embedding model's dimensions
);
-- after you have data, build an index for fast search:
CREATE INDEX ON memory USING hnsw (embedding vector_cosine_ops);
Ο πράκτοράς σας εισάγει content + το embedding του, μετά κάνει query με ORDER BY embedding <=> $query_embedding LIMIT 5 για να τραβήξει τις πλησιέστερες μνήμες. Αυτός είναι όλος ο βρόχος.
Προτιμάτε Qdrant; Είναι ένα μεμονωμένο Docker container που εκθέτει ένα HTTP/gRPC API· δημιουργείτε μια collection με το μέγεθος vector σας και κάνετε upsert points. Ίδια ιδέα, αποκλειστικό engine.
Μπορεί να μοιραστεί ένα box με τον πράκτορα;
Ναι — για μικρά-έως-μεσαία memory stores, τρέξτε τη vector DB στο ίδιο VPS με τον πράκτορα. Είναι απλούστερο και το latency είναι βασικά μηδέν. Χωρίστε τα σε ξεχωριστούς servers μόνο όταν το ένα αρχίζει να στριμώχνει το άλλο έξω από τη RAM. Αυτή είναι μια μεταγενέστερη, καλού-προβλήματος-να-το-έχεις απόφαση, όχι μια της πρώτης μέρας.
Έντιμες επιφυλάξεις
- Η RAM είναι ο τοίχος, και είναι ήσυχος. Η αναζήτηση μένει γρήγορη μέχρι το index να μη χωρά πλέον στη μνήμη, μετά υποβαθμίζεται. Παρακολουθείτε τη μνήμη και αλλάξτε μέγεθος πριν δαγκώσει — μην περιμένετε τα αργά queries να σας το πουν.
- Τα embeddings κοστίζουν tokens για να δημιουργηθούν. Κάθε έγγραφο που κάνετε embed είναι μια κλήση API σε ένα embedding μοντέλο. Το store είναι φθηνό να φιλοξενηθεί· η δημιουργία των vectors είναι το επαναλαμβανόμενο κόστος — σχετικό με το τι πραγματικά κοστίζει το τρέξιμο ενός πράκτορα.
- Κάντε το backup. Η μνήμη του πράκτορά σας είναι δεδομένα όπως οποιαδήποτε άλλα. Αν μετρά, πάρτε snapshot.
Στο πλαίσιο αυτό, ένα self-hosted vector store είναι ένας καθαρός τρόπος να δώσετε σε έναν πράκτορα ανθεκτική μνήμη χωρίς να παραδώσετε τα ιδιωτικά σας δεδομένα σε τρίτο μέρος. Ξεκινήστε με pgvector σε ένα box 2 GB, κρατήστε ένα μάτι στη RAM, και μεγαλώστε σε Qdrant ή ένα μεγαλύτερο πακέτο μόνο όταν τα νούμερα σας το πουν.
Σχόλια
Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.