Yükleme
Enstrümantasyon
session_id ve agent_id atlamabilir. Kapsamlar kimliği bağlam değişkenlerine bağlar ve her olay çağrısı onu geri okur, bu yüzden kimlikler hiçbir zaman işlevler aracılığıyla iletilmez.
Üçü de async with ve with altında çalışır.
Aracıları iç içe yerleştirmek ağacı oluşturur. parent_id ve derinlik yığından hesaplanır:
Bir kapsam nasıl kapanır
agent() istisnaları sizin için işler:
agent_end öncesinde yayınlanır, çünkü gösterge paneli yayını agent_end konumunda kapatır ve bundan sonra gelen her şey hiçbir şeye atfedilir. İptal bir hata değildir, bu nedenle iptal edilen çalışmalar hata yüzeyini kirletmez. İstisna her zaman yeniden yükseltilir: bir kapsam asla yutmaz.
Olay yöntemleri
On beş yöntem altı ailededir. Çoğu çiftler halinde gelir — açan yayını yayınlarsınız, sonra kapatanı yayınlarsınız ve SDK aralarındaki yayını ölçer.Örnek
OpenAI API’sine karşı araç çağırma döngüsü, ajan çerçevesi olmadan:docs/manual/examples/ altında bulunur.
İş parçacıkları ve async
Bağlam değişkenleri asyncio görevlerine otomatik olarak yayılır. Bir iş parçacığı boş bir bağlamla başladığı için yeni iş parçacıklarına yayılmaz.propagate() olmadan, worker’ın olayları düzeltmeyi adlandıran bir TypeError yükseltir, bu da hiçbir oturuma gitmez. Bu kasıtlıdır: oturumu olmayan bir olay ingest tarafından atlanır ve 200 ile yanıtlanır, bu da kimlik katmanının önlemesi amaçladığı sessiz başarısızdır.
Adaptörü olmayan bir çerçeveyi enstrümante edin
Her ajan çerçevesi aynı üç bağlantı noktası sağlar. Onları harita yapın ve tam bir izlemeniz vardır — sevk edilen dört adaptör bundan fazla bir şey yapmaz.Çalışmayı köşeli ayraç içine alın
Her aracı köşeli ayraç içine alın
Her model çağrısını eşleştirin
AutoGen adaptörü neden yok
AutoGen adaptörü neden yok
autogen-coreEylül 2025’ten beri bakımsız olmuştur.- AG2, diğer çerçevelerin kancanlarına eşdeğer hiçbir işlem açısından kayıt noktası açığa çıkarmaz, bu nedenle enstrümantasyonu her inşaat alanında her aracıyı sararak anlamına gelir.
Daha derine gitme
Kaydın aslında nasıl çalıştığı. Başlamak için buna ihtiyaç yoktur.Çerçeve başına bir kaydın neye benzediği
Çerçeve başına bir kaydın neye benzediği
- LangGraph
- CrewAI
- LlamaIndex
- Pydantic AI
- Özel aracılar
Oturum nasıl başlar ve biter
Oturum nasıl başlar ve biter
session_id paylaşan bir olay grubudur.Durum izlemenin şeklinden türetilir:agent_end yayınlar ve kapalı kaldığında açık kalan her şeyi kapatırlar ve eksik olarak işaretlerler — çökmüş bir çalışma asılı kalmak yerine görünür bir boşlukla done olarak yerleşir.interrupt() çalışmayı duraklatır, kök yayı kasıtlı olarak açık kalır ve devam eden çağrı onu kapatır. Her iki çağrı bir oturuma aittir.Kimlik: session_id, agent_id ve kim onları basım yapıyor
Kimlik: session_id, agent_id ve kim onları basım yapıyor
session_id ve agent_id her olay yönteminde isteğe bağlıdır. Atlanırsa, çevreleyen kapsamdan çözülürler:TypeError yükseltir, ingest atlamış olacağı oturumu olmayan bir olayı yayınlamak yerine, 200 ile yanıtlar.Kapsamlar kimliği bağlam değişkenlerine bağlar. Bunlar asyncio görevlerine otomatik olarak yayılır ancak yeni iş parçacıklarına yayılmaz — bir worker’ı failproofai_sdk.propagate() içine sarın.Hangi kimlik kim tarafından basım yapılır
Adaptörler session_id nasıl çözer
İlk eşleşme kazanır:- Açık bir
session_idseçeneği - Çağrı başına meta veri
- Çevreleyen
session()kapsamı - Çerçeve meta verileri
- Çerçevenin kendi çalışma kimliği
agent_id düşük kardinaliteyi koruyun
Bu her gösterge paneli yüzeyinde birincil yönüdür ve LowCardinality(String) sütunu. Çalışma başına bir değer sütunu düşürür ve filtre açılır menüsünü çalışma başına bir giriş ile doldurur.Adaptörler bu sütunu sizin için savunur:fw_agent_id / fw_run_id üzerinde tutulur, burada yönü olmuş bir yüzey olmadan sorgulanabilir kalır.Olay türleri, gruplandırılmış — ve hangi çerçeve neyi kaydeder
Olay türleri, gruplandırılmış — ve hangi çerçeve neyi kaydeder
human_pause ve human_interrupt, aracıya etkide bulunan bir kişiyi tanımlar, hiçbir çerçeve sinyal vermez — bunları kendiniz yayınlayın.Çiftler, korelasyon ve süre
Çiftler, korelasyon ve süre
Korelasyon kuralları
- Eşleşen tamamlama olayı için aynı
tool_call_id,hook_id,pause_idveyainput_idyeniden kullanın. - SDK
tool_result,hook_completed,agent_resumevehuman_inputiçinduration_mshesaplar. Bunları iletmekValueErroryükseltir. duration_mskabul edilirmodel_responseüzerinde, çünkü yalnızca arayan gerçek sağlayıcı gecikmesini bilir. Bir tamsayı olmalı — bir kayan sayı çağrı sitesindeValueErroryükseltir, sunucu sütunu işaretsiz 32 bitlik bir tamsayı olarak okur ve başka bir şey için NULL depolar.- Korelasyon anahtarları tür ve oturum kapsamındadır, böylece bir araç çağrısı ve kancanın kimliği güvenle paylaşabilir ve iki eşzamanlı oturum kimlikler yeniden kullanabilir çarpışma olmadan. Agent kapsamında değil: bir ajan altında açılan ve diğeri altında kapatılan bir çift yine de ilişkilendirilir, bu multi-ajan çerçevelerdeki sıradan durumdur.
request_idmodel_requestmodel_responseile eşleştirir. Olmadan, model olayları ajan başına sırada eşleşir, bu nedenle eşzamanlı çağrılar yanlış eşleşir.- İşlemler arasında bölünmüş bir çift yine de aşağı doğru ilişkilendirilir, ancak SDK işlem içi süresini hesaplayamaz.
- Bekleyen harita en fazla 10.000 başlangıç tutar ve dolu olduğunda en eski giriş tahliye eder.
Pakette ne vardır ve instrument() çerçevenizi nasıl bulur
Pakette ne vardır ve instrument() çerçevenizi nasıl bulur
failproofai-sdk kurmak her şeyi, dört adaptör dahil olmak üzere yükler. Ekstralar adaptörü değil, çerçeveyi çeker.import failproofai_sdk sözleşmeli olarak sıfır bağımlılıktır, yerleşik tekerleği --no-deps ile kuran ve hiçbir çerçevenin sys.modules erişmemesini kanıtlayan başka bir test tarafından uygulanır.sys.modules okur, yüklü paket listesi değil, bu nedenle kurmuş ancak asla içe aktarmadığınız bir çerçeve enstrümente edilmez ve asla sizin adınıza içe aktarılmaz. Neyin bağlı olduğunu görmek için:instrument("crewai") yükseltmez. Bir uyarı kaydeder ve () döndürür, bu nedenle bir eksik çerçeve diğerlerini de enstrümante eden bir işlemi asla alır.Uyarı temel ImportError taşır ve bu ileti tam kurulum komutu adlandırır — düzeltme günlüklerde gizli değildir.FAILPROOFAI_SDK_STRICT=1 ayarlayın. Bu bayrak bir kez okunur ve önbelleğe alınır, bu yüzden işleminiz başlamadan önce bunu dışa aktarın, çalışma sırasında ayarlamak yerine.Olaylar Buluta nasıl ulaşır
Olaylar Buluta nasıl ulaşır
.tmp ilk, sonra fsync, sonra atomik yeniden adlandır:.jsonl alır, bu nedenle asla yarı yazılı dosya okuyamaz. Gövde zaman damgası, işlem kimliği ve sıra numarası taşır, bu nedenle iki işlem aynı milisaniyede temizlenirse çarpışamaz. Kuyruk 10.000 olayda sınırlıdır; bunun ötesinde en eskisini bırakır ve kaydeder.Daemon gönderir topluları. Açmaz veya yeniden yazmaları yapmaz.ls toplayıcıyı yarışır ve yayınladığınız kesirini gösterir — hiçbir şey kaydeden bir SDK’dan ayırt edilemez.Olayların gerçekten iniş yaptığını doğrulamak için gösterge panelini kontrol edin. Makarayı dolmaya karşı izlemek için daemon’u ilk durdurun.Enstrümantasyon başarısız olduğunda
Enstrümantasyon başarısız olduğunda
try içinde oturur ve SDK’nın yaptığı her şey bunun dışında olur.FAILPROOFAI_SDK_STRICT=1 ayarlayın.Yaygın sorunlar
Bir yay hiçbir zaman bitmez
Bir yay hiçbir zaman bitmez
model_response olmayan model_request veya tool_result olmayan tool_use. Kapsamları kullanın, gövde yükseltirse bile çifti garanti ederler. Olay yöntemlerini doğrudan çağrırsanız, try ve finally kullanın.duration_ms geçirmek ValueError yükseltir
duration_ms geçirmek ValueError yükseltir
tool_result, hook_completed, agent_resume ve human_input üzerinde reddedilir. model_response üzerinde kabul edilir, çünkü yalnızca siz gerçek sağlayıcı gecikmesini bilirsiniz ve bir tamsayı olmalı.Bir worker iş parçacığından olaylar TypeError yükseltir
Bir worker iş parçacığından olaylar TypeError yükseltir
failproofai_sdk.propagate() içine sarın. Bkz. İş parçacıkları ve async.Ekstra bir alan kayboldu veya bir şeyin üzerine yazıldı
Ekstra bir alan kayboldu veya bir şeyin üzerine yazıldı
model veya outcome gibi gerçek alana benzer bir ad, onu yeniden yazar ve depolanmış sütunu değiştirir. Sizinkini ad alanı yapın; adaptörler bir fw_ ön eki kullanır.Ajan filtresinin binlerce girişi var
Ajan filtresinin binlerce girişi var
agent_id düşük kardinalite yönüdür ve bir çalışma kimliğini içine koydunuz. Rol veya düğüm adı kullanın ve gerçek kimliği yayın alanına koyun.
