Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Agent Framework 1.13.0, Python iş akışı yürütmesinde küçük hataya neden olan değişiklikler içerir. Çoğu uygulama değişiklik gerektirmez. Değişiklikler, tam üst adım sayılarına veya yineleme numaralarına bağlı olan, yakınsama sınırında max_iterations ayarlayan, ilk iletinin kaynak kimliğini inceleyen ya da denetim noktalarının yerleşimi ve sıralaması hakkında varsayımlarda bulunan uygulamaları etkiler.
Background
1.13.0 sürümünden önce, denetim noktası oluşturma özelliği, kaydedilmiş herhangi bir noktadan yürütmeyi sürdürmek için gereken iş akışı durumunu kaydetme vaadini tam olarak yerine getirmiyordu. Başlangıç yürütücüsü üst adım ve denetim noktası döngüsünden önce çalıştırıldığından, en erken denetim noktası başlangıç yürütücüsunun çıkışını ve güncelleştirilmiş durumunu içeriyordu, ancak özgün iş akışı girişini içermiyordu. Benzer şekilde, istek olaylarına verilen yanıtlar, önce bir denetim noktasına kaydedilmeden teslim edildi ve işlendi. Sonuç olarak, hiçbir denetim noktası başlangıç yürütücüsünü orijinal girdiden yeniden oynatamaz veya sunulan yanıttan insan denetimli bir devamı yeniden üretemez.
Davranış değişiklikleri
Sürüm 1.13.0 bu boşlukları kapatır. Başlangıç yürütücüsü artık ilk üst adımda çalışır, bir giriş denetim noktası bu üst adımdan önce ilk girişi kaydeder ve yanıt girişi denetim noktası da teslim edilen yanıtları işlenmeden önce kaydeder. Bu değişiklikler birlikte, insan müdahalesiyle sürdürülen devam adımları da dahil olmak üzere, denetim noktalarıyla kaydedilen bir iş akışı çalıştırmasının girdisinden başlayarak tamamen yeniden oynatılabilmesini sağlar.
Important
Bu değişiklikler 1.13.0 sürümünden önce oluşturulan denetim noktalarını etkilemez. Mevcut denetim noktaları desteklenmeye devam ediyor ve yükseltme sonrasında yine geri yüklenebiliyor.
Eylem gerektirebilecek değişiklikler
| Area | 1.13.0 Öncesi | 1.13.0 ve üzeri sürümlerde | Kullanıcı etkisi |
|---|---|---|---|
| Yürütücü başlat | Başlatma yürütücüsü, süper adım döngüsünden önce çalıştırıldı. | Giriş, ilk üst adımda çalışan başlangıç yürütücüsü için kuyruğa alınır. | Her yeni çalıştırma, birer ek superstep_started ve superstep_completed olayı oluşturur. |
| Yineleme sayısı | Yineleme 1, başlat yürütücüsü çalıştırıldıktan sonra ilk üst adımı temsil etti. | Yineleme 1, başlat yürütücüsunu çalıştırır. Sonraki iş vardiyaları bir iterasyon kayar. | Daha önce $N$ yinelemeleri gerektiren bir iş akışı için artık $N + 1$ gerekir. |
| Giriş iletisi kaynağı | İlk iletide sabit kodlanmış kaynak kimliği "Workflow"vardı. |
İlk ileti, başlangıç yürütücüsunun iç kenarı üzerinden teslim edilir ve kaynak kimliğine INTERNAL_SOURCE_ID(start_executor.id)sahiptir. |
İlk ileti kaynak kimliğini okuyan veya filtreleyen kodun yeni değeri kullanması gerekir. |
Yeniden yürütülebilirlik geliştirmeleri
| Area | 1.13.0 Öncesi | 1.13.0 ve üzeri sürümlerde | Geliştirme |
|---|---|---|---|
| İlk denetim noktası | Yineleme-0 kontrol noktası, başlatma yürütücüsü çalıştırıldıktan sonra oluşturuldu. Yürütücünün çıkış iletilerini ve güncellenmiş durumunu yakaladı, ancak orijinal girdiyi yakalamadı. | 1. adımdan önce bir giriş denetim noktası oluşturulur. Başlatma yürütücüsü için kuyruğa alınan orijinal girdiyi kaydeder. | Giriş denetim noktasının geri yüklenmesi, başlangıç yürütücüsü dahil çalıştırmanın tamamını yeniden yürütür. |
| Yanıt denetim noktası | Bir istek olayına verilen yanıt, önce bir denetim noktasına kaydedilmeden iletildi. | Yanıt teslim edildikten sonra ve yanıtı tüketen süper adım çalışmadan önce bir yanıt giriş denetim noktası oluşturulur. | Yanıt giriş denetim noktasının geri yüklenmesi, yanıtı tüketen devamı yeniden oynatır. |
Üst adım olay işlemeyi güncelleştirme
Başlangıç yürütücüsü 1. üst adımda çalıştığından, yeni bir iş akışı çalıştırması artık bir çift süper adım olayı daha üretir:
-
superstep_startedileiteration == 1 -
superstep_completedileiteration == 1
Sonraki yürütücü çalışması bir üst adımla kayar. Testleri, telemetriyi, ilerleme göstergelerini veya tam bir olay sayısı varsayan veya belirli bir yürütücüsü sabit bir yinelemeyle eşleyen diğer kodları güncelleştirin.
Olay türlerine, sayılarına veya yinelemelerine güvenmeden yanıt veren kodun değişmesi gerekmez.
En yüksek yineleme sınırını gözden geçirin
max_iterations sınırı artık başlangıç yürütücüsünü çalıştıran süper adımı da içeriyor. Bir iş akışı daha önce tam sınırını kullandıysa, yapılandırılan değeri bir artır:
from agent_framework import WorkflowBuilder
workflow = WorkflowBuilder(
start_executor=start_executor,
max_iterations=previous_max_iterations + 1,
).build()
İş akışı yapılandırılmış sınıra ulaşmadan önce zaten yakınsanıyorsa değişiklik gerekmez.
İlk ileti kaynağı denetimlerini güncelleştirme
Başlangıç yürütücüsü ilk iletinin kaynak kimliğini kullanırsa, sabit kodlanmış "Workflow" değeri başlangıç yürütücüsünün iç kenarının kaynak kimliğiyle değiştirin.
1.13.0 öncesi:
is_workflow_input = ctx.source_executor_ids != ["Workflow"]
1.13.0 ve sonraki sürümlerde:
from agent_framework import INTERNAL_SOURCE_ID
is_workflow_input = ctx.source_executor_ids != [INTERNAL_SOURCE_ID(self.id)]
INTERNAL_SOURCE_ID(executor_id) şu anda "internal:<executor_id>" döndürüyor. Kodunuzun çerçevenin kaynak kimliği biçimine uyabilmesi için bu dizeyi oluşturmak yerine yardımcıyı kullanın.
Denetim noktası işlemeyi güncelleştirme
İlk giriş denetim noktaları
Denetim noktası oluşturma etkinleştirildiğinde, her yeni çalıştırma artık iteration_count == 0 konumunda bir başlangıç denetim noktası oluşturur. Bu denetim noktası, başlangıç yürütücüsine adreslenen bir uçuş içi ileti olarak özgün girişi içerir. Onu geri yüklemek, başlatma yürütücüsünü yeniden çalıştırır ve tüm iş akışı çalıştırmasını yeniden oluşturur.
Tamamlanan her üst adımdan sonra çerçeve bir denetim noktası oluşturmaya devam eder. $N$ süper adım içeren bir çalıştırmada, $N + 1$ denetim noktası bekleyin: giriş denetim noktasını ve ardından tamamlanan her süper adım için bir denetim noktasını.
Yineleme-0 denetim noktasının başlangıç yürütücüsü tarafından üretilen durumu içerdiğini varsayan kodu gözden geçirin. Bu durum artık 1. adımdan sonra oluşturulan denetim noktasında görünür.
İstek-yanıt denetim noktaları
workflow.run(responses=...) ile bir iş akışını sürdürdüğünüzde, çerçeve artık yanıtları kuyruğa aldıktan sonra ve bunları tüketen süper adımı çalıştırmadan önce yanıt girişi için bir denetim noktası oluşturur. Bu denetim noktasının geri yüklenmesi, kaydedilen yanıtları yeniden teslim eder ve iş akışının geri kalanını yeniden yürüter.
Yanıt girişi denetim noktası, bekleyen isteği içeren önceki denetim noktasıyla aynıdır iteration_count . Bu, previous_checkpoint_id öğesi bekleyen istek denetim noktasını işaret eden ayrı bir denetim noktasıdır.
Important
Bir iteration_count'nun insan denetimli denetim noktası geçmişinde benzersiz olacağı garanti edilmez.
previous_checkpoint_id Denetim noktası sırasını belirlemek için zinciri izleyin. En son denetim noktasına ihtiyacınız varsa, en büyük iteration_countdenetim noktasını seçmek yerine denetim noktası depolama API'sini kullanın.
Geçiş denetim listesi
- Kesin superstep sayılarına veya yineleme numaralarına bağımlı olan doğrulamaları ve olay tüketicilerini güncelleyin.
-
max_iterationsdeğerini yalnızca önceki sınıra ulaşan iş akışları için bir artırın. - için ilk kaynak kimliği denetimlerini
"Workflow"ileINTERNAL_SOURCE_ID(start_executor.id)değiştirin. - Yineleme-0 denetim noktasını yürütme öncesi giriş denetim noktası olarak değerlendirin.
- İnsanın devrede olduğu denetim noktalarını,
iteration_countöğesinin benzersiz olduğunu varsaymak yerine, soylarına göre sıralayın. - Giriş denetim noktasını ve yanıt girişi denetim noktasını yeniden yürütmenin beklenen çıkışı ve yan etkileri ürettiğini doğrulayın.
Uygulama ayrıntıları için bkz. İş akışı denetim noktasının tam yeniden oynatılabilirliğine izin verme.