Skip to main content
By default, SAFIA only remembers the last 10 messages in a session. Long-term memory is different: it’s a persistent store of facts about you that survives across sessions, device changes, and days of inactivity. Once SAFIA knows you prefer to track spending in USD or that your savings goal is a house down-payment, it can use that context in every future conversation — without you repeating yourself. Memories are stored as vector embeddings, which means SAFIA searches them semantically, not by exact keyword. Ask “what do you know about my savings plan?” and it will surface relevant facts even if those facts were originally phrased differently.

How SAFIA stores memories

SAFIA is proactive about remembering. Whenever you share something meaningful — a preference, a goal, a habit — it saves that fact automatically in the background, so you rarely need to ask explicitly. That said, you can always instruct SAFIA directly.
1

You share something about yourself

Mention a preference, goal, or habit in casual conversation.
You: I want to save at least 20% of my income every month.
2

SAFIA stores the fact

SAFIA recognises this as a goal worth remembering and saves it in the background. It assigns it a category (in this case, goal) and stores it in your private memory store.
SAFIA: That’s a solid target — 20% savings rate. I’ll keep that in mind whenever we review your finances 💪
3

The memory persists across sessions

Days later, in a completely new chat session, SAFIA can reference what you shared.
You: How’s my saving going this month? SAFIA: Your income this month is Rp 8.000.000 and you’ve saved Rp 1.200.000 so far — that’s 15%, a bit short of your 20% target. You have about Rp 400.000 to go.
You can also ask SAFIA to remember something explicitly:
You: Please remember that I don’t want to track transactions in IDR — I use USD for everything. SAFIA: Got it! I’ll always use USD when recording your transactions and showing summaries ✅

Memory categories

When storing a fact, SAFIA assigns it one of these categories to help with retrieval:
CategoryExamples
personalName, age, city, job, family situation
preferencePreferred currency, favourite asset class, reply language
habitChecks finances every Sunday, always pays rent on the 1st
goalSave Rp 50 million for a car, pay off credit card by March
financeIncome structure, bank accounts used, risk tolerance
generalAnything that doesn’t fit the above

Recalling memories

You can ask SAFIA what it remembers about you at any time.
You: What do you remember about me? SAFIA: Here’s what I know about you so far:
  • 🎯 Goal: Save 20% of income every month
  • 💱 Preference: Track all transactions in USD
  • 📅 Habit: Usually reviews finances on Sunday evenings
  • 💼 Finance: Freelance income — paid irregularly, not monthly
Want me to update or remove anything?
You: Do you remember what I said about my investment preferences? SAFIA: Yes — you mentioned you prefer low-risk instruments and want to avoid individual stocks for now. Your focus is on gold and index funds.
You: Should I put my bonus into crypto or gold? SAFIA: Given that you prefer low-risk instruments and your current goal is to build a safety net, gold is a better fit right now. Crypto can be volatile and might derail your savings timeline.
SAFIA pulled the stored preference automatically — no recall command needed.

Forgetting a memory

If you change your mind or want to remove something SAFIA stored, just ask. SAFIA searches for the closest matching memory and deletes it.
You: Forget that I said I want to save 20% — I’m revising my goal to 15%. SAFIA: Done, I’ve removed that. Would you like me to remember the new target of 15% instead? You: Yes please. SAFIA: Saved! Your savings goal is now 15% of monthly income 🎯
You: I’m switching back to IDR — please forget the USD preference. SAFIA: Got it, I’ve removed the USD preference. I’ll use IDR for all records and summaries going forward.
Deletion is irreversible — once a memory is removed, SAFIA cannot recover it. If you delete something by mistake, simply tell SAFIA the correct fact again and it will store a fresh copy.

Privacy

Per-user isolation

Every memory belongs exclusively to your Telegram user ID. Other users cannot read, search, or modify your memories — ever.

No memory sharing

Even if SAFIA is deployed in a shared environment, the vector search is always scoped to the requesting user. There is no cross-user retrieval.

You control deletion

You can remove any individual memory by asking SAFIA to forget it. Memories are not rotated or auto-expired.

Sensitive data

Avoid storing passwords, PINs, or private keys as memories — SAFIA is a finance assistant, not a password manager, and it will remind you of this if you try.

Practical use cases

Set a savings or investment goal once and SAFIA will reference it automatically whenever the topic comes up.
You: My goal is to build a 6-month emergency fund — about Rp 30 million. SAFIA: Great target! I’ll track your progress toward Rp 30 million whenever we look at your savings.
Tell SAFIA how you like to categorise or record expenses so it doesn’t keep asking.
You: I always split food and coffee — coffee should go under Hiburan, not Makanan. SAFIA: Noted! Coffee will be categorised as Hiburan from now on.
If your income is irregular, project-based, or involves multiple streams, tell SAFIA once so it always interprets your numbers correctly.
You: My salary comes in two parts — base salary on the 25th and a commission payment on the last day of the month. SAFIA: Thanks for letting me know. I’ll treat both transfers as parts of your monthly income when calculating your totals.
SAFIA can keep track of life events that affect your financial context.
You: I just got married, so some of my expenses are now shared with my spouse. SAFIA: Congratulations! 🎉 I’ll keep in mind that some expenses are shared. Want to set up a shared category for joint household costs?
You don’t need a special command to trigger memory storage — just talk naturally. SAFIA listens for meaningful facts throughout every conversation and stores them in the background.