İçeriğe atla
SinaptikLabAI KNOWLEDGE PLATFORM
Dersİleri35 dakikaAI Agent Developer · 13. ders

Adım bütçesi ve gecikme yönetimi

Ajan döngüsünde maliyetin neden adım sayısıyla birlikte hızla büyüdüğünü, belirtiden kaldıraca nasıl gideceğinizi ve bütçenin istemde değil kodda nasıl zorlanacağını öğretir.

Önkoşul: Function Calling, Evaluation

BU DERSİN SONUNDA

  • Döngü maliyetinin adım sayısıyla nasıl büyüdüğünü kendi varsayımlarınızla hesaplamak
  • Maliyet ve gecikme kaldıraçlarını gözlenen belirtiye göre seçmek
  • Adım, token ve süre bütçesini döngü kodunda zorlamak
  • Birim maliyeti tamamlanmış görev başına raporlamak
  1. 1

    Teori

    Kavramın çalışma mantığı

  2. 2

    Örnek

    Gerçek bir senaryo üzerinde gösterim

  3. 3

    Lab

    Uygulamalı alıştırma

  4. 4

    Test

    Kısa ölçüm

  5. 5

    Proje

    Rotadaki projeye katkı

Kısa cevap

Ajan maliyeti çağrı başına değil, tamamlanmış görev başına ölçülür; çünkü döngünün her adımı o ana kadar birikmiş bütün izi yeniden gönderir. Adım sayısı arttıkça gönderilen token toplamı doğrusal değil, yaklaşık karesel büyür. Kaldıraçlar da buradan çıkar: döngüyü kısaltmak, her adımın girdisini küçültmek ve sabit öneki yeniden kullanmak.

Teori: aynı metni kaç kez gönderiyorsunuz#

Model çağrıları durum tutmaz. Her adımda sistem istemi, araç şemaları ve o ana kadarki bütün ara adımlar baştan gönderilir. Dolayısıyla onuncu adımın girdisi birinci adımın girdisinden çok büyüktür ve fatura, son izin boyutu değil bütün adımların girdilerinin toplamıdır. Maliyet tartışmasının çoğu bu ayrımı atladığı için sonuçsuz kalır.

Varsayalım: sabit önek (sistem istemi ve araç şemaları) 2.000 token, her adım ize ortalama 500 token ekliyor. Onuncu adımın girdisi 2.000 + 9 × 500 = 6.500 token. Ama on adımın girdi toplamı 10 × 2.000 + 500 × (0 + 1 + … + 9) = 20.000 + 22.500 = 42.500 token; yani son izin yaklaşık altı buçuk katı. Bu sayılar bir ölçüm değil, yukarıdaki iki varsayımdan çıkan aritmetik; kendi önek ve adım büyüklüğünüzü yerine koyup tekrar hesaplayın.

Gecikme ayrı bir eksendir. Token maliyeti toplanır, gecikme ise zorunlu sıralı zincirin uzunluğuna bağlıdır. Bağımsız iki araç çağrısı paralel koşabilir; bir sonraki kararı besleyen çağrı koşamaz. Bu yüzden gecikmenin bir tabanı vardır ve o taban adım sayısıdır: daha hızlı bir kurulum bu tabanı kaldırmaz, yalnızca her adımı biraz kısaltır.

Uygulamada: belirtiden kaldıraca#

BelirtiOlası nedenKaldıraçBedeli
Görev başına adım sayısı yüksekBitirme ölçütü belirsiz, araç yanıtları eksik bilgi veriyorBitirme koşulunu tanımla; araç yanıtını modelin tek adımda kullanabileceği biçimde döndürAraç yanıtı tasarımı ek geliştirme işi
Her adımın girdisi büyükHam araç çıktısı bağlama olduğu gibi giriyorYanıtı gerekli alanlara indir, uzun metni özete çevir, sayfalama uygulaYanlış alan atılırsa bilgi kaybı ve gizli hata
Sabit önek büyükÇok sayıda araç şeması ve uzun sistem istemiAraç setini daralt, şema açıklamalarını kısalt, alt görevi ayrı ajana verBölme devir maliyeti ve ek gecikme getirir
Aynı önek her adımda yeniden işleniyorÖnek kararsız: değişken alanlar veya zaman damgası baştaDeğişkenleri sona al, öneki birebir sabit tut ve önek önbelleklemesinden yararlanÖnbellek yalnızca birebir aynı önekte çalışır
Tek koşu çok uzun sürüyorZorunlu sıralı zincir uzunBağımsız çağrıları paralel koştur, ilk yararlı çıktıyı akışla gösterParalellik kısmi sonuç ve yarış durumu yönetimi gerektirir
Basit görevler pahalıHer görev en ağır kurulumda koşuyorGirişte zorluk sınıflandır, kolay yolu kısa kurulumla çözYanlış sınıflandırma yeniden koşma maliyeti yaratır
Bedeli sütunu tabloda süs değil: her kaldıraç ya ek geliştirme işi ya da yeni bir hata sınıfı getirir. Kaldıracı seçerken kazancı ve bedeli aynı satırda karşılaştırın, yalnızca en büyük tasarrufa bakmayın.

Bütçeyi kodda zorlamak#

İsteme "gereksiz araç çağırma" yazmak bütçe değil, ricadır. Bütçe döngüyü yürüten kodda durur: adım sınırı, token sınırı, süre sınırı ve sınıra gelindiğinde ne yapılacağı. Sınıra çarpan koşu sessizce kesilmemeli; kısmi sonucu ve nedenini taşıyan ayrı bir durumla bitmeli. Değerlendirmenin ve kullanıcının "bütçe doldu" ile "yapamadı" ayrımına ihtiyacı var.

python
def dongu_calistir(gorev, arac_kosucu, sinirlar):
    """Adim, token ve sure sinirlarini dongunun kendisinde zorlar."""
    adim = 0
    token_toplam = 0
    baslangic = simdi()
    iz = []

    while True:
        adim += 1
        if adim > sinirlar['azami_adim']:
            return sonuc('butce-adim', iz)
        if token_toplam > sinirlar['azami_token']:
            return sonuc('butce-token', iz)
        if simdi() - baslangic > sinirlar['azami_sure']:
            return sonuc('butce-sure', iz)

        karar = model_cagir(gorev, iz)
        token_toplam += karar.girdi_token + karar.cikti_token

        if karar.bitti:
            return sonuc('tamam', iz)

        cikti, atilan = kirp(
            arac_kosucu(karar.arac, karar.argumanlar),
            sinirlar['azami_arac_yaniti'],
        )
        iz.append({'karar': karar, 'cikti': cikti, 'kirpilan_alanlar': atilan})

Karar: hangi kaldıracı önce çekmeli#

  1. 1Birimi düzelt

    Maliyeti tamamlanmış görev başına token, süre ve para olarak ölçün. Başarısız koşuların maliyeti bölene değil paya yazılır; yoksa ucuz görünen kurulum aslında pahalıdır.

  2. 2Dağılımı çıkar

    Toplam girdi tokeninin ne kadarı sabit önek, ne kadarı araç yanıtları, ne kadarı model üretimi? En büyük dilim hangi kaldıraca bakacağınızı söyler.

  3. 3Tek kaldıraç çek

    Bir değişiklik uygulayın, görev setini tekrar koşturun ve tamamlama oranının düşüp düşmediğine bakın.

  4. 4Kabul et ya da geri al

    Birim maliyet düştü ama tamamlama da düştüyse kazanç yoktur. Kararı iki sayıyı birlikte yazarak verin.

Sık yapılan hata#

En yaygın hata ucuz kurulumu ucuz sanmak: daha küçük bir kurulum adım başına az öder ama görevi tamamlayamaz, tekrar denenir ve insan müdahalesi üretir; tamamlanmış görev başına toplam maliyet artabilir. İkinci hata ortalama gecikmeye bakmak. Kullanıcı deneyimini belirleyen, yavaş koşuların ne kadar yavaş olduğudur; ortalama bunu saklar, o yüzden rapora en yavaş dilim de yazılır.

LAB · UYGULAMALI ALIŞTIRMA

Token bütçesinin dağılımını çıkarın

  1. 1Görev setinizden on koşunun izini alın ve her adımın girdi tokenini üç kovaya ayırın: sabit önek, araç yanıtları, model üretimi.
  2. 2Görev başına toplam girdi tokenini ve adım sayısını tabloya yazın; en pahalı iki görevi işaretleyip neden pahalı olduklarını bir cümleyle not edin.
  3. 3En büyük kovaya karşılık gelen tek bir kaldıracı uygulayın: araç setini daraltmak, araç yanıtını gerekli alanlara indirmek veya öneki sabitleyip değişkenleri sona almak.
  4. 4Döngüye adım ve token sınırı ekleyin; sınıra çarpan koşuların ayrı bir bitiş durumuyla ve kısmi sonuçla dönmesini sağlayın.
  5. 5Seti tekrar koşturun ve üç sayıyı birlikte raporlayın: tamamlanmış görev başına token, görev başına adım sayısı ve en yavaş koşunun süresi.

Beklenen çıktı

Görev başına token dağılımı tablosu, uygulanan tek kaldıracın önce/sonra etkisi ve döngüye eklenmiş sert adım, token ve süre sınırları.

Sık sorulan sorular

Önek önbelleklemesi neden bazen hiç devreye girmiyor?

Önbellek birebir aynı öneki gerektirir. Öneke tarih, oturum kimliği, kullanıcı adı veya sıralaması değişen bir araç listesi koyduğunuzda her koşu farklı bir önek üretir ve yeniden işlenir. Değişken alanları önekten sonraya taşımak, önbellekten yararlanmanın ön koşuludur.

Adım sınırına çarpan koşu başarısız mı sayılır?

Değerlendirmede ayrı bir kategori olmalı. "Bütçe doldu" ile "yanlış yaptı" aynı kovaya girerse iki farklı düzeltme karışır: birincisi bütçe ve döngü tasarımı sorunudur, ikincisi araç şeması veya istem sorunu. Aynı kovada tutulduğunda ikisi de yanlış yerde aranır.

Paralel araç çağrısı her zaman kazanç mı?

Yalnızca çağrılar gerçekten bağımsızsa. Sonraki çağrının argümanı önceki sonuca bağlıysa paralellik ya işe yaramaz ya da boşa harcanan çağrı üretir. Yazma yapan çağrıları paralel koşturmak ayrıca yarış durumu ve geri alması zor yan etkiler doğurur.

LEARN

AI Agent Developer rotasına devam et

Dersler tek başına da okunabilir, ama sıralı ilerlemek önkoşul boşluklarını kapatır.