Dela via


Microsoft Agent Framework-arbetsflöden – Observerbarhet

Observerbarhet ger insikter om arbetsflödens interna tillstånd och beteende under körningen. Detta omfattar funktioner för loggning, mått och spårning som hjälper dig att övervaka och felsöka arbetsflöden.

Tips/Råd

Observerbarhet är en ramverksomfattande funktion och är inte begränsad till arbetsflöden. Mer information finns i Observerbarhet.

Förutom genAI-standardtelemetrin genererar Agent Framework-arbetsflöden ytterligare intervall, loggar och mått för att ge djupare insikter om arbetsflödeskörning. Dessa observerbarhetsfunktioner hjälper utvecklare att förstå flödet av meddelanden, prestanda för utförare och eventuella fel som kan uppstå.

Aktivera observerbarhet

Se Aktivera observerbarhet för anvisningar om hur du aktiverar observerbarhet i dina program.

Se Aktivera observerbarhet för anvisningar om hur du aktiverar observerbarhet i dina program.

Arbetsflödesintervall

Följande tidsintervall genereras under utförandet av arbetsflödet:

Namn på intervall Description
workflow.build Genereras för varje arbetsflödesversion.
workflow.session Yttre intervall som representerar hela livslängden för en arbetsflödesexekvering, från start tills det stoppas eller vid fel.
workflow_invoke Genereras för varje indata-till-avbrott-cykel i en arbetsflödessession.
executor.process {executor_id} Genereras för varje exekutor som behandlar ett meddelande. Exekverings-ID läggs till i span-namnet.
edge_group.process Genereras för varje kantgrupp som bearbetar ett meddelande.
message.send Genereras för varje meddelande som skickas från en exekverare till en annan exekverare.

Följande intervall genereras under arbetsflödeskörningen:

Namn på intervall Description
workflow.build Genereras för varje arbetsflödesversion.
workflow.run Genereras för varje arbetsflödeskörning.
executor.process {executor_id} Genereras för varje exekverare som bearbetar ett meddelande. Exekverings-ID:t läggs till i spänn-namnet.
edge_group.process {edge_group_type} Genereras för varje kantgrupp som bearbetar ett meddelande. Kantgruppstypen läggs till i spannets namn.
message.send Genereras för varje meddelande som skickas från en exekverare till en annan exekverare.

Span-attribut

Spans bär attribut som ger ytterligare kontext om operationen. Följande attribut anges för arbetsflödesintervall:

Attribute Intervall Description
workflow.id workflow.build, workflow.session Arbetsflödets unika identifierare.
workflow.name workflow.session Namnet på arbetsflödet.
workflow.description workflow.session Beskrivningen av arbetsflödet.
workflow.definition workflow.build JSON-definitionen för arbetsflödesdiagrammet.
session.id workflow.session Den unika sessionsidentifieraren.
executor.id executor.process Den unika identifieraren för utföraren.
executor.type executor.process Exekverarens typnamn.
executor.input executor.process Indatameddelandet. Ange endast när känsliga data är aktiverade.
executor.output executor.process Utdata från exekutorn. Ange endast när känsliga data är aktiverade.
message.type executor.process, message.send Typnamnet på meddelandet.
message.content message.send Meddelandeinnehållet. Ange endast när känsliga data är aktiverade.
message.source_id message.send ID för exekutorn som skickade meddelandet.
message.target_id message.send ID:t för målexekutorn, om det anges.
edge_group.type edge_group.process Typen av kantgrupp.
edge_group.delivered edge_group.process Om meddelandet levererades (booleskt).
edge_group.delivery_status edge_group.process Leveransresultatet (se Edge-gruppleveransstatus).
error.type Alla intervall vid fel Namnet på undantagstypen.
Attribute Intervaller Description
workflow.id workflow.build, workflow.run Arbetsflödets unika identifierare.
workflow.name workflow.run Namnet på arbetsflödet.
workflow.description workflow.run Beskrivningen av arbetsflödet.
workflow.definition workflow.build JSON-definitionen för arbetsflödesdiagrammet.
workflow_builder.name workflow.build Namnet på arbetsflödesverktyget.
workflow_builder.description workflow.build Beskrivningen av arbetsflödesverktyget.
executor.id executor.process Den unika identifieraren för utföraren.
executor.type executor.process Exekverarens typnamn.
message.type executor.process, message.send Typnamnet på meddelandet.
message.payload_type executor.process Datatypen för meddelandets nyttolast.
message.destination_executor_id message.send ID:t för målexekutorn, om det anges.
message.source_id edge_group.process ID:t för exekutorn som skickade meddelandet.
message.target_id edge_group.process ID:t för målexekutorn, om det anges.
edge_group.type edge_group.process Typen av kantgrupp.
edge_group.id edge_group.process Den unika identifieraren för gränsgruppen.
edge_group.delivered edge_group.process Om meddelandet levererades (booleskt).
edge_group.delivery_status edge_group.process Leveransresultatet (se Edge-gruppleveransstatus).

Span-händelser

Span-händelser är strukturerade loggposter som är kopplade till intervall, vilket ger en tidslinje över viktiga ögonblick inom varje intervall.

Händelsenamn Intervall Description
build.started workflow.build Genereras när byggprocessen börjar.
build.validation_completed workflow.build Genereras när byggverifieringen godkänns.
build.completed workflow.build Genereras när bygget har slutförts.
build.error workflow.build Genereras när bygget misslyckas.
session.started workflow.session Genereras när en arbetsflödessession börjar.
session.completed workflow.session Genereras när en arbetsflödessession är klar.
session.error workflow.session Genereras när en arbetsflödessession stöter på ett fel.
workflow.started workflow_invoke Genereras när ett arbetsflödesanrop börjar.
workflow.completed workflow_invoke Genereras när ett arbetsflödesanrop slutförs.
workflow.error workflow_invoke Genereras när ett arbetsflödesanrop påträffar ett fel.
Händelsenamn Omfång Description
build.started workflow.build Genereras när byggprocessen börjar.
build.validation_completed workflow.build Genereras när byggverifieringen godkänns.
build.completed workflow.build Genereras när bygget har slutförts.
build.error workflow.build Genereras när bygget misslyckas.
workflow.started workflow.run Genereras när en arbetsflödeskörning börjar.
workflow.completed workflow.run Genereras när en arbetsflödeskörning slutförs.
workflow.error workflow.run Genereras när en arbetsflödeskörning påträffar ett fel.

När en exekutor skickar ett meddelande till en annan exekutor skapas span message.send som underordnad executor.process span. Målexekutorintervallet executor.process är dock inte underordnat message.send intervallet eftersom körningen inte är kapslad. I stället är målexekutorintervallet executor.processlänkat till message.send källexekutorns intervall. Den här länken skapar en spårningsbar sökväg genom arbetsflödeskörningen utan att innebära en kapslad anropshierarki.

Samma länkningsmetod gäller för edge_group.process intervall, som är länkade till källintervallen message.send för kausalitetsspårning. Detta stöder inbyggda scenarier där flera källintervall bidrar till ett enda bearbetningsintervall.

Leveransstatus för edge-grupp

Bearbetningsspann för kantgrupp inkluderar leveransstatusattribut som visar resultatet av meddelanderoutning genom varje kantgrupp. Attributet edge_group.delivery_status är inställt på något av följande värden:

Status Description
delivered Meddelandet levererades till målexekutorn.
dropped type mismatch Målexekutorn kan inte hantera meddelandetypen.
dropped target mismatch Meddelandet angav ett mål som inte matchar denna nod.
dropped condition false Gränsroutningsvillkoret blev bedömt som falskt.
exception Ett undantag inträffade under kantbearbetningen.
buffered Meddelandet buffrades och låg i väntan på ytterligare meddelanden (fan-in).

Det edge_group.delivered booleska attributet ger en snabb kontroll av om meddelandet har levererats.

Telemetrikonfiguration

Arbetsflödestelemetri kan aktiveras via WithOpenTelemetry tilläggsmetoden i arbetsflödesverktyget. Klassen WorkflowTelemetryOptions ger detaljerad kontroll över vilka intervall som genereras:

Option Standardinställning Description
EnableSensitiveData false Innehåller råa indata, utdata och meddelandeinnehåll i span-attribut.
DisableWorkflowBuild false Inaktiverar workflow.build intervall.
DisableWorkflowRun false Inaktiverar workflow.session- och workflow_invoke-spänningsintervall.
DisableExecutorProcess false Inaktiverar executor.process span-element.
DisableEdgeGroupProcess false Inaktiverar edge_group.process intervall.
DisableMessageSend false Inaktiverar message.send intervall.

Varning

Aktivering av känsliga data gör att innehållet i råa meddelanden, indata och utdata från utföraren inkluderas i telemetrin. Aktivera endast detta i säkra miljöer där telemetridata skyddas på rätt sätt.

Arbetsflödestelemetri aktiveras via den globala enable_instrumentation() funktionen. När instrumentation är aktiverat genereras alla arbetsflödesintervall automatiskt. Funktionen configure_otel_providers() kan användas för att konfigurera exportörer för spårningar, mått och loggar.

Varning

Granska konfigurationen av telemetripipelinen för att se till att känsliga data skyddas på rätt sätt när du exporterar spårningar.

Nästa steg