7 „Claude Code“ taisyklės autonominių agentų išlaidoms riboti 2026 m.
Markdown7 taisyklės, kaip nustatyti „Claude Code“ ribas, kad autonominis agentas nepaliktų jūsų be pinigų: paslaugų teikėjo limitai, Task Budgets, hooks, leidžiamų sąrašai, avariniai išjungikliai, smėlio dėžės raktai ir iteracijų limitai.
Skaityti visą straipsnį
Pagrindiniai punktai
Autonominis agentas su neribota prieiga prie debesijos per vieną naktį gali sukaupti didelę sąskaitą. Apžvelgiu 7 „Claude Code“ taisykles, kurias galite įgyvendinti per vieną vakarą, kad išvengtumėte tokio pobūdžio nesėkmės.
Sužinokite, kaip naudotis paslauga, „Ailoot“ dokumentacijoje.
Kur dingsta pinigai: 3 autonominio agento išlaidų kategorijos
Pagrindiniai punktai
Kur autonominis agentas išleidžia jūsų pinigus? Trimis atskirais kanalais: žetonams „Anthropic“ / „OpenAI“, debesijos ištekliams (AWS/GCP/Yandex Cloud) ir mokamiems veiksmams trečiųjų šalių API (mokėjimams „Stripe“, SMS šliuzams, „Twilio“, „Telegram“ robotams su prenumeratomis). Kiekvienas kanalas turi atskirą atsiskaitymą ir savą būdą išlaidų šėlsmui sustabdyti.
Nepainiokite šių trijų kanalų—jie veikia nepriklausomai ir reikalauja skirtingų nustatymų:
- LLM žetonai. „Claude“, „OpenAI“ arba „Gemini“ apmokestina kiekvienos užklausos įvesties ir išvesties kontekstą. Čia gali padėti „Anthropic Task Budgets“ (žr. 2 taisyklę) ir prenumerata vietoj mokėjimo už API pagal naudojimą.
- Debesijos infrastruktūra. Per MCP arba „Bash“ įrankį agentas sukuria EC2, RDS, S3 išteklius arba įdiegia lambda funkcijas. Čia gali padėti AWS Budgets, GCP arba Yandex Cloud su avariniu išjungikliu (5 taisyklė).
- Trečiųjų šalių API. Agentas atlieka mokėjimą per „Stripe“, išsiunčia 100 SMS žinučių per šliuzą arba sukuria tūkstantį „Telegram“ prenumeratų. Čia gali padėti smėliadėžės raktai su siaura prieiga ir griežta riba paslaugos teikėjo valdymo skydelyje (6 taisyklė).
Toliau pateikiamos 7 taisyklės. Kiekviena apima vieną ar du kanalus.
Kaip nustatyti griežtą API išlaidų ribą (1 taisyklė)
Pagrindiniai punktai
Kaip nustatyti griežtą API išlaidų ribą? „Anthropic“ ir „OpenAI“ turi integruotą organizacijos išlaidų limitą, kuris pasiekus nustatytą sumą automatiškai apriboja paskyrą. Nepainiokite jo su įspėjimais, kurie tik siunčia el. laišką. Griežta riba yra užtvara; įspėjimai—indikatoriaus lemputė. Nustatykite abu, pradėdami nuo užtvaros.
Kur ją įjungti (kiekvienam paslaugos teikėjui skirkite bent 2 minutes):
Anthropic Console. console.anthropic.com → Settings → Limits → Monthly spend limit. Nustatykite sumą, kurią blogiausią mėnesį esate pasirengę išleisti. Ją pasiekus API grąžins 429 ir užregistruos įvykį. Nebus jokio „po minutės pabandysiu dar kartą“—prieiga bus blokuojama iki mėnesio pabaigos.
OpenAI Platform. platform.openai.com → Billing → Usage limits. Čia taip pat yra minkštasis limitas (įspėjimas el. paštu) ir griežtas limitas (API išjungimas). Nustatykite abu; griežtą limitą nustatykite 1,5 karto didesnį už minkštąjį, kad liktų laiko sureaguoti.
AWS Bedrock / Google Vertex. Jei „Claude“ / „Anthropic“ pasiekiate per debesijos tarpininką, griežta riba turi būti nustatyta debesijos pusėje, o ne „Anthropic“. Tai 5 taisyklė.
Kas nelaikoma griežta riba: įspėjimai el. paštu („išnaudojote 80 % biudžeto“). Jie ateina pavėluotai, o naktį niekas neskaito el. pašto. Tik sinchroninė apsauga paslaugos teikėjo pusėje.
Kaip veikia „Anthropic Task Budgets“ ir kur juos nustatyti (2 taisyklė)
Pagrindiniai punktai
Kas yra „Anthropic Task Budgets“ ir nuo ko jie apsaugo? Tai beta funkcija, skirta „Opus 4.7/4.8“ ir „Fable/Mythos“ linijoms: nustatote biudžetą vienai autonominei darbo eigai, o „Claude“, artėjant prie biudžeto pabaigos, sumažina samprotavimo gylį ir užbaigia darbą pateikdamas santrauką, užuot viduryje užduoties pasakęs „viskas, man baigėsi biudžetas“. Tai neišsprendžia visų debesijos išlaidų problemų, bet padeda išvengti 80 % atvejų, kai agentas „įstrigo cikle ir to nepastebėjo“.
Daugiau informacijos rasite oficialioje „Anthropic“ dokumentacijoje. Svarbiausia: tai minkšta riba, o ne griežta. Jei agentas jau sukūrė EC2 egzempliorių, „Task Budget“ jo neatšauks.
Kaip tai veikia praktiškai: užklausos duomenyse perduodate lauką task_budget (pavyzdžiui, 100,000 įvesties žetonų visai užduočiai). „Claude“ informuojamas apie biudžetą ir pats apriboja savo planus—supaprastina veiksmus arba praleidžia antrines užduotis. Biudžetui artėjant prie nulio, jis užbaigia darbą ir grąžina tarpinę santrauką, o ne „ačiū, kad klausėtės“.
Apribojimai:
- Tik „Anthropic“ API. Neveikia su „Bedrock“ / „Vertex“, kurių atsiskaitymas atskiras
- Tik beta modeliai („Opus 4.7“, 4.8, „Fable 5“, „Mythos 5“). Netaikoma „Sonnet 4.6“ ar „Haiku“
- Neapima debesijos išlaidų ar trečiųjų šalių API. Jei „Claude“ paleidžia EC2 egzempliorių, „Task Budget“ tyli
Naudokite kartu su 1 taisykle (griežta riba), o ne vietoj jos.
Išlaidų apsaugos yra konteksto inžinerijos dalis: jūs nusprendžiate, ką agentas gali ir ko negali daryti ir kur yra jo avarinio sustabdymo mygtukas.
Ką blokuoti „Claude Code“ PreToolUse kabliukais (3 taisyklė)
Pagrindiniai punktai
Kas yra „Claude Code“ PreToolUse kabliukai ir kodėl jų reikia? Tai skriptai, vykdomi prieš „Claude“ įvykdant įrankio iškvietimą. Jie gali užblokuoti užklausą (exit 2), pareikalauti naudotojo patvirtinimo arba leisti jai praeiti be klausimo. Svarbiausia, kad kabliukai vykdomi prieš --dangerously-skip-permissions. Tai reiškia, kad pavojingus veiksmus galite užblokuoti net apėjimo režimu.
„Claude Code“ leidimai (2026 m. birželio 1 d. duomenimis) vertinami tokia tvarka: deny → ask → allow. Tai reiškia:
- pasirinktą leidimų režimą tikrinkite atskirai; iš įprastame režime išbandytos deny taisyklės nedarykite išvados apie apsaugą apėjimo režimu
- jei kabliukas grąžina
exit 2, įrankio iškvietimas blokuojamas allowedToolstaikomas tik tada, kai deny taisyklės ir kabliukai nieko nenurodo
Minimalus PreToolUse kabliukas, tikrinantis kelias pavojingų komandų rašybos formas. Tai teksto filtras, o ne išsamus komandų interpretatoriaus analizatorius ar prieigos riba: lygiavertėms komandoms, skriptams, kitiems įrankiams ir jau veikiantiems debesijos ištekliams reikia atskirų priemonių.
#!/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
# Tikrina išvardytus teksto šablonus; neapima visų lygiaverčių operacijų
if echo "$COMMAND" | grep -qiE '(rm -rf|aws s3 rb|terraform destroy|kubectl delete|drop database)'; then
echo "Užblokuota: destruktyvi komanda" >&2
exit 2
fi
exit 0
Išsaugokite skriptą nurodytu keliu, įsitikinkite, kad pasiekiamas jq, ir suteikite vykdymo teisę komanda chmod +x ~/.claude/hooks/block-dangerous-bash.sh. Prijunkite jį faile ~/.claude/settings.json:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": "~/.claude/hooks/block-dangerous-bash.sh" }]
}
]
}
}
Per /hooks patikrinkite registraciją, tada perduokite skriptui nepavojingą pavyzdinį JSON, nevykdydami jo komandos lauko. Sąraše esanti destruktyvi rašybos forma turi grąžinti 2, o nepavojinga komanda — 0. Taip pat išbandykite netinkamą įvestį. Reguliarioji išraiška tikrina tik atitinkančius Bash iškvietimus; tikrajai teisių ribai naudokite siaurus prisijungimo duomenis ir aplinkos izoliaciją. Žr. oficialų kabliuko įvesties ir išvesties pavyzdį.
Kodėl naudoti allowedTools leidžiamų įrankių sąrašą ir kodėl --dangerously-skip-permissions netinka pagrindiniam kompiuteriui (4 taisyklė)
Pagrindiniai punktai
Kur įrašyti leidžiamų įrankių sąrašą ir kodėl pagrindinis kompiuteris netinka apėjimo režimui? allowedTools faile settings.json yra konkrečių komandų, kurias agentas gali vykdyti be patvirtinimo, sąrašas; dėl visų kitų komandų jis jūsų paklaus. --dangerously-skip-permissions visiškai išjungia šiuos patvirtinimo klausimus, todėl nenaudokite šio režimo pagrindiniame kompiuteryje—tik konteineryje arba VM.
Leidžiamų įrankių sąrašas įgyvendina mažiausių privilegijų principą. Užuot „leidę viską“ (--dangerously-skip-permissions), pridėkite tik tai, ko reikia užduočiai:
{
"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/**)"
]
}
}
Ką reikia žinoti apie apėjimo režimą:
- Linux/macOS atsisako paleisti „Claude Code“ apėjimo režimu kaip root arba su sudo—tai integruota apsauga
- Savo kompiuteryje apėjimo režimas išjungia visus patvirtinimo klausimus, todėl agentas gali vykdyti bet kokį norimą
rm -rf, atidaryti SSH raktus ir įkelti duomenis į debesiją --dangerously-skip-permissionsniekada nenaudokite pagrindiniame kompiuteryje, tik šiose aplinkose:- „Docker“ konteineryje su ribotu prijungtu katalogu (tik reikiamas aplankas)
- izoliuotoje VM („Multipass“, „Lima“, „Orbstack“)
- „GitHub Codespaces“, „Replit“ ar kitoje smėliadėžėje
Minimali docker run komanda apėjimo režimui:
docker run --rm -it \
-v "$PWD:/workspace" \
-w /workspace \
--network host \
ghcr.io/anthropics/claude-code:latest \
claude --dangerously-skip-permissions
Jei agentui reikia debesijos prisijungimo duomenų, naudokite atskirus raktus su siaura prieiga, o ne pagrindinius (6 taisyklė).
Kaip AWS, GCP ir Yandex Cloud nustatyti debesijos biudžeto įspėjimus su avariniu išjungikliu (5 taisyklė)
Pagrindiniai punktai
Biudžeto įspėjimas praneša apie pastebėtas ar prognozuojamas išlaidas ir gali vėluoti. Reagavimo funkcija gali blokuoti naujas agento operacijas arba sustabdyti konkrečius išteklius; tai skirtingi veiksmai. IAM rakto išjungimas nesustabdo mokesčių už jau veikiančius išteklius. Išteklių sustabdymą apibrėžkite ir išbandykite atskirai.
Kaip tai nustatyti kiekvienoje debesijos platformoje:
AWS Budgets (dokumentacija). Sukurkite mėnesio biudžetą su slenkstinėmis reikšmėmis (50%, 80%, 100%). Pasiekus 100% slenkstį, SNS tema gali iškviesti reagavimo Lambda funkciją. Toliau pateiktas pavyzdys tik išjungia nurodyto naudotojo IAM prieigos raktus; jis nei sustabdo išteklius, nei nustato griežtą išlaidų ribą:
import boto3
def lambda_handler(event, context):
iam = boto3.client('iam')
# Išjungti visus naudotojo 'claude-agent' raktus
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'}
Apribota išteklių sustabdymo procedūra: Atskirai smėliadėžei su patvirtintais EBS pagrįstais EC2 egzemplioriais prieš paleidimą užfiksuokite paskyrą, regionus ir tikslius egzempliorių ID. EC2 konsolėje pasirinkite tik tuos egzempliorius → Instance state → Stop instance → patvirtinkite, tada įsitikinkite, kad kiekvienas pasiekė būseną stopped. Pirmiausia išsaugokite reikalingus instance-store duomenis; sustabdžius jie ištrinami. Patikrinkite, ar patvirtintas planuoklis arba mastelio keitimo sistema negali jų pakeisti naujais. Taip sustabdomas šis skaičiavimo išteklių naudojimas, o ne visi paskyros mokesčiai: išsaugotą saugyklą ir kitas paslaugas peržiūrėkite atskirai. Vadovaukitės oficialia EC2 sustabdymo procedūra.
AWS Budgets dokumentacija įspėja, kad pranešimai atsilieka nuo išteklių naudojimo, o išlaidų gali atsirasti ir prieš įspėjimą, ir po jo. Todėl 100% slenkstis negali užtikrinti tikslios piniginės ribos.
GCP biudžeto įspėjimai. Sukurkite Budget → Pub/Sub temą → Cloud Function, kuri išjungia Service Account. Svarbi pastaba iš dokumentacijos: įspėjimai tik praneša, bet nieko neišjungia, todėl Cloud Function yra būtina.
Yandex Cloud (dokumentacija). Nustatykite biudžetus skiltyje Billing → Budgets, taip pat išteklių kvotas kaip griežtą ribą. Pranešimus galite susieti su „Telegram“ robotu per Cloud Functions.
OpenAI API. Minkštieji ir griežti išlaidų limitai nustatomi tiesiogiai valdymo skydelyje—griežtas limitas automatiškai sustabdo API; Lambda nereikia.
Naudokite patikrintą griežtą limitą teikėjo pusėje, jei jis prieinamas, vėluojančius biudžeto įspėjimus, siaurus prisijungimo duomenis ir išbandytą reagavimą į konkrečius agento kuriamus išteklius. Prisijungimo duomenų atšaukimas blokuoja dalį naujų operacijų; vykstančiam išteklių naudojimui reikia sustabdymo patikros. Nei įspėjimas, nei sėkmės žinutė iš raktus išjungiančios Lambda funkcijos neįrodo, kad visas apmokestinimas sustojo.
Kodėl agentui reikia atskiro smėliadėžės API rakto su siaura prieiga (6 taisyklė)
Pagrindiniai punktai
Kodėl agentui reikia atskiro API rakto? Kad nesėkmės padariniai būtų apriboti. Sukurkite IAM naudotoją arba Service Account tik vienam agentui, suteikite jam minimalius leidimus (EC2, o ne *) ir priskirkite atskiram atsiskaitymo projektui su griežta riba. Jei agentas ją išnaudos, per valandą išleis tik savo 50 $, o ne visus įmonės pinigus.
Minimali AWS sąranka:
- Sukurkite IAM naudotoją
claude-agent-scan - Politika: tik būtini veiksmai (pavyzdžiui,
ec2:RunInstancesviename regione,t3.microdydžio, be VPC elastinio IP) - Priskirkite jį atskirai AWS paskyrai (per Organizations), kuriai nustatytas 100 $ mėnesio biudžetas
- Sugeneruokite prieigos raktus ir suteikite juos tik agentui; nedėkite jų į savo
~/.aws/credentials - Pasibaigus sesijai, pakeiskite raktus arba ištrinkite naudotoją
Panašiai ir su kitais paslaugų teikėjais:
- OpenAI / Anthropic: atskiras API raktas kiekvienam agentui, kiekvieno rakto griežtas limitas valdymo skydelyje ir
agent_idžymos užklausų metaduomenyse - Stripe / YooKassa: ribotos prieigos API raktas vienam veiksmui (pavyzdžiui, tik
charges:read) ir, jei įmanoma, atskiras prekybininkas - Telegram Bot API: atskiras roboto prieigos raktas, o ne pagrindinis
Čia galioja senasis saugumo principas: mažiausios privilegijos—agentui suteikiama tiksliai tai, ko reikia užduočiai, nė vieno baito daugiau. Jei užduotis yra „nuskaityti tinklą“, nesuteikite jam ec2:* ir s3:*; suteikite tik ec2:DescribeInstances ir viskas.
Kada naudoti išankstinį bandomąjį paleidimą ir iteracijų limitą (7 taisyklė)
Pagrindiniai punktai
Kodėl prieš paleidžiant reikia paprašyti agento parodyti planą ir kiek daugiausia iteracijų jam leisti? „Plan Mode“ yra integruota „Claude Code“ funkcija: agentas pirmiausia aprašo, ką ketina daryti, o jūs tai patvirtinate. Tai nemokama patikra prieš paleidimą. O --max-turns N apriboja žingsnių skaičių vienoje sesijoje, kad agentas negalėtų suktis amžinai. Autonominiam režimui nustatykite ne daugiau kaip 10–30 ėjimų.
„Plan Mode“ (/plan) įjungiamas sesijos pradžioje. Agentas parengia planą, parodo jį pokalbyje, laukia patvirtinimo ir tik tada pradeda dirbti. Tai nemokama ir apsaugo nuo 70 % atvejų, kai pagalvojama: „oi, maniau, kad jis pirmiausia paklaus“.
--max-turns yra paleidimo vėliavėlė. Kiekvienas ėjimas—tai vienas ciklas „agentas mąsto + įrankio iškvietimas + rezultatas“. Autonominėms užduotims:
- nedidelis pakeitimas: 5–10 ėjimų
- vidutinė užduotis: 15–30 ėjimų
- didelė autonominė užduotis: 50–80 ėjimų
Papildomi būdai:
- Laiko limitas naudojant Linux komandą
timeout:
timeout 1800 claude --dangerously-skip-permissions --max-turns 30 -p "scan task"
# 1800 sekundžių = 30 minučių. Procesą sustabdykite tvarkingai.
- Registruokite kiekvieną įrankio iškvietimą faile naudodami PostToolUse kabliuką, kad vėliau matytumėte, kas įvyko
- Stebėjimas per cron—kas 5 minutes patikrinkite, ar vienu metu neveikia 10 „Claude“ procesų (tai įprastas ženklas, kad kažkas nutiko ne taip)
Paruoštas 5 minučių kontrolinis sąrašas prieš paleidžiant autonominį „Claude Code“
Pagrindiniai punktai
Kas turi būti paruošta prieš paspaudžiant Enter vykdant autonominę užduotį? Septyni žymimieji langeliai, kiekvienam prireiks maždaug minutės. Jei bent vienas tuščias, nepaleiskite.
Kontrolinis sąrašas prieš paleidžiant claude --dangerously-skip-permissions:
[ ] 1. Griežtas limitas API teikėjo pusėje (Anthropic Console → Limits → Monthly spend limit)
[ ] 2. Task Budget užklausos duomenyse (jei naudojate Opus 4.7+/Fable/Mythos)
[ ] 3. PreToolUse kabliukas, blokuojantis rm -rf, aws s3 rb, terraform destroy
[ ] 4. allowedTools leidžiamų įrankių sąrašas faile settings.json arba darbas „Docker“ konteineryje
[ ] 5. Vėluojantys debesijos biudžeto įspėjimai + išbandytas raktų atšaukimas ir patvirtintas išteklių sustabdymas
[ ] 6. Smėliadėžės API raktai (atskiras raktas agentui, ne pagrindinis)
[ ] 7. --max-turns N + timeout NNN sekundžių + procesų stebėjimas per cron
Jei įvykdytos visos septynios sąlygos, paleiskite. Jei trūksta bent vienos, sustokite ir ją nustatykite. Dabar skirtos trisdešimt minučių vėliau gali sutaupyti 6 000–500 000 $.
Kontekstui—pavyzdys: vibe coder paleido internetinės parduotuvės programėlę su numatytuoju postgres duomenų bazės slaptažodžiu. Po kelių dienų kažkas ją rado, įdiegė kriptovaliutų kasimo programas ir įdiegė savo užpakalines prieigas. Serverį teko išjungti, o mėnesio sąskaita išaugo dėl kažkieno kito vykdomo kriptovaliutų kasimo.
Ši istorija susijusi su 3 kategorija iš 1 skilties (trečiosios šalys, vykdančios veiksmus jūsų infrastruktūroje), tačiau logika tokia pati: išlaidų kontrolė neturėtų priklausyti nuo to, kas jas sukėlė—jūsų agentas, darbuotojas ar kriptovaliutų kasėjas Nigerijoje.
Papildoma literatūra:
- Kaip apsaugoti „Claude Code“ nuo gedimų—apie
--dangerously-skip-permissionsir leidimus iš kitos perspektyvos - Vibe coding saugumas—saugumo ramstis
- Kaip per vieną dieną neišnaudoti „Claude Code“ limitų—apie prenumeratos žetonus (nepainiokite su šiuo vadovu apie debesijos sąskaitas)
Šaltiniai
Susipažinkite su Ailoot.
Išsamiau
Klausimai ir atsakymai
Ar atšaukus agento IAM raktus sustoja debesijos sąskaita?
Ne. Tai blokuoja tų raktų naudojimą naujoms autentifikuotoms užklausoms, tačiau už esamus išteklius toliau gali būti skaičiuojami mokesčiai. Turėkite valdomų išteklių leidžiamų įrašų sąrašą, sustabdykite patvirtintus egzempliorius, patikrinkite jų būseną ir atskirai peržiūrėkite išsaugotą saugyklą bei kitas paslaugas.
Ar pavyzdžio komandų reguliarioji išraiška užtikrina visą saugumo ribą?
Ne. Ji nagrinėja tik atitinkančius Bash įrankio iškvietimus ir pasirinktą komandų tekstą. Išbandykite jos JSON analizę ir grąžinamus kodus, tačiau tikrajai prieigos ribai naudokite siaurus debesijos leidimus ir aplinkos izoliaciją. Lygiavertės operacijos ir kiti įrankiai gali apeiti teksto filtrą.