Skip to content

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.

With /ask only you see the answer unless you ask for it in the channel.

question text required

Your question, in your own words.

Allowed: 1 to 500 characters

public true or false optional

false shows the answer only to you. true posts it in the channel for everyone to read. A public answer uses less of the server, see What it searches. A refusal or an error is still shown only to you.

Default: false

Example of the bot in Discord

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

👍 Helpful 👎 Not helpful

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.

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.

Example of the bot in Discord

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

👍 Helpful 👎 Not helpful
  • 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.

  • 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 writeThe 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.

SourceWhat it can use
MessagesMessages 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
MeetingsSummaries, 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 @everyone can 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.

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.

LimitValue
Length of a question500 characters
Questions per person50 in any 24 hours, counted back from now
Questions across the server500 in any 24 hours, counted back from now
At onceOne 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.

You seeWhat 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.

ReasonWhat 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.

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.