𝗪𝗵𝘆 𝗬𝗼𝘂𝗿 𝗔𝗴𝗲𝗻𝘁𝘀 𝗔𝗿𝗲 𝗕𝘂𝗿𝗻𝗶𝗻𝗴 𝗧𝗼𝗸𝗲𝗻𝘀
You deployed a coding agent. It pulls tickets and files PRs. It works well.
Then the bill arrives.
The agent spent more money than you planned. You do not know why. It hits the model 50 times per ticket. Some calls are slow retries. Some are redundant reads of the same context.
This is not a model issue. It is an infrastructure issue. Your team lacks visibility into spending. You have no way to stop a runaway agent before it burns your budget.
Agents are loops. They read a task, call a tool, read the output, and repeat. Each step costs tokens. If an agent re-reads a system prompt on every turn, the cost grows fast. A small bug leads to hundreds of extra reads.
You see the bill, not the calls. This is too late.
Successful teams build cost controls from day one. They use these methods:
- Set monthly budget ceilings.
- Log which agent and which task triggered every call.
- Answer why one task cost more than another.
To run agents in production, you need:
- Per-agent tracking: Know the cost per user and per task.
- Virtual keys: Isolate teams so one developer cannot burn the whole budget.
- Budget controls: Set hard limits. An agent should alert you or stop taking tasks when it hits a limit.
- Spend visibility: Use a dashboard to see trends and average cost per task.
- Detailed logs: See the distribution of call types.
If you miss these, you run blind.
LiteLLM uses a specific pattern to avoid this:
- Brain and sandbox split: The reasoning runs in one place and execution in another. This stops constant re-reads.
- Clear tool interfaces: Use structured definitions instead of long text.
- Gateway tracking: Every call routes through a gateway with an ID for the agent and team.
- Enforced budgets: The agent checks its remaining budget before starting a task.
If you build agents without these tools, you face a cost explosion. The agent works fine until it hits an edge case or a loop. By then, the money is gone.
Take these steps now:
- Audit your last API bill.
- Instrument every call with an agent ID and task ID.
- Set a budget ceiling today.
- Log tool calls to find failed retries.
- Review call patterns every week.
Build infrastructure that separates reliable agents from expensive mistakes.
Чому ваші агенти тихо спалюють токени та як це зупинити
Якщо ви коли-небудь будували LLM-агента, ви знаєте, наскільки це захопливо. Ви даєте моделі інструменти, ставите завдання, і вона починає діяти. Але є одна проблема, про яку часто забувають: вартість.
Агентські робочі процеси можуть бути надзвичайно потужними, але вони також можуть бути надзвичайно дорогими. І найгірше те, що вони можуть спалювати токени «тихо» — без явних помилок, але з катастрофічними наслідками для вашого бюджету.
Прихована вартість агентських робочих процесів
На відміну від звичайних запитів (one-shot prompts), де ви платите за один вхід і один вихід, агентські системи працюють в ітеративному циклі. Агент отримує завдання, думає, викликає інструмент, отримує результат, знову думає і так далі, поки не досягне мети.
Кожна така ітерація додає нові токени до контекстного вікна. Оскільки більшість агентів надсилають всю історію чату назад у модель з кожним новим кроком, вартість кожної наступної ітерації зростає експоненціально.
Що таке «тихе спалювання токенів»?
Це ситуація, коли агент продовжує працювати, споживаючи токени, але не наближається до вирішення завдання або робить це надзвичайно неефективно. Ви не бачите помилок 400 або 500, ви просто бачите, як ваш рахунок за API стрімко зростає.
Основні винуватці
1. Нескінченні цикли (The Infinite Loop)
Це найпоширеніша проблема. Агент потрапляє в цикл, де він виконує одну й ту саму дію знову і знову, сподіваючись на інший результат.
Наприклад:
- Агент викликає інструмент
search_web. - Інструмент повертає помилку або порожній результат.
- Агент думає: «О, я не знайшов відповідь. Спробую ще раз».
- Повторення кроків 1-3 до вичерпання ліміту токенів або бюджету.
2. Надмірне міркування (Chain of Thought Overkill)
Метод Chain of Thought (ланцюжок думок) є чудовим для вирішення складних завдань. Проте, якщо агент занадто детально роздумує над кожним дрібним кроком, він може витрачати тисячі токенів на роздуми, які не додають цінності кінцевому результату.
3. Багатослівні виводи інструментів
Коли агент викликає інструмент (наприклад, читання файлу або запит до бази даних), інструмент часто повертає величезний обсяг даних. Якщо ви просто «впихаєте» цей вивід у контекст моделі, ви миттєво забиваєте контекстне вікно та витрачаєте купу токенів на дані, які моделі навіть не потрібно читати повністю.
Як зупинити втрати
1. Впровадьте жорсткі ліміти ітерацій
Ніколи не залишайте агента без обмежень. Завжди встановлюйте максимальну кількість кроків (наприклад, max_iterations = 5), після яких агент повинен зупинитися і повідомити про проблему.
2. Оптимізуйте виводи інструментів
Замість того, щоб повертати весь JSON-об'єкт або весь вміст файлу, створіть механізм фільтрації або підсумовування. Якщо інструмент повертає 10 000 рядків тексту, агент повинен отримати лише релевантний фрагмент або стислий підсумок.
3. Використовуйте структуровані виводи (Structured Outputs)
Використання JSON mode або функцій (function calling) допомагає змусити модель бути лаконічною. Коли модель знає, що вона має повернути конкретну структуру, вона менше схильна до «балакучості».
4. Впровадьте спостережуваність (Observability)
Ви не можете керувати тим, чого не бачите. Використовуйте інструменти на кшталт LangSmith, Arize Phoenix або власне логування, щоб бачити кожен крок агента, кількість використаних токенів на кожній ітерації та те, де саме витрачаються гроші.
Висновок
Агенти — це майбутнє, але вони потребують дисципліни. Будучи розробником агентських систем, думайте не лише про те, наскільки «розумним» може бути ваш агент, а й про те, наскільки «економним» він є.