Agent'lar ve Orchestration
Production'da Agent Orchestration: Tools, Memory ve State
Agent Orchestration in Production: Tools, Memory and State
Üretimdeki ajan, iyi bir prompt'tan çok iyi tasarlanmış araçlar, bilinçli yönetilen hafıza ve çökmeye dayanıklı durum yönetimi demektir; 2026'da MCP'nin durumsuz hale gelmesi durumu kesin olarak orkestrasyon katmanına taşıdı.
Üretimdeki ajanın kalitesi prompt'tan çok etrafındaki mühendislikten gelir: iyi araç arayüzü, seçici hafıza ve orkestrasyon katmanında tutulan çökmeye dayanıklı durum.
Thoughtworks, Anthropic ve MCP spesifikasyonu aynı yöne işaret ediyor; tartışma, çok ajanlı mimarinin ne zaman bedeline değdiği üzerine.
Zihinsel model
Model aşçıdır, orkestrasyon mutfak: araçlar bıçaklar, hafıza not panosu, durum elektrik kesilince kalınan yeri gösteren tarif defteri.
Neden
- Araç ajanın kullanıcı arayüzüdür; belirsiz açıklama ve anlamsız hata mesajı en iyi modeli de yanlış yöne iter.
- Bağlam büyüdükçe maliyet artar ve model eski bilgiye takılır; hafıza neyi tutacağını seçmek zorundadır.
- Durum yalnızca bellekteyse çökme görevi baştan başlatır; token ve yan etkiler iki kez ödenir.
Kanıt
Güncel MCP spesifikasyonu protokolü durumsuz yaptı; çağrılar arası durum açık tanıtıcılarla taşınmalı.
MCP Specification Changelog, 2026Thoughtworks, ajan iş akışlarında dayanıklılığı göz ardı etmeyi 'Caution' halkasına aldı.
Thoughtworks Technology Radar: Ignoring durability in agent workflows, 2026Anthropic'in çok ajanlı araştırma sistemi, sohbete göre yaklaşık 15 kat token harcadı.
Anthropic Engineering: How we built our multi-agent research system, 2025Karşı görüş
Bağımsız alt görevlere bölünebilen işlerde çok ajanlı sistemler tek ajanı belirgin biçimde geçebiliyor. Kısa ve yan etkisiz görevlerde durable execution motoru gereksiz ağırlıktır.
Kavramlar
Pratikte
- Yan etkili her araç çağrısına görev ve adım kimliğinden türetilmiş idempotency key ekle.
- Her adımdan sonra durumu checkpoint'e yaz; MCP tanıtıcılarını da orada sakla.
- Adım, token ve süre limitlerini kodda sert sınır yap; aşımda durumu kaydedip devret.
Bir ajanı demoda çalıştırmak ile üretimde günlerce, binlerce kullanıcıyla çalıştırmak arasındaki fark, modelden çok etrafındaki mühendislikte. Orkestrasyon; hangi adımın ne zaman çalışacağına, hangi aracın hangi yetkiyle çağrılacağına, neyin hatırlanacağına ve süreç yarıda kesildiğinde nereden devam edileceğine karar veren katman. Bu katmanı üç eksende düşünmek işe yarıyor: araçlar, hafıza ve durum. Ekim 2026 itibarıyla zemin değişti: MCP'nin 28 Temmuz 2026 spesifikasyonu protokolü durumsuz hale getirdi, Thoughtworks Nisan 2026'da ajan iş akışlarında dayanıklılığı göz ardı etmeyi 'Caution' olarak işaretledi ve LangChain'in Haziran 2026 anketinde ekiplerin yüzde 57'si üretimde ajan çalıştırıyor. Ajanlar dakikalar ya da saatler süren, insan onayı bekleyen iş akışlarına girdikçe, bu üç eksendeki tasarım hataları yeniden denenen ödemeler, kaybolan bağlam ve kontrolsüz maliyet olarak geri dönüyor.
Çıkarımlar
- En basit kalıpla başlayın; çoklu ajan yalnızca ölçülmüş bir paralellik ya da uzmanlaşma ihtiyacı varsa.
- Araç hata mesajları modelin üzerinde işlem yapabileceği biçimde olmalı; araç sayısı ve yanıt boyutu da tasarım kararıdır.
- Her yan etkili araç çağrısına idempotency key ekleyin; eşik üstü ve geri alınamaz işlemler insan onayından geçsin.
- MCP 2026-07-28 ile durumsuz hale geldi; çağrılar arası durumu araç sunucusunun bağlantısına değil, kendi checkpoint'inize ve açık tanıtıcılara bağlayın.
- Ajan durumunu her adımdan sonra kalıcı hale getirin; çökme sonrası baştan başlamak token ve yan etki olarak iki kez ödenir.
- Adım, token ve süre limitleri kodda sert sınırdır; limit aşıldığında durum kaydedilip devredilmeli.
- Thoughtworks'ün 2026 önerisi: durable execution için önce framework'ün yerleşik desteği, iş kritikleştikçe Temporal gibi bağımsız bir platform.
Alt başlıklar
Orkestrasyon kalıpları: tek döngüden çok ajana
En basit kalıp tek bir ajan döngüsü: model düşünür, bir araç çağırır, sonucu görür, tekrar karar verir, bitince cevap verir. Üretimdeki işlerin çoğu bu kalıpla ve iyi araçlarla çözülebilir. Bir üst seviye, sabit adımlı iş akışı (workflow): adımların sırası kodda belli, model yalnızca belirli adımlarda karar verir. Daha karmaşık kalıplar orkestratör-işçi (bir ajan görevi böler, alt ajanlar paralel çalışır) ve devir (handoff) yapıları.
Pratik kural: en basit kalıpla başlayın ve karmaşıklığı ancak ölçülmüş bir ihtiyaç için ekleyin. Çok ajanlı bir sistem her ajan sınırında bağlam kaybı, ek token maliyeti ve debug zorluğu getirir. Anti-pattern: 'araştırmacı', 'yazar', 'editör' gibi insan rollerini taklit eden beş ajan kurup, aslında tek bir ajanın iyi bir prompt ve üç araçla yapabileceği işi beş kat token'la yapmak. Paralellik gerçek bir kazanç sağlıyorsa (ör. 20 bağımsız dokümanı ayrı ayrı özetlemek) çoklu ajan anlamlıdır.
Ekim 2026 itibarıyla durum
Son on iki ayda orkestrasyonun altındaki zemin belirgin biçimde değişti. MCP'nin 28 Temmuz 2026'da yayımlanan spesifikasyonu protokolü durumsuz hale getirdi: başlangıç el sıkışması ve `Mcp-Session-Id` başlığı kalktı, uzun işler sorgulama tabanlı `tasks` uzantısına taşındı, Roots, Sampling ve Logging en az on iki aylık bir geçişle deprecated oldu. Ağustos 2026'da yayımlanan MCP yol haritası, uzun süren ajan işleri için webhook benzeri sunucu olaylarını ve ajan kimliği ile yetki devrini öncelik olarak sıraladı.
Thoughtworks'ün Nisan 2026 Radar'ı iki uyarı yaptı: ajan iş akışlarında dayanıklılığı göz ardı etmek ve her entegrasyonda varsayılan olarak MCP'ye uzanmak, ikisi de 'Caution' halkasında. Radar, önce framework'ün yerleşik durable execution desteğiyle (LangGraph, Pydantic AI) başlayıp iş kritikleştikçe Temporal, Restate gibi bağımsız platformlara geçmeyi öneriyor. Temporal Ekim 2026'da AWS Strands Agents SDK için model, araç ve MCP çağrılarını Activity olarak çalıştıran entegrasyonlar duyurdu. Benimseme tarafında LangChain'in Haziran 2026 anketine göre ekiplerin yüzde 57,3'ünün üretimde ajanı var ve en büyük engel yüzde 32 ile kalite.
Araç tasarımı: ajanın arayüzü
Ajan için araç, bir insan için kullanıcı arayüzü neyse odur. Kötü tasarlanmış bir araç, en iyi modeli bile yanlış yönlendirir. İyi aracın özellikleri: tek ve net bir amaç, modelin anlayacağı bir açıklama (ne zaman kullanılır, ne zaman kullanılmaz), sıkı bir giriş şeması (enum'lar, zorunlu alanlar) ve modelin üzerinde işlem yapabileceği hata mesajları. 'Error 500' yerine 'customer_id bulunamadı; önce search_customers ile arayın' dönen bir araç, ajanın kendini düzeltmesini sağlar.
Yanıt boyutu da tasarımın parçası. 2.000 satırlık bir veritabanı sonucunu modele döndürmek bağlamı doldurur; sayfalama, filtreleme ve özet alanı sunmak daha iyidir. Araç sayısında da eşik var: tek bir ajana 40-50 araç vermek, yanlış araç seçimini artırır. İlgili araçları gruplayın ya da göreve göre araç setini daraltın. MCP (Model Context Protocol) ile dışarıdan araç bağlarken de aynı kurallar geçerli; sunucunun sunduğu her aracı ajana otomatik açmak zorunda değilsiniz. Thoughtworks Nisan 2026'da 'MCP by default' yaklaşımını 'Caution' olarak işaretledi: birçok durumda net yardım metni, yapılandırılmış JSON çıktısı ve öngörülebilir hata mesajları olan iyi bir CLI, ajana daha az kayıpla aynı işi görüyor.
Yan etkili araçlar: idempotency ve onay
Okuma araçları (arama, listeleme) güvenle tekrar denenebilir. Yazma araçları (ödeme al, e-posta gönder, kayıt sil) tekrar denenemez, en azından kontrolsüz şekilde. Ajan döngüsü bir zaman aşımından sonra aynı aracı yeniden çağırırsa müşteriden iki kez ödeme alınabilir. Çözüm idempotency key (tekrar etkisizlik anahtarı): her yan etkili çağrıya görev ve adım kimliğinden türetilmiş bir anahtar eklemek, sunucunun aynı anahtarla gelen ikinci isteği yeni işlem olarak değil, önceki sonucun tekrarı olarak cevaplaması.
İkinci önlem insan onayı (human-in-the-loop). Geri alınamayan ve belirli bir eşiğin üstündeki işlemler (ör. 5.000 TL üzeri iade, 100'den fazla alıcıya e-posta, üretim veritabanında silme) ajanın 'öneri' üretip durduğu, onay geldikten sonra devam ettiği adımlar olmalı. Bu, durum yönetimiyle doğrudan bağlantılı: onay saatler sürebilir ve ajan süreci o sırada bellekte beklememeli.
Hafıza: Context Window, görev geçmişi ve uzun dönem
Ajanda 'hafıza' üç farklı şeyi kapsar. Çalışma hafızası: o anki bağlam penceresi, yani modelin her çağrıda gördüğü mesajlar ve araç sonuçları. Görev hafızası (session): tek bir görev ya da konuşma boyunca biriken geçmiş. Uzun dönem hafıza: görevler ve konuşmalar arası taşınan bilgiler (kullanıcı tercihleri, önceki kararlar, proje notları).
Çalışma hafızasının sınırı maliyet ve kalite. Bağlam büyüdükçe her çağrının token maliyeti artar ve model eski ama alakasız bilgiye takılabilir. Yaygın teknikler: eski araç sonuçlarını kırpmak, belirli bir eşikte (ör. bağlamın yüzde 70'i dolduğunda) konuşmayı özetleyip sıkıştırmak (compaction) ve ajanın kendine not tuttuğu harici bir dosya veya kayıt alanı. Uzun dönem hafızada asıl soru 'ne yazılmalı' sorusu. Her şeyi bir vektör veritabanına atıp benzerlikle geri çağırmak, eski ve çelişkili bilgileri de geri getirir. Daha sağlam yol: hafızaya yazılacak bilgiyi yapılandırmak (tarih, kaynak, kapsam) ve güncellenmiş bilgilerin eskisinin üstüne yazılmasını sağlamak. Thoughtworks'ün Nisan 2026'da 'Assess' halkasına aldığı context graph tekniği aynı fikri ileri taşıyor: eskiyen bilgiyi silmek yerine geçerlilik süresi dolmuş olarak işaretliyor.
Durum: çökmeye dayanıklı ajan
Bir ajan görevi 12 adım sürüyorsa ve 9. adımda pod yeniden başlıyorsa ne olur? Durum yalnızca bellekteyse, görev ya baştan başlar (8 adımın token maliyeti ve yan etkileri tekrarlanır) ya da kaybolur. Üretimde ajan durumunun açıkça kalıcı hale getirilmesi gerekiyor: her adımdan sonra görev kimliği, tamamlanan adımlar, araç sonuçları ve bir sonraki adım bir depoya yazılmalı.
Bunun için iki yaygın yol var. Birincisi kendi checkpoint tablonuz: Postgres'te `agent_runs` ve `agent_steps` gibi tablolarla, her adımı işlem içinde kaydetmek. İkincisi durable execution (dayanıklı yürütme) motorları: Temporal gibi sistemler iş akışının olay geçmişini saklar, çökme sonrasında akışı bu geçmişten yeniden oynatarak kaldığı yerden devam ettirir. Temporal'ın OpenAI Agents SDK entegrasyonu (Eylül 2025'te public preview) ve Ekim 2026'da duyurulan AWS Strands Agents SDK entegrasyonları, model, araç ve MCP çağrılarını yeniden denenebilir ayrı adımlar olarak çalıştırıyor. LangGraph'ın checkpointer yapısı ve Pydantic AI'ın yerleşik durable execution desteği de aynı ihtiyaca yönelik. Thoughtworks'ün Nisan 2026 önerisi: önce framework'ün yerleşik desteğiyle başlayın, iş kritikleştikçe bağımsız bir platforma geçin.
Sınırlar, bütçeler ve protokol tarafındaki değişim
Üretimde her ajan döngüsünün sert sınırları olmalı: maksimum adım sayısı (ör. 25), görev başına token bütçesi, araç başına çağrı limiti ve toplam süre limiti. Sınır aşıldığında ajan sessizce durmamalı; o ana kadarki durumu kaydedip kullanıcıya ya da bir operatöre devretmeli. Bu sınırlar gözlemlenebilirlikle birlikte çalışır: hangi görevlerin limite takıldığını izlemek, araç tasarımındaki sorunları gösterir.
Protokol tarafında da durum yönetimi tartışılıyor. MCP spesifikasyonunun 28 Temmuz 2026'da yayımlanan revizyonu protokolü durumsuz (stateless) hale getirdi: `Mcp-Session-Id` başlığı ve başlangıç el sıkışması kaldırıldı, çağrılar arası durum gerektiren sunucuların bunu açık tanıtıcılarla (handle) tool argümanı olarak taşıması öneriliyor. Uzun süren işler için 'tasks' yapısı çekirdekten resmi bir uzantıya taşındı ve sorgulama (polling) tabanlı hale geldi; kopan bir yanıt akışı artık devam ettirilmiyor, istemcinin isteği yeniden göndermesi gerekiyor. Ajan orkestrasyonunu tasarlarken bunun anlamı net: durumu araç sunucusunun bağlantısına değil, kendi orkestrasyon katmanınıza ve açık kimliklere bağlayın.
Son gelişmeler
Ekim 2026 itibarıyla
Önce kendi cevabını düşün, sonra aç.
Temporal gibi bir altyapı küçük bir ekip için fazla ağır değil mi?
Görevleriniz birkaç saniyelik ve yan etkisizse evet. Ama görevler dakikalar sürüyor, insan onayı bekliyor veya ödeme gibi yan etkiler içeriyorsa, Postgres'te basit bir checkpoint tablosu bile büyük fark yaratır. Önce kendi tablonuzla başlayıp, adım sayısı ve yeniden deneme mantığı karmaşıklaştığında bir durable execution motoruna geçmek makul bir yol.
Uzun dönem hafıza için vektör veritabanı şart mı?
Şart değil. Birçok kullanım için kullanıcı başına yapılandırılmış bir kayıt (tercihler, kararlar, tarih ve kaynakla) ve ajanın okuyup yazdığı birkaç dosya yeterli. Vektör araması, çok sayıda serbest metin not arasında benzerlikle bulma gerektiğinde değer katar; ama eski ve çelişkili bilgileri de geri getirebildiği için güncelleme stratejisi olmadan kullanılmamalı.
Çok ajanlı sistemler tek ajandan daha mı iyi sonuç veriyor?
Görevin yapısına bağlı. Anthropic'in 2025'te paylaştığı araştırma sisteminde paralel alt ajanlar iç değerlendirmede tek ajanı yüzde 90 civarında geride bıraktı, ama çok ajanlı sistemler sohbete göre yaklaşık 15 kat token harcadı. Bağımsız alt görevlere bölünebilen işlerde bu bedel ödenebilir; sıkı bağlantılı, sıralı işlerde ise her ajan sınırında bağlam kaybolur. Karar vermeden önce aynı görevi tek ajan ve çok ajanla eval setinizde karşılaştırın.
MCP artık durumsuz olduğuna göre uzun süren araç işlerini nasıl yöneteceğiz?
28 Temmuz 2026 spesifikasyonu çağrılar arası durumu sunucunun ürettiği açık tanıtıcılarla argüman olarak taşımayı, uzun işler için de tasks uzantısında tasks/get ile sorgulamayı ve tasks/update ile ara girdi göndermeyi öngörüyor. Kopan bir akış artık devam ettirilmediği için orkestrasyon katmanınız bu tanıtıcıları kendi checkpoint'ine yazmalı; böylece bağlantı kopsa bile işi takip edebilir ve isteği güvenle yeniden gönderebilirsiniz.
Notun kaynakları
- MCP Specification Changelog (2026-07-28 revizyonu)
- Temporal ve OpenAI Agents SDK entegrasyonu (InfoQ)
- Building effective agents (Anthropic)
- The 2026-07-28 Specification (MCP Blog)
- The New MCP Roadmap (MCP Blog, Ağustos 2026)
- Ignoring durability in agent workflows (Thoughtworks Technology Radar, Nisan 2026)
- MCP by default (Thoughtworks Technology Radar, Nisan 2026)
- Temporal and AWS: A partnership built for production-grade AI (Temporal, Ekim 2026)
- State of Agent Engineering (LangChain, Haziran 2026)
- How we built our multi-agent research system (Anthropic Engineering, Haziran 2025)
Sunum stili
12 slayt. Tıklarsan sunum o slayttan başlar.
Slayt notları
Demoda Agent çalıştırmak birkaç saatlik iş. Üretimde binlerce kullanıcıyla günlerce çalıştığında kırılan şeyler modelle ilgili olmuyor.
Kırılan üç yer: Tool tasarımı, Memory yönetimi ve State kalıcılığı.
Üretimdeki işlerin çoğu en üst kalıp ve iyi araçlarla çözülür. Her aşağı iniş, Agent sınırında bağlam kaybı, ek token ve debug zorluğu getirir; yalnızca ölçülmüş ihtiyaç için in.
Kötü arayüz iyi kullanıcıyı yanıltır, kötü Tool iyi modeli. MCP sunucusunun sunduğu her aracı Agent'a otomatik açmak zorunda değilsiniz.
Okuma araçları güvenle tekrar denenir, yazma araçları denenemez. Eşik üstü ve geri alınamaz işlemlerde (ör. 5.000 TL üzeri iade) Agent öneri üretip durur, insan onayından sonra devam eder.
Bağlam büyüdükçe her çağrı pahalanır; eşikte (ör. %70) compaction yapın. Uzun dönemde 'her şeyi vektöre at' eski ve çelişkili bilgiyi de geri getirir.
Her adımdan sonra görev kimliği, tamamlanan adımlar, Tool sonuçları ve sıradaki adım kalıcı depoya yazılmalı.
Önce kendi checkpoint tablonla ya da framework'ün yerleşik durable execution desteğiyle başla; adım sayısı ve retry mantığı karmaşıklaşınca Temporal, Restate gibi bağımsız bir platforma geç. Thoughtworks Nisan 2026'da dayanıklılığı göz ardı etmeyi 'Caution' olarak işaretledi.
Limite takılan Agent sessizce durmamalı; o ana kadarki State'i kaydedip bir insana devretmeli. Hangi görevlerin limite takıldığını izlemek Tool tasarımındaki sorunları gösterir.
MCP artık bağlantıya bağlı State tutmuyor; kopan akış devam etmiyor, istek yeniden gönderiliyor. State'i kendi Orchestration katmanınıza ve açık tanıtıcılara bağlayın.
'Araştırmacı, yazar, editör' kurgusu insan organizasyonunu kopyalar. 20 bağımsız dokümanı paralel özetlemek gibi gerçek kazanç yoksa tek Agent ve üç iyi Tool yeter.
Bu soruya 'baştan başlar' diyen herkes için ilk iş: checkpoint tablosu. Soruları al.