Memory
You may wonder what makes Clatri different from ChatGPT, and whether ChatGPT is also an agent. ChatGPT is. Claude.ai is too. The Gemini App as well. But GPT is not an agent, Claude is not an agent, and Gemini is not an agent.
What does this mean? The companies that build the large language models (OpenAI, Anthropic, Google) offer them via API so developers can integrate them into their own systems. That is a model, not an agent. Those same companies also build consumer products like ChatGPT, Claude.ai, or the Gemini App, and to those products they have been adding agentic capabilities: they can run code, create files, search the web, generate images. As time passes, these chatbots acquire more tools and behave more like agents.
All of them remember things about you: preferences, past conversations, context. But the way they remember has concrete limits that determine what they can and can't do with your information. Clatri remembers differently, and that difference changes what's possible.
Three ways of knowing you
Structured memory
When you send a message to ChatGPT, Claude.ai or the Gemini App, the model may recall that in some conversation you mentioned a restaurant expense. But it can't sum your transactions for the month, because it doesn't have them stored in a structured way. There's no table of expenses with date, amount, category, and account. Just remembered text — approximate, incomplete.
Clatri stores every datum you record (an expense, an income, a medication, a task, an appointment) in a PostgreSQL database with defined tables, columns, and relations. When you ask "how much did I spend on restaurants in January?", the agent doesn't search through past conversations: it runs a SQL query over your real transactions, filtered by category, date and entity. The result is exact, not approximate.
Clatri operates with more than 60 structured tables across 8 PostgreSQL schemas. Each table has relations, constraints, and security rules. When the agent acts, it operates on real data with accounting precision.
Semantic memory
Structured memory solves precision but doesn't cover everything. There are things that don't fit in a table: the context of a past conversation, a decision you made days ago, a thread that was left open.
For that, Clatri uses semantic memory with RAG (Retrieval-Augmented Generation). The system periodically creates compressed summaries of your conversations and stores them as embeddings: numerical representations that capture meaning, not exact words.
Unlike other chatbots that automatically inject "memories" into every message, Clatri only searches when it's worth it. The root agent has two semantic search tools:
buscar_documentacion: queries the official product documentation when you ask what Clatri can do, how a feature works, or what its limits are. If the answer isn't documented, it tells you so instead of making something up.buscar_memoria: queries your previous conversations when you reference something discussed earlier ("remember the loan to Juan?", "as I told you last week…") or when continuity is needed on an open thread.
The agent decides when to use each one. That means a greeting or a simple question doesn't trigger an unnecessary search, and when it does trigger one, the agent writes the query itself with the relevant terms, without copying your message literally. The result is less noise in the context, faster responses, and memory that shows up exactly when it adds value.
If last week you were discussing the details of your trip to Japan in September, the agent can pick up that thread without you having to explain everything again. And since semantic memory complements structured memory, it doesn't only remember what you talked about: it also pulls up the destinations, dates, flights and hotels stored in your data.
Entity description
There are things you want the agent to know always (who you are, what you do, your situation) but that doesn't make sense to repeat every time you talk to it.
The entity description is a free-text field in each entity's settings where you write context you want the agent to keep in mind at all times. It's injected into every message you send. It's simply a way to give it persistent, useful context from settings.
Think of the description as a permanent introduction. You don't need to remind the agent you have diabetes every time you ask something health-related, or remind it your business runs in Colombian pesos every time you log an expense. You write it once and the agent always has it on hand.
Examples of personal description:
I live in Mexico City. I'm 32, a freelance designer.
I take metformin 850mg twice a day for type 2 diabetes.
My monthly food budget is $8,000 MXN.
I'm saving for an apartment: my goal is $500,000 MXN by December 2026.
My main income comes from UX design projects.
Examples of business description:
"El Grano" coffee shop in Bogotá. 3 employees.
Main currency: COP. Opened in 2022.
We sell specialty coffee and artisan pastries.
Our main supplier is Café de Colombia S.A.
Hours: Monday to Saturday, 7am to 7pm.
Average monthly revenue: $12,000,000 COP.
The description is per-entity. You can have a detailed personal description and a business one with completely different context.
The combination of these three forms (structured data for precision, semantic memory on demand for continuity, and explicit description for permanent context) is what lets Clatri know you in a way a general chatbot cannot replicate.
A single chat
In ChatGPT, Claude.ai or the Gemini App, you create separate chat sessions: one to ask for help with an email, another to talk about cooking, another about code. Each session is an independent thread with its own context, and if you want to pick up something you said in another conversation, you have to find it yourself.
Clatri works differently. Since its purpose is to be your agent for everything (finances, health, administration and productivity), it adopts a single continuous chat per entity. There are no sessions to open and close. You talk to it and the agent has your recent messages in mind; when needed, it searches your semantic memory and queries your database. It doesn't need separate sessions because its tools operate on your data: the real context isn't in the conversation, it's in your data.