· kaynak dev.to (home feed)
Tek agent, üç framework: proxy logları Strands, LangGraph ve CrewAI arasındaki ödünleşimi sayısallaştırıyor
Bir geliştirici aynı agent'ı Strands, LangGraph ve CrewAI ile kurdu ve her LLM çağrısını bir proxy üzerinden logladı; açık kontrol akışının çıktı varyansını yüzde 77 düşürdüğünü, buna karşılık token ve gecikme maliyetini 2,5 kat artırdığını buldu.

Aynı görev, üç framework, her çağrı loglandı
Sunnydachs takma adıyla yazan bir geliştirici, dev.to üzerinde veriye dayalı bir karşılaştırma yayımladı: Strands, LangGraph ve CrewAI ile gerçekleştirilen aynı agent, 27 kez çalıştırıldı ve her LLM çağrısı yerel bir kayıt proxy'sinden geçirilerek trace'lerin doğrudan karşılaştırılabilir olması sağlandı. Ana sonuç şu: LangGraph'un açık verify/revise döngüsü çıktı varyansını yüzde 77 düşürdü, ancak token tüketimi ve gecikme kabaca 2,5 katına çıktı.
Deney
Üç kurulumda da birebir aynı olan görev, bir teknoloji haberleri özeti agent'ıydı: bir fetch_headlines aracı ile beş manşet toplamak, yaklaşık 100 kelimelik bir özet yazmak, ardından uzunluğu bir word_count aracıyla kontrol etmek ve hedef bandın dışına düşerse revize etmek. Araçlar yerel ve deterministik — ağ erişimi yok, içinde model çağrısı yok — bu yüzden ölçümler araç performansını değil framework davranışını yalıtıyor. Tüm çalıştırmalar proxy arkasında aynı modeli kullandı.
Uygulamalar her framework'ün felsefesini ortaya koyuyor. Strands'ta (78 satır) geliştirici modele iki araç ve bir system prompt veriyor; hangi aracı hangi sırayla çağıracağına ve ne zaman biteceğine model karar veriyor. LangGraph (115 satır) graf odaklı: tipli state, açık düğümler ve kenarlar, geliştirici tanımlı bir döngü koşulu var; model kararları ise tek tek düğümlerle sınırlı kalıyor. CrewAI (110 satır) ise rol tabanlı: agent'lar bir rol, hedef ve backstory taşıyor, handoff'ları ise bir Crew nesnesi yönetiyor.
Kurulum boyutu da ayrıştı. Gönderiye göre Strands 81 paketle 262MB, LangGraph 45 paketle 71MB, CrewAI ise 142 paketle 699MB çekti — en ağır ayak izi, her şey dahil ergonomisinin öbür yüzü.
Çağrılar nasıl yakalandı
Karşılaştırmayı güvenilir kılan şey gözlemlenebilirlik katmanı. Tek dosyalık bir HTTP proxy, istekleri herhangi bir OpenAI uyumlu uç noktasına iletiyor ve her istek/yanıt çiftini JSONL olarak yazıyor: system prompt'lar, araç şemaları ve konuşma geçmişi dahil tam mesajlar, artı ham yanıtlar, token kullanımı, gecikme ve durum — API anahtarları yazılmadan önce temizleniyor. Bir X-Run-Label başlığı her çalıştırmanın trace'lerini ayırıyor, küçük bir yeniden birleştirici ise SSE ile akıtılan yanıtları akıtılmayanlarla aynı biçime getiriyor. Tekdüze trace biçimi, framework'ler arasında mesaj, token ve gecikme farklarının tam olarak diff'lenmesini mümkün kılıyor.
Sayılar ne gösteriyor
Üç senaryo test edildi: base (80–120 kelimelik bant), tight (95–105 kelime, revizyon döngüsünü tetiklemeye zorlayarak) ve drift (word_count aracının argümanının text'ten content'e yeniden adlandırılması).
Yazara göre LangGraph, base senaryosunda tek bir LLM çağrısı yaptı ve özeti tek seferde yazdı; çalıştırmalar arası kelime sayısı yayılımı 13 kelimeydi. Tight senaryosunda açık döngü tetiklendi: yayılım 3 kelimeye düştü — yüzde 77'lik iyileşme — buna karşılık token sayısı 2.007'den 5.262'ye, gecikme ise 4,7'den 11,8 saniyeye çıktı.
CrewAI, üç base ve tüm drift çalıştırmalarında bayt bayt aynı çıktı üretti ve her seferinde 96 kelimeye ulaştı; yazar bunu sıfır sıcaklık ile rol prompt'unun birleşimine bağlıyor. Bedeli ise katılık: her çalıştırmada, tam olarak dört LLM çağrısı.
Strands ise uyarlayıcı davrandı. Bir tight çalıştırmasında model 77 kelimelik bir taslak yazdı, kelime sayısı kontrolünü çağırdı, kısa olduğunu akıl yürüttü, 103 kelimeye genişletti ve tekrar doğruladı — beş LLM çağrısı. Derinlik çalıştırmadan çalıştırmaya değişti (5, 3 ve 4 çağrı); bu, ne zaman duracağına modelin karar vermesinin doğrudan sonucu.
Base senaryosu toplamları şöyle oldu: Strands için 2.370 token ve 4,2 saniye, LangGraph için 2.007 token ve 4,7 saniye, CrewAI için 2.532 token ve 3,8 saniye.
Şema kayması emildi
Her framework'ün modeli yeniden adlandırılmış araç argümanını doğru işledi — sıfır hatalı argüman çağrısı ve tetiklenen hata kurtarma yok. Ancak yazar kapsam konusunda temkinli: tek argümanlı bir yeniden adlandırma mümkün en yumuşak şema değişikliği. Tip değişiklikleri, kaldırılan argümanlar veya değiştirilen dönüş biçimleri büyük olasılıkla kod yerine prompt'a dayanan model odaklı tarafı bozar; LangGraph ise araç çağrıları kodda yaşadığı için etkilenmeden kalırdu.
Belirtilen sınırlamalar
Gönderi kendi uyarılarını da dile getiriyor: her hücrede üç çalıştırma bir istatistiksel iddia değil, trend kontrolüdür; medyan tahmini için taban yaklaşık 30 çalıştırma olarak kabul edilmiştir. Tek görev ve tek araç, tam olarak model odaklı framework'lerin parladığı yerdir; LangGraph'ın grafı ise test edilmeyen dallanan, onay gerektiren veya paralel iş akışlarında karşılığını verirdi. Tek bir model kullanıldı; farklı bir modelle akıl yürütme hacmi ve varyans değişirdi. Bağımlılık ayak izleri de hızla değişiyor. Kurulumun tamamı — üç sanal ortam, proxy ve çalıştırma komutları — herkese açık bir GitHub deposunda mevcut; 27 çalıştırmalık matris yaklaşık 270 saniyede tamamlanıyor.
Neden önemli
Framework tartışmaları genellikle anekdot ve tercihle çözülür. Bu gönderi, tartışmayı diff'lenebilir veriye çeviren yeniden kullanılabilir bir yöntem sunuyor — her şeyin önüne tek bir kayıt proxy'si — ve ekiplerin gerçekten karşılaştığı bir ödünleşimi sayısallaştırıyor: açık kontrol akışı ölçülebilir bir token ve gecikme maliyetiyle determinizm satın alıyor, model odaklı döngüler uyum sağlıyor ama çalıştırmadan çalıştırmaya değişiyor, rol tabanlı soyutlama ise sabit bir çağrı yapısı ve ağır bir kurulum bedeliyle stabilite sunuyor. Agent değerlendirme pipeline'ları kuran herkes için tekdüze trace tekniği hem ucuz hem framework'ten bağımsız.
- #ai-agents
- #langgraph
- #crewai
- #strands
- #llm-observability