Življenjski kavlji (hooks.json)
Kavlji (Hooks) so vnaprej določeni ukazi v lupini bash, ki jih orodje CLI samodejno sproži ob natančno določenih trenutkih v življenjskem ciklu agenta. Izvedejo se neodvisno od presoje modela in porabijo natanko 0 žetonov.
Primerjava s kuhinjo: Veščina proti Kavlju
Razdelek z naslovom “Primerjava s kuhinjo: Veščina proti Kavlju”Zakaj razvijalci pogosto pravijo: “Za to ne piši Veščine (Skill), ampak uporabi Kavelj (Hook)!”?
Pomislite na higieno v profesionalni kuhinji:
- Način z veščino (Umetna inteligenca razmišlja):
Kuharju naročite: “Prosim, po vsakem rezanju zelenjave ne pozabi oprati noža in zagnati orodja Prettier.”
Ker je umetna inteligenca verjetnostni model, lahko kuhar v naglici pozabi, se zmoti ali spregleda napako v kodi. Poleg tega model ob vsakem vprašanju porablja drage žetone za razmišljanje o pravilih oblikovanja. - Način s kavljem (100 % zanesljiva avtomatizacija brez razmišljanja):
Nad pomivalno korito namestite avtomatski infrardeči senzor: v trenutku, ko nož odložite na pult, senzor odpre vročo vodo in ga sterilizira.
To zahteva nič človeškega razmišljanja, zgodi se vedno in brez izjeme ter stane 0 žetonov, saj vaš računalnik preprosto izvede ukaz v sistemu.
Zlato pravilo za izbiro
Razdelek z naslovom “Zlato pravilo za izbiro”- Uporabite Veščino (Skill), ko naloga zahteva ustvarjalno razmišljanje umetne inteligence (npr. iskanje vzroka za nenavadno sesutje programa, načrtovanje arhitekture nove komponente, programiranje nove funkcije).
- Uporabite Kavelj (Hook), ko je naloga deterministična in mehanska (npr. samodejno oblikovanje kode s Prettierjem, preprečevanje nevarnih ukazov v terminalu, preverjanje uspešnosti testov pred zaključkom seje).
Ključni dogodki življenjskega cikla
Razdelek z naslovom “Ključni dogodki življenjskega cikla”| Dogodek | Kdaj se sproži | Tipičen primer uporabe |
|---|---|---|
PreToolUse |
Preden se orodje začne izvajati | Varnostna vrata (blokira ukaze kot sta rm -rf / ali drop database). |
PostToolUse |
Takoj po zaključku orodja | Samodejni oblikovalec (zažene prettier ali black takoj po urejanju datoteke). |
PreInvocation |
Preden se pozove model AI | V poziv vstavi začasne opomnike ali dinamični kontekst sistema. |
Stop |
Ko želi agent zaključiti svoje delo | Preverjanje testov (zažene pytest; agenta prisili k delu, če testi padejo). |
Primer konfiguracije: .agents/hooks.json
Razdelek z naslovom “Primer konfiguracije: .agents/hooks.json”Shranite v .agents/hooks.json (za trenutni projekt) ali v ~/.gemini/antigravity-cli/hooks.json (za celoten sistem):
{ "auto-formatter": { "PostToolUse": [ { "matcher": "replace_file_content|write_to_file", "hooks": [ { "type": "command", "command": "npx prettier --write ." } ] } ] }, "command-guard": { "PreToolUse": [ { "matcher": "run_command", "hooks": [ { "type": "command", "command": "./scripts/guard-rail.sh" } ] } ] }, "test-enforcer": { "Stop": [ { "type": "command", "command": "./scripts/verify-tests-pass.sh" } ] }}Agentu sploh ni treba razlagati, kako naj oblikuje kodo ali ga opominjati na zagon testov — vaš lokalni računalnik to izvede samodejno in zanesljivo!