Skip to content

Vrstvy kontextu a rozpočty ​

Agenti platia za každý prečítaný token. kontext odpovedá v malých, vrstvených častiach a necháva na agentovi, kedy si zaplatí za viac.

Brief ​

ctx_brief (alebo kontext brief) je vstupný bod, jeden blok s približne 1–2k tokenmi (brief.budget_tokens, predvolene 1400):

SekciaObsah
Hlavičkaprojekt, ID repozitára, vetva, About (zhrnutie prehľadu), Stack
Pravidlá pre agentovAGENTS.md, CLAUDE.md, .cursorrules, inštrukcie pre Copilot a vnorené súbory AGENTS.md na cestách vo focuse
Zmenené od …znalosti pridané, zmenené alebo odobrané od posledného briefu v tomto worktree, najviac päť riadkov (nižšie)
Governs <focus> (N)pri focuse každý aktívny záznam, ktorého paths ho riadia, jeden kompaktný riadok na záznam, pred všetkým ostatným (nižšie)
Rozhodnutiaaktívne rozhodnutia, najrelevantnejšie pre focus ako prvé, každé na jeden riadok (najviac brief.max_decisions)
Konvencie · Poznatky a úskalia · Incidentykaždé na jeden riadok, zoradené podľa focusu
Flows cez focuspri focuse flows, ktorých paths sa s ním prekrývajú (najviac štyri, s počtom krokov); brief bez focusu povie v jednom riadku, koľko flows existuje
Modulyzhrnutia modulov (najviac brief.max_modules); pri moduloch vo focuse aj začiatok ich prehľadu
Submodulysekcia pre submodul s vlastnými znalosťami, keď v ňom ležia cesty z focusu alebo keď tento repozitár žiadne nemá; inak jednoriadkový odkaz
Lokálne poznámkypoznámky v inboxe tohto klonu (tímoví kandidáti aj súkromné poznámky), ktoré zodpovedajú focusu, inak tri najnovšie
Súvisiace dokumenty a históriav repozitári bez úložiska, keď už vyhľadávanie postavilo lokálny index: dokumenty a commity, ktoré zodpovedajú focusu
Z adaptérovsekcie od adaptérov s operáciou brief (napr. primer zo sessions)
Stavpočty v inboxe, postup zavádzania, záznamy na kontrolu, záznamy na prehodnotenie, chýbajúce git hooky, varovania; miesto pre ňu je vyhradené, takže ju plný brief nevytlačí

focus prijíma cesty (súbory alebo adresáre) a slová k téme. Záznamy, ktorých paths sa prekrývajú s cestou vo focuse, idú prvé; slová k téme sa porovnávajú s titulkami, zhrnutiami a štítkami. Keď všetky cesty vo focuse ležia v inom repozitári, brief je briefom toho repozitára (Viac repozitárov).

Položka focusu s /, glob znakom alebo známou príponou súboru je cesta, aj keď súbor ešte neexistuje, takže agent, ktorý ide vytvoriť src/billing/refunds.rs, dostane záznamy riadiace src/billing/**. Prekryv funguje oboma smermi: focus na adresár zodpovedá vzoru pod ním, aj vzorom, ktoré začínajú wildcardom (**/migrations/*.sql voči src/db) alebo úvodným lomítkom.

Čo riadi focus ​

Brief s focusom nikdy ticho nevyhodí riadiaci záznam. Sekcia Governs <focus> (N) je rezervovaná pred všetkými ostatnými a vypíše jeden riadok na záznam: plné id, názov, značky a · N commits since. Je zoradená podľa toho, ako špecificky paths záznamu menujú focus (súbor, potom adresár, potom glob, potom **), a potom od najstaršieho, lebo najstaršie obmedzenia nová zmena porušuje najčastejšie. Poradie neurčuje žiadny zoznam slov („never“, „must“).

Keď sa sekcia do rozpočtu nezmestí, záznamy, ktoré sa nezmestili, vymenuje jeden riadok, ktorý sa vytlačí vždy: also governing: [id] [id] …. Pod veľkosťou samotnej sekcie sa tlačia len id. Ostatné druhy sa potom orezávajú po riadkoch a každá orezaná sekcia končí riadkom s počtom: … 7 more (2 govern your focus). Celá sekcia nikdy nezmizne bez tohto riadku. Päta, ktorá agentovi povie, kde hľadať ďalej, sa ráta do rozpočtu a nahradené dokumenty modulov sa vynechajú.

Rozpočty sú v praxi od 200 do 1 400 tokenov: orchestrátor ako Peer posiela max(200, 1500 − už minuté tokeny), takže 200 až 1 000 je bežný prípad, nie okraj. Riadok Čo sa odvtedy zmenilo pod riadiacim záznamom stojí asi 25 tokenov; pri 200 tokenoch sú v riadiacej sekcii len id.

Značky ​

Krátky riadok nesmie nechať návrh vyzerať ako prijaté pravidlo. Riadok záznamu dostane značku, keď záznam nie je prijatá a schválená znalosť:

ZnačkaKedy
(proposed), (deprecated), …stav nie je accepted
local, unapprovedsúbor je v pracovnom strome nový, zmenený alebo stagnutý: ten text ešte nikto neschválil
review dueuplynul jeho review_by
challenged locallyinbox tohto klonu obsahuje námietku voči nemu
N sourcesnesie evidenciu

Viac značiek zdieľa jedny zátvorky: Use queues for exports (proposed; local, unapproved). Prijatý a commitnutý záznam nemá žiadnu, takže bežný riadok nestojí tokeny navyše. Výsledky hľadania nesú tie isté značky vo svojich hranatých zátvorkách.

Zmenené od posledného briefu ​

Každý brief si zapamätá commit, ktorý videl, v cache lokálneho stavu worktree (.git/kontext/…/brief-head). Ďalší brief vypíše najviac v piatich riadkoch záznamy pridané, zmenené alebo odobrané odvtedy; nový záznam, ktorý iný nahrádza, ho pomenuje ((new, supersedes [0007] Prices are integer cents)). Bez cache — nový worktree, zmazaná cache — ukáže namiesto toho posledných 14 dní. Brief bez zmien takú sekciu nemá, takže bežný krok nepridá nič.

Sekcia má vlastný malý rozpočet a plný brief ju vypustí ako prvú; cache sa posunie, len keď sa sekcia ukázala, takže vypustená zmena príde v ďalšom briefe.

Na záznam sa odkazuje plným id ([2026-09-28-adapters-are-configuration]) alebo číslom ADR. Kratšia predpona by prestala byť jednoznačná, keď pribudne dlhšie id, a agenti tieto odkazy kopírujú do supersedes a [[odkazov]].

Claude Code, Codex a Cursor môžu dostať brief automaticky na začiatku session a riadiace záznamy pred úpravou: pozri Hooky. To, čo v jednej session vložia hooky, a ctx_brief, keď pozná session, čerpá z jedného rozpočtu [hooks] session_budget_tokens (6000).

Aktuálnosť ​

Záznam sa zapíše raz, ale kód, ktorý riadi, sa ďalej mení. Stav v briefe a kontext status vypíšu aktívne rozhodnutia, konvencie a poučenia, ktorých paths sa odvtedy, čo sa na ne niekto naposledy pozrel, dotklo aspoň freshness.threshold_commits commitov (predvolene 20), najviac zmenené ako prvé:

text
- May need a refresh (20+ commits on their paths since they were made, edited or confirmed): [0007] Prices are integer cents (34 commits), … — check them: confirm what still holds (`ctx_confirm`), supersede what no longer does.

Počíta sa od najneskoršieho z troch okamihov: date záznamu, jeho potvrdenie checked a posledný commit, ktorý zmenil súbor záznamu (aj úprava je pohľad naň). Commity z dňa dátumu (alebo potvrdenia zapísaného ako deň), commity do sekundy potvrdenia a merge commity sa nepočítajú. Pri potvrdení alebo kontrole, ktorá uvádza commit, sa počíta podľa predkov: commity, ktoré HEAD dosiahne a ten commit nie, takže sa zaráta aj vetva zlúčená po pohľade. Zlyhaná kontrola nie je pohľad a počet nevynuluje; pečiatka agenta alebo bulk je pohľad. Commit sa počíta raz, nech sa zhoduje koľkokoľvek jeho súborov, a započíta sa aj presun kódu mimo riadenej cesty. Záznamy bez paths alebo bez date či checked, od ktorých by sa dalo počítať, sa neoznačia nikdy; incidenty a dokumenty modulov sa nesledujú. Označenie je výzva na kontrolu, nie verdikt: ak záznam stále platí, potvrď ho (kontext confirm <id>) a počíta sa odznova; ak nie, nahraď ho novým (supersede) alebo ho vyraď.

Pre rozsah commitov namiesto celej histórie pozri drift.

Záznamy každého druhu môžu niesť aj termín kontroly. Po ňom ich Stav v briefe vypíše ako Due for review a ich riadky majú značku review due; kontext status vypíše všetky. Oba signály sú na jednom mieste (src/freshness.rs).

Počty pochádzajú z jedného git log pre všetky sledované záznamy, od dátumu najstaršieho z nich (obmedzeného index.max_commits), a ukladajú sa do cache podľa HEAD v stavovom adresári worktree: brief nepridá žiadne volanie gitu na záznam a do ďalšieho commitu žiadne. Potvrdenie alebo úprava v pracovnom strome vynuluje počet ešte pred commitom. threshold_commits = 0 to vypne.

Úrovne: L0 · L1 · L2 ​

Každý výsledok nesie URI. ctx_read ho vráti v úrovni, o ktorú agent požiada:

ÚroveňVeľkosťPoužitie
0jeden riadokje to relevantné?
1do ~4k znakovväčšinou stačí na to, aby agent mohol konať (predvolené pre ctx_read)
2celý obsah (najviac 80k znakov)keď záleží na detailoch

URI ​

URIUkazuje na
kx:<id>záznam znalostí (kx:0007, kx:2026-09-28-prices-are-integer-cents alebo jednoznačná predpona ako kx:2026-09-28-prices)
kx:<submodul>/<id>záznam z úložiska submodulu (git:<submodul>/<sha> pre jeho commity)
file:<path> / file:<path>#<section>súbor v repozitári alebo jednu sekciu Markdown dokumentu
git:<sha>commit (L1 = správa a štatistika, L2 = celý diff)
inbox:<id>lokálny kandidát
viking://…, …čokoľvek, o čom adaptér deklaruje, že to vie prečítať (owns)

Čítanie cez file: je obmedzené na repozitár a nikdy nevráti súbory s tajnými údajmi (.env*, kľúče, tfvars, …).

Rozpočty inde ​

  • ctx_search vypíše výsledky ako jednotlivé riadky v rámci budget_tokens (predvolene 1200) a povie agentovi, koľko ich odrezal.
  • ctx_why drží každú sekciu krátku: najviac limit položiek na sekciu.
  • ctx_threads vracia prepis po častiach veľkých budget_chars (predvolene 20000), aby sa každá zmestila do jedného výsledku nástroja.
  • Sekcie adaptérov v briefe dostanú každá najviac tretinu zvyšného rozpočtu.
  • Hooky hostiteľov čerpajú z jedného rozpočtu [hooks] session_budget_tokens na session (aj ctx_brief, keď dostane session_id alebo CLAUDE_SESSION_ID); hook pri úprave zopakuje len záznamy, ktoré v session ešte nezazneli alebo ktorých blob sa zmenil.

Počty tokenov sa odhadujú na štyri znaky na token, zámerne jednoducho a konzervatívne.

Vydané pod licenciou MIT alebo Apache-2.0.