Görev Zarfları
Devredilen bir görev, bir görev zarfı olarak yolculuk eder: ne istendiğini, işin yapıldığını neyin kanıtlayacağını ve alıcının bu iş sırasında hangi dosyalara sahip olduğunu belirten tipli bir sözleşme. Zarf, tek başına bir mesaj gövdesinin "bitti"nin ne demek olduğunu hiçbir zaman söylememesi nedeniyle vardır — gönderen bilir, alıcı tahmin eder ve hiçbir şey bunu denetlemez.
Bir zarfın taşıması gerekenler
Bunların her biri mevcut olmadıkça, bir thread açılmadan önce görev reddedilir:
| Alan | Neyi kesinleştirir |
|---|---|
objective | Ne istendiği. |
outputFormat | Sonucun hangi biçimde gelmesi gerektiği. |
toolAndSourceGuidance | İşin hangi araç ve kaynaklardan yararlanması gerektiği. |
boundaries | Alıcının ne yapmaması gerektiği. |
filesAndInterfaces | Alıcının bu görev için sahiplendiği dosyalar ve arayüzler. |
acceptanceCheck.passFailCommand | Çıkışı geçti/kaldı kararını veren çalıştırılabilir komut. |
acceptanceCheck.endToEndVerification | Sonucun bağlam içinde çalıştığını kanıtlayan adım. |
contextID | Görevin ait olduğu bağlam. |
Eksik olan her alan, tek bir genel "bozuk görev" yerine kendi adlandırılmış hatası olarak bildirilir — objective_required, acceptance_check_command_required gibi — böylece çağırana sözleşmenin hangi parçasını atladığı söylenir.
Sahiplenilen dosyalar, iki ajanın aynı şeyi düzenlemesini böyle önler
filesAndInterfaces, alıcının görev süresince sahiplendiği kümeyi adlandırır. Aynı dosya üzerinde çalışan iki ajan sorunu, sonradan yazma işlemleri hakemlik edilerek değil, bu sahipliğin görev içinde önceden bildirilmesiyle çözülür.
İstenen araçlar bir istektir, asla bir yetki değil
toolsAllowed istek biçimindedir. Görev alıcıya ulaşmadan önce, harness bunu gönderenin erişemeyeceği bir yetenek defteriyle kesiştirir; böylece bir zarf yalnızca alıcının zaten sahip olduğunu daraltabilir — asla genişletemez ve boş bir istek hiçbir zaman araç kazandırmaz. Bağlama işlemi bir kopya döndürür; bu yüzden bağlanmamış bir zarf asla yetkilendirilmiş sanılmaz. Ajanlar arası bir mesaj, güvenilmeyen girdi olarak kalır.
Bağımlılıklar
dependsOn, opak görev kimlikleri taşır. Bunlar çözülene kadar görev üstlenilemez. Kendisine bağımlı olan veya aynı bağımlılığı iki kez tekrarlayan bir görev reddedilir.
Teslimatlar ve kanıt, mesajdan ayrıdır
artifacts, teslimatları mesaj metnine katmak yerine adlandırılmış referanslar — bir ad ve bir konum — olarak taşır. evidence, işi gerçekte neyin kanıtladığını kaydeder: çalışan kabul komutu, çıktısı ve çıkış durumu, uçtan uca doğrulama ve kararın çalıştırılabilir bir betikten mi yoksa bir LLM hakemden mi geldiği. Taze bir bağlamda bağımsız bir ikinci görüş çalıştıysa, sonucu da yanında kaydedilir.
Yaşam döngüsünün nihai durumları vardır
Bir görev submitted durumunda başlar ve yalnızca izin verilen kenarlar boyunca ilerler:
submitted→working,failed,canceledveyarejectedworking→input_required,auth_required,completed,failedveyacanceledinput_requiredveauth_required→working'e geri, ya dafailedveyacanceled
completed, failed, canceled ve rejected nihaidir: giden kenarları yoktur, bu yüzden biten bir görev sessizce yeniden açılamaz.
Tamamlanma kanıt taşır. Bir görev yalnızca bir iddiaya dayanarak completed durumuna geçemez — kayıtlı kanıt kabul kontrolünün geçtiğini göstermedikçe geçiş reddedilir. İşi yapamayan veya yapmayacak olan bir alıcı, sessizce başarısız olmak yerine gerekçesini belirterek reddeder.
Sırada ne var
- Delivery Semantics — teslimat bir sonraki turdadır ve asenkrondur; senkron bir yanıt yoktur.
- Posta ve Sayaçlar — sıraya alınmış görevlerin nerede görüldüğü ve rozetin neyi saydığı.
- MCP Tools —
agent_*araçlarının tam listesi.