Preskoči na vsebino

Življenjski kavlji (hooks.json)

Izvorna Markdown koda.md
---
title: Življenjski kavlji (hooks.json)
description: Deterministične lupinske skripte, ki jih izvajalna zanka orodja Antigravity sproži samodejno.
sidebar:
  order: 8
---

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

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

* **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

| 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`

Shranite v `.agents/hooks.json` (za trenutni projekt) ali v `~/.gemini/antigravity-cli/hooks.json` (za celoten sistem):

```json
{
  "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!

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.


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.

  • 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).

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).

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!