Araç Çıktılarını Sıkıştırmak Kodlama Ajanlarının API Maliyetini Düşürür mü?
Kaynak: dev.to

İçindekiler 5 başlık
Kodlama ajanları her adımda eski araç çıktılarını modele tekrar gönderir; bu nedenle geçmiş çıktıları küçültmek ilk bakışta açık bir maliyet tasarrufu gibi görünür. Bu yaklaşımı bir Torana eklentisi olarak geliştirip DeepSeek V4 Pro üzerinde test ettiğimizde, oturum başına tasarrufun yalnızca yaklaşık %2 civarında kaldığı görüldü. Bunun temel nedeni, modern prompt caching (istek önbellekleme) mekanizmalarının tekrarlanan geçmiş çıktıları zaten neredeyse maliyetsiz hale getirmesidir.
Kodlama Ajanları Araç Çıktılarını Nasıl Yeniden Gönderir?#
Bir kodlama ajanının arkasındaki model doğrudan dosya okuyamaz veya komut çalıştıramaz. Bunun yerine bir araç çağrısı talep eder, ajan bu çağrıyı yerel ortamda yürütür ve çıktıyı konuşma geçmişine ekler. Takip eden her adımda görünür konuşma geçmişinin tamamı modele yeniden iletilir. Bağlam penceresi doldukça aynı çıktılar her turda tekrar faturalandırılır. Bu durum OpenAI Responses (previous_response_id) gibi sağlayıcı tabanlı geçmiş yönetimleri dışındaki Chat Completions tarzı API'ler için geçerlidir.
Fikir: Barındırılan Model İçin Daha Ucuz Bir Asistan#
Asıl işi yapan pahalı ana modelin önüne daha ucuz bir yardımcı model koyarak araç çıktılarını özetleme fikri geliştirildi. Özetin bağlamı kaybetmemesi için Torana'nın niyet (intent) eklentisi kullanıldı. Araç şemalarına giden istekte kısa bir "gerekçe" (reason) alanı eklendi; modelden dönen çağrıdan ise bu alan arayüz görmeden ayıklandı. Böylece sıkıştırıcı model, hangi bilgileri koruyacağını yakalanan bu niyet bilgisi üzerinden belirledi.
1. Deneme: Her Büyük Çıktıyı Özetlemek#
İlk denemede 2.000 karakterden uzun her araç çıktısı özetlendi, ancak bu durum ajanları anında bozdu. Kodlama ajanları dosya düzenlemelerini birebir arama ve değiştirme (exact search and replace) mantığıyla yapar. Dosya okuma çıktısı doğal dil özetine dönüşünce eşleşmeler koptu. Ajan dosyayı tekrar okuyup aynı hataya düştü ve sonsuz döngüye girerek tasarruf yerine daha fazla token yaktı.
2. Deneme: Varsayılan Olarak Birebir Tutma ve Kademeli Sıkıştırma#
İkinci tasarımda her çıktı varsayılan olarak birebir bırakıldı ve ilk eşleşen kurala göre uygulanan 5 politika tanımlandı:
- exact: Asla değiştirilmez. Değişiklik araçları, diff'ler, hata izleri (stack traces) ve başarısız komutlar geniş kurallara uysa bile zorunlu olarak tam tutulur.
- deterministic: Boyut, SHA-256, atlanan bayt ve yeniden çalıştırma komutuyla sınırlı baş-son kanıtını tutar;
first_passile ilk andan itibaren uygulanır. - keyword: Yalnızca çıktı en az bir kez tam gösterildikten sonra niyetle eşleşen satırları saklar.
- model: Çıktı en az bir kez tam gösterildikten sonra ve yalnızca ekonomik filtre net kâr öngörüyorsa niyet odaklı özet üretir.
- source: Dosya okumaları yapılandırmada kabul edilse de kod bütünlüğünü bozmamak adına
exactgibi davranır.
Yazılım Geliştirme İçin Pratik Çıkarımlar#
Geliştiriciler için temel öğrenim: Geçmiş mesajları yeniden yazmak prompt cache önekini (prefix) bozar. Önbellek zaten tekrarlanan girdileri ucuzlatırken, araç çıktılarını agresif özetlemek ajanın düzenleme yeteneğini felç edebilir.
Bu konuyu derinlemesine öğrenmek isterseniz: Tool Calling ve Multi-Step Agent'lar modülüne göz atın.
Kaynak ve atıf
Bu yazı, dev.to üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:
- dev.to/projectescape/does-compacting-tool-output-lower-a-coding-agents-api-bill-ena