Przejdź do głównej zawartości

Kredyty, limity użycia i optymalizacja kosztów Codeksa

Zarządzanie kosztami Codeksa polega na tym, by limity planu, kredyty i wydatki na API wystarczyły na dłużej, dzięki kontroli czterech dźwigni: modelu i poziomu rozumowania (effort) w każdym zadaniu, kontekstu wysyłanego w każdej turze, liczby agentów działających bez nadzoru oraz ścieżki rozliczeń. /status, /usage, codex exec --json i OpenTelemetry pokazują, dokąd idzie zużycie.

Ta strona jest dla programisty lub tech leada, który odpowiada za Codeksa w zespole. Jest środa, tygodniowy limit prawie się skończył i nikt nie umie powiedzieć, czy winne było jedno długie zadanie w chmurze, nocna automatyzacja, czy to, że wszyscy uruchamiają GPT-6 Astra z wysokim poziomem rozumowania do rutynowych poprawek. Polecenia i klucze konfiguracji sprawdziliśmy 26 września 2026 r. na Codex CLI 0.157.1. Politykę wydatków obejmującą wszystkich dostawców opisuje strona zarządzanie kosztami AI.

  • Sposób, by widzieć zużycie dla sesji (/status, /usage), dla przebiegu headless (codex exec --json) i dla zespołu (OpenTelemetry)
  • Politykę modelu i poziomu rozumowania zapisaną w profilach config.toml, która kieruje rutynową pracę poza najdroższe ustawienie
  • Ustawienia kontekstu, dzięki którym tura nie wysyła ponownie instrukcji i wyników narzędzi, których nikt nie potrzebuje
  • Wzorzec ograniczania przebiegów codex exec bez nadzoru, które nie mają flagi limitu wydatków
  • Test, który dowodzi, że tańsza konfiguracja nie obniżyła jakości: koszt zaakceptowanej zmiany, a nie sam koszt

Sposób logowania decyduje o tym, gdzie mierzy się zużycie i gdzie możesz je ograniczyć. Najpierw znajdź swój wiersz:

Jak działa CodexGdzie widzisz zużycieCo je ogranicza
Logowanie przez ChatGPT (Codex jest w planach Plus, Pro, Business, Edu i Enterprise)/status i /usage w CLI; baner limituLimity planu w oknach pięciogodzinnych i tygodniowych; potem kredyty lub reset limitu, jeśli twój plan je oferuje
Logowanie kluczem API OpenAIRozliczenia twojego konta API OpenAIPłatność za tokeny według stawek API; ustaw alerty budżetowe na tym koncie
Codex z dostawcą Amazon BedrockRachunek AWSMechanizmy budżetowe AWS

Ceny planów i porównanie narzędzi są w analizie kosztów, a ceny modeli za token na stronie modeli. Ta strona ich nie powtarza, bo zmieniają się częściej niż poniższe rady.

Niezależnie od ścieżki zużycie napędzają te same cztery dźwignie:

  • Model i poziom rozumowania. GPT-6 Astra jest domyślnym modelem wbudowanym od CLI 0.153.4 i działa z poziomem rozumowania low, dopóki go nie podniesiesz. Własne opisy Codeksa przedstawiają GPT-6 Sol jako „Workhorse model for coding and everyday work”, a GPT-6 Luna jako „Fast and affordable model for easier tasks”. Tryb Fast dla Astry ma opis „2x speed, increased usage”. W GPT-6 Sol i GPT-6 Luna tryb Fast jest domyślnym poziomem usługi, a Codex opisuje go tylko jako „1.5x speed”; opis „increased usage” dotyczy trybu Fast w Astrze.
  • Kontekst w każdej turze. Każda tura wysyła ponownie łańcuch plików AGENTS.md (do project_doc_max_bytes, domyślnie 32 KiB), dotychczasową rozmowę i wyniki narzędzi, które w niej zostały. Okno kontekstu modelu w Codeksie ma domyślnie 272 tys. tokenów.
  • Agenci, na których nie patrzysz. Subagenci, automatyzacje i zadania w chmurze wykonują własne tury. Próby best-of-N w chmurze (codex cloud exec --env <ENV_ID> --attempts N "<zadanie>") wykonują zadanie N razy.
  • Przebiegi bez nadzoru. codex exec w wersji 0.157.1 nie ma flagi limitu wydatków (sprawdzone przez codex exec --help 26 września 2026 r.), więc pętla w CI działa, dopóki nie skończy albo dopóki zadanie nie zostanie przerwane.

Skonfiguruj widoczność kosztów Codeksa, a potem limity

Dział zatytułowany „Skonfiguruj widoczność kosztów Codeksa, a potem limity”
  1. Zapisz wersję CLI na każdej maszynie. Uruchom codex --version. /usage wymaga wersji 0.156.0 lub nowszej, a GPT-6 Sol i GPT-6 Luna wersji 0.155.0 lub nowszej. Osoby na różnych wersjach mogą nie pracować na tym samym modelu domyślnym (GPT-6 Astra jest domyślny od 0.153.4), więc ich zużycia nie da się porównać, dopóki wersje się nie zgadzają. Wyrównaj wersje poleceniem codex update.

  2. Odczytaj jedną sesję. W sesji /status pokazuje konfigurację sesji i zużycie tokenów, a w uprawnionych przestrzeniach roboczych (workspace) także szacowane kredyty lub koszt wątku (od 0.148.0). /usage pokazuje zużycie konta i proponuje reset limitu, jeśli jest dostępny (od 0.156.0). Według notatek do wydania 0.153.0 użytkownicy Plus i Team (w notatkach do wydania plan Business nazywa się jeszcze Team) dostają też wcześniejsze ostrzeżenie, gdy zostaje mniej niż połowa limitu.

  3. Mierz każdy przebieg headless. Zapisz strumień zdarzeń JSONL i zsumuj liczniki tokenów ze wszystkich zdarzeń turn.completed:

    Okno terminala
    # Terminal lub krok CI. Wypisuje tokeny jednego przebiegu codex exec.
    codex exec --json --ephemeral --sandbox workspace-write "Fix the failing test in tests/billing/" > events.jsonl
    jq -s '[.[] | select(.type=="turn.completed") | .usage]
    | {input: (map(.input_tokens // 0) | add),
    cached: (map(.cached_input_tokens // 0) | add),
    output: (map(.output_tokens // 0) | add)}' events.jsonl

    Niski udział cached w długim przebiegu oznacza, że kontekst zmienia się w każdej turze i nic nie jest używane ponownie. Zwykle to znak, że zadanie było za szerokie.

    Profile uprawnień (-c default_permissions=":workspace", beta) to preferowany przez OpenAI następca --sandbox; nie łącz obu mechanizmów.

  4. Eksportuj OpenTelemetry, by widzieć cały zespół. Codex czyta tabelę [otel] z config.toml i emituje metryki codex.turn.token_usage.* (wejście, cache, wyjście, suma) oraz codex.turn.cost_microusd, które we własnym backendzie podzielisz według osoby, modelu i poziomu rozumowania. W 0.157.1 metrics_exporter ma domyślnie wartość statsig, czyli wewnętrzne miejsce docelowe Codeksa, więc ustaw go jawnie. Pełną konfigurację i dashboard znajdziesz na stronie obserwowalność agentów.

  5. Wybierz limit dla swojego wiersza. W planie ChatGPT sufitem jest limit planu; ustal, kto może kupować kredyty lub używać resetu, i zapisz to. Przy kluczu API ustaw alerty budżetowe na koncie i daj każdemu potokowi CI osobny klucz, żeby wydatki jednego zadania były widoczne osobno. Przy Bedrocku użyj budżetów AWS. Ograniczenia dla całego zespołu (requirements.toml, dozwolone serwery MCP, zarządzana konfiguracja) opisuje strona nadzór nad Codeksem w firmie.

Ustal politykę modelu i poziomu rozumowania w Codeksie

Dział zatytułowany „Ustal politykę modelu i poziomu rozumowania w Codeksie”

Zasada, której ten serwis trzyma się wszędzie: zacznij od modelu domyślnego, dostrój poziom rozumowania, zanim zmienisz model, i zmieniaj model tylko wtedy, gdy twoje własne ewaluacje to uzasadniają. W Codeksie oznacza to GPT-6 Astra z domyślnym poziomem rozumowania low do pracy interaktywnej, wyższy poziom tylko w zadaniach, które go wymagają, oraz GPT-6 Sol lub GPT-6 Luna do rutynowych zadań, gdy przejdą twoje testy.

ZadanieModelPoziom rozumowaniaDlaczego
Trudna praca agentowa w wielu plikachGPT-6 Astra (domyślny)low, podnoszony dla zadania przez /modelNajpierw dostrój poziom rozumowania na modelu domyślnym, dopiero potem zmień model
Codzienne zmiany, testy, code reviewGPT-6 Solmedium (jego domyślny)Komunikat migracyjny Codeksa mówi, że z Sol „usage limits go further”
Zmiany nazw, docstringi, poprawki lintera, triageGPT-6 Lunamedium (jego domyślny)Komunikat Codeksa o limicie poleca Lunę, gdy limit się kończy
GPT-5.6 Sol, Terra lub Luna w starych konfiguracjachPrzejdź na GPT-6 Sol lub GPT-6 Luna—Codex opisuje modele GPT-5.6 jako „Older” i proponuje migrację

Zapisz politykę w plikach, a nie na stronie wiki. codex --profile <nazwa> (lub -p) nakłada $CODEX_HOME/<nazwa>.config.toml na bazową konfigurację:

# ~/.codex/config.toml — domyślna konfiguracja do pracy interaktywnej
model = "gpt-6-astra"
model_reasoning_effort = "low"
# ~/.codex/routine.config.toml — używany przez: codex -p routine
model = "gpt-6-luna"
model_reasoning_effort = "medium"

Dla jednego przebiegu nadpisz model w wierszu poleceń: codex exec -m gpt-6-sol "Add tests for src/billing/invoice.ts". W sesji /model zmienia model i poziom rozumowania. W GPT-6 Astra /fast włącza tryb Fast, który Codex opisuje jako „our fastest inference with increased plan usage”; nie włączaj go do pracy z Astrą, na którą nikt nie czeka. Przebiegi na Sol i Lunie działają w trybie Fast domyślnie.

Skróć kontekst, który Codex wysyła w każdej turze

Dział zatytułowany „Skróć kontekst, który Codex wysyła w każdej turze”

Za kontekst płacisz w każdej turze, więc linia w AGENTS.md kosztuje więcej niż ta sama linia w prompcie.

  • Podziel AGENTS.md według zakresu. Codex łączy pliki AGENTS.md od korzenia repozytorium do katalogu roboczego i przerywa po osiągnięciu project_doc_max_bytes. W korzeniu trzymaj to, co obowiązuje wszędzie, zasady pakietu w pakiecie, a długie procedury przenieś do skilli (skills), które ładują się tylko wtedy, gdy są potrzebne. Metodę opisuje optymalizacja AGENTS.md.

  • Wyłącz nieużywane serwery MCP i zawęź te, które zostają. Wyłączony serwer się nie uruchamia, a enabled_tools udostępnia tylko wskazane narzędzia. Duże wyniki narzędzi zostają w rozmowie, więc tool_output_token_limit ogranicza, ile z każdego wyniku zostaje w kontekście:

    # ~/.codex/config.toml (klucze akceptowane przez `codex exec --strict-config`, 0.157.1)
    tool_output_token_limit = 8000
    [mcp_servers.sentry]
    command = "npx"
    args = ["-y", "@sentry/mcp-server"]
    enabled = false # włącz ponownie przy debugowaniu produkcji
    [mcp_servers.linear]
    url = "https://mcp.linear.app/mcp"
    enabled_tools = ["READ_TOOL_1", "READ_TOOL_2"]

    codex mcp list pokazuje każdy serwer jako enabled albo disabled. Zastąp READ_TOOL_1 i READ_TOOL_2 nazwami narzędzi, które podaje sam serwer; nazwy różnią się między serwerami i zmieniają między wydaniami. Więcej technik opisuje strona ograniczanie kosztu tokenów MCP.

  • Zaczynaj nową sesję dla każdego zadania. Wątek, który niesie wczorajszą pracę, wysyła ją ponownie w każdej turze. Użyj /compact, gdy musisz kontynuować długi wątek, a nowej sesji, gdy zmienia się zadanie.

  • Zawężaj zadanie, nie tylko model. „Zrefaktoryzuj uwierzytelnianie” oznacza czytanie całej usługi; „zmień src/middleware/auth.ts, by przyjmował JWT, zachowaj interfejs, uruchom tests/auth/” oznacza trzy pliki.

Automatyzacje, zadania w chmurze i zadania CI nie mają człowieka, który pilnuje liczby tur. Ponieważ codex exec w 0.157.1 nie ma limitu wydatków, ogranicz go z zewnątrz:

Okno terminala
# Krok CI. OPENAI_API_KEY pochodzi z magazynu sekretów CI, nigdy z pliku.
timeout 20m codex exec --json --ephemeral --sandbox workspace-write \
-m gpt-6-sol "Fix the failing unit tests in tests/billing/. Change nothing outside src/billing/ and tests/billing/." \
> events.jsonl
# Wejście bez cache + wyjście: część, która rośnie, gdy kontekst się zmienia; wejście z cache też jest rozliczane, ale taniej.
UNCACHED=$(jq -s '[.[] | select(.type=="turn.completed") | .usage
| ((.input_tokens // 0) - (.cached_input_tokens // 0) + (.output_tokens // 0))] | add // 0' events.jsonl)
if [ "$UNCACHED" -gt 2000000 ]; then echo "Uncached input + output tokens $UNCACHED over this job's budget"; exit 1; fi

Próg oznacza zadanie jako nieudane dopiero po fakcie, ale to wystarczy, żeby zadanie, które wymknęło się spod kontroli, nie powtarzało się co noc. Wyznacz go z mediany ostatnich 20 przebiegów, a nie na oko. Twardym zatrzymaniem jest limit czasu samego zadania (na przykład timeout-minutes w GitHub Actions). Wzorce headless opisuje strona Codex w trybie nieinteraktywnym.

Pozostałe ścieżki bez nadzoru:

  • Automatyzacje. Uruchamiaj raporty codziennie, nie co godzinę, chyba że ktoś czyta je co godzinę. Zawężaj prompt do „plików zmienionych w ciągu ostatnich 24 godzin”, a nie do „całego kodu”. Zobacz automatyzacje Codeksa.
  • Zadania w chmurze. Używaj --attempts większego niż 1 tylko wtedy, gdy naprawdę porównasz próby; inaczej płacisz za pracę, którą wyrzucasz. Zobacz środowiska chmurowe.
  • Długie zadania /goal. [goals] max_goal_token_budget ustala budżet tokenów dla celu, a od 0.151.0 wliczają się do niego tokeny zużyte przez zagnieżdżonych subagentów. Ustaw go przed zadaniem, które ma trwać godzinami.

Jak udowodnić, że oszczędności nie obniżyły jakości?

Dział zatytułowany „Jak udowodnić, że oszczędności nie obniżyły jakości?”

Tańsze przebiegi, które generują więcej poprawek, kosztują więcej. Mierz koszt zaakceptowanej zmiany: tokeny lub kredyty zużyte przez zadanie podzielone przez zmiany, które trafiły do gałęzi głównej i nie zostały wycofane. Metodę, łącznie z licencjami i czasem review, opisuje strona ekonomia oprogramowania budowanego przez agentów.

Zmianę routingu udowadniaj bramkami, które już masz, a nie czytaniem każdego diffa:

  1. Wybierz 10 zadań, które Codex wykonał w zeszłym miesiącu i które zostały czysto scalone razem z testami.
  2. Uruchom każde ponownie na tańszym ustawieniu (na przykład codex exec -p routine --sandbox workspace-write) w świeżym worktree.
  3. Policz, ile przechodzi te same bramki: testy, sprawdzenie typów, linter i codex review względem gałęzi bazowej.
  4. Przyjmij tańsze ustawienie dla danego typu zadań tylko wtedy, gdy przechodzi co najmniej tyle samo bramek co oryginał. Tabelę routingu zatwierdza tech lead; programista może podnieść poziom rozumowania dla pojedynczego zadania bez pytania.

Powtórz porównanie, gdy pojawi się nowy model; cały proces opisuje plan oceny nowego modelu.

ObjawPrawdopodobna przyczynaCo zrobić
Tygodniowy limit znika do środySzerokie zadania eksploracyjne, wysoki poziom rozumowania w każdym zadaniu albo włączony tryb Fast w AstrzeSprawdź /status w najcięższych wątkach, podziel zadania, ustawiaj poziom rozumowania dla zadania i wyłącz /fast dla pracy z Astrą w tle
Jedna osoba zużywa limit szybciej niż resztaStarsze CLI z innym modelem domyślnym albo rozbudowana prywatna konfiguracja MCPPorównaj codex --version i codex mcp list z konfiguracją kolegi
Liczba tokenów zadania CI podwaja się z dnia na dzieńZmiana promptu poszerzyła zakres albo niestabilny test wpędza agenta w pętlęPorównaj prompty, przeczytaj elementy command_execution w events.jsonl i zostaw próg tokenów na miejscu
OpenTelemetry nie pokazuje kosztów Codeksametrics_exporter został na wartości domyślnejUstaw eksporter jawnie i sprawdź, czy codex.turn.cost_microusd dociera z jednego przebiegu, zanim zbudujesz panele. Przebiegi headless codex exec mogą nie emitować metryk OTel (openai/codex#12913, niepotwierdzone w 0.157.1): źródłem prawdy dla CI zostaje suma tokenów z JSONL z kroku 3
Zużycie wygląda na niskie, a faktura jest wysokaPrzebiegi na kluczu API lub Bedrocku są rozliczane poza widokiem planu ChatGPTSpisz wszystkie klucze i dostawców w użyciu; daj każdemu potokowi CI własny klucz
Zadania kierowane do Luny wracają z reviewTen typ zadań wymaga więcej rozumowania, niż daje LunaPrzenieś ten typ zadań z powrotem na GPT-6 Sol i powtórz porównanie na 10 zadaniach