Sari la conținut

Gestionează costurile

Acest ghid îți arată cum să vezi cât costă rulările agenților și cum să plafonezi o rulare autonomă.

Fiecare rulare de agent scrie un jurnal de rulare care cuprinde tokenii ei de intrare, tokenii de ieșire, tokenii de raționament, tokenii citiți din cache și scriși în cache, un cost estimat în cenți și costul oricărui subagent pe care l-a generat.

Prețurile provin din catalogul models.dev, care este folosit doar pentru a îmbogăți lista de modele cu preț și fereastra de context — niciodată ca sursă de id-uri de model. Un model pe care catalogul nu-l poate prețui înregistrează 0 $, iar rulările cu cost zero sunt excluse din rezumatul Utilizare și cost. Un model Ollama local nu arată, prin urmare, nicio cheltuială, deși numărul lui de tokeni este totuși înregistrat. Un plan cu tarif fix (kimi-code, un abonament Claude) se comportă la fel doar atunci când catalogul nu are un preț pentru modelul servit; dacă are, rularea este oricum estimată la acele tarife. Într-un lanț de rezervă, rularea este evaluată după modelul care a servit-o efectiv, nu după cel cerut.

Ajungi acolo din subsolul barei laterale → Observabilitate. Se deschide mai întâi fila Utilizare (totalurile de tokeni pe toată perioada); comută pe Insights — a doua filă — pentru suprafața principală de costuri:

  • Un selector de interval de timp: ultimele 24 de ore, ultimele 7 zile, ultimele 30 de zile sau tot timpul
  • Filtre fațetate după agent, model, stare și rol, ca cipuri care pot fi închise
  • O bandă de KPI-uri: rulări totale, cost total, rată de eroare, rată cache, tokeni pe secundă, latență medie și timp până la primul token, fiecare cu o variație față de perioada anterioară (ascunsă la „Tot timpul”)
  • Grafice de activitate și de cost, plus o defalcare Cost pe rol care împarte cheltuiala între agentul principal, subagenții lui și consilierul lui
  • Un tabel pe agent sortat după cost, primele zece, cu un comutator de afișare a tuturor. Atingerea unui rând filtrează toate celelalte suprafețe după acel agent
  • Jurnalul de rulare granular, care ancorează un sertar de transcriere pentru o rulare selectată

Cardul Utilizare și cost de pe această pagină arată ultimele șapte zile de cheltuieli observate ca o singură cifră în dolari, cu o defalcare pe provideri și, când un provider publică una, timpul până la resetarea următoarei ferestre de cotă.

Setări → Spațiu de lucru → Agenți → selectează un agent → Jurnale listează rulările lui, cu stare, durată, ora de început și de finalizare, PID și adaptor. Această filă nu arată costul — folosește în acest scop tabelul pe agent din Observabilitate → Insights.

Două comenzi slash, tastate în composerul unui spațiu, sunt singurele rulări cu plafon de cost:

/goal ship the auth refactor --budget 20
/loop keep the flaky tests green
  • Fiecare segment al unei rulări /goal sau /loop se oprește când cheltuiala lui calculată ajunge la 500 de cenți (5,00 $). La 80% din aceasta, bucla direcționează mai întâi modelul să încheie și să lase o predare curată, ca să nu moară la mijlocul sarcinii.
  • Un obiectiv durabil întreg este plafonat la 5000 de cenți (50,00 $) dacă nu cumva transmiți --budget <dollars>. Supraveghetorul propagă bugetul rămas al obiectivului în fiecare segment, așa că un buget explicit nu este niciodată depășit cu un segment întreg.
  • --days N adaugă un termen limită în timp real, iar --max N un plafon de număr de rulări. Ambele sunt opționale; fără ele, obiectivul este mărginit doar de cost.
  • Un obiectiv care se lovește de zidul lui se oprește la budgetExhausted și poate fi reluat doar mărind bugetul.

Deoarece plafonul se bazează pe prețuri, un model pe care catalogul nu-l poate prețui nu îl atinge niciodată. O astfel de rulare este mărginită în schimb de gardul împotriva buclei fatale, de renunțarea supraveghetorului după trei eșecuri consecutive și de tine.

Un mesaj într-un spațiu, o mențiune cu @ sau un pas de pipeline nu are plafon de cost. Rularea se termină când modelul se oprește, când o oprești tu sau când gardul împotriva buclei fatale o direcționează.

Scrie /compact în composerul spațiului. Comanda este interceptată pe partea clientului și nu ajunge niciodată în transcriere; serverul pliază istoricul mai vechi într-un rezumat ancorat, iar conversația continuă pe contextul compactat.

Compactarea este refuzată cât timp un agent se află la mijlocul unui tur și când nu există nimic suficient de vechi de pliat. Harnessul încorporat compactează și de la sine, pe măsură ce istoricul se apropie de fereastra de context a modelului.

Efortul de raționament al unui agent (Setări → Spațiu de lucru → Agenți) oferă nivelurile pe care le publică modelul selectat. Nivelurile mai înalte consumă mai mulți tokeni de raționament. Rezervă nivelurile de top pentru munca ce are nevoie de ele.

Modelul este un câmp per agent, așa că un agent de formatare sau de triaj poate rula pe un model ieftin, în timp ce un agent de arhitectură rulează pe unul scump. Filtrează după model tabelul pe agent din Observabilitate → Insights ca să vezi care combinație te costă efectiv.

Caută rulările cu un număr disproporționat de tokeni

Secțiune intitulată „Caută rulările cu un număr disproporționat de tokeni”

Deschide jurnalul de rulare din Insights (cele mai recente 50 de rulări filtrate) și sertarul de transcriere pentru orice lucru neobișnuit. Cauzele obișnuite sunt un prompt de sistem sau o personă prea lungă, context care ar fi trebuit compactat și o sarcină care ar fi trebuit să fie mai multe sarcini mai mici.

Ce se întâmplă dacă un buget este stabilit în afara fluxului

Secțiune intitulată „Ce se întâmplă dacă un buget este stabilit în afara fluxului”

Pentru completitudine, dacă monthlyBudgetCents sau o politică de buget este scrisă direct într-un rând de agent:

  • Bugetele sunt evaluate după ce o rulare se încheie, nu înainte de trimitere. Un ascultător de la finalizarea rulării compară cheltuiala agentului de la începutul lunii cu plafonul lui.
  • Depășirea pragului soft (80% implicit) înregistrează un incident de avertizare și emite un eveniment BudgetThresholdCrossed pe care poți agăța un trigger de pipeline.
  • Epuizarea bugetului înregistrează un incident sever, emite același eveniment și comută starea ciclului de viață al agentului în paused.
  • Blocajul de pre-trimitere există, dar este consultat doar de recoltatorul de rulări orfane și de reconciliatorul de tichete blocate când se programează recuperarea — o trimitere normală nu ajunge niciodată la el, iar nimic de pe calea de trimitere nu verifică starea de pauză. Singurul semnal vizibil este insigna ciclului de viață din organigramă.