Zarządzanie tokenami w Cursorze
Zarządzanie tokenami w Cursorze polega na wycinaniu kontekstu, z którego agent nie korzysta: reguł ładowanych przy każdym żądaniu, plików dołączanych „na wszelki wypadek”, długich historii czatu i powtarzanej eksploracji. Cięcie liczy się tylko wtedy, gdy stały zestaw zadań wzorcowych nadal przechodzi testy, a zmierzone tokeny i koszt modelu na zadanie spadają.
Limit wliczony w plan twojego zespołu kończy się w trzecim tygodniu miesiąca. Nikt nie zmienił sposobu pracy, ale w repozytorium jest już kilkanaście reguł ustawionych na stałe ładowanie, AGENTS.md i stary .cursorrules, które je powtarzają, oraz czaty ciągnące się przez 40 wiadomości, aż Cursor je skompaktuje, a agent ponownie czyta pliki, które już przeczytał.
Ta strona jest dla programisty, któremu limit kończy się za wcześnie, i dla tech leada, który chce utrwalić oszczędność dla całego zespołu i udowodnić ją liczbami. Ekonomię niezależną od narzędzia opisuje strona koszt kontekstu.
Co daje ci zarządzanie tokenami w Cursorze
Dział zatytułowany „Co daje ci zarządzanie tokenami w Cursorze”- Punkt odniesienia: tokeny i koszt modelu na zadanie, zmierzone przez
@cursor/sdkzamiast szacowane. - Hook w
.cursor/hooks.json, który loguje każdą kompakcję kontekstu, więc widzisz, które czaty się przepełniają i jak często. - Prompt do audytu reguł, który zamienia reguły ładowane zawsze na reguły o zakresie plików, reguły wybierane przez agenta albo skille.
- Prompt przekazania, który zastępuje długi czat krótką notatką i nowym czatem.
- Porównanie przed/po, które dowodzi, że oszczędność nie kosztowała jakości, oraz wskazaną osobę, która ją akceptuje.
Na co Cursor zużywa tokeny?
Dział zatytułowany „Na co Cursor zużywa tokeny?”Każde żądanie agenta wysyła do modelu więcej niż twój prompt. Kontekst wypełnia pięć rzeczy i nad większością z nich masz kontrolę.
| Konsument | Co go wypełnia | Na co masz wpływ |
|---|---|---|
| Pliki instrukcji | Reguły z alwaysApply: true, główny AGENTS.md, .cursorrules oraz (przy włączonym ładowaniu konfiguracji zewnętrznej) CLAUDE.md i CLAUDE.local.md | Zakres i długość reguł, zbędne pliki instrukcji |
| Dołączony kontekst | Pliki i foldery wskazane przez @, wklejone logi, obrazy | Ile dołączasz |
| Historia rozmowy | Każda wcześniejsza wiadomość, wywołanie narzędzia i jego wynik w czacie | Kiedy zaczynasz nowy czat |
| Eksploracja agenta | Pliki, które agent czyta, i wyszukiwania, którymi szuka kodu | Precyzja promptu, .cursorignore |
| Warstwa Cursora | Prompt systemowy i definicje narzędzi, w tym narzędzi z włączonych serwerów MCP | Tylko to, które serwery MCP są włączone |
Opis plików instrukcji na tej stronie pochodzi ze środowiska uruchomieniowego agenta dołączonego do @cursor/sdk 1.0.32 (sprawdzone 2026-09-26). IDE Cursora powinno korzystać z tej samej usługi reguł, ale nie dało się tego ponownie zweryfikować na cursor.com, bo strona była zablokowana. Środowisko obserwuje .cursor/rules/**/*.mdc, AGENTS.md, CLAUDE.md, CLAUDE.local.md i .cursorrules. Plik .cursorrules w katalogu głównym ładuje jako regułę stosowaną zawsze, więc zapomniany plik z dawnych czasów kosztuje tokeny przy każdym żądaniu. AGENTS.md traktuje jako instrukcje bezwarunkowo: plik w katalogu głównym przy każdym żądaniu, a zagnieżdżone pliki AGENTS.md w podkatalogach również. Natomiast CLAUDE.md i CLAUDE.local.md traktuje jako instrukcje tylko wtedy, gdy włączone jest ładowanie konfiguracji zewnętrznej. Jeśli twój zespół używa też Claude Code, sprawdź to ustawienie, zanim uznasz, że CLAUDE.md nic w Cursorze nie kosztuje.
O dwóch kolejnych rzeczach decyduje model: o rozmiarze okna kontekstu i o cenie tokena. Obie zależą od modelu i często się zmieniają, dlatego opisuje je hub modeli, a nie ta strona.
Zmierz punkt odniesienia, zanim cokolwiek wytniesz
Dział zatytułowany „Zmierz punkt odniesienia, zanim cokolwiek wytniesz”Oszczędność, której nie da się zmierzyć, to tylko opinia. Wybierz trzy zadania, które zespół robi co tydzień, zamroź je jako prompty i zmierz, ile każde kosztuje dziś.
-
Zamroź trzy zadania wzorcowe. Zapisz każdy prompt w
bench/, na przykładbench/task-01.md: „Add input validation toPOST /api/ordersand a test that rejects a negative quantity”. Każde zadanie potrzebuje kryterium akceptacji, które da się uruchomić, zwykle konkretnego pliku testów. -
Zainstaluj SDK jako zależność deweloperską. Wymaga Node.js 22.13 lub nowszego. W terminalu:
Okno terminala npm install --save-dev @cursor/sdk@1.0.32 tsxexport CURSOR_API_KEY="$(op read 'op://Dev/cursor-api-key/credential')"Druga linia odczytuje klucz przez CLI 1Password; użyj magazynu sekretów, który ma twój zespół. Nigdy nie wklejaj klucza do linii poleceń ani do pliku.
-
Uruchom każde zadanie skryptem pomiarowym poniżej, na jednorazowej gałęzi lub w worktree, bo lokalny agent edytuje pliki i uruchamia polecenia. Po każdym zadaniu uruchom kryterium akceptacji i zapisz wynik: przeszło albo nie.
-
Zapisz liczby w tabeli: zadanie, model,
inputTokens,cacheReadTokens,outputTokens,rawCostCents,chargedCents, wynik akceptacji. Ta tabela to twój punkt odniesienia.
// Run from the repository root: npx tsx bench/measure.mts MODEL_ID bench/task-01.mdimport { readFileSync } from 'node:fs';import { Agent } from '@cursor/sdk';
const [modelId, taskFile] = process.argv.slice(2);
const agent = await Agent.create({ apiKey: process.env.CURSOR_API_KEY, model: { id: modelId }, local: { cwd: process.cwd(), settingSources: ['project'] },});
const run = await agent.send(readFileSync(taskFile, 'utf8'));const result = await run.wait();const { cost } = await agent.getUsage();
console.log(JSON.stringify({ task: taskFile, model: modelId, status: result.status, ...result.usage, rawCostCents: cost?.rawCostCents ?? null, chargedCents: cost?.chargedCents ?? null,}));agent.close();MODEL_ID to identyfikator modelu z Cursor.models.list(); lokalny agent go wymaga. Dzięki rozszerzeniu .mts plik jest modułem ES, a tego wymaga await na najwyższym poziomie. settingSources: ['project'] ładuje reguły projektu, więc zmiany reguł widać w liczbach.
W @cursor/sdk 1.0.32 rawCostCents to koszt tokenów modelu bez rabatów (0 przy użyciu rozliczanym za żądanie), a chargedCents to kwota faktycznie naliczona przez Cursora, z rabatami i opłatą tokenową Cursora. chargedCents wynosi 0 dla użycia wliczonego w plan, BYOK i z grantów kredytowych, a result.usage liczy tokeny w każdym przypadku. Koszt dociera z opóźnieniem, więc jeśli brakuje cost, wywołaj getUsage() ponownie później. Klucze i uruchomienia w chmurze opisuje przewodnik po Cursor SDK.
Loguj każdą kompakcję kontekstu hookiem
Dział zatytułowany „Loguj każdą kompakcję kontekstu hookiem”Gdy czat zapełni kontekst modelu, Cursor go kompaktuje: starsze wiadomości zostają streszczone, a szczegóły przepadają. Tuż przed tym uruchamia się hook preCompact. Hook tylko obserwuje i nie może zatrzymać kompakcji. W tym samym środowisku z SDK hook dostaje na stdin JSON z polami trigger (auto albo manual), model, context_usage_percent, context_tokens, context_window_size, message_count, messages_to_compact i is_first_compaction, a zmienna CURSOR_PROJECT_DIR wskazuje katalog projektu.
{ "version": 1, "hooks": { "preCompact": [ { "command": "sh \"$CURSOR_PROJECT_DIR/.cursor/hooks/log-compaction.sh\"" } ] }}#!/bin/sh# Append one JSON line per compaction, then let the compaction proceed. Requires jq.jq -c '{at: (now | todate), trigger, model, context_usage_percent, context_tokens, context_window_size, message_count, messages_to_compact, is_first_compaction}' \ >> "$CURSOR_PROJECT_DIR/.cursor/compaction-log.jsonl"echo '{}'Dodaj .cursor/compaction-log.jsonl do .gitignore. Po tygodniu policz linie. Wiele kompakcji auto z wysokim message_count oznacza, że zespół trzyma czaty otwarte przez kilka zadań, co naprawia opisany niżej prompt przekazania. Zdarzenia hooków i blokowanie opisuje strona automatyzacja workflow w Cursorze.
Zacznij od narzutu reguł Cursora
Dział zatytułowany „Zacznij od narzutu reguł Cursora”Reguły to najtańsza poprawka, bo jedna zmiana działa na każde żądanie każdej osoby. To samo środowisko klasyfikuje regułę po frontmatterze w tej kolejności:
| Frontmatter | Kiedy reguła się ładuje | Do czego jej używać |
|---|---|---|
alwaysApply: true | Przy każdym żądaniu | Krótki opis projektu, twarde zasady bezpieczeństwa |
Ustawione globs: | Gdy agent pracuje na pasujących plikach | Styl języka, konwencje API dla jednego katalogu |
Tylko description: | Gdy agent uzna opis za istotny | Przewodniki po funkcjach, scenariusze migracji |
| Żadne z powyższych | Tylko gdy wskażesz regułę przez @ | Rzadko używane checklisty |
Reguła o zakresie glob dla tras API wygląda tak:
---description: Conventions for HTTP route handlers in src/apiglobs: src/api/**/*.tsalwaysApply: false---Follow the handler pattern in @src/api/users.ts: validate with zod at the top,return typed errors from src/api/errors.ts, and never read process.env in a handler.Reguła wskazuje plik z przykładem zamiast wklejać 200 linii kodu, więc agent czyta przykład tylko wtedy, gdy reguła się załaduje. Długa procedura niezwiązana z plikami, na przykład checklista wydania, lepiej pasuje do Agent Skill w .cursor/skills/<nazwa>/SKILL.md. W formacie Agent Skills agent widzi nazwę i opis każdego skilla, a treść czyta dopiero wtedy, gdy go używa. Projektowanie reguł szczegółowo opisuje strona reguły projektu w Cursorze.
Wprowadź zmiany na gałęzi, uruchom ponownie trzy zadania wzorcowe i zachowaj zmianę tylko wtedy, gdy każde kryterium akceptacji nadal przechodzi.
Jeden czat na jedno zadanie
Dział zatytułowany „Jeden czat na jedno zadanie”Historia rozmowy rośnie najszybciej ze wszystkich konsumentów, bo każdy wynik narzędzia zostaje w czacie. Zacznij nowy czat, gdy kończysz zadanie, przechodzisz do innej części kodu albo widzisz, że agent ponownie czyta pliki, które już otworzył. Nie czekaj na kompakcję: streszczenie, które powstaje, odzwierciedla wybór Cursora, a nie twój.
To, co ważne, przenieś notatką przekazania, nad którą masz kontrolę.
Potem otwórz nowy czat i wyślij: „Read @docs/handoff/current.md and continue with the step under Open.” Nowy czat startuje od 40 linii zamiast całej historii. Dodaj docs/handoff/ do .gitignore, chyba że zespół chce, żeby notatki trafiały do code review.
Dołączaj mniej plików do czatów w Cursorze
Dział zatytułowany „Dołączaj mniej plików do czatów w Cursorze”Osiem plików dołączonych „dla pewności” to opłata za osiem plików w każdej turze czatu. Daj agentowi jeden punkt wejścia i wzorzec do skopiowania, a dalej niech czyta tylko wtedy, gdy musi:
# Over-attachedAdd a delete endpoint @src/routes/users.ts @src/routes/posts.ts @src/routes/comments.ts@src/models/user.ts @src/models/post.ts @src/middleware/auth.ts @src/lib/db.ts
# PointedAdd DELETE /api/users/:id in @src/routes/users.ts, following the existing PATCH handlerin that file. Soft-delete by setting deleted_at. Add a test next to users.test.ts thatchecks a second delete returns 404.Wskazujący prompt jest też bardziej precyzyjny, co ogranicza eksplorację: przy niejasnym prompcie agent przeszukuje repozytorium, żeby zgadnąć, o co ci chodziło. Kod generowany, snapshoty i zależności vendorowane trzymaj poza zasięgiem przez .cursorignore, który konfiguruje strona strojenie Cursora pod duże repozytoria. Wzmianki @ i inne sposoby sterowania kontekstem opisuje zarządzanie kontekstem w Cursorze.
Serwery MCP kosztują tokeny w ten sam sposób: każdy włączony serwer dokłada definicje swoich narzędzi do każdego żądania. Wyłącz serwery MCP, których zadanie nie potrzebuje (serwer projektowy usuń z .cursor/mcp.json na gałęzi benchmarku), a potem uruchom ponownie jedno zadanie wzorcowe i porównaj inputTokens z tymi serwerami i bez nich.
Wybieraj model na podstawie benchmarku, nie przyzwyczajenia
Dział zatytułowany „Wybieraj model na podstawie benchmarku, nie przyzwyczajenia”Tańszy model, który potrzebuje trzech podejść, kosztuje więcej niż mocniejszy, który przechodzi za pierwszym razem. Zasada tej strony: zacznij od domyślnego modelu narzędzia i zmieniaj go tylko wtedy, gdy twoje własne pomiary tak wskazują. Lista modeli Cursora, ustawienia domyślne i ceny często się zmieniają i nie dało się ich ponownie zweryfikować dla tej strony, więc sprawdzaj je w selektorze modeli Cursora i w hubie modeli.
Aby porównać dwa modele, uruchom te same trzy zadania wzorcowe z każdym MODEL_ID i porównaj koszt surowy na zaliczone zadanie, a nie cenę tokena. Model, który nie przejdzie kryterium akceptacji, dostaje za to zadanie zero, niezależnie od tego, jak był tani. Kryteria decyzji opisuje strona wybór modelu w Cursorze.
Uruchomienia Cloud Agents: małe i zaplanowane
Dział zatytułowany „Uruchomienia Cloud Agents: małe i zaplanowane”Cloud Agents działają w izolowanych maszynach wirtualnych z pełnym środowiskiem deweloperskim, więc niejasne zadanie płaci za eksplorację na maszynie, której nie obserwujesz. Najpierw zaplanuj lokalnie w Plan Mode, który tworzy plan implementacji przed napisaniem kodu. Potem przekaż Cloud Agentowi plan i jedno kryterium akceptacji na krok. Dla agentów w chmurze getUsage() zwraca w runs rozbicie na uruchomienia, więc tokeny i koszt każdego z nich trafiają do tej samej tabeli odniesienia. Szczegóły: Cloud Agents i Automations.
Jak udowodnić, że oszczędność tokenów nie obniżyła jakości?
Dział zatytułowany „Jak udowodnić, że oszczędność tokenów nie obniżyła jakości?”Mniej tokenów to zysk tylko wtedy, gdy praca nadal przechodzi. Zmianę reguł, nawyków lub modelu akceptuj tylko z takimi dowodami:
| Dowód | Skąd pochodzi | Warunek zaliczenia |
|---|---|---|
| Kryteria akceptacji trzech zadań wzorcowych | Twoje testy, uruchomione po każdym zadaniu | Wszystkie przechodzą, jak wcześniej |
| Tokeny na zadanie | result.usage z bench/measure.mts | Mniej niż w punkcie odniesienia |
| Koszt surowy na zaliczone zadanie | getUsage().cost.rawCostCents | Mniej niż w punkcie odniesienia |
| Kompakcje na tydzień | .cursor/compaction-log.jsonl | Mniej kompakcji auto |
| Wycofane lub przerabiane zmiany agenta | Historia pull requestów z dwóch tygodni | Bez wzrostu |
Tech lead zatwierdza zmiany wspólnych reguł i domyślnych modeli zespołu oraz commituje tabelę benchmarku razem ze zmianą reguł, żeby następna osoba mogła ją powtórzyć. Każdy programista odpowiada za własne nawyki w czatach i czyta własny log kompakcji. Liczby dla całego zespołu i łączenie kosztu z pull requestami opisuje strona obserwowalność agentów.
Co się psuje, gdy tniesz tokeny w Cursorze?
Dział zatytułowany „Co się psuje, gdy tniesz tokeny w Cursorze?”| Problem | Jak z niego wyjść |
|---|---|
| Jakość wyników spada po zmianie reguł | Agent stracił potrzebny kontekst. Przejrzyj diff zmiany reguł, przywróć jedną regułę powiązaną z nieudanym zadaniem i powtórz benchmark. |
| Reguła o zakresie glob nigdy się nie ładuje | Glob nie pasuje do plików, które agent edytuje. Sprawdź wzorzec przez git ls-files 'src/api/**/*.ts' i popraw go. |
| Agent ignoruje regułę wybieraną na podstawie opisu | description nie mówi, kiedy reguła ma zastosowanie. Przepisz go jako wyzwalacz: „Use when adding or changing a database migration”. |
Tokeny nie spadają mimo odchudzenia .cursor/rules/ | .cursorrules albo AGENTS.md w katalogu głównym nadal ładuje się przy każdym żądaniu. Uruchom ponownie prompt audytu i scal lub usuń zbędny plik. |
| Nowy czat powtarza stare błędy | W notatce przekazania zabrakło decyzji. Dopisz decyzję z uzasadnieniem w sekcji Decisions i zacznij od nowa. |
chargedCents stoi na 0 | Użycie jest wliczone w plan, idzie przez BYOK albo z grantu kredytowego. Porównuj rawCostCents i tokeny. |
rawCostCents wynosi 0 | Model jest rozliczany za żądanie, więc nie ma kosztu tokenów do pokazania. Porównuj inputTokens i outputTokens. |
W wyniku brakuje cost | Dane rozliczeniowe przychodzą z opóźnieniem. Wywołaj getUsage() ponownie po kilku minutach. |
| Log kompakcji pozostaje pusty | Brakuje jq albo ścieżka hooka jest błędna. Uruchom skrypt ręcznie: echo '{}' | CURSOR_PROJECT_DIR=$PWD sh .cursor/hooks/log-compaction.sh. |
| Tańszy model przechodzi benchmark, ale zawodzi w realnej pracy | Trzy zadania były za łatwe. Dodaj do bench/ najtrudniejsze zadanie z ostatniego sprintu i porównaj ponownie. |
Dokąd dalej z kontrolą kosztów w Cursorze
Dział zatytułowany „Dokąd dalej z kontrolą kosztów w Cursorze”- Przed tą stroną: przegląd eksploatacji Cursora ustala kolejność zadań na etapie eksploatacji.
- Projektowanie reguł szczegółowo: niestandardowe reguły i szablony.
- Dashboardy zużycia i alerty: monitorowanie Cursora.
- Budżety i koszt zaakceptowanej zmiany dla liderów: ekonomia inżynierii agentowej.
- To samo zadanie w innych narzędziach: kontrola kosztów w Claude Code i zarządzanie kosztami w Codex.