Skip to main content
Bir adaptör her ikisine de hizmet verir. LangGraph, langchain-core’ün geri çağrı yöneticisinde çalışır, bu nedenle birini izlemek diğerini de izler.

Kurulum

LangGraph olmadan LangChain için failproofai-sdk[langchain] kullanın. Desteklenen sürümler: langchain-core 1.4.7 ile 2.0, langgraph 1.2 ile 2.0 arası. Bu aralık dışında adaptör yine de kurulur ve bir kez uyarı verir.

İzleme Yapılandırması

instrument() bir izleyiciyi langchain_core.tracers.context.register_configure_hook aracılığıyla kaydeder. LangChain bunu inşa ettiği her geri çağrı yöneticisine enjekte eder, bu nedenle grafikler, araçlar ve modeller bir çağrı sitesini değiştirmeden yakalanır — yazmadığınız kütüphanelerin içindekiler de dahil olmak üzere.

Kaydedilen Veriler

Bir düğüm, iç içe bir ajan değil, bir hook haline gelir. agent_id her pano yüzeyindeki birincil yöntemdir — retrieve, grade_documents ve should_continue ajanlarına yükseltmek bunu boğar ve oturumu hangi düğümün ilk çalıştığına göre etiketlerdi. Hook aralıkları aynı şekilde görünür ve yine de size düğüm başına gecikme görünümü sağlar.
Düğümlerinizi istediğiniz gibi adlandırın. Bir düğümün çalıştırması, adı tarafından değil, şekli tarafından tanımlanır — LangGraph’ın kendi adım etiketini taşıyan yaprak olmayan bir çalıştırma.
Bir düğümü çalıştırdığı şeyin adını verdikten sonra o şeyin olaylarının kaybolması. Artık bu şekilde değil.

Akış

.stream() ve .astream() jetonbaşı olay yayınlamaz. Bunlar kapanış model_response içine katlanır:

Akışlı yanıttaki token sayıları

Ayrı bir konu ve kaçırması kolay: OpenAI akışlı yanıtta kullanımı sadece istendiğinde gönderir.
Adaptör çerçevenin verdiğini kaydeder. Bu bayrak olmadan kaydedilecek bir şey yoktur ve model_response token sayıları olmadan gelir.

Örnek

Aralıklarınızı Adlandırın

Varsayılan olarak kök aralık grafiğin kendi adını alır. Seçtiğiniz bir etiketi almak için sarın:
Çok ajanla kurulumlar için kapsamları iç içe geçirin. Her çalışan parent_id taşıyan bir alt aralık haline gelir:
agent_id kardinalitesini düşük tutun. Bir rol veya düğüm adı kullanın, asla UUID veya çalıştırma başına bir dize kullanmayın.

Oturumu Kontrol Edin

Oturum kimliği bu sırayla çözümlenir, ilk eşleşme kazanır:
  1. instrument("langchain", session_id=...)
  2. config={"metadata": {"failproofai_sdk_session_id": ...}}
  3. Kapsayan failproofai_sdk.session() kapsamı
  4. metadata["session_id"], metadata["conversation_id"] veya metadata["thread_id"]
  5. Kök çalıştırma kimliği
Hiçbir zaman sıfırdan oluşturulmaz, çünkü sentezlenmiş bir kimlik bir çalıştırmayı birkaç oturum arasında böler.

Seçenekler

Düzenlenmiş veriler için capture_content=False ayarlayın. Yapı, zamanlamalar, token sayıları, araç adları ve sonuçlar hala kaydedilir; mesaj gövdeleri değil. include_chains sadece iç içe çalıştırmalara uygulanır. Üst düzeyde çağırdığınız bir runnable oturumun köküdür, bu nedenle hook çiftine değil ajan aralığına dönüşür ve adını buraya vermek hiçbir etkisi olmaz.

İnsanın Döngüde Olması

interrupt() dört olay üretir ve hiçbir çift gereksiz değildir:
human_wait ile human_input arasında istem ve cevap taşınır (her ikisi de capture_content=False altında, alıcı belge kaynakları ile birlikte bırakılır — belge sayısı kalır). agent_pause ile agent_resume duraklatılan zamanı besleyen tek çifttir, bu nedenle onsuz on dakikalık bir insan bekleme etkin ajan süresi olarak faturalandırılır. Kök aralık boşluk arasında açık kalır ve her iki çağrıyı da bir oturumda tutar.

Yaygın Sorunlar

create_react_agent istisnayı yayınlar. Modelin hatayı görmesine ve devam etmesine izin vermek için araç düğümünü açıkça oluşturun:
Hata her iki durumda da bir hata içeren tool_result olarak kaydedilir. Bu sadece çalıştırmanın bundan kurtulup kurtulamayacağını belirler.
Herhangi bir grafik dışında doğrudan llm.invoke() üst çalıştırmaya sahip değildir, bu nedenle kök aralığı açar ve model çiftini içine yayınlar. Pano yapraklarını açık bir ajana ebeveynle alır, bu nedenle aralık kasıtlıdır. Adlandırın:
config={"callbacks": [...]} içinde bir Failproof işleyicisi geçtiniz ve aynı zamanda instrument() çağırdınız. Bunu kaldırın. Configure hook zaten işlemdeki her geri çağrı yöneticisini kapsar.
Değil. LangGraph GraphInterrupt oluşturur gerçek bir istisna ile aynı yol üzerinden, bu nedenle her duraklama izleyiciye bir hata geri çağrısı olarak ulaşır. GraphBubbleUp alt sınıfından herhangi biri kontrol akışı yerine işlem yapılır, bu nedenle bir onay kırmızı bir hata boyaması yapmaz.
Bu sırayla kontrol edin: instrument() grafik yürütülmeden önce çalıştı; çağrının çevresinde bir with failproofai_sdk.session(): vardır; FAILPROOFAI_SDK_STRICT=1 ayarlı, bu nedenle bozulmuş bir hook yutulmak yerine yükseltilir.

Sonraki

Nasıl çalışır

Çiftler, kimlikler, oturum yaşam döngüsü ve teslimat.

İzi oku

Az önce yakaladığınız oturum aracılığıyla nedenselliği takip edin.

Diğer çerçeveler

CrewAI, LlamaIndex, Pydantic AI ve özel ajanlar.