Cut your Grok Bot team’s usage
Most of the bill is bots re-reading the chat. Count the wake-ups, give the project one lead bot, and count again.
How to get this live in your business
You type “thanks” into a channel with four bots in it. Three of them read the whole conversation to work out whether that was meant for them, and two write back “you’re welcome”. Every one of those reads and replies comes out of your weekly usage. The work you wanted done was finished a message ago. That pattern, not the work itself, is where most of a Bot Team’s usage goes, and it is the easiest part to fix.
In short
- Where it goes
- Bots re-reading the conversation. A group chat multiplies it: write without an @ and every bot in the group reads it to decide who answers.
- The fix
- One lead bot per project. Shared state in a notes file. Specialists called by direct message for real work, not kept in the room.
- Three quick wins
- @ the lead instead of the room. A quiet rule on every bot: no acknowledgements. A fresh chat when one gets long.
- How you know
- A seven-message test, run before and after, counting the bots that wake. The harness is free and open source.
Take the spec to Claude, ChatGPT or Copilot. The sentence to paste is one click away.
Want the whole thing by email?
This paper, plus the rest of the library. One click to stop them.
1. Where the usage goes
Grok Bot measures usage in agent steps and tokens, not in messages. Each time a bot runs, it reads its instructions, its tools and the conversation so far, then does the work. In a long chat, the reading dwarfs the work. Cursor’s own staff put it plainly when people asked why their totals were so high: each run re-sends the conversation’s context.
A group chat multiplies that. Grok Bot groups hold two to six bots, and xAI’s guide says to “write normally to let the participating Bots decide who should respond”. A bot cannot decide without reading, so a message with no @ is read by every bot in the room.
Then the replies. xAI is explicit: every bot reply counts toward your usage, including replies in a group and messages between bots. Each reply also makes the conversation longer, so every later read costs more. Four bots saying “got it” is four billed turns, and a longer chat for all of them.
So the lever is not shorter prompts. It is fewer bots reading on each message, and less for them to read when they do.
2. One lead bot per project
- One lead bot owns the conversation. You talk to it, not to the room. If you followed how to set up a Bot Team, this is your manager bot.
- Shared state lives in a notes file.Open tasks, decisions, who owns what, the job ids. Bots read it when they need it, not the whole history. In the Bot Team guide this is the board. It has to sit somewhere every bot can reach, because each bot’s own memory and chats are private.
- Specialists are called for real work.The lead sends a specialist a short brief by direct message and points it at the notes file. The specialist does the step, reports back, and goes quiet. It does not sit in the room reading every “ok”.
- Every bot gets the quiet rule. Ask each one to remember it.
Do not reply with acknowledgements. Only reply if you have something to contribute or were @-mentioned. Do not message other bots unless the lead bot asked you to.
A standing brief for the lead:
You are the lead for this project. I talk to you, not to the specialists. Keep the project's shared state in the notes file: open tasks, decisions, who owns what, the job ids. Update it when something changes. Keep it short: state, not history. When a task needs a specialist, send that bot a direct message with a short brief and point it at the notes file. Do not paste the conversation. When it reports back, update the notes file and tell me in one line. When this chat gets long, write a handover into the notes file and tell me to start a fresh chat. Do not reply with acknowledgements.
You do not have to tear down a working channel to start. The first two wins (an @ on the lead, the quiet rule) work in the channel you have. The test in the next section tells you whether the rest is worth it.
3. Test it before you change it
Grok Bot does not show a wake count per message, and the usage percentage moves in coarse steps, so the only honest way to know what your layout costs is to run the same messages through it twice and count. We put the pieces in an open-source test harness on GitHub: an estimator, the test sequence, a compare script and the prompts. It needs only Python.
Step 1. Estimate, for free
The estimator models a group chat against a lead bot on the same messages, and spends no usage:
python -m harness.estimate --bots 5 --messages 20 python -m harness.estimate --bots 5 --messages 20 --directed-share 0.8 python -m harness.estimate --bots 5 --messages 60 --fresh-after 15
Swap the defaults for numbers from your own chats: how many bots, how often you @ one, how often they reply.
Step 2. Measure, on a throwaway group
- Make a test group with two or three low-value bots, so you are not paying to re-read a big history.
- Note your usage: under Usage at grok.com/dashboard on The X Subscription, or in Grok Bot under Settings, Usage & Billing on a legacy Cursor plan.
- Print the log (
python -m harness.sequence --run baseline > baseline.csv) and send these seven messages, one at a time:
| # | Kind | Message |
|---|---|---|
| 1 | Undirected | What's the status on the Smith job? |
| 2 | Directed | @LeadBot what's the status on the Smith job? |
| 3 | Acknowledgement | thanks |
| 4 | Acknowledgement | ok |
| 5 | Undirected | Can someone draft the quote for job 1042? |
| 6 | Directed | @LeadBot hand the quote for job 1042 to whoever drafts quotes. |
| 7 | Acknowledgement | great, thanks |
After each one, write down how many bots showed activity (in the group or in their own chat), how many replied, and the usage before and after. Leave a cell blank rather than guess.
Step 3. Ask the lead bot for its view
Paste the audit prompt into your lead bot. It changes nothing until you say so. Treat its counts as a second opinion beside your log, not as a meter.
List every group chat I'm in with more than one bot. For each, count how many bots woke up on my last 20 messages and how many actually replied. Propose one lead bot per chat and move shared context into a notes file. Show me first, change nothing until I confirm.
Step 4. Change one project, and run it again
Move one project to the lead bot and notes file, send the same seven messages as a second run, and compare:
python -m harness.compare baseline.csv lead-bot.csv
The compare script reports wakes per message, idle wakes (a bot read everything and added nothing) and the usage change, split by undirected messages, directed ones and acknowledgements. Read the wake counts first; the usage percentage is the check.
4. What the model shows
The estimator, with its default numbers: five bots, 20 messages, an 8,000-token base for every bot, each message or reply adding 400 tokens, and half the bots that read a message replying. These are a model, not a measurement. Your own run is the one that counts.
| Layout | Bots woken per message | Tokens re-read | vs lead bot |
|---|---|---|---|
| Group of five, you write normally | 5.0 | 2.17M | 5.3× |
| Same group, quiet rule on every bot | 5.0 | 1.41M | 3.5× |
| Same group, you @ the lead 8 times in 10 | 1.8 | 0.56M | 1.4× |
| One lead bot, notes file, specialists by message | 1.3 | 0.41M | 1× |
Three things stand out:
- The @ does most of the work. Addressing the lead instead of the room takes the gap from about five times to under one and a half, with no other change.
- Acknowledgements are not free. The quiet rule alone cuts the group’s re-reading by about a third, because every reply lengthens what every bot reads next.
- The gap grows with the chat. Run the same group to 60 messages and it re-reads nearly seven times what the lead bot does. Long group chats are where usage runs away.
5. Hand over to a fresh chat
Even a lone lead bot re-reads its own chat every time. When a project chat gets long, have the lead write a short handover into the notes file and start a new chat that begins from the notes, not the history. Cursor’s staff gave the same advice for long-running conversations: a fresh one cuts usage a lot.
In the model, a 60-message project handed over every 15 messages cuts the lead bot’s re-reading to a little over half what it was as one long chat, and the group’s to about 40%. The notes file is what makes it painless: the new chat already knows where everything is up to.
6. The order to do it in
- Baseline: the audit prompt, a usage snapshot and one run of the seven messages.
- Move one project to a lead bot and a notes file, with the quiet rule on every bot.
- Send the same seven messages and the audit prompt again.
- Compare wakes per message and the usage change.
- Move the next project only where the numbers say it is worth it.
Grok Bot changes most weeks, and what counts toward usage could change with it. That is why the test is the point, not our numbers: run it again when the product changes.
7. Questions
Why does my Grok Bot usage go so fast?
Mostly re-reading, not new work. Grok Bot usage is measured in agent steps and tokens, not messages, and every time a bot runs it reads its instructions and the conversation so far. In a group chat, a message without an @ lets every bot in the group decide whether to answer, and every reply in the group counts toward your usage, including "thanks" and messages between bots. The longer the chat, the dearer each of those reads.
Should I stop using group chats?
Not necessarily. A small channel with a manager bot is a good way to see a team work. The cheap habit is to @ the manager rather than write to the room, and to give every bot the quiet rule. Run the test sequence on your own account: if most messages still wake most bots, move that project to one lead bot and a notes file.
What is a notes file?
One short document every bot on the project can reach: open tasks, decisions, who owns what, the job ids. A Google Sheet, a doc or a file in a shared folder all work. A specialist reads it with a short brief instead of reading the whole chat. If you followed our Bot Team guide, the board is your notes file. It holds state, not history, so keep it short.
How do I see how much usage I have used?
On The X Subscription, under Usage at grok.com/dashboard. On a legacy Cursor plan, in Grok Bot under Settings, Usage & Billing. The percentage moves in coarse steps and every chat draws on the same weekly pool, so count the bots that wake on each message first and use the percentage as a check.
Is the test harness free?
Yes. It is open source under the MIT licence, needs only Python, and the estimator spends no usage at all. The live test is seven messages in a throwaway group with two or three bots, so it costs very little.
Does this apply to Claude?
The habits do: one bot that owns the conversation, shared state in a file rather than a long chat, and a fresh conversation when one gets long. The group-chat wake-up test is specific to Grok Bot, because that is where several bots share one chat.
Run the test on your own bots
The harness is free and open source: the estimator, the seven-message test, the compare script and the prompts. Rather we set the team up lean from the start? Tell us the job you want off your plate.