7 pravidel Claude Code pro omezení útrat autonomních agentů v roce 2026
Markdown7 pravidel pro nastavení limitů v Claude Code, aby vás autonomní agent nepřipravil o všechny peníze: limity poskytovatele, Task Budgets, hooky, seznamy povolených nástrojů, nouzové vypínače, sandboxové klíče a limity iterací.
Přečíst celý článek
Hlavní poznatek
Autonomní agent s neomezeným přístupem do cloudu dokáže přes noc nadělat vysoký účet. Rozebírám 7 pravidel pro Claude Code, která můžete zavést během jednoho večera, abyste tomuto typu selhání předešli.
Zjistěte, jak se službou pracovat, v dokumentaci Ailoot.
Jaké kategorie tvoří výdaje autonomního AI agenta?
Hlavní poznatek
Za co autonomní agent utrácí vaše peníze? Přes tři samostatné kanály: tokeny u Anthropic/OpenAI, cloudové zdroje (AWS/GCP/Yandex Cloud) a placené akce v API třetích stran (platby Stripe, SMS brány, Twilio, telegramové boty s předplatným). Každý kanál má vlastní účtování a vlastní způsob, jak utrácení zastavit.
Nepleťte si tyto tři kanály—fungují nezávisle a vyžadují různá nastavení:
- Tokeny LLM. Claude, OpenAI nebo Gemini účtují vstupní a výstupní kontext každého požadavku. Pomohou zde Anthropic Task Budgets (viz Pravidlo 2) a předplatné místo průběžného placení za API.
- Cloudová infrastruktura. Prostřednictvím MCP nebo nástroje Bash agent vytváří zdroje EC2, RDS, S3 nebo nasazuje lambdy. Pomohou zde AWS Budgets, GCP nebo Yandex Cloud s nouzovým vypínačem (Pravidlo 5).
- API třetích stran. Agent provede platbu Stripe, odešle přes bránu 100 SMS nebo nastaví tisíc telegramových předplatných. Pomohou zde sandboxové klíče s úzkými oprávněními a pevný limit na ovládacím panelu poskytovatele (Pravidlo 6).
Následuje 7 pravidel. Každé pokrývá jeden nebo dva kanály.
Jak nastavit pevný limit výdajů autonomního agenta za API?
Hlavní poznatek
Jak nastavit pevný limit výdajů za API? Anthropic a OpenAI mají vestavěný limit útraty organizace, který při dosažení stanovené částky automaticky omezí účet. Nepleťte si ho s upozorněními, která pouze pošlou e-mail. Pevný limit je bariéra; upozornění je kontrolka. Nastavte obojí a začněte bariérou.
Kde ho zapnout (u každého poskytovatele počítejte alespoň se 2 minutami):
Anthropic Console. console.anthropic.com → Settings → Limits → Monthly spend limit. Nastavte částku, kterou jste ochotni v nejhorším měsíci utratit. Po jejím dosažení API vrátí 429 a zaznamená událost. Žádné „zkusím to za minutku“—do konce měsíce je přístup zablokovaný.
OpenAI Platform. platform.openai.com → Billing → Usage limits. Podobně je tu měkký limit (e-mailové upozornění) a pevný limit (vypnutí API). Nastavte oba; pevný limit nastavte na 1,5násobek měkkého, abyste měli čas zareagovat.
AWS Bedrock / Google Vertex. Pokud ke Claude/Anthropic přistupujete přes cloudového zprostředkovatele, pevný limit musí být nastaven na straně cloudu, ne u Anthropic. To je Pravidlo 5.
Co se nepočítá jako pevný limit: e-mailová upozornění („utratili jste 80 % rozpočtu“). Přicházejí se zpožděním a v noci nikdo e-maily nečte. Jedinou spolehlivou bariérou je synchronní omezení na straně poskytovatele.
Jak fungují Anthropic Task Budgets a kde je nastavit (Pravidlo 2)
Hlavní poznatek
Co jsou Anthropic Task Budgets a před čím vás chrání? Jde o beta funkci v Opus 4.7/4.8 a řadě Fable/Mythos: nastavíte rozpočet pro jeden autonomní workflow a Claude sníží hloubku uvažování, když se rozpočet blíží vyčerpání. Úkol dokončí shrnutím, místo aby uprostřed práce řekl „a dost, došel mi rozpočet“. Není to všelék na cloudové výdaje, ale předchází 80 % případů, kdy se agent „zasekl ve smyčce a nevšiml si toho“.
Podrobnosti najdete v oficiální dokumentaci Anthropic. Podstatné je, že jde o měkkou hranici, nikoli pevnou. Pokud už agent vytvořil instanci EC2, Task Budget ji neodstraní.
V praxi do pole požadavku předáte task_budget (například 100 000 vstupních tokenů na celý úkol). Claude dostane informaci o rozpočtu a sám omezí své plány—zjednoduší kroky nebo přeskočí podúkoly. Jak se rozpočet blíží nule, postupně práci ukončí a vrátí průběžné shrnutí místo „děkuju za pozornost“.
Omezení:
- Pouze API Anthropic. Nefunguje v Bedrock/Vertex, které mají vlastní účtování
- Pouze beta modely (Opus 4.7, 4.8, Fable 5, Mythos 5). Neplatí pro Sonnet 4.6 ani Haiku
- Nepokrývá cloudové výdaje ani API třetích stran. Když Claude spustí instanci EC2, Task Budget mlčí
Používejte ho společně s Pravidlem 1 (pevný limit), ne místo něj.
Nákladové pojistky jsou součástí práce s kontextem: rozhodujete, co agent smí a nesmí dělat a kde má nouzové zastavení.
Co blokovat pomocí hooků PreToolUse v Claude Code (Pravidlo 3)
Hlavní poznatek
Co jsou hooky PreToolUse v Claude Code a proč je potřebujete? Jsou to skripty spouštěné předtím, než Claude provede volání nástroje. Požadavek můžete zablokovat (exit 2), vyžadovat potvrzení uživatele nebo ho nechat projít bez dotazu. Podstatné je, že hooky se spouštějí před --dangerously-skip-permissions. To znamená, že nebezpečné akce můžete blokovat i v režimu obcházení oprávnění.
Oprávnění v Claude Code se k 1. červnu 2026 vyhodnocují v pořadí deny → ask → allow. To znamená:
- zvolený režim oprávnění ověřte zvlášť; z testu pravidla deny v běžném režimu neodvozujte ochranu režimu bypass
- pokud hook vrátí
exit 2, volání nástroje se zablokuje allowedToolsse uplatní, pouze pokud jsou pravidla deny a hooky neaktivní
Minimální hook PreToolUse kontrolující několik zápisů nebezpečných příkazů. Jde o textový filtr, nikoli úplný parser shellu nebo hranici přístupu: rovnocenné příkazy, skripty, jiné nástroje i existující cloudové zdroje potřebují vlastní kontroly.
#!/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
# Kontroluje uvedené textové vzory; nepokrývá všechny rovnocenné operace
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 uložte na uvedenou cestu, zajistěte dostupnost jq a nastavte spustitelnost přes chmod +x ~/.claude/hooks/block-dangerous-bash.sh. Navažte ho v ~/.claude/settings.json:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": "~/.claude/hooks/block-dangerous-bash.sh" }]
}
]
}
}
V /hooks ověřte registraci a předejte skriptu neškodný vzorek JSON bez vykonání pole příkazu. Uvedený destruktivní zápis má vrátit 2, neškodný příkaz 0; otestujte i chybný vstup. Regex kontroluje jen odpovídající Bash; skutečnou hranici pravomocí zajistěte úzkými přihlašovacími údaji a izolací. Viz oficiální příklad vstupu a výstupu hooku.
Proč používat seznam povolených nástrojů allowedTools a proč režim --dangerously-skip-permissions nepatří na hostitele (Pravidlo 4)
Hlavní poznatek
Kam patří seznam povolených nástrojů a proč je hostitel nevhodným místem pro režim obcházení oprávnění? allowedTools v settings.json je seznam konkrétních příkazů, které agent může spustit bez potvrzení; u všeho ostatního se vás zeptá. --dangerously-skip-permissions tyto dotazy úplně vypne, proto ho nespouštějte na hostitelském počítači—používejte pouze kontejner nebo virtuální stroj.
Seznam povolených nástrojů uplatňuje princip nejmenších oprávnění. Místo „povolit vše“ (--dangerously-skip-permissions) přidejte jen to, co úkol potřebuje:
{
"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/**)"
]
}
}
Co potřebujete vědět o režimu obcházení oprávnění:
- Linux/macOS odmítnou spustit Claude Code v režimu obcházení oprávnění jako root nebo přes sudo—vestavěná ochrana
- Na vlastním počítači tento režim vypne všechna potvrzovací okna a agent může provádět
rm -rfpodle libosti, otevřít SSH klíče a nahrávat data do cloudu - Nikdy nespouštějte
--dangerously-skip-permissionsna hostiteli, pouze v:- kontejneru Docker s omezeným připojeným svazkem (jen požadovaná složka)
- izolovaném virtuálním stroji (Multipass, Lima, Orbstack)
- GitHub Codespaces / Replit / jiném izolovaném prostředí
Minimální příkaz docker run pro režim obcházení oprávnění:
docker run --rm -it \
-v "$PWD:/workspace" \
-w /workspace \
--network host \
ghcr.io/anthropics/claude-code:latest \
claude --dangerously-skip-permissions
Pokud agent potřebuje cloudová přihlašovací data, použijte oddělené klíče s úzkými oprávněními, ne své hlavní (Pravidlo 6).
Jak nastavit upozornění na cloudový rozpočet s nouzovým vypínačem v AWS, GCP a Yandex Cloud (Pravidlo 5)
Hlavní poznatek
Upozornění rozpočtu hlásí pozorovanou či předpovídanou útratu a může přijít pozdě. Reakční funkce může blokovat nové operace agenta nebo zastavit konkrétní zdroje; jde o odlišné akce. Deaktivace klíče IAM nezastaví náklady již běžících zdrojů. Zastavování zdrojů definujte a testujte zvlášť.
Jak to nastavit v jednotlivých cloudech:
AWS Budgets (dokumentace). Vytvořte měsíční rozpočet a prahové hodnoty (50 %, 80 %, 100 %). Při prahu 100 % může SNS vyvolat reakční Lambda. Příklad níže pouze deaktivuje přístupové klíče jmenovaného uživatele IAM; nezastavuje zdroje ani nedokládá pevný limit útraty:
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'}
Vymezený postup zastavení zdrojů: U vyhrazeného sandboxu se schválenými EC2 instancemi na EBS před běhěm zaznamenejte účet, regiony a přesná ID. V konzoli EC2 vyberte pouze tyto instance → Instance state → Stop instance → potvrďte a ověřte stav každé stopped. Nejprve zachovejte potřebná data instance-store; zastavení je vymaže. Ověřte, že je schválený plánovač či škálování nenahradí. Končí tím tato výpočetní spotřeba, nikoli všechny poplatky účtu: úložiště a další služby prověřte zvlášť. Dodržte oficiální postup zastavení EC2.
Dokumentace AWS Budgets varuje, že oznámení zaostávají za využitím a další náklady mohou vznikat před i po upozornění. Spuštění při 100 % proto nevynucuje přesný peněžní strop.
Upozornění na rozpočet GCP. Vytvořte Budget → téma Pub/Sub → Cloud Function, která deaktivuje Service Account. Důležitý tip z dokumentace: upozornění pouze informují, nic nevypínají, proto je Cloud Function nezbytná.
Yandex Cloud (dokumentace). Nastavte rozpočty v Billing → Budgets a také kvóty zdrojů jako pevný limit. Upozornění můžete propojit s telegramovým botem prostřednictvím Cloud Functions.
OpenAI API. Měkké a pevné limity útraty jsou přímo na ovládacím panelu—pevný limit API automaticky zastaví; Lambda není potřeba.
Použijte ověřený pevný limit poskytovatele, kde existuje, opožděná rozpočtová upozornění, úzké přihlašovací údaje a otestovanou reakci na konkrétní vytvářené zdroje. Odvolání klíče blokuje některé nové operace; průběžné využití vyžaduje ověření zastavení. Upozornění ani úspěšná zpráva Lambda odvolávající klíče nedokazuje konec všech poplatků.
Proč agent potřebuje samostatný sandboxový klíč API s úzkým rozsahem oprávnění (Pravidlo 6)
Hlavní poznatek
Proč agent potřebuje samostatný klíč API? Aby se případné selhání omezilo. Vytvořte uživatele IAM nebo Service Account jen pro jednoho agenta, přidělte mu minimální oprávnění (EC2, nikoli * ) a připojte ho k samostatnému fakturačnímu projektu s pevným limitem. Pokud agent rozpočet vyčerpá, za hodinu utratí svých vlastních 50 $, ne celou firemní pokladnu.
Minimální nastavení AWS:
- Vytvořte uživatele IAM
claude-agent-scan - Zásada: pouze nezbytné akce (například
ec2:RunInstancesv jednom regionu, s velikostít3.micro, bez elastické IP adresy VPC) - Připojte ho k samostatnému účtu AWS (prostřednictvím Organizations) s měsíčním rozpočtem 100 $
- Vygenerujte přístupové klíče a předejte je pouze agentovi; neukládejte je do svého
~/.aws/credentials - Po relaci klíče obměňte nebo uživatele smažte
Podobně postupujte u dalších poskytovatelů:
- OpenAI / Anthropic: samostatný klíč API pro každého agenta, pevný limit pro každý klíč na ovládacím panelu a štítky
agent_idv metadatech požadavků - Stripe / YooKassa: omezený klíč API pro jednu akci (například pouze
charges:read) a pokud možno samostatný účet obchodníka - Telegram Bot API: samostatný token bota, ne hlavní token
Platí zde stará zásada zabezpečení: nejmenší potřebná oprávnění—agent dostane přesně to, co úkol potřebuje, ani o bajt víc. Pokud je úkolem „prohledat síť“, nedávejte mu ec2:* a s3:*; dejte mu pouze ec2:DescribeInstances a hotovo.
Kdy použít zkušební spuštění předem a limit iterací (Pravidlo 7)
Hlavní poznatek
Proč nechat agenta, aby vám před spuštěním ukázal plán, a kolik iterací mu nejvýše povolit? Plan Mode je vestavěná funkce Claude Code: agent nejprve popíše, co hodlá udělat, a vy to schválíte. Je to bezplatná předběžná kontrola. A --max-turns N omezuje počet kroků v jedné relaci, takže se agent nemůže točit donekonečna. Pro autonomní režim nastavte nejvýše 10–30 cyklů.
Plan Mode (/plan) se zapíná na začátku relace. Agent připraví plán, zobrazí ho v chatu, počká na schválení a teprve potom začne pracovat. Je to zdarma a předchází 70 % případů typu „jejda, myslel jsem, že se nejdřív zeptá“.
--max-turns je příznak spuštění. Každý cyklus tvoří „agent přemýšlí + volání nástroje + výsledek“. Pro autonomní úkoly:
- drobná změna: 5–10 cyklů
- střední úkol: 15–30 cyklů
- rozsáhlý autonomní úkol: 50–80 cyklů
Další postupy:
- Časový limit pomocí příkazu Linuxu
timeout:
timeout 1800 claude --dangerously-skip-permissions --max-turns 30 -p "scan task"
# 1800 seconds = 30 minutes. Stop the process gracefully.
- Každé volání nástroje zaznamenávejte do souboru pomocí hooku PostToolUse, abyste později viděli, co se stalo
- Monitorování přes cron—každých 5 minut ověřte, že neběží 10 procesů Claude současně (typický příznak, že se něco pokazilo)
Připravený kontrolní seznam na 5 minut před spuštěním autonomního Claude Code
Hlavní poznatek
Co musí být připravené, než u autonomního úkolu stisknete Enter? Sedm políček, každé zabere asi minutu. Pokud je byť jedno prázdné, agenta nespouštějte.
Kontrolní seznam před spuštěním claude --dangerously-skip-permissions:
[ ] 1. Pevný limit u poskytovatele API (Anthropic Console → Limits → Monthly spend limit)
[ ] 2. Task Budget v požadavku (při použití Opus 4.7+/Fable/Mythos)
[ ] 3. Hook PreToolUse pro blokování rm -rf, aws s3 rb, terraform destroy
[ ] 4. Seznam povolených nástrojů allowedTools v settings.json nebo práce uvnitř kontejneru Docker
[ ] 5. Opožděná cloudová upozornění + otestované odvolání klíčů a schválené zastavení zdrojů
[ ] 6. Sandboxové klíče API (samostatný klíč pro agenta, ne hlavní)
[ ] 7. --max-turns N + timeout NNN seconds + monitorování procesů přes cron
Pokud je všech sedm opatření zavedeno, spusťte agenta. Pokud chybí byť jedno, zastavte se a nastavte ho. Třicet minut teď vám může později ušetřit 6 000–500 000 $.
Příklad pro kontext: vibe coder spustil internetový obchod s výchozím heslem databáze postgres. Během pár dní ji někdo našel, nainstaloval minery a nasadil vlastní zadní vrátka. Server bylo nutné vypnout a účet za daný měsíc vzrostl kvůli těžbě kryptoměn někoho jiného.
Tento příběh spadá do kategorie 3 z části 1 (třetí strany spouštějící věci ve vaší infrastruktuře), ale logika je stejná: kontrola výdajů by neměla záviset na tom, kdo je inicioval—váš agent, zaměstnanec, nebo miner v Nigérii.
Další čtení:
- Jak ochránit Claude Code před rozbitím—o
--dangerously-skip-permissionsa oprávněních z jiného úhlu - Zabezpečení vibe codingu—pilíř zabezpečení
- Jak za jeden den nevyčerpat limity Claude Code—o tokenech v předplatném (nepleťte si to s tímto průvodcem cloudovými účty)
Zdroje
Seznamte se s Ailoot.
Další podrobnosti
Časté otázky
Zastaví odvolání klíčů IAM agenta účet cloudu?
Ne. Blokuje nové ověřované požadavky těmito klíči, existující zdroje ale mohou dál vytvářet náklady. Udržujte seznam vlastních zdrojů, zastavte schválené instance, ověřte stav a ponechané úložiště i další služby prověřte zvlášť.
Vynutí ukázkový regex příkazů úplnou bezpečnostní hranici?
Ne. Zkoumá jen odpovídající volání Bash a vybraný text. Otestujte parsování JSON a návratové kódy, skutečnou hranici ale zajistěte úzkými cloudovými oprávněními a izolací prostředí. Rovnocenné operace a jiné nástroje mohou textový filtr obejít.