Discord AI Bot Memory: What Your Server's AI Actually Knows
Your server gets its own AI memory, taught by your staff. What it sees on a ticket, what it cannot see, how facts get in, and where it goes stale.
Dani, Founder, AI Ticket Bot
16 min read
What is per-server AI memory?
Most AI support bots work from one knowledge base shared by every customer, or from whatever the model already knew about the world. Per-server memory is the opposite arrangement. Your community gets a store of its own, it starts empty, and it fills up with exactly what your staff decide to put in it.
That distinction sounds small until a member asks a question only your server can answer. "How long is the whitelist queue?" has no general answer. "Do I lose my rank if I leave for a month?" has no general answer. A shared FAQ engine either guesses or gives up. A per-server memory answers, because someone on your team told it once.
Shared knowledge base
- The same answers for every community using the bot
- Generic policies, because they have to fit everyone
- You edit around the vendor's defaults
- Improvements arrive when the vendor ships them
Per-server memory
- Answers that belong to your server and nowhere else
- Your refund window, your ranks, your queue times
- You start from nothing and add only what is true for you
- Improvements arrive the moment a staff member types one
That is also the trade. An empty memory answers nothing useful on day one. The first hour you spend teaching it is the hour that makes it worth having, and there is no way around that hour.
What does the AI actually see when it answers a ticket?
Three inputs, in this order, and nothing else.
The whole input, in order
- Everything said in this ticket
- The full conversation in that channel, from the first message to the one it is answering now, scoped to that one ticket
- What your staff taught it
- The server's memory, looked up against the question being asked rather than pasted in whole
- A one line label
- Added once to the first message, in the form
[Ticket #1234 · billing · opener: Alice]
If the ticket opened through a form, the questions and answers are attached to that first message too, so the AI reads them before it says anything. That is worth knowing when you design your form: a field you add is a field the AI gets to use.
The label is deliberately thin. The category name reaches the AI and the category's description does not, which is a good argument for naming a category the way you would explain it out loud. There is more on that in our guide to ticket categories and to form questions.
What the AI cannot see (and what it has to ask for)
This is the half that gets assumed wrong, so it is worth being blunt. None of the following reaches the AI:
Not visible to the AI
- Your pinned messages
- Your rules channel, and the numbering of your rules
- Channel topics and descriptions in bulk
- Your member list
- Other people's past tickets
Adding the bot to a server absorbs nothing. If the AI knows your rules, it is because somebody taught it your rules.
There are three things it can go and fetch during a ticket, and each one has a condition on it:
Fetched on demand, never in advance
- Channel list
- Only when the member mentions another channel by name or link
- Last messages in a channel
- Only after the member pasted a link or the channel list returned it, and only the most recent handful
- The opener's roles
- Only when their permission level is actually relevant to the question
All three are evaluated from the opener's point of view. If a member cannot see a channel, the AI cannot read it on their behalf, which means it can never quote a staff-only channel back to somebody who was not meant to see it. That is the same permission model the rest of the bot uses, covered in Discord ticket bot permissions.
The AI answers from what it was told, not from what it can reach.
How does a fact get into memory?
Three ways, and all three are somebody choosing to do it.
- /ai train
- Teach it in Discord. Type a fact, paste a policy, attach a document or hand it a link
- /ai improve
- Turn one closed ticket, where the AI got it wrong and a human fixed it, into a lesson
- /ai memory
- See everything it currently knows for this server
The dashboard mirrors the first two: a Train mode in the AI chat, and an Improve button on a closed ticket. Same permission gate on every surface, which is Manage Server or a staff role you have given training rights to. A ticket used from Discord shows as already used in the dashboard, and the other way round.
What you type is not stored word for word. It is rewritten once into a structured entry, the structured entry is what gets saved, and your original phrasing is discarded. This matters for two reasons: the AI reads a clean entry rather than your typo, and there is less raw text sitting in storage than you might expect.
/ai train Our refund window is 14 days from purchase, not 30. The 30 day figure in the old pinned message is wrong.

Saved. I will answer 14 days from now on.
How long do I have to ask for a refund?

You have 14 days from the date of purchase.
The full instructions live in how to train an AI ticket bot, and the closed ticket route has its own walkthrough in the AI that learns from your real tickets. Two things about that second route are worth repeating here, because they are the ones people assume wrongly:
One ticket, chosen by a person
Nothing is ingested in the background. If nobody picks a ticket, nothing is learned
"It learns from all your tickets automatically"
Not something we do, and a claim worth reading closely wherever you see it
The training document labels lines as User, AI or Staff
No names and no IDs, ever, because memory is long lived and a name in it is hard to remove
Storing the conversation as written
The words travel, the identities do not
A ticket the AI resolved on its own is refused, because there is no better answer inside it. A ticket with no staff reply is refused too, because the only substantive text would be the AI's own mistake.
What happens when two people teach it different things?
Contradictions resolve rather than accumulate. When something new arrives that says the opposite of something already stored, the newer statement replaces the older one instead of both sitting there for the AI to pick between. The older version is not deleted, it is marked as replaced and stops being used, which is why correcting a policy is a one line job rather than a hunt for the wrong version.
Near duplicates are caught before they are written at all. If a staff member teaches something that is already in memory in slightly different words, the write is blocked and the existing entry is updated or superseded instead. You do not end up with four slightly different versions of the refund policy because four people taught it.
Instructions and facts are also kept apart, which is subtler and more useful than it sounds:
- A fact
- Something looked up when a question touches it. "Support hours are 9 to 5 CET"
- An instruction
- A standing rule applied on every single reply. "Always ask for an order number before discussing a charge"
Teaching a rule as if it were a fact is the most common way a training session quietly fails, because a fact only surfaces when the question happens to match it, while a rule is in front of the AI every time it speaks. The system routes them for you and warns when something looks mis-filed, but knowing the difference makes your teaching sharper.
Can it read our website and our documents?
Yes, and more than most people expect. Two intake routes:
What training accepts
- A link
- Finds your sitemap, or follows same-site links when there is no sitemap, then reads up to ten pages per job, main content only with navigation and footers stripped
- Documents
- Ten attachments per message, twenty megabytes in total
- Text, markdown, CSV, JSON
- Up to 512 KB each
- Up to 16 MB
- Word documents
- Up to 8 MB
- Images
- Up to 5 MB each, read visually
In training mode every text document you attach is ingested rather than skimmed. The AI is not given the option to read a file and reply "got it" without saving anything, which was a real failure mode before that was made deterministic. Long documents keep their section headings, so a question later reads the relevant section rather than the whole handbook.
Size never fails a job. A large file simply costs more of your token budget, and the job stops cleanly when the budget runs out. Nobody should ever be told to shrink a file.
There are genuine gaps here and they are worth stating plainly:
Supported
- Your public website or documentation site, crawled a page at a time
- Handbooks, policies and exports as PDF, Word, markdown, CSV or JSON
- Screenshots and images, read for what is in them
- Text pasted straight into a training message
Not supported
- Code repositories. There is no GitHub or Git ingestion
- Video and transcripts. There is no YouTube ingestion
- Live sync from Notion, Confluence or Google Drive. You can export and upload, but nothing stays connected
- Scheduled re-crawling. Your site changes, your memory does not, until somebody re-runs the job
- Your own Discord channel history as a source you can point at
Does it look things up on the web?
It can, and the ordering is the important part. Anything about your products, your prices, your policies or your procedures must come from your own memory. Web lookup exists only for current outside-world information that memory cannot contain, and it is capped at three searches inside a single reply.
It runs on Brave Search, which is disclosed as a sub-processor in our privacy policy, and only the search terms leave, never the ticket conversation. It is a per-server switch, on by default, and it is metered against the same token budget as everything else rather than billed separately.
How much can one server's memory hold?
The default ceiling is a thousand live entries per server, adjustable upward if a community genuinely outgrows it. Because each entry is a structured document rather than a one-line note, a thousand of them holds a great deal more than the number suggests.
The limit that actually binds first is your daily token budget, which is what both answering and teaching draw on:
Daily and monthly AI tokens
- Free
- 50,000 a day, 500,000 a month
- Premium
- 250,000 a day, 3,000,000 a month
- Pro
- 1,000,000 a day, 15,000,000 a month
- Enterprise
- Set per agreement
When the cap is reached the AI stops cleanly and tickets keep working manually. There is no overage bill and nothing breaks. What that budget buys in practice is covered in how much an AI ticket bot costs.
What language is our memory stored in?
Memory is stored in English regardless of the language it was taught in, and replies come back in the language the member wrote in. A policy your team teaches in English answers a question asked in Portuguese, and neither side has to think about it.
That is a bigger deal for mixed communities than it looks, because it means you maintain one set of facts instead of one per language. The wider language story, including the thirty seven languages the bot's own interface is translated into, is in multi-language Discord support.
Can we see and edit what the AI knows?
All of it. The Memory tab in your dashboard lists every entry with its title, full text, tags and type, and gives you four things worth doing about once a month:
The "most used" count is the one people overlook. An entry sitting at zero uses after a month is either a fact nobody asks about, or a fact worded so differently from how members actually ask that it never gets found. Both are useful to know, and neither is visible any other way.
Reading a memory that belongs to a different server is not possible even with its exact identifier. The lookup checks ownership before it returns anything and reports a foreign record as not found. That is a read-time check rather than a filter applied afterwards, which is the difference between separation you can rely on and separation you hope holds.
Why the AI never mentions its own memory
There is a deliberate rule that the AI must never expose the memory system to the person it is talking to. It does not say "brain", "memory", "my knowledge base", "let me search" or "the system". It answers as someone who knows the answer, or admits it does not know and hands off.
This came from a real incident. An earlier version of the instructions used the word "brain" internally, and the AI parroted it back to a Discord member, telling them what "the brain here focuses on". It read exactly as badly as it sounds. Members are talking to your support, not to a retrieval interface, and the fix was to strip the internal vocabulary out entirely.
The AI should sound like a person who knows or does not know, never like a search box with a personality.
That rule is also why you cannot judge from a ticket whether an answer came from memory. If you want to know, the Memory tab's usage counts will tell you, and the ticket transcript will show you exactly what was said.
Where per-server memory is the wrong tool
The honest list. If any of these are dealbreakers, this is not the right approach for you, and it is better to find that out now.
A good fit
- Your answers are specific to your community and change over time
- You have at least one person willing to sit down once and teach it properly
- Most of your tickets are questions with a knowable answer
A poor fit
- You want zero setup. An empty memory is genuinely empty, and that first sitting is unavoidable
- You want the AI to profile individual members across tickets. It does not, by design
- You need your website re-read automatically when it changes. Re-running a crawl is a manual decision
- You want a job that stopped on budget to pick up where it left off. Resubmitting starts a fresh pass over the same source and pays for it again, though it will not create duplicate entries
- Your support runs on email, SMS or phone. This is Discord only
Two of those deserve a sentence more. A wrong fact taught confidently stays wrong until a person fixes it, so treat training the way you would treat editing a pinned message. And because nothing re-crawls on a schedule, the most common cause of a stale answer is not the AI at all, it is a policy page that changed three months ago and a training job nobody re-ran.
The one thing we would fix first if you asked
Scheduled re-crawling. Every other gap on that list is a deliberate choice with a reason behind it, but "your site changed and your memory did not" is the failure that will bite a real server hardest, because nothing about it is visible until a member gets an out of date answer. Until it exists, the workable habit is to re-run the crawl on the same day you update a policy page, and to check the "most used" list once a month for entries that no longer match reality.
What happens to our memory if we remove the bot?
Everything tied to your server is purged forty eight hours after the bot leaves. Memory, transcripts, panels, blacklist entries and audit rows. The delay is there so an accidental kick or a permissions mistake can be undone. After it, the data is gone and adding the bot back gives you an empty memory.
Individual members are covered separately. A member can have their data exported or erased across everything the AI holds for them, which is what makes the arrangement workable under GDPR. The details are in our privacy policy.
For the record on where processing happens: messages are processed by our own AI platform (Nexus) and Anthropic's model API. Nothing is sent to other AI providers, and we keep memory on our own infrastructure.
The short version
Per-server memory is a contract, not a mood. The AI knows what is in this ticket, what your staff taught it, and one line naming the ticket. It does not know your pinned messages, your rules channel or your member list, and it will not learn any of them by sitting in your server. What it does know, you can read, search, correct and delete.
That is a smaller claim than "our AI understands your community", and it is the one we can actually stand behind. It is also the easiest thing in this article to check for yourself, on the free plan, in about five minutes:
Add the bot and open a ticket
Ask it something only your server can answer. It will not know, and it will say so
Teach it one fact
Run
/ai trainwith your refund window, your queue times or any policy you repeat weeklyAsk the same question again
Open a second ticket and ask it exactly what you asked the first time
Check the receipt
Open the Memory tab, find the entry you just created, and read back what it actually stored
- 180,000+
- Tickets handled over the bot's lifetime
- Roughly half
- Closed without a human
- 3,000+
- Discord communities
How we measured this
- Sample
- More than 180,000 tickets, V1 and V2 combined
- Window
- The bot's lifetime, up to 14 August 2026
- Definition
- Closed without a human means the ticket was closed without being escalated to a staff member
- Where it comes from
- The public live counter at /api/stats/global, which anyone can call
Sources and further reading
- Live figures, updated continuouslyServer count, lifetime tickets and the AI-resolved share
- Plans and token budgetsRendered from the live catalogue, not typed into a page
- Uptime and incident historyNinety days, including the bad days
- Factual reference for AI modelsWhat we do and do not claim, in one place
Keep reading
Frequently asked questions
It is a store of facts and procedures that belongs to one Discord server and is used only in that server. Your staff put things in it by teaching the bot, and every answer the AI gives in your tickets is drawn from it. Two servers running the same bot have two completely separate memories, so what you teach never reaches anyone else and nothing another community teaches reaches you.
No, and this is the part most people get wrong. Nothing is absorbed just because the bot is in your server. It does not read your pinned messages, your rules channel, your channel topics or your member list. Everything it knows about your community was deliberately put there by a staff member. It can look at a specific channel during a ticket, but only when the member references that channel first, and only channels that member can already see.
No. Each server's memory is separate and the separation is enforced when a record is read, not just by convention. If a request asks for a memory that belongs to a different server, the answer is that it does not exist. There is no shared pool, no cross-server training set, and nothing you teach is used to answer anyone else's tickets.
The default is one thousand live entries per server, and each entry is a full document rather than a single sentence, so a thousand entries covers a large policy handbook comfortably. The limit is adjustable if a server genuinely outgrows it. In practice the ceiling that matters first is your daily AI token budget, not the entry count.
Not as a profile. Each ticket is its own conversation, and when a ticket closes its channel is deleted. What carries from one ticket to the next is the shared server memory, not a record of who said what. So if the AI learned something useful from a conversation, it is because a staff member chose to teach it, and the teaching document is labelled by role rather than by name.
Everything tied to your server, including the memory, transcripts, panels and audit records, is purged forty eight hours after the bot leaves. That window exists so an accidental kick can be undone. After it passes the data is gone and re-adding the bot gives you an empty memory again.
Yes. The Memory tab in the dashboard lists every entry with its title, full text, tags and type. You can search it, sort by how often each entry has actually been used in the last thirty days, describe a change in plain language and let the AI apply it, or delete an entry outright. The same list is available in Discord with the admin only command that shows what the AI knows for your server.
It’s not just an AI, it’s your AI.
See it on your own server.
Add the bot free, teach it a few of your most common answers, and watch it clear the repeat tickets on its own.
Free plan, no card. Your first panel starts 14 days of Premium.
Keep reading.
All articlesDiscord Ticket Close Requests: Ask First, Close on a Timer
Staff can ask the opener whether a ticket can be closed, with a deadline attached. What the member sees, the four ways it ends, and why silence closes it.
9 min read
Discord Ticket History: How Members Find Their Own Past Tickets
Closing a ticket deletes the channel, but the member keeps the record. How they find their old tickets and transcripts, and what the history deliberately hides.
8 min read
Discord Saved Replies: What Belongs in the Library
A saved reply is a staff message, so every one you send ends the AI's turn. What to keep in the library, what to teach the AI instead, and where the limits sit.
9 min read