Claude ajanları uzun konuşmada nasıl hızlanıyor?
Message Threads ile konuşma bir kez gönderiliyor, sonraki turlarda yalnız yeni mesajlar gidiyor. Nasıl çalıştığı, nerede işe yaradığı ve nasıl denendiği.
Uzun çalışan bir yapay zeka ajanının en can sıkıcı anı, ekranda hiçbir şey olmadan geçen o ilk saniyelerdir. Kod yazan bir ajan tek bir oturumda yüzlerce istek gönderebilir ve konuşma büyüdükçe her istek biraz daha geç cevap almaya başlar. Anthropic 2 Kasım'da bu bekleyişi kısaltan bir özelliği herkese açık deneme olarak duyurdu: Message Threads, yani mesaj dizileri. Duyuruya göre özellik Claude Code kullanıcılarının çoğunda zaten varsayılan olarak açık ve 500 bin ile 1 milyon belirteç arasındaki isteklerde ilk cevabın gelme süresinin ortancası yaklaşık yüzde 35 kısalıyor. Bu yazıda özelliğin neyi çözdüğünü, nasıl çalıştığını ve kendi uygulamanızda nasıl deneyebileceğinizi anlatıyoruz.
Mesele ne: her seferinde bütün hikayeyi baştan anlatmak
Claude'un Messages API'si hafızasız çalışır. Siz bir soru sorarsınız, cevap gelir; ikinci soruyu sorarken ilk soruyu, ilk cevabı ve araya giren bütün araç sonuçlarını yeniden göndermeniz gerekir. Bunu her telefon açışınızda karşı tarafa o güne kadar konuştuğunuz her şeyi baştan okumaya benzetebilirsiniz. Konuşma kısayken fark edilmez. Ama bir kod ajanı yüzlerce dosya parçası, test çıktısı ve ekran görüntüsü biriktirdiğinde her istek yüz binlerce belirteçlik bir paket olur. API bu paketin tamamını her turda yeniden alır, doğrular ve belirteçlere böler. Bütün bu iş, Claude daha ilk kelimeyi yazmadan önce yapılır.
Bu bekleme süresinin adı "ilk belirtece kadar geçen süre" (time to first token, TTFT). Ajanın ne kadar akıcı hissettirdiğini en çok bu süre belirler.
Message Threads nasıl çalışıyor
Yeni özellikle konuşmayı yalnız bir kez, ilk istekte bütünüyle gönderiyorsunuz. Sistem talimatı ve araç tanımları da bu ilk istekte gidiyor. API konuşmayı, Claude'un cevabıyla birlikte, kısa bir süre için sunucuda tutuyor ve cevabın kimliğiyle işaretliyor. Sonraki turlarda yalnız yeni mesajları ve bir önceki cevabın kimliğini gönderiyorsunuz. API konuşmayı kendi tarafında yeniden birleştirip modele öyle veriyor. Bunun için isteğe tek bir alan ekleniyor: thread.
- Başlatma: İlk istek her zamanki gibi tam konuşmayla gider, yanına
"thread": {"type": "create"}eklenir. - Devam: Sonraki istekler yalnız yeni mesajları taşır ve
"thread": {"type": "continue", "previous_message_id": "..."}alanını kullanır. Sistem talimatı ve araçlar bu isteklerde gönderilmez, dizi onları ilk istekten hatırlar. - Yeniden gönderme: Dizi son istekten 5 dakika sonra sona erer. Devam edilemeyen bir dizi 404 hatası döndürür; o zaman tam konuşma yeni bir başlatma isteğiyle bir kez daha gönderilir.
Önemli bir ayrıntı: İstekler küçülse de Claude her turda konuşmanın tamamını okumaya devam ediyor. Bu yüzden belirteç kullanımı, fiyat ve istek sınırları değişmiyor. Kazanç, paketin her turda baştan taşınıp işlenmemesinden geliyor.
Nerede en çok işe yarıyor
Anthropic'e göre konuşma ne kadar uzunsa kazanç o kadar büyük. Duyuru üç kullanım alanını öne çıkarıyor: her araç sonucunun ve dosya düzenlemesinin konuşmaya eklendiği uzun kod ajanları, ekran görüntülerinin her turda yeniden yüklenmek yerine dizide kaldığı bilgisayar kullanan ajanlar ve isteklerin belge ve görsellerle şiştiği iş akışları. Kısa bir sohbet botu için fark küçük kalır.
Nasıl denenir
En kolay yol, Anthropic'in SDK'larındaki dizi yardımcısı. Yardımcı ilk turda diziyi başlatıyor, sonraki turlarda yalnız yeni mesajı gönderiyor, gerekli beta başlığını kendisi ekliyor ve dizi düşerse konuşmayı bir kez kendisi yeniden gönderiyor. Belgedeki Python örneği şöyle:
import anthropic
client = anthropic.Anthropic()
thread = client.beta.messages.thread(
model="claude-opus-5-5",
max_tokens=1024,
cache_control={"type": "ephemeral"},
system="You are a support agent for Acme. Keep replies short.",
)
thread.send({"role": "user", "content": "Hi! I have a question about an order."})
second = thread.send({"role": "user", "content": "How long does standard shipping usually take?"})
İstekleri kendiniz kurmak isterseniz her istekte message-threads-2026-08-12 beta başlığını göndermeniz gerekiyor. Belge alanları üç gruba ayırıyor. Sistem talimatı ve araçlar yalnız ilk istekte gider; devam isteğinde gönderilirse 400 hatası alınır. Model, düşünme ayarları ve en üstteki önbellek ayarı gibi "sabit" alanlar her istekte aynı değerle gönderilmeli; biri değişirse hata mesajı hangi alanın farklı olduğunu söyler. En fazla belirteç sayısı ve akış ayarı gibi alanlar ise turdan tura değişebilir.
Dizi, istem önbelleklemesini kendiliğinden açmıyor. Her turun önbelleğe yazılmasını istiyorsanız örnekteki gibi en üste cache_control eklemeniz yeterli. Bu iki özellik birbirini tamamlıyor: Dizi gönderilen paketi küçültüyor, önbellek ise konuşmanın daha önce işlenmiş kısmını yeniden kullanıyor. Bir istekte en fazla 4 önbellek işareti kullanılabiliyor.
Bilmeniz gereken kurallar
Belge, uygulamanızın konuşmanın asıl kaydını kendisi tutmasını istiyor. API hiçbir cevapta o turu sakladığını söylemiyor; bunu ancak bir sonraki devam isteğinde öğreniyorsunuz. Bu yüzden her mesajın kopyasını kendi tarafınızda tutmak ve yeniden gönderme yolunu baştan kurmak gerekiyor. Dizi yalnız ileri doğru büyüyor: Eski bir mesajı düzeltmek, konuşmayı dallandırmak ya da eski turları bir özetle değiştirmek için yeni bir dizi başlatılıyor. Her cevap kimliğinden yalnız bir kez devam edilebiliyor. Claude bir isteği geri çevirdiğinde de o diziye devam edilmiyor, yeni bir dizi açılıyor; SDK yardımcısı bunu da kendisi yapıyor.
Akışlı cevaplarda cevap kimliği ilk olayla gelse de devam isteği akışın son olayı geldikten sonra gönderilmeli. Toplu istekler (Message Batches), belirteç sayma ve isteğe bağlı konuşma sıkıştırma şimdilik dizilerle birlikte çalışmıyor.
Veri tarafında belge açık: Dizi, sunucu tarafında yönetilen bir anahtarla şifrelenmiş halde yalnız bellekte tutuluyor, kalıcı depolamaya hiç yazılmıyor ve son kullanımdan en geç 1 saat sonra siliniyor. Özellik sıfır veri saklama (ZDR) ve HIPAA kapsamına girmiyor; bu anlaşmalarla çalışan kurumların bunu hesaba katması gerekiyor. Dizileri listelemek, okumak ya da silmek için bir API bulunmuyor.
Message Threads şu an beta durumunda ve bütün Claude modellerinde kullanılabiliyor. Claude API'nin yanında Claude Platform on AWS, Microsoft Foundry ve Google Cloud üzerindeki Anthropic yönetimli Claude modellerinde de açık. Uzun oturumlarla çalışan bir ajanınız varsa ilk belirtece kadar geçen süreyi dizi açıkken ve kapalıyken ölçüp karşılaştırmak, kazancı kendi iş yükünüzde görmenin en kısa yolu.
Kaynaklar: Anthropic duyurusu, Message Threads belgesi, İstem önbellekleme belgesi