Delen via


Microsoft Agent Framework-werkstromen - Waarneembaarheid

Waarneembaarheid biedt inzicht in de interne status en het gedrag van werkstromen tijdens de uitvoering. Dit omvat mogelijkheden voor logboekregistratie, metrische gegevens en tracering die helpen bij het bewaken en opsporen van fouten in werkstromen.

Aanbeveling

Waarneembaarheid is een frameworkbrede functie en is niet beperkt tot werkstromen. Zie Waarneembaarheid voor meer informatie.

Afgezien van de standaard GenAI-telemetrie, verzendt Agent Framework-werkstromen extra spanten, logboeken en metrische gegevens om meer inzicht te krijgen in de uitvoering van werkstromen. Deze waarneembaarheidsfuncties helpen ontwikkelaars inzicht te hebben in de stroom berichten, de prestaties van uitvoerders en eventuele fouten die kunnen optreden.

Waarneembaarheid inschakelen

Raadpleeg Waarneembaarheid inschakelen voor instructies over het inschakelen van waarneembaarheid in uw toepassingen.

Raadpleeg Waarneembaarheid inschakelen voor instructies over het inschakelen van waarneembaarheid in uw toepassingen.

Werkstroomduur

De volgende spans worden gegenereerd tijdens de uitvoering van de workflow:

Span Naam Description
workflow.build Wordt uitgegeven voor elke workflow build.
workflow.session Buitenste bereik dat de volledige levensduur van een workflow-uitvoering vertegenwoordigt, van begin tot fout of einde.
workflow_invoke Uitgezonden voor elke input-tot-stop-cyclus binnen een werkstroomsessie.
executor.process {executor_id} Verzonden voor elke uitvoerder die een bericht verwerkt. De executor-ID wordt aan de spannaam toegevoegd.
edge_group.process Verzonden voor elke randgroep die een bericht verwerkt.
message.send Uitgevoerd voor elk bericht dat van een uitvoerder naar een andere uitvoerder wordt gestuurd.

De volgende segmenten worden gegenereerd tijdens de uitvoering van de werkstroom:

Span Naam Description
workflow.build Uitgevoerd voor elke workflow-build.
workflow.run Uitgezonden voor elke uitvoering van de workflow.
executor.process {executor_id} Verzonden voor elke uitvoerder die een bericht verwerkt. De uitvoerder-id wordt toegevoegd aan de span-naam.
edge_group.process {edge_group_type} Verzonden voor elke randgroep die een bericht verwerkt. Het type randgroep wordt toegevoegd aan de spannaam.
message.send Uitgezonden voor elk bericht dat van een uitvoerder naar een andere uitvoerder wordt verzonden.

Span-kenmerken

Spans bevatten attributen die aanvullende context bieden over de operatie. De volgende kenmerken zijn ingesteld op werkstroombereiken:

Attribute Span(nen) Description
workflow.id workflow.build, workflow.session De unieke identificator van de werkstroom.
workflow.name workflow.session De naam van de workflow.
workflow.description workflow.session De beschrijving van de werkstroom.
workflow.definition workflow.build De JSON-definitie van de werkstroomgrafiek.
session.id workflow.session De unieke sessie-id.
executor.id executor.process De unieke identificatie van de uitvoerder.
executor.type executor.process De typenaam van de uitvoerder.
executor.input executor.process Het invoerbericht Alleen instellen wanneer gevoelige gegevens zijn ingeschakeld.
executor.output executor.process De uitvoer van de verwerker. Alleen instellen wanneer gevoelige gegevens zijn ingeschakeld.
message.type executor.process, message.send De typenaam van het bericht.
message.content message.send De inhoud van het bericht. Alleen instellen wanneer gevoelige gegevens zijn ingeschakeld.
message.source_id message.send De id van de uitvoerder die het bericht heeft verzonden.
message.target_id message.send De id van de doeluitvoerer, indien opgegeven.
edge_group.type edge_group.process Het type randgroep.
edge_group.delivered edge_group.process Of het bericht wel of niet is bezorgd (booleaanse waarde).
edge_group.delivery_status edge_group.process Het leveringsresultaat (zie Edge Group Delivery Status).
error.type Elk bereik op fout De naam van het uitzonderingstype.
Attribute Span(s) Description
workflow.id workflow.build, workflow.run De unieke identificatie van de werkstroom.
workflow.name workflow.run De naam van de workflow.
workflow.description workflow.run De beschrijving van de werkstroom.
workflow.definition workflow.build De JSON-definitie van de werkstroomgrafiek.
workflow_builder.name workflow.build De naam van de bouwer voor werkstromen.
workflow_builder.description workflow.build De beschrijving van de workflowbouwer.
executor.id executor.process De unieke identificatie van de uitvoerder.
executor.type executor.process De typenaam van de uitvoerder.
message.type executor.process, message.send De typenaam van het bericht.
message.payload_type executor.process Het gegevenstype van de payload van het bericht.
message.destination_executor_id message.send De id van de doeluitvoerer, indien opgegeven.
message.source_id edge_group.process De id van de uitvoerder die het bericht heeft verzonden.
message.target_id edge_group.process De id van de doeluitvoerer, indien opgegeven.
edge_group.type edge_group.process Het type randgroep.
edge_group.id edge_group.process De unieke identificatiecode van de edge-groep.
edge_group.delivered edge_group.process Of het bericht wel of niet is bezorgd (booleaanse waarde).
edge_group.delivery_status edge_group.process Het leveringsresultaat (zie Edge Group Delivery Status).

Span Events

Span-gebeurtenissen zijn gestructureerde logboekvermeldingen die zijn gekoppeld aan spans en bieden een tijdlijn met belangrijke momenten binnen elke periode.

Gebeurtenisnaam Span(s) Description
build.started workflow.build Verzonden wanneer het buildproces begint.
build.validation_completed workflow.build Verzonden wanneer de buildvalidatie is geslaagd.
build.completed workflow.build Uitgezonden wanneer de build succesvol is voltooid.
build.error workflow.build Verzonden wanneer de build mislukt.
session.started workflow.session Verzonden wanneer een werkstroomsessie begint.
session.completed workflow.session Verzonden wanneer een werkstroomsessie is voltooid.
session.error workflow.session Verzonden wanneer een werkstroomsessie een fout tegenkomt.
workflow.started workflow_invoke Wordt gegenereerd wanneer een aanroep van een werkstroom begint.
workflow.completed workflow_invoke Verzonden wanneer een aanroep van een werkstroom is voltooid.
workflow.error workflow_invoke Verzonden wanneer een aanroep van een werkstroom een fout tegenkomt.
Gebeurtenisnaam Span(s) Description
build.started workflow.build Verzonden wanneer het buildproces begint.
build.validation_completed workflow.build Verzonden wanneer de buildvalidatie is geslaagd.
build.completed workflow.build Uitgezonden wanneer de build succesvol is voltooid.
build.error workflow.build Verzonden wanneer de build mislukt.
workflow.started workflow.run Verzonden wanneer een werkstroomuitvoering begint.
workflow.completed workflow.run Geactiveerd wanneer een workflow voltooid is.
workflow.error workflow.run Verzonden wanneer een werkstroomuitvoering een fout tegenkomt.

Wanneer een uitvoerder een bericht naar een andere uitvoerder verzendt, wordt de message.send span gemaakt als een kind van de executor.process span. Het executor.process bereik van de doeluitvoerder is echter geen kind van de message.send span omdat de uitvoering niet genest is. In plaats daarvan wordt het executor.process bereik van de doeluitvoerer gekoppeld aan het message.send bereik van de bronexecutor. Door deze koppeling ontstaat een traceerbaar pad door de uitvoering van de workflow zonder het impliceren van een geneste aanroephiërarchie.

Dezelfde koppelingsbenadering is van toepassing op edge_group.process spans, die zijn gekoppeld aan de bronspanne message.send voor causaliteitstracering. Dit biedt ondersteuning voor fan-in scenario's waarbij meerdere bronspanne bijdragen aan één verwerkingsspanne.

Bezorgingsstatus Edge Group

Verwerking van Edgegroepen omvat leveringsstatuskenmerken die aangeven het resultaat van de berichtroutering via elke Edgegroep. Het edge_group.delivery_status kenmerk is ingesteld op een van de volgende waarden:

Status Description
delivered Het bericht is afgeleverd aan de doeluitvoerder.
dropped type mismatch De doeluitvoerer kan het berichttype niet verwerken.
dropped target mismatch Het bericht heeft een doel opgegeven dat niet overeenkomt met deze rand.
dropped condition false De randrouteringsvoorwaarde was false.
exception Er is een uitzondering opgetreden tijdens het verwerken van de rand.
buffered Het bericht is gebufferd en wacht op extra berichten (fan-in).

Het edge_group.delivered booleaanse kenmerk biedt een snelle controle of het bericht is bezorgd.

Telemetrieconfiguratie

Werkstroomtelemetrie kan worden ingeschakeld via de WithOpenTelemetry extensiemethode in de workflow builder. De WorkflowTelemetryOptions klasse biedt nauwkeurige controle over welke spanten worden verzonden:

Option Verstek Description
EnableSensitiveData false Bevat onbewerkte invoer, uitvoer en berichtinhoud in spankenmerken.
DisableWorkflowBuild false workflow.build Schakelt spans uit.
DisableWorkflowRun false Schakelt workflow.session en workflow_invoke uit.
DisableExecutorProcess false executor.process Schakelt spans uit.
DisableEdgeGroupProcess false edge_group.process Schakelt spans uit.
DisableMessageSend false message.send Schakelt spans uit.

Waarschuwing

Als u gevoelige gegevens inschakelt, worden ruwe berichtinhoud, invoer en uitvoer van uitvoerders opgenomen in telemetrie. Schakel dit alleen in beveiligde omgevingen in waar telemetriegegevens op de juiste wijze worden beveiligd.

Werkstroomtelemetrie wordt ingeschakeld via de globale enable_instrumentation() functie. Wanneer instrumentatie is ingeschakeld, worden alle werkstroombereiken automatisch verzonden. De configure_otel_providers() functie kan worden gebruikt om exporteurs in te stellen voor traceringen, metrische gegevens en logboeken.

Waarschuwing

Controleer de configuratie van uw telemetriepijplijn om ervoor te zorgen dat gevoelige gegevens op de juiste wijze worden beveiligd bij het exporteren van traceringen.

Volgende stappen