Asking the bot questions
You can ask the bot a question about what has already been said: “What did we decide about the lobby mute button?” or “Who is working on the crossbow?” It searches the server’s messages and the meetings it has summarised (see Meeting transcripts), and writes a short answer with a link to every message or meeting it used. Those are its sources.
Asking is off unless whoever runs the bot has switched it on. If /ask does not appear in your server, it is off.
Way 1: the /ask command
Section titled “Way 1: the /ask command”With /ask only you see the answer unless you ask for it in the channel.
You type
/ask question: What did we decide about the lobby mute button?
Doge Bot replies
The team agreed to ship a host-only mute-all first and leave per-player mute for later [1]. A meeting on 13 Oct confirmed it [2].
[1] #design · Chris · 12 Oct
[2] Meeting: Design sync · 13 Oct
Only you can see this
The first [1] in the answer links to source 1, and so does its line under the answer. A source is a message, shown as #channel · Author · 12 Oct, or a meeting, shown as Meeting: Title · 12 Oct, which links to the summary the bot posted. An answer shows at most 8 sources.
Way 2: tag the bot
Section titled “Way 2: tag the bot”Put a mention of the bot (type @ and pick it, or pick the role the bot has) in a message that is a question. The bot reads the message to decide whether it is a question, a follow-up request or neither. For a question it shows that it is typing and then replies to your message in the channel, so everyone there can read the answer. It works in threads too.
You reply and tag the bot
@Doge Bot what did we decide about the lobby mute button?
Doge Bot replies
The team agreed to ship a host-only mute-all first and leave per-player mute for later [1].
[1] #design · Chris · 12 Oct
- The answer is public, so it uses less of the server than a private one. See What it searches.
- On a reply, the bot also reads the message you replied to first, so “what does this mean?” works.
- The question is your message without the mention, so it must be 500 characters or fewer. A longer one gets
Keep questions under 500 characters, or use /ask. - A tag that is only a greeting or a thanks gets no answer. “Remind me in 2h” is a follow-up, and “remind me what we decided about X” is a question.
The first 2,000 characters of a message that tags the bot, without the mention, are sent to Google’s Gemini AI service so it can tell what you want. See What the bot stores.
Two kinds of question
Section titled “Two kinds of question”- About a period or the whole server. “What came up this week?”, “What bugs were reported in the last 3 days?”, “What are the most requested features?” The bot reads the messages in that period (or the whole history, newest first, when no period is named) with the meetings held in it, groups what means the same thing and counts. The answer says which period it used. A question counts as one of these when it names a period, unless it is a reply to a message, or when it uses words such as “most”, “common”, “top”, “trend”, “summary”, “happened” or “came up”.
- Everything else. “What did we decide about the lobby mute button?” is a quick lookup: the bot starts from the best matches and searches further when they are not enough.
When you name a period, the bot sticks to it and ignores anything older:
| You write | The bot reads |
|---|---|
| “today” | From midnight today |
| “yesterday” | Yesterday only |
| “yesterday and today” | From midnight yesterday |
| “this month”, “this year” | From the 1st of the month, or from 1 January |
| “this week”, “past week”, “last week” | The last 7 days |
| “past month”, “last month” | The last 30 days |
| “last 3 days”, “past 2 weeks”, “over the last 6 months”, “past 2 years” | That many days, counting a week as 7 days, a month as 30 and a year as 365, up to 10 years. Number words up to ten work too, and so do “last few days” and “past couple of days” |
| “recently”, “lately”, “latest”, “newest” | About the last 14 days. This one is a hint: the bot may look further back |
“Today”, “yesterday”, “this month” and “this year” follow the time zone you saved in your profile, or UTC if you have not set one. See Timezone and working hours.
A question about the whole history reads at most the newest 3,000 messages, fewer when they are long, and says when it had to stop. Naming a period or a channel gives a more complete answer.
What it searches
Section titled “What it searches”| Source | What it can use |
|---|---|
| Messages | Messages in channels you can view right now, and the threads under them (a thread is a side conversation started from a message). Messages from bots, deleted messages and messages with no text are not used |
| Meetings | Summaries, action items and transcript text of meetings, but only when the summary was posted in a channel you can view right now |
Tickets in Linear are not searched.
A private answer (/ask without public) uses everything above. A public answer (a tag, or /ask with public: true) is narrower, so it never uses something a reader of that channel could not see. It uses only what you can see and that is also in one of these places:
- The channel the answer is posted in. In a thread that means the thread’s parent channel and its threads.
- Channels that
@everyonecan read, and the threads under them. Meetings follow the channel their summary was posted in.
A channel counts as open to everyone only when @everyone can read it and that channel has no permission override for a role or a person that blocks viewing the channel or reading its history. So a public answer given in a private channel can use that channel, but a public answer given anywhere else never uses it. A public answer stays posted after the messages it was built from are deleted.
The bot checks what you can see each time you ask, so a channel you lose access to drops out of your next answer. Having the Manage Server permission adds nothing, and two members can get different answers to the same question. If the bot cannot tell what you can see, or what everyone can see, it answers nothing rather than guess.
Meeting transcript text is kept only for a limited time, so the bot cannot quote an old transcript. See Meeting transcripts.
The bot answers only from what it finds. When it finds nothing, it says so in its own words and the answer has no sources. It does not remember earlier questions, except that a tag on a reply also reads the message you replied to.
Feedback
Section titled “Feedback”Under each answer are two buttons, 👍 Helpful and 👎 Not helpful. Only the person who asked can press them. Press one and the buttons disappear and you get a private Thanks for the feedback. The thanks is never part of the answer, so a public answer keeps its text for everyone. If someone else presses them, they see This button is not for you. If the vote cannot be saved, you see I could not record that. Refusals and error texts have no buttons. The vote is saved with the question so whoever runs the bot can see how answers are doing.
Limits
Section titled “Limits”| Limit | Value |
|---|---|
| Length of a question | 500 characters |
| Questions per person | 50 in any 24 hours, counted back from now |
| Questions across the server | 500 in any 24 hours, counted back from now |
| At once | One question of yours at a time, and 4 across the server |
Whoever runs the bot can change the two daily numbers. A question counts from the moment the bot starts working on it, including one that fails and a tag. A refused question does not count. The limits are checked when the question starts, so a busy moment cannot push the server past them. If you delete your message before the bot starts, it does not answer and nothing counts.
When you are over a limit, nothing is searched and the bot replies with the matching text from the table below. A refused /ask is shown only to you, at once. A refused tag gets a reply in the channel once per hour per person, whatever the reason; after that the bot only reacts to your message with ⏳. The same ⏳ appears when you tag the bot while it is still answering your last question.
Deciding what a tag means is also limited: the bot does it 20 times per person per hour, and up to a daily ceiling across the server that whoever runs the bot sets. Past either, a tag on a reply is treated as a follow-up request (if follow-ups are available to you) and any other tag is ignored. Use /ask instead.
What the bot says when it cannot answer
Section titled “What the bot says when it cannot answer”| You see | What it means |
|---|---|
Asking is not set up yet. Ask an admin. | The bot is missing the key for its AI service (a Gemini key). Tell whoever runs the bot. |
Ask a question. | Your question was only spaces. |
Busy right now, try again shortly. | Four questions are already being answered, or the limit check took too long. Try again in a moment. |
I am still answering your last question. | Wait for your last answer. |
You have asked 50 questions in the last 24 hours. Try again later. | You reached your daily limit. The number is the current limit. |
The daily question limit is reached. Try again later. | The server reached its daily limit. |
I could not check which channels you can see right now. Try again in a minute. | Discord did not answer. Nothing was searched. |
I could not find anything you have access to search. | Nothing is left to search: you can view no stored channel or meeting, or, for a public answer, none of them is open to everyone who can read the channel. |
I could not answer that right now. Try again in a minute. | The AI service failed. |
That took too long to search. Try a shorter period or a more specific question. | The search ran out of time (about 90 seconds). Name a shorter period or a channel. |
This only works in the server. | The question could not be tied to the server. |
Keep questions under 500 characters, or use /ask. | A tag whose question is longer than 500 characters. |
This button is not for you. | You pressed a button under someone else’s answer. |
This button is no longer used. Ask with /ask or tag me. | You pressed an old Answer privately button. Ask again. |
That button is no longer valid. | Ask again with /ask. |
From a tag, the texts for a failure, a search that ran out of time, a channel check that failed and “This only works in the server” add Use /ask to try again.
Why a tag gets no answer
Section titled “Why a tag gets no answer”| Reason | What to do |
|---|---|
| Asking is off, or the bot is missing its AI key. | Ask whoever runs the bot. |
| The bot did not read it as a question. | Phrase it as a question, or use /ask. |
The message has nothing but the mention, or it mentions everyone with @everyone or @here. | Add your question, and leave the everyone mention out. |
| Your question is longer than 500 characters. You get a reply once per hour, then only ⏳. | Shorten it, or use /ask. |
| The bot already worked out what your tags meant 20 times in the last hour, or the server reached its daily ceiling for that. | Use /ask, or wait. |
| The bot lacks View Channel, Send Messages (Send Messages in Threads in a thread), Embed Links or Read Message History in that channel. The question is skipped before it counts. | Use /ask, or ask an admin to give it those permissions. |
| You are over a limit and already got the one reply for this hour, or your last question is still running. | Wait. The bot reacts with ⏳. |
| You deleted your message before the bot started. | Tag again, or use /ask. |
For admins
Section titled “For admins”Asking is controlled by ASK_ENABLED (off by default), ASK_MAX_PER_MEMBER_PER_DAY (50), ASK_DAILY_CAP (500) and ASK_LOG_RETENTION_DAYS (30). MENTION_MAX_CHECKS_PER_DAY (2000) bounds how many tags the bot works out the meaning of, for follow-ups too. It also needs GEMINI_API_KEY (the key for Gemini), but not LINEAR_API_KEY. See Configuration.
REMINDER_ALLOWLIST does not limit who can ask. Each question is sent to Gemini, which costs money to use, so the two daily limits are the way to bound it.
- How asking works for the search tools and the rules behind the answer.
- What the bot stores for what is kept about a question.
- Follow-ups for the other thing a tag can do.