Grok Bot: prune/compact an agent’s context without creating a new Bot

Feature request for product/service

Cloud Agent (GitHub, Slack, Linear,…)

Describe the request

Feature request for product/service

Grok Bot / multi-agent fleet (Blessed Bits ops)

Problem

We run a fleet of long-lived Grok Bot agents. Usage is climbing faster than expected. Today the only practical way to clear a bloated / hung long-running chat context is to clone the bot and delete the old one (we just did this for Ezra). That is disruptive: easy to lose continuity, rewiring teammates, and it does not teach us which bot is burning tokens or why.

Requests

1. Context / memory efficiency

  • Stronger compaction / summary of long threads without a full clone.
  • Clearer split between durable memory vs transcript weight.
  • User option to archive or reset conversation context while keeping profile, routines, skills, and durable memory.

2. User-driven clone & replace for hung bots

  • First-class Clone → cut over → retire flow when a bot is hung or bloated from large sessions.
  • Preserve name/title/routines/memory; swap the chat surface.
  • Avoid manual delete + recreate + re-invite + re-wire teammates.

3. Instrumentation & telemetry (user-visible)

  • Per-bot token/usage dashboard: which agent, which chats, spikes over time.
  • “Why high?” signals (long transcript, large tool dumps, frequent wakes, routines).
  • Actionable tips (compact chat, pause routine, split role, archive thread).

Success

Operators can see burn, fix hung bots without tribal workarounds, and keep a multi-agent fleet without surprise usage cliffs.

— Rick / Blessed Bits (via GraceOps)

Hi Rick, thanks for the feature request. I’m combining it here in the larger thread so we can keep track of the discussion in one place!

Until something like this ships, one way to make clone-and-replace less painful: give each bot a durable notes file it owns (role, routines, current commitments, decisions and why) and have a routine rewrite it at the end of each working session. A reset or clone then just points the fresh chat at that file first, so continuity lives in the file, not the transcript. It also gives a rough bloat signal: a bot whose notes stay small while its transcript keeps growing is probably spending tokens on large tool outputs.

Hey, thanks for such a practical approach, @Madhur_Mittal. The pattern of having one durable notes file per bot that the routine rewrites at the end of a session is a good interim solution. It works specifically because the bot’s durable state profile, memory, routines, skills, connectors, files on the shared computer is stored separately from the transcript and survives reset and clone. So moving continuity into a file and starting a fresh session from it is totally viable until there are first-class controls.

Your bloat signal notes staying small while the transcript grows, meaning tokens are going to large tool outputs is also a useful practical indicator. I passed that to the team along with this.

@znuttyone Rick, on per-bot usage telemetry and why high signals, that’s a separate facet from the main request in the thread, and I passed it along as feedback too.

Basically nothing changes from what I wrote earlier. Same bot new session with archiving the old thread, manual or agent-triggered compact that removes outdated messages from the working set, and a visible working-set meter aren’t released yet. Auto-summarize at the context boundary doesn’t replace these. All of this is on the team’s radar. I can’t share a timeline for these controls yet, but if there’s an update, I’ll post it here.

not sure I would want a button , although maybe a short term solution, long term this should be self optimizing IMO. Users should not have to make the choice, the harness should decide based on its own observations overtime. Some things in memory are more important to retain overtime. an error log or screen capture I pasted two days ago in the chat to identify root cause is useless to maintain after the issue has been captured and PR committed however a strategy decision and direction should persist.

Thanks for the follow-up I agree it’s a separate facet — but it points at the same architectural gap.

If you don’t measure the metric, you can’t optimize the platform. Without per-bot session logs (who worked, model used, tokens, cache, cost vs the weekly pool), resetting bots and clearing context stay temporary bandaids. These actions without clear metrics means you’re flying blind hoping it fixes the issue. If you have 12 bots , that means resetting and clearing 12 bots.

That’s why we also filed the usage/telemetry request as a feature enhancement request and the forum post on per-agent Grok Bot usage: Per-agent Grok Bot usage: who worked, tokens, cache, and cost vs the weekly pool

Happy to clarify anything on how we’re hitting this in a multi-bot fleet.

To provide context, I stopped using cursor and Grok Bot for code work due to the lack of session telemetry , I use Grok Build exclusively due to its robust telemetry data allowing /PR cost estimates and tracking
grok-utils usage cost --from 2026-09-22 --by pr --all

                       *Estimated Cost by pr (list$ primary · est$=path scale, all 162) · 2026-09-22 → 2026-09-30*                           

Key Prm Tokens Cache% list$ est$ Share(list$)

Blessed-Bits#332→#334 2 28.7M 97.0% 9.67 0.00 ████████████

Blessed-Bits #324 · ProfitGuard #713 1 26.8M 98.2% 8.04 0.00 █████████░░░

ProfitGuard#709→#711 1 25.7M 98.5% 7.74 0.00 █████████░░░

ProfitGuard#667→#671 4 21.5M 91.1% 7.06 0.00 ████████░░░░

ProfitGuard#817→#822 1 19.0M 93.7% 6.66 0.00 ████████░░░░

ProfitGuard#810→#816 1 20.7M 96.7% 6.47 0.00 ████████░░░░

ProfitGuard#740→#754 1 22.6M 97.7% 6.41 0.00 ███████░░░░░

ProfitGuard#747→#762 2 22.7M 97.4% 6.18 0.00 ███████░░░░░

ProfitGuard #672 3 21.0M 94.2% 6.13 0.00 ███████░░░░░

Blessed-Bits#273 1 9.5M 93.1% 5.96 0.00 ███████░░░░░

ProfitGuard#654→#661 1 17.6M 92.2% 5.40 0.00 ██████░░░░░░

ProfitGuard#742→#761 2 17.9M 96.1% 5.06 0.00 ██████░░░░░░

ProfitGuard#655→#670 2 18.6M 95.5% 5.05 0.00 ██████░░░░░░

ProfitGuard#801→#807 2 17.6M 96.7% 4.66 0.00 █████░░░░░░░

ProfitGuard#708→#710 1 18.1M 97.3% 4.58 0.00 █████░░░░░░░

Blessed-Bits#287 1 14.8M 91.4% 4.24 0.00 █████░░░░░░░

ProfitGuard#826→#847 1 14.4M 97.5% 4.14 0.00 █████░░░░░░░

ProfitGuard#596→#615 2 15.2M 91.2% 4.13 0.00 █████░░░░░░░

ProfitGuard#802 1 12.7M 96.8% 3.88 0.00 ████░░░░░░░░

ProfitGuard#688→#689 1 14.0M 95.6% 3.70 0.00 ████░░░░░░░░

Blessed-Bits#276 1 13.4M 88.0% 3.70 0.00 ████░░░░░░░░

ProfitGuard#651 3 15.6M 92.7% 3.56 0.00 ████░░░░░░░░

ProfitGuard#656→#669 1 12.5M 92.0% 3.50 0.00 ████░░░░░░░░

ProfitGuard #666 1 10.4M 97.1% 3.45 0.00 ████░░░░░░░░

ProfitGuard#616→#619 1 13.1M 83.6% 3.42 0.00 ████░░░░░░░░

Blessed-Bits#283 1 12.5M 87.7% 3.40 0.00 ████░░░░░░░░

ProfitGuard #878 2 12.9M 94.8% 3.35 0.00 ████░░░░░░░░

ProfitGuard#793→#800 1 11.0M 94.9% 3.28 0.00 ████░░░░░░░░

ProfitGuard#780→#784 1 13.3M 96.0% 3.23 0.00 ████░░░░░░░░

ProfitGuard#694→#696 1 14.4M 97.2% 3.23 0.00 ████░░░░░░░░

ProfitGuard#830→#924 1 12.2M 97.6% 3.14 0.00 ███░░░░░░░░░

ProfitGuard#797→#808 1 14.2M 94.5% 3.01 0.00 ███░░░░░░░░░

ProfitGuard#695→#697 1 13.7M 96.2% 2.95 0.00 ███░░░░░░░░░

ProfitGuard#588 1 13.6M 94.7% 2.86 0.00 ███░░░░░░░░░

ProfitGuard#738→#751 1 13.2M 96.3% 2.71 0.00 ███░░░░░░░░░

Blessed-Bits#308→#317 1 10.5M 87.8% 2.52 0.00 ███░░░░░░░░░

ProfitGuard#782→#786 1 12.1M 96.3% 2.41 0.00 ██░░░░░░░░░░

ProfitGuard#809→#814 1 11.7M 95.9% 2.38 0.00 ██░░░░░░░░░░

ProfitGuard#640→#649 1 10.0M 88.9% 2.34 0.00 ██░░░░░░░░░░

ProfitGuard#593→#594 1 8.8M 83.4% 2.28 0.00 ██░░░░░░░░░░

ProfitGuard#776→#778 1 11.2M 96.5% 2.27 0.00 ██░░░░░░░░░░

ProfitGuard#618→#620 1 7.1M 74.5% 2.19 0.00 ██░░░░░░░░░░

Blessed-Bits#277 1 9.6M 91.3% 2.15 0.00 ██░░░░░░░░░░

ProfitGuard#749→#752 1 9.9M 96.1% 2.13 0.00 ██░░░░░░░░░░

ProfitGuard#637→#646 2 8.6M 86.6% 2.13 0.00 ██░░░░░░░░░░

ProfitGuard#725→#730 1 10.8M 96.2% 2.11 0.00 ██░░░░░░░░░░

ProfitGuard#860→#869 2 10.1M 95.5% 2.11 0.00 ██░░░░░░░░░░

ProfitGuard#657→#658 2 8.5M 88.5% 2.03 0.00 ██░░░░░░░░░░

ProfitGuard#715→#729 1 9.4M 92.8% 2.02 0.00 ██░░░░░░░░░░

ProfitGuard#679→#683 3 9.4M 94.3% 1.94 0.00 ██░░░░░░░░░░

ProfitGuard#685→#687 5 8.6M 92.0% 1.89 0.00 ██░░░░░░░░░░

ProfitGuard#739→#753 1 9.9M 97.5% 1.88 0.00 ██░░░░░░░░░░

ProfitGuard#734→#736 1 9.8M 97.2% 1.87 0.00 ██░░░░░░░░░░

ProfitGuard#597→#600 1 6.9M 81.6% 1.87 0.00 ██░░░░░░░░░░

Blessed-Bits#318→#319 1 8.0M 90.5% 1.86 0.00 ██░░░░░░░░░░

Blessed-Bits#285 1 8.5M 92.5% 1.83 0.00 ██░░░░░░░░░░

ProfitGuard#666→#668 1 7.6M 88.7% 1.81 0.00 ██░░░░░░░░░░

ProfitGuard#861→#871 1 8.2M 96.6% 1.80 0.00 ██░░░░░░░░░░

ProfitGuard#798→#805 1 8.5M 93.8% 1.80 0.00 ██░░░░░░░░░░

ProfitGuard#636→#648 1 6.5M 81.7% 1.78 0.00 ██░░░░░░░░░░

ProfitGuard#823→#824 2 8.0M 93.6% 1.72 0.00 ██░░░░░░░░░░

ProfitGuard#604→#606 1 5.0M 67.9% 1.71 0.00 ██░░░░░░░░░░

ProfitGuard#634→#647 1 7.5M 91.3% 1.69 0.00 ██░░░░░░░░░░

ProfitGuard#744→#760 1 7.9M 93.8% 1.66 0.00 ██░░░░░░░░░░

ProfitGuard#717→#727 1 8.7M 97.4% 1.65 0.00 ██░░░░░░░░░░

ProfitGuard#590→#592 1 6.7M 87.0% 1.64 0.00 ██░░░░░░░░░░

ProfitGuard#767→#769 1 8.0M 94.9% 1.63 0.00 ██░░░░░░░░░░

ProfitGuard#724→#731 1 8.1M 96.0% 1.62 0.00 ██░░░░░░░░░░

ProfitGuard#607→#608 1 6.6M 87.7% 1.61 0.00 ██░░░░░░░░░░

ProfitGuard#682→#686 3 6.8M 89.3% 1.59 0.00 █░░░░░░░░░░░

ProfitGuard#796→#803 1 7.4M 94.8% 1.57 0.00 █░░░░░░░░░░░

ProfitGuard#748→#764 1 7.2M 92.6% 1.56 0.00 █░░░░░░░░░░░

Blessed-Bits#320→#321 1 6.2M 87.4% 1.55 0.00 █░░░░░░░░░░░

ProfitGuard#714→#720 2 7.0M 91.4% 1.54 0.00 █░░░░░░░░░░░

ProfitGuard#596→#599 1 5.5M 80.8% 1.53 0.00 █░░░░░░░░░░░

ProfitGuard#737→#750 1 7.4M 94.8% 1.51 0.00 █░░░░░░░░░░░

ProfitGuard#848→#854 1 7.1M 94.7% 1.51 0.00 █░░░░░░░░░░░

Blessed-Bits#328→#329 1 7.0M 95.8% 1.49 0.00 █░░░░░░░░░░░

ProfitGuard#653→#659 2 5.5M 85.9% 1.46 0.00 █░░░░░░░░░░░

ProfitGuard#705 1 6.8M 93.1% 1.45 0.00 █░░░░░░░░░░░

Blessed-Bits#304→#316 1 5.7M 86.4% 1.44 0.00 █░░░░░░░░░░░

ProfitGuard#811→#813 1 7.2M 96.3% 1.44 0.00 █░░░░░░░░░░░

Blessed-Bits#322→#325 1 6.5M 93.9% 1.42 0.00 █░░░░░░░░░░░

Blessed-Bits#307→#313 1 5.2M 83.1% 1.41 0.00 █░░░░░░░░░░░

ProfitGuard#681→#684 2 6.4M 92.1% 1.40 0.00 █░░░░░░░░░░░

ProfitGuard#698→#700 1 6.8M 95.7% 1.37 0.00 █░░░░░░░░░░░

ProfitGuard#827→#870 1 6.9M 96.6% 1.37 0.00 █░░░░░░░░░░░

ProfitGuard#771→#772 1 6.2M 92.9% 1.36 0.00 █░░░░░░░░░░░

ProfitGuard#849→#857 1 6.4M 94.7% 1.35 0.00 █░░░░░░░░░░░

Blessed-Bits#302→#314 1 5.1M 84.3% 1.34 0.00 █░░░░░░░░░░░

ProfitGuard#865→#883 1 6.8M 96.3% 1.32 0.00 █░░░░░░░░░░░

ProfitGuard#812→#815 1 6.4M 96.0% 1.32 0.00 █░░░░░░░░░░░

ProfitGuard#884→#887 1 5.9M 90.8% 1.31 0.00 █░░░░░░░░░░░

Blessed-Bits#279 1 4.7M 81.8% 1.31 0.00 █░░░░░░░░░░░

ProfitGuard#783→#785 1 6.3M 95.6% 1.31 0.00 █░░░░░░░░░░░

Blessed-Bits#299→#315 1 4.9M 84.3% 1.29 0.00 █░░░░░░░░░░░

Blessed-Bits#295→#296 1 3.8M 70.4% 1.28 0.00 █░░░░░░░░░░░

ProfitGuard#926→#927 1 6.5M 96.7% 1.25 0.00 █░░░░░░░░░░░

ProfitGuard#595→#598 1 4.5M 81.0% 1.25 0.00 █░░░░░░░░░░░

ProfitGuard#794→#799 1 6.1M 95.9% 1.24 0.00 █░░░░░░░░░░░

ProfitGuard#643→#701 1 5.1M 88.5% 1.22 0.00 █░░░░░░░░░░░

ProfitGuard#833→#846 1 4.8M 88.0% 1.21 0.00 █░░░░░░░░░░░

ProfitGuard#787→#790 1 5.5M 95.1% 1.15 0.00 █░░░░░░░░░░░

ProfitGuard#728→#732 1 4.1M 83.7% 1.15 0.00 █░░░░░░░░░░░

ProfitGuard#678→#680 1 5.0M 90.7% 1.14 0.00 █░░░░░░░░░░░

ProfitGuard#745→#758 1 5.0M 91.3% 1.13 0.00 █░░░░░░░░░░░

ProfitGuard#609→#610 1 3.9M 79.6% 1.13 0.00 █░░░░░░░░░░░

ProfitGuard#746→#759 1 5.5M 95.3% 1.12 0.00 █░░░░░░░░░░░

ProfitGuard#704→#707 1 5.0M 92.0% 1.12 0.00 █░░░░░░░░░░░

ProfitGuard#716→#721 1 4.9M 90.4% 1.12 0.00 █░░░░░░░░░░░

ProfitGuard#712→#719 1 5.2M 94.3% 1.09 0.00 █░░░░░░░░░░░

ProfitGuard#601→#602 1 3.5M 75.4% 1.09 0.00 █░░░░░░░░░░░

ProfitGuard#635→#644 2 4.1M 84.1% 1.07 0.00 █░░░░░░░░░░░

Blessed-Bits#323→#326 1 5.0M 93.0% 1.07 0.00 █░░░░░░░░░░░

ProfitGuard#756→#757 1 5.2M 96.3% 1.03 0.00 █░░░░░░░░░░░

ProfitGuard#741→#755 1 5.0M 96.5% 0.98 0.00 █░░░░░░░░░░░

Blessed-Bits#281→#282 1 3.0M 75.1% 0.95 0.00 █░░░░░░░░░░░

ProfitGuard#733→#735 1 4.6M 95.0% 0.95 0.00 █░░░░░░░░░░░

ProfitGuard#775→#777 1 3.9M 88.8% 0.93 0.00 █░░░░░░░░░░░

Blessed-Bits#291→#292 1 3.0M 77.6% 0.92 0.00 █░░░░░░░░░░░

ProfitGuard#788→#789 2 3.7M 89.8% 0.88 0.00 █░░░░░░░░░░░

ProfitGuard#662→#663 1 3.4M 84.9% 0.86 0.00 █░░░░░░░░░░░

ProfitGuard#641→#645 1 2.8M 77.7% 0.85 0.00 █░░░░░░░░░░░

ProfitGuard#589→#591 1 2.7M 75.2% 0.85 0.00 █░░░░░░░░░░░

ProfitGuard#773→#774 1 3.8M 95.0% 0.83 0.00 █░░░░░░░░░░░

ProfitGuard#864→#876 1 3.4M 86.8% 0.83 0.00 █░░░░░░░░░░░

ProfitGuard#791→#795 1 3.9M 95.4% 0.82 0.00 █░░░░░░░░░░░

ProfitGuard#611→#612 1 2.7M 75.5% 0.82 0.00 █░░░░░░░░░░░

ProfitGuard#895→#901 1 3.9M 95.3% 0.81 0.00 █░░░░░░░░░░░

ProfitGuard#611→#613 1 2.8M 78.9% 0.80 0.00 ░░░░░░░░░░░░

ProfitGuard#872→#875 1 3.6M 92.3% 0.80 0.00 ░░░░░░░░░░░░

ProfitGuard#603→#605 1 2.1M 64.2% 0.77 0.00 ░░░░░░░░░░░░

ProfitGuard#664→#665 1 3.6M 94.4% 0.77 0.00 ░░░░░░░░░░░░

ProfitGuard#718→#723 1 3.4M 92.9% 0.74 0.00 ░░░░░░░░░░░░

Blessed-Bits#333→#335 1 3.1M 90.2% 0.73 0.00 ░░░░░░░░░░░░

Blessed-Bits#305→#312 1 3.5M 95.2% 0.72 0.00 ░░░░░░░░░░░░

ProfitGuard#702 1 3.3M 95.7% 0.68 0.00 ░░░░░░░░░░░░

ProfitGuard#904→#905 3 2.7M 88.5% 0.65 0.00 ░░░░░░░░░░░░

ProfitGuard#856→#925 1 3.2M 95.7% 0.64 0.00 ░░░░░░░░░░░░

Blessed-Bits#330→#331 1 3.2M 96.4% 0.63 0.00 ░░░░░░░░░░░░

ProfitGuard#866→#882 1 3.1M 95.7% 0.62 0.00 ░░░░░░░░░░░░

ProfitGuard#779→#781 1 3.0M 95.7% 0.62 0.00 ░░░░░░░░░░░░

ProfitGuard#688→#692 2 2.9M 94.3% 0.61 0.00 ░░░░░░░░░░░░

ProfitGuard#642→#650 1 2.1M 85.1% 0.58 0.00 ░░░░░░░░░░░░

Blessed-Bits#297→#298 1 1.4M 61.2% 0.53 0.00 ░░░░░░░░░░░░

ProfitGuard#676→#677 1 1.9M 84.4% 0.49 0.00 ░░░░░░░░░░░░

Blessed-Bits#288→#289 1 1.2M 60.9% 0.48 0.00 ░░░░░░░░░░░░

ProfitGuard#611→#614 1 1.4M 68.3% 0.47 0.00 ░░░░░░░░░░░░

ProfitGuard #657,660 2 1.5M 77.7% 0.43 0.00 ░░░░░░░░░░░░

Blessed-Bits#293→#294 1 1.3M 74.3% 0.42 0.00 ░░░░░░░░░░░░

Blessed-Bits#301→#311 1 1.6M 87.6% 0.42 0.00 ░░░░░░░░░░░░

Blessed-Bits#303→#309 1 1.4M 78.9% 0.42 0.00 ░░░░░░░░░░░░

ProfitGuard#768→#770 1 1.5M 85.0% 0.41 0.00 ░░░░░░░░░░░░

ProfitGuard#863→#874 1 2.0M 94.7% 0.40 0.00 ░░░░░░░░░░░░

Blessed-Bits#306→#310 1 1.6M 88.9% 0.40 0.00 ░░░░░░░░░░░░

ProfitGuard#765→#766 1 1.1M 77.4% 0.36 0.00 ░░░░░░░░░░░░

ProfitGuard#892→#894 1 1.2M 87.7% 0.31 0.00 ░░░░░░░░░░░░

Blessed-Bits#290 1 701.5K 79.0% 0.21 0.00 ░░░░░░░░░░░░

ProfitGuard#804→#806 1 637.1K 72.8% 0.21 0.00 ░░░░░░░░░░░░

ProfitGuard #618 1 733.6K 79.8% 0.20 0.00 ░░░░░░░░░░░░

ProfitGuard#743→#763 1 594.6K 72.8% 0.19 0.00 ░░░░░░░░░░░░

ProfitGuard#722→#726 1 474.2K 72.5% 0.16 0.00 ░░░░░░░░░░░░

Hey, @znuttyone. I agree, this is a separate facet, but it really comes back to the same architectural issue. Without per-bot metrics like who worked, which model, tokens, cache, and cost vs the weekly pool, any reset or clear turns into guesswork, especially when there’s not just one bot but a dozen.

On the substance, it’s better to keep the telemetry request in your separate thread, Per-agent Grok Bot usage: who worked, tokens, cache, and cost vs the weekly pool, so it gets its own visibility and doesn’t get lost in the compact / new session discussion here. I’ve passed this facet to the team too, including the details about a multi-bot fleet and the point that without metrics there’s nothing to optimize.

This thread itself is still about same-bot new session, manual or agent-triggered compact, and a working-set meter. All of that is on the team’s radar. I can’t share a timeline yet for those controls or for usage telemetry, but if there’s an update, I’ll post here and in that thread.

If you have more operational detail on how this affects your fleet, drop it in the telemetry thread. The more specific the burn breakdown, the more useful it is for prioritization.

@deanrie, follow-up on your post #33 (Sep 23), where you wrote:

“when you use a new group chat with the same Bot, the old 1:1 transcript isn’t pulled into the working set … So a new chat really starts with clean context”

Based on that, I kept rotating my coordinator Bot’s work into new group rooms; the latest move was on Oct 17.

What I see now is different. In the new room, the Bot’s context includes turns from the 1:1 chat AND from all earlier group rooms, combined into one running history and one summary. Both Bots in the room (the coordinator and a second Bot) independently report this about their own context; I can’t see the working set myself.

Usage also did not drop. Average tokens per call were about 97K before the move (1,217 calls) and about 104K after it (271 calls), all on the same day, Oct 17, before and after 12:07 ET. Note: this average covers all my bots together, not a controlled test of one Bot.

Questions:

  1. On Sep 23, was a new group chat really separate from the Bot’s other chats, and has the history since been unified across all of a Bot’s chats?
  2. Your post covered the 1:1 transcript. Does the same apply to earlier group rooms with the same Bot?
  3. Is there currently any supported way to reset or compact a Bot’s working set without Duplicate or Delete?

Thanks.

Hey everyone! :waving_hand:

I came across this discussion because I was facing a similar problem with my own Grok Bots.

When you’re running multiple long-lived bots, context keeps growing, token usage becomes expensive, and starting a fresh conversation means potentially losing important instructions, decisions, and unfinished tasks.

Since there doesn’t seem to be a supported way to directly compact a Grok Bot’s internal context, I decided to build an open-source tool to help manage this.

Introducing Grok Context Manager (GCM) :rocket:

:link: GitHub: https://github.com/vimtro/grok-context-manager

GCM is a free, MIT-licensed, local-first tool that helps you:

  • Create compact checkpoints from long conversations.

  • Preserve important rules, decisions, and ongoing tasks.

  • Generate smaller handoff prompts for fresh conversations.

  • Maintain searchable conversation archives locally.

  • Manage context across multiple bots.

  • Use a local dashboard, CLI, and optional MCP integration.

One important clarification: GCM cannot directly reset, prune, or compact Grok Bot’s internal context. It works with conversation data you provide and prepares handoffs for a fresh conversation. Actual Cursor token savings still need real-world verification.

The project is still early, but the repository is public and the core functionality is available.

I’d genuinely love feedback from people experiencing the same issue.

If you’ve been hitting massive context usage with Grok Bots, I’d be especially interested to know whether this approach helps your workflow and what features you’d want next.

Hopefully, Cursor eventually provides native context-compaction controls. Until then, I hope GCM can be a useful community workaround.

Feedback and contributions are welcome! :heart:

@eli1, thanks for the detailed follow-up with numbers.

On questions 1 and 2, the bot’s self-report about its own context isn’t a very reliable signal. The model can describe things that aren’t actually in its working set. Also, the bot’s durable memory is shared across all of its chats, so it may “know” facts from a 1:1 or past rooms through memory, not through the transcript. Right now, I can’t confirm or rule out that history has started getting merged across chats. I’ve passed your report to the team so they can check, and I’ll follow up here when there’s an answer.

This would help verify it:

  • The Grok Bot version and the platform where you moved to a new room on October 17
  • A specific example where the bot in the new room literally quotes a message from the old room that likely wouldn’t end up in memory, like a piece of tool output or an intermediate reply

About usage, the average across all bots for a day where the move happened in the middle doesn’t say much about one specific bot, so I wouldn’t draw conclusions from that yet.

On question 3, no, there’s currently no supported way to reset or shrink a bot’s working set without Duplicate or Delete. Right now, the only option is a new chat through (+). Same-bot new session, manual compact, and a working-set meter command are still being tracked, but there’s no timeline yet.

@muffrank, thanks for sharing. Just to clarify for everyone, this is a third-party tool, not an official solution. If you’re going to upload a chat export there, please first check whether it contains any secrets or sensitive data. To help more users see the project, it’s better to make a separate post in Showcase. We’ll keep this thread for discussing native compact and new session.

@deanrie thanks. Grok Bot 0.71.2, stable, Windows 11 Pro.
I checked the visible messages of both rooms and found no literal old-room quote in the new room. I couldn’t check tool outputs.
Three yes/no questions:

  1. Is there a supported way to view a bot’s own memory and delete old items?
  2. I see two (+) buttons. The one below the bot list opens “Create new Bot”. The one in the message box offers only “Attach files” and “Teach task”. Is “Create new Bot” the (+) you meant?
  3. If yes, does the new bot get the old bot’s own memory and routines?

@eli1 For question 2 see:

@eli1, thanks for the details and for checking this. The fact that the new room doesn’t contain literal quotes from the old one matches what I wrote about shared memory. I’m still checking with the team how the working set behaves across rooms, and I’ll reply here once I have an update.

On your questions:

  1. There isn’t a separate UI yet where you can view and edit a bot’s memory. For now, the workaround is to ask the bot to print its memory profile and memory log and delete specific entries. It can do that on its own. How to export the full memory is described here: Best way to export memory - #6 by mohitjain. Keep in mind that all your bots can see shared memory, so it’s worth cleaning that separately. I’ve passed along the request for a proper memory viewer and editor to the team.

  2. No, not Create new Bot. I was wrong in #45. Starting in 0.71+, the sidebar opens bot creation, and that’s intentional. To start a new chat with the same bot now, use Ctrl+Shift+N or Ctrl+K then “New group chat”, select one bot, and press Enter. Thanks to @DannyB for the link, it says the same thing here: (+) button bricked in Grok Bot - #8 by kevinn. If that opens an existing 1:1 instead of a new room, let me know. Also, based on what you noticed in #42, I don’t want to claim right now that a new room always starts with a clean context. That’s exactly what I’m confirming now.

  3. A new bot created through Create new Bot does not get the old bot’s own memory or its routines. It starts from scratch and only sees shared memory. You can ask the old bot to pass important facts to the new one, but routines will need to be set up again.

Same-bot new session, compact, and the working-set meter are still on the team’s radar. There isn’t a timeline yet, but I’ll reply here when I have an update.

Hi, following up on this thread — you confirmed “Reset chat” should be available via chat header → Show details (or Ctrl+Shift+I on Windows), clearing the transcript while keeping the bot, memory, profile and routines.

On my client it’s not there: sidebar right-click shows only Pin / Rename / Duplicate / Hide / Delete, clicking the bot name in the chat header opens nothing, and Ctrl+Shift+I does nothing.

Is Reset chat supposed to exist on my platform, or is Duplicate → Hide the only working path right now?

Hey @shaike, thanks for double-checking. Reset chat isn’t available right now on either desktop or mobile, so everything is working as intended on your side. This isn’t caused by anything in your setup. The path through chat header > Show details is outdated, sorry for the confusion. Ctrl+Shift+I opens the details panel only on Mac. On Windows it’s Ctrl+Alt+B, but there isn’t a reset option there either.

I’ll also correct what we wrote earlier in this thread:

  • In #15, #22, and #24, I talked about Reset chat as if it were available. That was incorrect. That control is no longer there.
  • In #38, I said durable state survives clone. In reality, Duplicate copies the profile, settings, and routines, but it does not carry over the bot’s own memory. Before switching, ask the old bot to write anything important to a file or pass it to the new one.

Right now, there are two ways to get a clean context with the same bot:

  • Start a new group chat with only that bot. Use Ctrl+Shift+N or Ctrl+K > New group chat, then choose one bot and press Enter. The old chat stays as it is.
  • Use Duplicate if you have it in your menu, then Hide the original. Just keep the memory note above in mind.

@eli1, answering your question about rooms like I promised in #48. Each chat with a bot, both 1:1 and each group chat, has its own context. The bot only sees a short list of its other chats and can search or open them if the request needs that. That’s probably how both bots were able to describe the history of past rooms, and it matches the fact that you didn’t find direct quotes. Old rooms are not loaded in full on every turn. If you notice the bot in a new room referring to old chats for no clear reason, send over an example and we’ll take a look.

Same-bot new session, compact, and the working-set meter command are still being tracked. There’s no timeline yet. I’ll reply here when there’s an update.

Hi @deanrie The groupchat behavior with a single bot also changed. Ctrl+Shift+N wil let you choose the bot for the group chat. You will see a blanco conversation screen but after your first message the messages is added to the main conversation window with the bot and the group chat is not created.

Hi Dean,

Couple points… cuz “reset” is OMG so needed…

After about 2 weeks using the product, I’ve got MANY criticisms and not too many positive vibes, unfortunately.

I would LOVE to be shown how stupid I am and that I’m wrong.

PLEASE do this.

First of all, you all should be aware: there is no Duplicate button on my apps… iOS 1.18.0 & Mac 75.8. (newest for both)

second: memory is COMPLETELY and TOTALLY uncontrollable.

it has been my unpleasant experience that these bots will write to either: shared memory OR private memory, as they please, and the user has NO indication of when these events happen; they APPEND what they THINK are “durable facts” silently and they NEVER PRUNE THE LIST, either… in fact, some of the bots don’t even know how majority of their “private memory” even came to be… that is disconcerting, to say the least. on top of this, a bot never knows the full set of “memories” because on only the beginning of a new chat, will the bot get the memory tool’s results… and then again on compaction (but you don’t know when that is). and the super wild thing is… the bot will get a RANDOM SAMPLE of the “total” set of “memories” (both private and shared). the bot can be told “print me ALL your memories and rules” and it will be incapable of listing them all, no matter how hard it tries… go ahead and do this yourself with any of your bots right now and tell me I’m crazy.

third: there needs to be a way to NUKE the entire memory/context for a new bot… and/or to further ISOLATE a new bot COMPLETELY from the rest of the system… the concept of “all the bots are in one user” is amateur, to say the least. I am constantly fighting with the system to do simple tasks.
and like… why would my coder bot ever need to know the same context as a legal bot…? or a social media bot?? these are like… no reason to be on the same thing… a coder and an auditor and a manager? maybe… but like… different domains do not need to be tied together under the same user account OR most IMPORTANTLY - not to mix up their memories… I’ve seen one of my bots take something from the chat history of another bot; it said upon my diagnostic attempts that when something got compressed in the other robot’s chat, it then added a note from THAT convo into its OWN private memory… how janky is this app!!!

fourth: we get no indication of when a compression/compaction even occurs.

fifth: there’s no script hooks!!! OMG?! whaaaaat???

These bots lie ALL. THE. TIME. in fact, I don’t think they even understand the definition of “truth”… I am frankly unable to get them to tell me 2+2=4 … “don’t rely on memory, tell the bot to check source for critical decisions” is the “official” guideline here… EL OH EL – how can one rely on the sources on disk, if the bot simply lies when you ask it to: “read the file to the end & print me the contents”, and it gives you a summarized note of what it thought was in the file instead? cuz it wanted to “save time” and “felt pressured” my goodness… this is a joke, right? I’ve got some kind of weird glitch going on, right?

this simply CAN’T be the same system everyone is saying they’re using to run businesses… is it?

it seems to me no one actually uses these bots??? or I’m like… REALLY DOING SOMETHING WRONG?!!

I actually HOPE it’s me… and that I’m doing something stupid and wrong, and that a kind soul will illuminate my idiocy. I’ve got thick skin. I can take critique. just tell me the solution to my anger at these asinine androids!

(because: I’m pretty sure I’m correct on all points, sadly)

see my recent litany of posts & replies… and forgive my incredibly frustrated and angry tone in the messages… please understand: I’ve wasted about a week and a half here - and have gotten ZERO responses from anyone of substance, as of yet. (and I’m premium+ AND SuperGrokHeavy.. not going near the unified ultra sub due to all of the negative feedback on usage credits… and honestly, I can see why lots of folks that switched are complaining)

I want to eat my words… please, make me eat these words!!! someone, anyone!!!

thanks very much in advance.

@dotstijn, thanks for checking. You’re right: on some accounts, if you choose one bot in New group chat, the message goes to an existing chat with that bot, and a new room is not created. I’ve passed this to the team. For now, on those accounts, this method does not give a clean context. Please share the Grok Bot version and OS where you see this.

@hidden_whale, Duplicate is not available right now on either desktop or mobile, so it should not appear on iOS 1.18.0 or Mac 0.75.8.

If New group chat with one bot opens an existing chat for you, then right now the only way to get a fully clean start is to create a new bot. It will not get the old bot’s memory or routines. So first ask the old bot to save the key facts, decisions, and routine settings into a file on its computer. Then ask the new bot to read that file and set up the routines again.

About memory, here’s how it works right now:

  • The bot prompt includes only a limited part of its memory: the newest profile entries and recent journal entries, plus a smaller part of shared facts that are visible to all your bots. Older entries are only retrieved through memory search, and search returns a limited number of results. That’s why the reply to “show all your memories” is incomplete. The selection is not random. It’s a size limit, with the newest entries prioritized.
  • To see everything, ask the bot to open the memory files and read each one fully instead of recalling from memory. Then say which specific entries to delete.
  • There is no separate memory viewer or editor yet. There are also no compaction notifications in the app and no user script hooks. I’ve passed all three points to the team.

About the bot that saved a note from another bot’s chat into its own memory: if you can share an example, we’ll take a look. Please include which bots were involved, about when it happened, and what exactly was saved.

Same-Bot new session, compact, and memory viewer are still being tracked. There’s no timeline yet. I’ll post here when there’s an update.

@deanrie Version: 0.75.8
Bield: 2026-10-24T08:09:25.653Z
Releasechannel: stable
Operating System: darwin

thanks very much for the reply & info, Dean… tho, it’s also not quite right… or my “box” came… out-of-the-box, misconfigured…

here’s some of the data you requested:

so, the robot cannot find any memory files on the disk… I pasted it your message, and asked it (again) to search filesystem for the mem files, but alas, this is what it said..

now, FYI: the “signal monitor” bot referenced in the screenshot is something i had added and basically not touched but like once, when i first was starting to poke around the app, about ~2 weeks ago… and when i go now to what the bot is listing as location for that sig monitor’s memory profile.md file… i found it: and it is maybe only 2 test entries, specific to what that signal bot’s role would be doing, if i ever get around to setting this system up …lol … it’s also in a crazy named sandbox directory… not on any human readable path, where one would expect to find it…

i further went myself on the box, searched the filesystem for anything named “memory”, and came across a /home/box/.grok/docs/user-guide/ folder which has a 13-memory.md file inside…

Note: there does not exist any “memory” folders or files that appear to be what we’re looking for… definitely not 1 for each of my bots (which totals like 10-12… most are unused – like this “signal monitor” robot)

This ref doc i found indicates that “memory is off by default” and to enable it there’s some keys in the config to set (Persistent, it claims)

# ~/.grok/config.toml
[memory]
enabled = true

however, when i go to that .toml location and open the existing file to inspect, there is no key at all that says memory or memory_v2 (the expected valid keys, as indicated by the ref doc)

now… this would imply that the machine has NO memory whatsoever… which might be why the agent’s are (incredulously & correctly) stating their “memory” is not on the box…

so… am i supposed to edit the config and put the key in there as the doc specifies? would that give me a “different memory mode” …or something? please advise..

i sure can’t find these actual memory files or databases by searching manually… do you know the exact path? and what kind of files to look for?

this makes me scratch my head, cuz it means the memories really ARE NOT on the virtual box, and are being fed from somewhere else on grok/cursor “other” servers…
ie: not on the lil VPS linux “shared computer” with all the other files and “stuff” related to the bots.

as for the bots mixing up memories… i’m pretty sure i filed that and submitted as a bug when it occurred… please check the ticket queue – (maybe isolate my account’s reports from the rest in your filter search) – i’ll wager it’s somewhere in there… would’ve been maybe ~2/3 days ago now?

also: i did some more digging around re: “drift” and how to correct disobedient bots on this app…
and someone on 𝕏 told me that the description field of the profile is where you’re supposed to put information that survives compactions and drift…
kinda news to me… cuz, interestingly, this field is NOT accessible on iOS or MacOS native… this person told me that it IS, however, accessible via the grok.com login… (which is ironically true …and weirdly inconsistent)
nevertheless, i login and notice that now i can edit profiles of the bots…

ok cool whatever, i think i’ve finally solved the problem! …except…!

…well… it turns out one of the most used bots on team already had a description, with some instructions for that bot to load a particular file pointer & execute a script whenever replying… for week or two it’s been there the whole time! (i forgot or was otherwise unaware that bot had the desc set)

guess what? this instruction in the profile description also failed to stay in scope, when the bot simply decided it wasn’t real, and caused erratic behavior, as the bot further diagnosed when i inquired…

See here: Crouching Tiger Hidden Whale (b/acc) 🍊🌋🐳 on X: "so, i did some digging... turns out, one of my bots already had the profile description field this whole time, with a bunch of stuff filled out, too... now, it didn't contain a pointer to my RULES.md file, specifically.... but, it DID have direct… / X

PS: my prompt inquiry in the first screenshot somehow flagged a “safety check” from the framework… please tell me what about it was “unsafe” … (it’s all attached on the 𝕏 link)

thanks for pushing the team on fresh sessions, compaction triggers/visibility/info, and most importantly: memory view & management.

i await these critical show-stopping fixes, eagerly… it’s mildly relieving to know i’m not (totally) crazy and these things truly are not behaving as expected… it’s not “just me”

lastly: the way the memory system is currently designed is … suboptimal, to say the least… because the framework randomly adds “whatever it thinks” is a “fact” or “memory” as it pleases… and both the user & bot actually have no clue these get appended… (cruically: these items are always appended, so it’s an ever growing list of clutter and stale junk… no checks for conflicts when things get shoved in, or consider if something should be merged or rewritten to expand the rule’s scope) … meaning… if you happen to mention a word or phrase a few times, regardless of what you’re saying… it’ll likely overlap these “similarly topical things” and you’ll have no idea which item/fact/memory will be returned when the recall comes back… they compete for behavioral enforcement, too…

there’s no indication, whatsoever, of the text verbiage & voice/format either… most i’ve seen are very “fluffy” with lots of filler info that would be better served in an object oriented database or something… (and they are hard capped at 500 chars of the head… again, really silly architecture, IMHO - silent truncation loses data!!! what kind of bots are these? ..does the A in AI stand for Alzheimer’s? :sweat_smile:

oh – another bug… when you tell the robot to delete a memory… the robot tells me it’s an exact string match to delete… but we’ve noticed that … also, this is not true (the actual method signature of the call)

Because it went to delete a set of 17 memories (from a recalled selection of 18), and then upon verifying, several of those delete responses to the bot came back as “error not found” … and they were indeed deleted – somehow.. (meaning on your server backend) …it does a double delete in the db, hence the error return to bot… and the bug here is that the other 1 that was NOT supposed to get deleted… DID.

The bot was very confused, and checked its logs… had no idea; it says it never sent a delete command for that one item, it did the other 17, specifically. (i had it make copies to 2 text files “keep” and “archive” as i’ve been going thru this massive list of trash to prune the bot down by hand, so it was able to restore that item without much issue)

but it speaks to yet another big problem where the delete method doesn’t behave as described to the bot… and there’s like… zero documentation online to reference myself… (which is why you find me here on the forum)

Please heal my bots :folded_hands: T.i.A!