Preskoči na sadržaj

Automatski okidači događaja (hooks.json)

Izvorni Markdown kôd.md
---
title: Automatski okidači događaja (hooks.json)
description: Determinističke skripte ljuske koje izvođačka petlja alata Antigravity pokreće automatski pri ključnim događajima.
sidebar:
  order: 8
---

Automatski okidači događaja (Lifecycle Hooks) su unaprijed definirane naredbe u bash ljusci koje CLI alat automatski pokreće u točno određenim trenucima životnog ciklusa agenta. Izvršavaju se neovisno o odluci modela i troše točno **0 tokena**.

---

## Usporedba s kuhinjom: Vještina protiv automatskog okidača (Hook)

Zašto programeri često kažu: *"Za to nemoj pisati Vještinu (Skill), nego upotrijebi automatski okidač (Hook)!"*?

Razmislite o higijeni u profesionalnoj kuhinji:

* **Način s vještinom (Umjetna inteligencija razmišlja)**:  
  Kuharu kažete: *"Molim te, nakon svakog sjeckanja povrća ne zaboravi oprati nož i pokrenuti Prettier alat."*  
  Budući da je AI vjerojatnosni model, kuhar u žurbi može zaboraviti, pogriješiti ili previdjeti grešku u kodu. Osim toga, model pri svakom upitu troši dragocjene tokene razmišljajući o pravilima oblikovanja.
* **Način s okidačem (100% pouzdana automatizacija bez razmišljanja)**:  
  Iznad sudopera postavite automatski infracrveni senzor: onog trenutka kada nož spustite na pult, senzor pušta vruću vodu i sterilizira ga.  
  To zahtijeva **nula ljudskog razmišljanja**, događa se **uvijek i bez iznimke** te košta **0 tokena**, jer vaše računalo jednostavno izvršava naredbu u sustavu.

---

## Zlatno pravilo za odabir

* **Upotrijebite Vještinu (Skill)** kada zadatak zahtijeva **kreativno razmišljanje umjetne inteligencije** (npr. pronalaženje uzroka neobičnog rušenja programa, planiranje arhitekture nove komponente, programiranje nove funkcije).
* **Upotrijebite automatski okidač (Hook)** kada je zadatak **deterministički i mehanički** (npr. automatsko formatiranje koda pomoću alata Prettier, sprječavanje opasnih naredbi u terminalu, provjera uspješnosti testova prije završetka sesije).

---

## Ključni događaji životnog ciklusa

| Događaj | Kada se pokreće | Tipičan primjer uporabe |
| :--- | :--- | :--- |
| **`PreToolUse`** | Prije nego što se alat počne izvoditi | Sigurnosna vrata (blokira opasne naredbe kao što su `rm -rf /` ili `drop database`). |
| **`PostToolUse`** | Odmah nakon završetka izvođenja alata | Automatski formater (pokreće `prettier` ili `black` odmah nakon uređivanja datoteke). |
| **`PreInvocation`** | Prije nego što se pozove AI model | Umeće privremene podsjetnike ili dinamički kontekst sustava u upit. |
| **`Stop`** | Kada agent pokuša završiti svoj rad | Provjera testova (pokreće `pytest`; prisiljava agenta na nastavak rada ako testovi padnu). |

---

## Primjer konfiguracije: `.agents/hooks.json`

Spremite u `.agents/hooks.json` (za trenutni projekt) ili u `~/.gemini/antigravity-cli/hooks.json` (za cijeli sustav):

```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 uopće nije potrebno objašnjavati kako oblikovati kôd niti ga podsjećati na pokretanje testova — vaše lokalno računalo to obavlja automatski i pouzdano!

Automatski okidači događaja (Lifecycle Hooks) su unaprijed definirane naredbe u bash ljusci koje CLI alat automatski pokreće u točno određenim trenucima životnog ciklusa agenta. Izvršavaju se neovisno o odluci modela i troše točno 0 tokena.


Usporedba s kuhinjom: Vještina protiv automatskog okidača (Hook)

Odjeljak s naslovom “Usporedba s kuhinjom: Vještina protiv automatskog okidača (Hook)”

Zašto programeri često kažu: “Za to nemoj pisati Vještinu (Skill), nego upotrijebi automatski okidač (Hook)!”?

Razmislite o higijeni u profesionalnoj kuhinji:

  • Način s vještinom (Umjetna inteligencija razmišlja):
    Kuharu kažete: “Molim te, nakon svakog sjeckanja povrća ne zaboravi oprati nož i pokrenuti Prettier alat.”
    Budući da je AI vjerojatnosni model, kuhar u žurbi može zaboraviti, pogriješiti ili previdjeti grešku u kodu. Osim toga, model pri svakom upitu troši dragocjene tokene razmišljajući o pravilima oblikovanja.
  • Način s okidačem (100% pouzdana automatizacija bez razmišljanja):
    Iznad sudopera postavite automatski infracrveni senzor: onog trenutka kada nož spustite na pult, senzor pušta vruću vodu i sterilizira ga.
    To zahtijeva nula ljudskog razmišljanja, događa se uvijek i bez iznimke te košta 0 tokena, jer vaše računalo jednostavno izvršava naredbu u sustavu.

  • Upotrijebite Vještinu (Skill) kada zadatak zahtijeva kreativno razmišljanje umjetne inteligencije (npr. pronalaženje uzroka neobičnog rušenja programa, planiranje arhitekture nove komponente, programiranje nove funkcije).
  • Upotrijebite automatski okidač (Hook) kada je zadatak deterministički i mehanički (npr. automatsko formatiranje koda pomoću alata Prettier, sprječavanje opasnih naredbi u terminalu, provjera uspješnosti testova prije završetka sesije).

Događaj Kada se pokreće Tipičan primjer uporabe
PreToolUse Prije nego što se alat počne izvoditi Sigurnosna vrata (blokira opasne naredbe kao što su rm -rf / ili drop database).
PostToolUse Odmah nakon završetka izvođenja alata Automatski formater (pokreće prettier ili black odmah nakon uređivanja datoteke).
PreInvocation Prije nego što se pozove AI model Umeće privremene podsjetnike ili dinamički kontekst sustava u upit.
Stop Kada agent pokuša završiti svoj rad Provjera testova (pokreće pytest; prisiljava agenta na nastavak rada ako testovi padnu).

Spremite u .agents/hooks.json (za trenutni projekt) ili u ~/.gemini/antigravity-cli/hooks.json (za cijeli sustav):

{
"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 uopće nije potrebno objašnjavati kako oblikovati kôd niti ga podsjećati na pokretanje testova — vaše lokalno računalo to obavlja automatski i pouzdano!