𝗪𝗵𝘆 𝗬𝗼𝘂𝗿 𝗔𝗴𝗲𝗻𝘁𝘀 𝗔𝗿𝗲 𝗕𝘂𝗿𝗻𝗶𝗻𝗴 𝗧𝗼𝗸𝗲𝗻𝘀
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.
Mengapa ejen anda membakar token secara senyap dan cara untuk menghentikannya
Jika anda pernah membina ejen LLM (Large Language Model), anda pasti pernah mengalami situasi di mana kos penggunaan API anda melonjak dengan mendadak tanpa alasan yang jelas. Anda telah menetapkan arahan yang betul, alatan (tools) berfungsi dengan baik, dan ejen anda mencapai matlamatnya—tetapi bil anda menunjukkan penggunaan token yang sangat tinggi.
Masalahnya ialah ejen anda sedang "membakar" token secara senyap.
Dalam aliran kerja agentic, setiap interaksi, setiap pemikiran, dan setiap panggilan alatan menyumbang kepada jumlah token yang digunakan. Jika tidak dikawal, pembaziran ini boleh menjadi sangat besar.
Berikut adalah sebab utama mengapa ejen anda membakar token secara berlebihan dan cara untuk menghentikannya.
1. Prompt Sistem yang Terlampau Panjang (Verbose)
Prompt sistem adalah asas kepada tingkah laku ejen anda. Walau bagaimanapun, terdapat kecenderungan untuk menulis prompt sistem yang sangat panjang, penuh dengan arahan yang berulang-ulang dan penjelasan yang tidak perlu.
Setiap kali ejen membuat panggilan (call) baru, seluruh prompt sistem ini dihantar semula ke model. Jika prompt sistem anda mempunyai 2,000 token, dan ejen anda melakukan 10 langkah untuk menyelesaikan tugasan, anda telah membazirkan 20,000 token hanya untuk arahan asas tersebut.
Cara Menghentikannya:
- Jadilah ringkas dan padat: Gunakan bahasa yang terus terang. Elakkan ayat berbunga-bunga.
- Gunakan format berstruktur: Gunakan Markdown atau JSON untuk menyusun arahan supaya model lebih mudah memahaminya tanpa memerlukan penjelasan tambahan yang panjang.
- Prinsip "Less is More": Berikan arahan yang diperlukan sahaja. Jika model sudah cukup pintar untuk memahami konteks, jangan terangkan perkara yang sudah sedia maklum.
2. Definisi Alatan (Tool Definitions) yang Terlampau Terperinci
Apabila anda memberikan alatan kepada ejen, anda perlu menerangkan apa yang alatan itu lakukan. Masalah timbul apabila penerangan ini menjadi terlalu panjang lebar.
Setiap kali ejen mempertimbangkan untuk menggunakan alatan, definisi alatan tersebut dimasukkan ke dalam konteks. Jika anda mempunyai 20 alatan dan setiap satu mempunyai penerangan sepanjang 500 token, anda telah memenuhkan tetingkap konteks (context window) anda dengan teks yang mungkin tidak relevan untuk tugasan semasa.
Cara Menghentikannya:
- Penerangan yang tepat: Berikan penerangan yang padat tentang bila dan bagaimana untuk menggunakan alatan tersebut.
- Pecahkan alatan: Jika satu alatan mempunyai terlalu banyak parameter dan penerangan, pertimbangkan untuk memecahkannya kepada beberapa alatan yang lebih kecil dan khusus.
- Penyediaan dinamik: Hanya berikan alatan yang relevan kepada ejen berdasarkan fasa tugasan semasa, bukannya memberikan semua alatan sekaligus.
3. Gelung Penaakulan (Reasoning Loops) yang Tidak Berakhir
Ejen sering menggunakan corak "Thought-Action-Observation" (Pemikiran-Tindakan-Pemerhatian). Walaupun ini sangat berkesan untuk menyelesaikan masalah kompleks, ia juga boleh menyebabkan ejen terperangkap dalam gelung (loop) yang tidak produktif.
Ejen mungkin mencuba alatan yang sama berulang kali dengan parameter yang hampir sama, atau berfikir secara berlebihan tentang masalah yang sebenarnya sudah selesai. Setiap pusingan gelung ini menambah jumlah token secara eksponen.
Cara Menghentikannya:
- Hadkan bilangan langkah: Tetapkan had maksimum untuk bilangan interaksi atau langkah yang boleh diambil oleh ejen dalam satu tugasan.
- Mekanisme "Self-Correction" yang cekap: Berikan arahan yang jelas tentang apa yang perlu dilakukan jika sesuatu tindakan gagal, supaya ejen tidak terus mencuba perkara yang sama.
- Pantau log pemikiran: Sentiasa semak log "thought" ejen anda untuk mengenal pasti corak kegagalan atau pengulangan yang tidak perlu.
4. Output yang Tidak Berstruktur dan Berlebihan
Kadangkala, ejen cenderung untuk memberikan jawapan yang terlalu panjang lebar atau memberikan penjelasan yang tidak diminta selepas setiap tindakan. Walaupun ini nampak mesra pengguna, ia adalah pembaziran token yang besar jika ejen tersebut berfungsi di belakang tabir (backend).
Cara Menghentikannya:
- Gunakan format output yang ketat: Paksa ejen untuk memberikan output dalam format tertentu seperti JSON. Ini bukan sahaja memudahkan pemprosesan mesin, tetapi juga mengehadkan jumlah teks yang dihasilkan.
- Arahan "No Yapping": Secara eksplisit arahkan ejen untuk tidak memberikan penjelasan tambahan kecuali jika diminta. Contoh: "Berikan jawapan dalam format JSON sahaja. Jangan berikan pengenalan atau kesimpulan."
Kesimpulan
Mengoptimumkan penggunaan token bukan sekadar tentang menjimatkan wang; ia juga tentang meningkatkan kelajuan (latency) dan kecekapan ejen anda. Dengan mengecilkan prompt sistem, meringkaskan definisi alatan, mengawal gelung penaakulan, dan mengehadkan output, anda boleh membina ejen yang lebih pantas, lebih bijak, dan jauh lebih kos efektif.
Ingat, dalam dunia LLM, setiap token mempunyai harga. Jangan biarkan ejen anda membakarnya tanpa tujuan.