Blog

7 pravil za Claude Code za omejevanje porabe avtonomnih agentov v letu 2026

Markdown

7 pravil za nastavljanje omejitev v Claude Code, da vas avtonomni agent ne spravi na beraško palico: omejitve ponudnika, Task Budgets, hooki, seznami dovoljenih, stikala za izklop v sili, ključi za peskovnik in omejitve ponovitev.

Preberi celoten članek

Ključne točke

Avtonomni agent z neomejenim dostopom do oblaka lahko v eni noči ustvari visok račun. Predstavljam 7 pravil za Claude Code, ki jih lahko uvedete v enem večeru in preprečite tovrstne težave.

V dokumentaciji Ailoot izveste, kako uporabljati storitev.

Kam gre denar: 3 kategorije porabe pri avtonomnem agentu

Ključne točke

Za kaj avtonomni agent porablja vaš denar? Po treh ločenih poteh: za žetone pri Anthropic/OpenAI, vire v oblaku (AWS/GCP/Yandex Cloud) in plačljiva dejanja v API-jih tretjih ponudnikov (bremenitve Stripe, prehodi za SMS, Twilio, boti Telegram z naročninami). Vsaka pot ima svoje obračunavanje in svoj način zaustavitve porabe.

Teh treh poti ne zamenjujte—delujejo neodvisno in zahtevajo različne nastavitve:

  1. Žetoni LLM. Claude, OpenAI ali Gemini zaračunajo vhodni in izhodni kontekst vsake zahteve. Pri tem lahko pomagata Anthropic Task Budgets (glejte 2. pravilo) in naročnina namesto plačevanja API-ja po porabi.
  2. Infrastruktura v oblaku. Agent prek MCP ali orodja Bash ustvari vire EC2, RDS in S3 ali uvede lambde. Pri tem lahko pomagajo AWS Budgets, GCP ali Yandex Cloud s stikalom za izklop v sili (5. pravilo).
  3. API-ji tretjih ponudnikov. Agent izvede bremenitev Stripe, prek prehoda pošlje 100 sporočil SMS ali nastavi tisoč naročnin Telegram. Pri tem lahko pomagajo ključi sandbox z ozko določenimi pravicami in trda omejitev na nadzorni plošči ponudnika (6. pravilo).

Sledi 7 pravil. Vsako zajema eno ali dve poti.

Kako nastaviti trdo omejitev porabe API-ja (1. pravilo)

Ključne točke

Kako nastavite trdo omejitev porabe API-ja? Anthropic in OpenAI imata vgrajeno omejitev porabe organizacije, ki ob doseženem znesku samodejno omeji račun. Ne zamenjujte je z opozorili, ki samo pošljejo e-pošto. Trda omejitev je pregrada; opozorilo je kontrolna lučka. Nastavite oboje, najprej pregrado.

Kje jo vklopite (za vsakega ponudnika si vzemite vsaj 2 minuti):

Anthropic Console. console.anthropic.com → Settings → Limits → Monthly spend limit. Nastavite znesek, ki ste ga pripravljeni porabiti v najslabšem mesecu. Ko ga dosežete, API vrne 429 in zabeleži dogodek. Ni možnosti »čez minuto bom poskusil znova«—dostop je blokiran do konca meseca.

OpenAI Platform. platform.openai.com → Billing → Usage limits. Tudi tukaj sta mehka omejitev (opozorilo po e-pošti) in trda omejitev (zaustavitev API-ja). Nastavite obe; trdo omejitev določite na 1.5x mehke, da ostane čas za odziv.

AWS Bedrock / Google Vertex. Če do Claude/Anthropic dostopate prek posrednika v oblaku, mora biti trda omejitev nastavljena na strani oblaka, ne pri Anthropicu. To je 5. pravilo.

Kaj ne šteje za trdo omejitev: e-poštna opozorila (»porabili ste 80% proračuna«). Prispejo z zamudo, ponoči pa nihče ne bere e-pošte. Šteje samo sinhrona omejitev na strani ponudnika.

Kako delujejo Anthropic Task Budgets in kje jih nastaviti (2. pravilo)

Ključne točke

Kaj so Anthropic Task Budgets in pred čim vas ščitijo? Gre za funkcijo beta v različicah Opus 4.7/4.8 in družini Fable/Mythos: določite proračun za en avtonomni potek dela, Claude pa z zmanjševanjem proračuna zmanjša globino sklepanja in konča s povzetkom, namesto da bi sredi naloge rekel »to je vse, zmanjkalo mi je proračuna«. To ni rešitev za vse stroške v oblaku, prepreči pa 80% primerov, ko se agent »zatakne v zanki in tega ne opazi«.

Za podrobnosti si oglejte uradno dokumentacijo podjetja Anthropic. Bistvo: to je mehka omejitev, ne trda. Če je agent že ustvaril instanco EC2, Task Budget tega ne bo razveljavil.

Kako deluje v praksi: v payload zahteve vključite polje task_budget (na primer 100,000 vhodnih žetonov za celotno nalogo). Claude dobi informacije o proračunu in sam prilagodi svoje načrte, poenostavi korake ali preskoči podnaloge. Ko se proračun približa ničli, zaključi delo in vrne vmesni povzetek, namesto da bi rekel »hvala za poslušanje«.

Omejitve:

  • Samo API Anthropic. Ne deluje v Bedrock/Vertex, ki imata lastno obračunavanje
  • Samo modeli beta (Opus 4.7, 4.8, Fable 5, Mythos 5). Ni na voljo v Sonnet 4.6 ali Haiku
  • Ne zajema porabe v oblaku ali API-jev tretjih ponudnikov. Če Claude zažene instanco EC2, Task Budget ne ukrepa

Uporabljajte ga skupaj s 1. pravilom (trda omejitev), ne namesto njega.

Stroškovne varovalke so del inženiringa konteksta: določite, kaj agent sme in česa ne sme početi, ter kje je njegovo stikalo za izklop v sili.

Kaj blokirati s kavlji PreToolUse v Claude Code (3. pravilo)

Ključne točke

Kaj so kavlji PreToolUse v Claude Code in zakaj jih potrebujete? To so skripti, ki se izvedejo preden Claude izvede klic orodja. Zahtevo lahko blokirate (exit 2), zahtevate potrditev uporabnika ali jo spustite skozi brez vprašanja. Bistvo: kavlji se izvedejo pred --dangerously-skip-permissions. Tako lahko blokirate nevarna dejanja tudi v načinu obhoda.

Dovoljenja v Claude Code (stanje na dan 1. junija 2026) se preverjajo v vrstnem redu deny → ask → allow. To pomeni:

  • izbrani način dovoljenj preverite posebej; iz preizkusa pravila deny v običajnem načinu ne sklepajte o zaščiti v načinu obhoda
  • če kavelj vrne exit 2, je klic orodja blokiran
  • allowedTools velja samo, če pravila deny in kavlji ne ukrepajo

Minimalni kavelj PreToolUse, ki preveri nekaj zapisov nevarnih ukazov. To je besedilni filter, ne celovit razčlenjevalnik lupine ali meja dostopa: enakovredni ukazi, skripti, druga orodja in obstoječi viri v oblaku potrebujejo ločene ukrepe.

#!/usr/bin/env bash
# ~/.claude/hooks/block-dangerous-bash.sh
INPUT=$(cat)
if ! COMMAND=$(printf '%s\n' "$INPUT" | jq -er '.tool_input.command | select(type == "string")'); then
  echo "Blocked: invalid Bash hook input" >&2
  exit 2
fi

# Checks the listed text patterns; does not cover every equivalent operation
if echo "$COMMAND" | grep -qiE '(rm -rf|aws s3 rb|terraform destroy|kubectl delete|drop database)'; then
  echo "Blocked: destructive command" >&2
  exit 2
fi

exit 0

Skript shranite na navedeno pot, zagotovite razpoložljivost jq in ga naredite izvedljivega z chmod +x ~/.claude/hooks/block-dangerous-bash.sh. Povežite ga v ~/.claude/settings.json:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [{ "type": "command", "command": "~/.claude/hooks/block-dangerous-bash.sh" }]
      }
    ]
  }
}

Oglejte si uradno dokumentacijo.

V /hooks preverite registracijo, nato skriptu podajte neškodljiv vzorčni JSON, ne da bi izvedli njegovo polje z ukazom. Navedeni nevarni zapis mora vrniti 2, neškodljiv ukaz pa 0. Preizkusite tudi napačno oblikovan vhod. Regularni izraz preverja samo ustrezne klice Bash; dejansko mejo pooblastil zagotovite z ozkimi poverilnicami in izolacijo okolja. Glejte uradni primer vhoda in izhoda kavlja.

Zakaj uporabljati seznam dovoljenih orodij allowedTools in zakaj stikalo --dangerously-skip-permissions ne sodi na gostiteljski računalnik (4. pravilo)

Ključne točke

Kam vnesete seznam dovoljenih orodij in zakaj gostiteljski računalnik ni primeren za način obhoda? allowedTools v settings.json je seznam določenih ukazov, ki jih agent lahko izvede brez potrditve; za vse drugo vas pozove. --dangerously-skip-permissions v celoti izklopi pozive za potrditev, zato tega ne zaženite na gostiteljskem računalniku—uporabljajte ga samo v vsebniku ali VM.

Seznam dovoljenih orodij udejanja načelo najmanjših pravic. Namesto »dovoli vse« (--dangerously-skip-permissions) dodajte samo tisto, kar naloga potrebuje:

{
  "permissions": {
    "allow": [
      "Bash(npm install:*)",
      "Bash(npm run build)",
      "Bash(git add:*)",
      "Bash(git commit:*)",
      "Read(./src/**)",
      "Write(./src/**)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(curl * | sh)",
      "Write(/etc/**)",
      "Write(~/.ssh/**)"
    ]
  }
}

Kaj morate vedeti o načinu obhoda:

  • Linux/macOS zavrneta zagon Claude Code v načinu obhoda kot root ali z ukazom sudo—gre za vgrajeno zaščito
  • Na svojem računalniku način obhoda izklopi vse pozive za potrditev; agent lahko izvaja poljubne ukaze rm -rf, odpre ključe SSH in naloži podatke v oblak
  • Stikala --dangerously-skip-permissions nikoli ne zaženite na gostiteljskem računalniku; uporabljajte ga samo v:
    • vsebniku Docker z omejenim priklopom nosilca (samo zahtevana mapa)
    • izoliranem VM (Multipass, Lima, Orbstack)
    • GitHub Codespaces / Replit / drugem peskovniku

Minimalni ukaz docker run za način obhoda:

docker run --rm -it \
  -v "$PWD:/workspace" \
  -w /workspace \
  --network host \
  ghcr.io/anthropics/claude-code:latest \
  claude --dangerously-skip-permissions

Če agent potrebuje poverilnice za oblak, uporabljajte ločene ključe z ozko določenimi pravicami, ne svojih glavnih ključev (6. pravilo).

Kako nastaviti opozorila o proračunu za oblak s stikalom za izklop v sili v AWS, GCP in Yandex Cloud (5. pravilo)

Ključne točke

Opozorilo o proračunu sporoča opaženo ali napovedano porabo in lahko prispe z zamudo. Odzivna funkcija lahko blokira nove operacije agenta ali ustavi določene vire; to sta različni dejanji. Onemogočenje ključa IAM ne ustavi stroškov za vire, ki že delujejo. Zaustavljanje virov opredelite in preizkusite posebej.

Tako nastavite rešitev v posameznem oblaku:

AWS Budgets (dokumentacija). Ustvarite mesečni proračun s pragovi (50%, 80%, 100%). Pri pragu 100% lahko tema SNS sproži odzivno Lambdo. Spodnji primer izključi samo ključe za dostop IAM navedenega uporabnika; ne ustavi virov in ne vzpostavi trde omejitve porabe:

import boto3

def lambda_handler(event, context):
    iam = boto3.client('iam')
    # Deactivate all keys for the 'claude-agent' user
    keys = iam.list_access_keys(UserName='claude-agent')['AccessKeyMetadata']
    for key in keys:
        iam.update_access_key(
            UserName='claude-agent',
            AccessKeyId=key['AccessKeyId'],
            Status='Inactive'
        )
    return {'statusCode': 200, 'body': 'IAM keys deactivated; existing resources unchanged'}

Omejen postopek zaustavljanja virov: Za namenski peskovnik z odobrenimi instancami EC2, podprtimi z EBS, pred zagonom zabeležite račun, regije in natančne ID-je instanc. V konzoli EC2 izberite samo te instance → Instance state → Stop instance → potrdite, nato preverite, da vsaka doseže stanje stopped. Pred tem shranite potrebne podatke instance-store, saj se pri ustavitvi izbrišejo. Preverite, da jih odobreni razporejevalnik ali sistem za skaliranje ne more nadomestiti. Tako ustavite to računsko porabo, ne vseh stroškov računa: ločeno preglejte ohranjeno shrambo in druge storitve. Sledite uradnemu postopku zaustavitve EC2.

Dokumentacija AWS Budgets opozarja, da obvestila zaostajajo za uporabo virov in da lahko nadaljnji stroški nastanejo pred opozorilom in po njem. Sprožitev pri 100% zato ne more zagotoviti natančne denarne meje.

GCP Budget Alerts. Ustvarite Budget → temo Pub/Sub → Cloud Function, ki onemogoči Service Account. Pomemben nasvet iz dokumentacije: opozorila samo obveščajo, storitev pa ne zaustavijo, zato je Cloud Function nujna.

Yandex Cloud (dokumentacija). Nastavite proračune v meniju Billing → Budgets in kvote virov kot trdo omejitev. Obvestila lahko prek Cloud Functions povežete z botom Telegram.

OpenAI API. Mehke in trde omejitve porabe so na voljo na nadzorni plošči—trda omejitev samodejno ustavi API; Lambda ni potrebna.

Kjer je na voljo, uporabite preverjeno trdo omejitev ponudnika, opozorila o proračunu z upoštevanjem zamude, ozke poverilnice in preizkušen odziv za določene vire, ki jih agent lahko ustvari. Preklic poverilnic blokira nekatere nove operacije; za tekočo uporabo virov je treba preveriti zaustavitev. Niti opozorilo niti sporočilo o uspehu Lambde za preklic ključev ne dokazujeta, da se je ustavilo vse obračunavanje.

Zakaj agent potrebuje ločen ključ API sandbox z ozko določenimi pravicami (6. pravilo)

Ključne točke

Zakaj agent potrebuje ločen ključ API? Da napaka ostane omejena. Ustvarite uporabnika IAM ali Service Account samo za enega agenta, dodelite mu minimalna dovoljenja (EC2, ne *) in ga povežite z ločenim projektom za obračunavanje s trdo omejitvijo. Če agent porabi sredstva, v eni uri porabi svojih $50, ne celotne denarnice podjetja.

Minimalna nastavitev AWS:

  1. Ustvarite uporabnika IAM claude-agent-scan
  2. Policy: samo zahtevana dejanja (na primer ec2:RunInstances v eni regiji z velikostjo t3.micro, brez elastičnega IP-ja VPC)
  3. Povežite ga z ločenim računom AWS (prek Organizations) z mesečnim proračunom $100
  4. Ustvarite dostopne ključe in jih dajte samo agentu; ne shranjujte jih v svojem ~/.aws/credentials
  5. Po seji zamenjajte ključe ali izbrišite uporabnika

Enako velja za druge ponudnike:

  • OpenAI / Anthropic: ločen ključ API za vsakega agenta, trda omejitev za vsak ključ na nadzorni plošči in oznake agent_id v metapodatkih zahtev
  • Stripe / YooKassa: omejen ključ API za eno dejanje (na primer samo charges:read) in po možnosti ločen trgovec
  • Telegram Bot API: ločen žeton bota, ne glavni

Tu velja staro varnostno načelo: najmanjši obseg pravic—agent dobi natančno to, kar naloga potrebuje, niti enega bajta več. Če je naloga »pregledati omrežje«, mu ne dajte ec2:* in s3:*; dodelite mu samo ec2:DescribeInstances in nič več.

Kdaj uporabiti suhi preizkus pred zagonom in omejitev ponovitev (7. pravilo)

Ključne točke

Zakaj naj vam agent pred zagonom pokaže svoj načrt in koliko ponovitev mu lahko največ dovolite? Plan Mode je vgrajena funkcija Claude Code: agent najprej opiše, kaj namerava storiti, vi pa to odobrite. To je brezplačno preverjanje pred zagonom. Zastavica --max-turns N omeji število korakov v eni seji, zato se agent ne more vrteti v nedogled. Za avtonomni način nastavite največ 10–30 obratov.

Plan Mode (/plan) je omogočen na začetku seje. Agent pripravi načrt, ga prikaže v klepetu, počaka na odobritev in šele nato začne delati. Je brezplačen in prepreči 70% primerov »ups, mislil sem, da bo najprej vprašal«.

--max-turns je zastavica za zagon. Vsak obrat je en cikel »agent razmišlja + klic orodja + rezultat«. Za avtonomne naloge:

  • majhna sprememba: 5–10 obratov
  • srednje velika naloga: 15–30 obratov
  • velika avtonomna naloga: 50–80 obratov

Dodatne tehnike:

  • Časovna omejitev z ukazom Linux timeout:
timeout 1800 claude --dangerously-skip-permissions --max-turns 30 -p "scan task"
# 1800 seconds = 30 minutes. Stop the process gracefully.
  • Zabeležite vsak klic orodja v datoteko s kavljem PostToolUse, da boste lahko pozneje videli, kaj se je zgodilo
  • Nadzor Cron—vsakih 5 minut preverite, ali hkrati ne teče 10 procesov Claude (kar je običajen znak, da je šlo nekaj narobe)

Pripravljeni 5-minutni kontrolni seznam pred zagonom avtonomnega Claude Code

Ključne točke

Kaj mora biti urejeno, preden pri avtonomni nalogi pritisnete Enter? Sedem potrditvenih polj, za vsako potrebujete približno minuto. Če je prazno že eno, ne zaženite.

Kontrolni seznam pred claude --dangerously-skip-permissions:

[ ] 1. Trda omejitev pri ponudniku API-ja (Anthropic Console → Limits → Monthly spend limit)
[ ] 2. Task Budget v payloadu zahteve (če uporabljate Opus 4.7+/Fable/Mythos)
[ ] 3. Kavelj PreToolUse za blokiranje ukazov rm -rf, aws s3 rb, terraform destroy
[ ] 4. Seznam dovoljenih orodij allowedTools v settings.json ali delo v vsebniku Docker
[ ] 5. Opozorila o proračunu v oblaku z zamudo + preizkušen preklic ključev in odobrena zaustavitev virov
[ ] 6. Ključi API sandbox (ločen ključ za agenta, ne glavni)
[ ] 7. --max-turns N + timeout NNN seconds + nadzor procesov prek cron

Če je vseh sedem točk urejenih, zaženite. Če manjka že ena, se ustavite in jo uredite. Trideset minut zdaj vam lahko pozneje prihrani $6,000–500,000.

Primer za kontekst: vibe coder je objavil aplikacijo spletne trgovine s privzetim geslom za podatkovno bazo postgres. V nekaj dneh jo je nekdo našel, namestil programe za rudarjenje in uvedel lastna stranska vrata. Strežnik je bilo treba ustaviti, mesečni račun pa se je povečal zaradi kripto-rudarjenja nekoga drugega.

Ta zgodba spada v kategorijo 3 iz 1. razdelka (tretje osebe izvajajo stvari na vaši infrastrukturi), vendar je logika enaka: nadzor porabe ne bi smel biti odvisen od tega, kdo jo je sprožil—vaš agent, zaposleni ali program za rudarjenje iz Nigerije.

Nadaljnje branje:

Spoznajte Ailoot.

Več podrobnosti

Vprašanja in odgovori: 7 pravil za Claude Code za omejevanje porabe avtonomnih agentov v letu 2026

Ali preklic agentovih ključev IAM ustavi račun za oblak?

Ne. Prepreči uporabo teh ključev za nove overjene zahteve, obstoječi viri pa lahko še naprej ustvarjajo stroške. Vodite seznam lastnih dovoljenih virov, ustavite odobrene instance, preverite njihovo stanje ter ločeno preglejte ohranjeno shrambo in druge storitve.

Ali lahko primer z regularnim izrazom za ukaze uveljavi celovito varnostno mejo?

Ne. Preverja samo ustrezne klice orodja Bash in izbrano besedilo ukazov. Preizkusite razčlenjevanje JSON in izhodne kode, dejansko mejo dostopa pa zagotovite z ozkimi dovoljenji v oblaku in izolacijo okolja. Enakovredne operacije in druga orodja lahko obidejo besedilni filter.

Vsi članki