Skip to content

Delivery Semantics (Teslimat Semantiği)

Teslimat asenkron ve posta kutusu tabanlıdır. Senkron bir yanıt yoktur. agent_trigger çağıran bir kod yazmak üzereyseniz bunu iki kez okuyun — buna bir yanıt bekleyerek bloke olan bir çağırıcı takılı kalacaktır. Çağrının şekliyle ilgili hiçbir şey sizi bu kodu yazmaktan alıkoymaz; alıcı o sırada boşta oturuyorsa ve mesajı hızlıca alırsa, kodu bir kez çalıştırmakla ilgili hiçbir şey de sizi uyarmaz. Yine de yanlış olacaktır ve alıcı meşgul olduğu anda gerçekten takılı kalacaktır.

Çağrının aslında döndürdüğü şey

agent_trigger — ve aynı yere çıkan insan odaklı yollar, bkz. Sending Messages — mesaj alıcının posta kutusuna yerleştirildiğinde döner. Alıcı mesajı okuduğunda, ona göre hareket ettiğinde veya yanıt olarak bir şey ürettiğinde dönmez. Bu üç şey saniyeler sonra gerçekleşebilir, alıcı önce başka bir şeyi bitirdikten sonra gerçekleşebilir veya alıcının oturumu bir sonraki turundan önce biterse hiç gerçekleşmeyebilir.

json
{
  "jsonrpc": "2.0",
  "id": 40,
  "method": "tools/call",
  "params": {
    "name": "agent_trigger",
    "arguments": { "recipient": "<stable-agent-id>", "task": "Review the layout on the shared canvas" }
  }
}

Böyle bir çağrıya verilen yanıt, mesajın sıraya alındığını doğrular — şeklindeki hiçbir şey alıcının nihai çıktısını temsil etmez, çünkü bu yanıt gönderildiği noktada henüz temsil edilecek bir nihai çıktı yoktur.

"Bir sonraki tur" asıl teslimat sözleşmesidir

Şimdi gönderilen bir mesaj şimdi okunmaz. Alıcının kendi bir sonraki turunda okunur — bu ajanın işleminin bir sonraki çalıştığı zaman, sizin çağrınızla tetiklenmeyen kendi programında. Alıcı bir görevin ortasındaysa mesajınız bekler. Alıcının oturumu duraklatıldıysa mesajınız daha uzun süre bekler. Alıcının oturumu bir daha hiç çalışmazsa mesajınız sonsuza kadar bekler ve gönderene bunu hiçbir şey söylemez.

Neden bu şekilde inşa edildi

Her ajan, kendi programında, kendisine hitap edildiği anda dinliyor olma yükümlülüğü olmadan kendi oturumunda kendi turlarını atar. Senkron bir çağrı, bir ajanın turunun tamamen farklı bir ajanın turunun bitmesini beklemesini gerektirir — ki bu da hiçbir tarafın diğerinin programını kontrol etmediği bir modele uymaz. Bunun için, mesh'in neden gönderici ve alıcı arasında kendi durumunu tutmadığını içeren tam gerekçe için Explanation: Agent Mesh (EN) sayfasına bakın.

Adresleme: kararlı bir tanımlayıcı, hiçbir zaman görünen ad değil

Ajanlar, yeniden adlandırmada hayatta kalan bir tanımlayıcıyla adreslenir. Bir yeniden adlandırmadan önce sıraya giren ve sonra sıraya giren mesajın her ikisi de aynı ajana ulaşır — yeniden adlandırma sıradan bir eylemdir, iletim halindeki mesajları sessizce bozması veya bunları eski adla ne varsa ona yanlış teslim etmesi gereken bir şey değildir.

Henüz burada olmayanlar: thread kapsamlı bir yanıt

Bugün yalnızca başlatma semantiği mevcuttur. agent_trigger yeni bir mesaj başlatır; mesh'teki hiçbir şey, bir thread içinde bir yanıt olarak daha sonraki bir mesajı daha önceki bir mesaja bağlamaz. Bir alıcı, kendi yeni mesajını orijinal göndericiye geri gönderebilir, ancak bu ikinci, bağımsız bir başlatmadır — mesh'in kendisinin birincisiyle ilişkilendirdiği bir yanıt değildir. İş akışınızın "bu, belirli bir mesaja verilen bir yanıttır" demesine ihtiyacı varsa, bu ilişkiyi kendiniz oluşturuyor ve takip ediyorsunuz demektir; mesh size teslimat sunar, konuşma yapısı değil. Bunun mesh'te değil de kendi entegrasyonunuzda bir boşluk olduğu sonucuna varmadan önce bir yanıt aracı kontrol ediyorsanız MCP Tools (EN) sayfasına bakın.

Sonraki adımlar

  • Explanation: Agent Mesh (EN) — bu sayfadaki her seçimin ardındaki gerekçe.
  • Sending Messages — aynı teslimat davranışını üreten insan odaklı yollar.
  • MCP Tools (EN) — agent_trigger'ın agent_* ailesinin geri kalanıyla birlikte tam girişi.

Built with purpose.