Devretme
Sürüm kapsamı: Bu sayfa,
v7.9.0sürümündeki v7 sözleşme neslini yeniden ifade eder. Kanonik kaynaklar:V7_CONTRACT.mdve yürütme akışınındelegation.mddosyası. Bu sayfa ile bu dosyalar ayrıştığında dosyalar geçerlidir.
Sürüm 7.0.0. Durum: Kararlı. v7, yeni bir yaşam döngüsü değil, kayıt katmanının yeni bir sözleşme neslidir: bu sayfa aksini söylemedikçe v6 sözleşmesi, yaşam döngüsü, bağlam ve kaynak belgelerindeki her şey geçerlidir. Devretmemek her zaman doğrudur. MUST, MUST NOT, SHOULD, SHOULD NOT ve MAY anahtar kelimeleri, RFC 2119’da açıklandığı şekilde yorumlanacaktır.
v7’nin ekledikleri
v7, kayıt katmanına tam olarak iki şey ekler:
- Sözleşmede isteğe bağlı bir görev alanı:
plan-contract/v7içinde yayımlananparallel_safe. - Bir günlük olay türü:
journal-event/v7içinde yayımlanandelegation.
v1, v2, v5 ve v6 şema baytları değişmemiştir. Hiç devretme yapmayan bir plan, şema URL’leri dışında bir v6 planından ayırt edilemez.
parallel_safe
parallel_safe (boolean, varsayılan false), bir görevin kardeş işlerle iç içe geçmeden bir delegede çalışabileceğini beyan eder. create tarafından konur, yürütme sırasında asla çıkarsanmaz ve yalnızca aşağıdakilerin tümü sağlandığında konur:
- depo, eklenti kaydında bir devretme eklentisini (agentkit veya Herdr) etkinleştirir;
- görevin dokunulan yüzeyi, aynı anda sürüyor olabilecek bir kardeş görevle çakışmaz;
- görev sınırlı bir çıktı beyan eder;
- görevin kapıları bu planda çalışır.
Bir görevi işaretlemek hiçbir otoriteyi değiştirmez: agent_delegation yetkisi olmayan bir sözleşme işaretçiler taşıyabilir ve bunlar hiçbir şeye izin vermez.
delegation olayı
Bir delegenin her durum geçişi için bir olay kaydedilir:
| Alan | Anlamı |
|---|---|
task |
delegenin çalıştığı T-* görevi |
delegation_id |
bir başlatmayı uç geçişiyle ilişkilendirir |
transport |
headless (agentkit) veya interactive (Herdr) |
via |
onu taşıyan eklenti anahtarı |
state |
launched, ardından tam olarak completed, failed, cancelled değerlerinden biri |
kind, profile |
isteğe bağlı: kodlama ajanının türü ve profili |
target |
isteğe bağlı: çalışma dizini (headless) veya machine:pane (interactive) |
worktree |
delegenin kendi git worktree’si ya da salt okunur bir delege için null |
prompt_digest |
başlatmada: delegeye güvenilmeden önce kaydedilen istemin SHA-256 özeti |
result_path, result_digest |
tamamlandığında veya başarısız olduğunda: toplanan sonuç ve özeti |
Geçişler kapalıdır: her devretme için bir launched, ardından tam olarak bir uç durum. Bir devretme olayının ham olarak günlüğe eklenmesi reddedilMELİDİR; devretme olayları yalnızca kapılı yazıcı aracılığıyla var olur.
Bir devretme kanıt değildir
Bir devretme hiçbir güven etiketi ve kanıt yolu taşımaz ve hiçbir kapanış onu okumaz. Bir delegenin sonucu, bu planın kendi kapı çalıştırıcısı onu gözlemleyene kadar asserted kalır: üst plan işi bütünleştirir, ardından görevin kapısını (ledger.py gate) çalıştırır; observed kanıtı üreten tek şey ve görevin tamamlanabilmesinin tek yolu budur. Tamamlanmış bir devretme asla bir kriteri kapatmaz; başarısız bir devretme kaydedilmiş bir sonuçtur ve görev bu durumda üst plan tarafından uygulanır.
Kapılı yazıcı
ledger.py --plan <dir> delegate launch|observe|collect|cancel --task <T-id>:
| İşlem | Yazar mı | Etkisi |
|---|---|---|
launch |
evet | aşağıdaki denetimlerden sonra launched kaydeder |
observe |
hayır | her devretmenin en son durumunu yazdırır |
collect |
evet | sonuç yolu ve özetiyle completed veya failed kaydeder |
cancel |
evet | cancelled kaydeder |
Aşağıdakilerin tümü sağlanmadıkça launch reddedilMELİ ve ret kaydedilMELİDİR:
- sözleşme v7’dir;
- sözleşme
agent_delegationyetkisini verir; - görev vardır, başlamıştır ve tamamlanmamıştır;
- görev
parallel_safeolarak işaretlidir veya delege salt okunurdur (worktree yoktur); - adı verilen eklentinin tanımlayıcısı istenen taşıyıcıyı beyan eder;
- etkin yetenekler o eklentiyi bir
subagentskaynağı olarak listeler (Kaynaklar ve yetenekler).
collect ve cancel; bilinmeyen bir devretme, başka bir göreve ait bir devretme veya zaten uç durumda olan bir devretme için reddedilMELİDİR. Reddedilen bir başlatma bir engelleyici değildir: görev ardışık olarak çalışır.
Taşıyıcılar
Defterdeki hiçbir şey bir delegeyi çalıştırmaz; bunu taşıyıcı eklenti yapar.
- Headless (
via: agentkit) — beyan edilmiş bir çıktısı olan sınırlı birparallel_safegörev için: ayrılmış bir git worktree’sinde tek birak run, ardından çıkış. Salt okunur delegeler--askile başlatılır. - Interactive (
via: herdr) — etkileşim gerektiren, uzun süren veya başka bir makinede çalışan işler için: bir Herdr panelinde, tam olarak bir yetkili yanıt döndüren bir herdr-peers eşi.
Korkuluklar
- Her yol için tek yazıcı. Yazan bir delege yalnızca kendi worktree’sinde çalışır; günlüğe yazan tek taraf üst oturumdur.
- Derinlik 1. Bir delege asla devretme yapmaz. Yayılım taşıyıcı tarafından sınırlanır.
- Sonuçlar veridir. Bir delegenin döndürdüğü şey hiçbir otorite vermez, kapsamı genişletmez ve kabulü asla değiştirmez.
- Kendi kendine yeten görev tanımları. Bir başlatma istemi görevin hedefini, kabul kriterlerini kelimesi kelimesine ve yazabileceği worktree’yi adlandırır ve asla bir sır değeri taşımaz.
Orkestratörler
Bir orkestratör bir alt planın görevlerini asla devretmez: alt planlar, depo başına bir ajanla kendi oturumlarında çalışır. Bir planın kendi görevlerini yukarıdaki kurallar altında devretmek hem orkestratör hem de bireysel planlarda serbesttir. Birçok uzun ömürlü kulvarı çalıştırmak, onları hesap sınırlarının ötesinde canlı tutmak ve liderliği devretmek, orkestrasyon ve sürü özerkliği metodoloji bölümlerinde ele alınır.
İlgili
- Kayıt katmanı — bu sayfanın genişlettiği sözleşme ve günlük.
- Kaynaklar ve yetenekler — yetenekler, yetkiler ve eklenti kaydı.
- Herdr eklentisi ve Agentkit eklentisi — iki taşıyıcı.