Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här dokumentet innehåller en djupgående titt på händelsesystemet för arbetsflöden i Microsoft Agent Framework.
Översikt
Det finns inbyggda händelser som ger observerbarhet i arbetsflödeskörningen.
Inbyggda händelsetyper
// Workflow lifecycle events
WorkflowStartedEvent // Workflow execution begins
WorkflowCompletedEvent // Workflow reaches completion
WorkflowErrorEvent // Workflow encounters an error
// Executor events
ExecutorInvokeEvent // Executor starts processing
ExecutorCompleteEvent // Executor finishes processing
ExecutorFailureEvent // Executor encounters an error
// Superstep events
SuperStepStartedEvent // Superstep begins
SuperStepCompletedEvent // Superstep completes
// Request events
RequestInfoEvent // A request is issued
# Workflow lifecycle events
WorkflowStartedEvent # Workflow execution begins
WorkflowOutputEvent # Workflow produces an output
WorkflowErrorEvent # Workflow encounters an error
# Executor events
ExecutorInvokeEvent # Executor starts processing
ExecutorCompleteEvent # Executor finishes processing
# Request events
RequestInfoEvent # A request is issued
Använda händelser
using Microsoft.Agents.Workflows;
await foreach (WorkflowEvent evt in run.WatchStreamAsync())
{
switch (evt)
{
case ExecutorInvokeEvent invoke:
Console.WriteLine($"Starting {invoke.ExecutorId}");
break;
case ExecutorCompleteEvent complete:
Console.WriteLine($"Completed {complete.ExecutorId}: {complete.Data}");
break;
case WorkflowCompletedEvent finished:
Console.WriteLine($"Workflow finished: {finished.Data}");
return;
case WorkflowErrorEvent error:
Console.WriteLine($"Workflow error: {error.Exception}");
return;
}
}
from agent_framework import (
ExecutorCompleteEvent,
ExecutorInvokeEvent,
WorkflowOutputEvent,
WorkflowErrorEvent,
)
async for event in workflow.run_stream(input_message):
match event:
case ExecutorInvokeEvent() as invoke:
print(f"Starting {invoke.executor_id}")
case ExecutorCompleteEvent() as complete:
print(f"Completed {complete.executor_id}: {complete.data}")
case WorkflowOutputEvent() as output:
print(f"Workflow produced output: {output.data}")
return
case WorkflowErrorEvent() as error:
print(f"Workflow error: {error.exception}")
return
Anpassade händelser
Användare kan definiera och generera anpassade händelser under arbetsflödeskörningen för förbättrad observerbarhet.
using Microsoft.Agents.Workflows;
using Microsoft.Agents.Workflows.Reflection;
internal sealed class CustomEvent(string message) : WorkflowEvent(message) { }
internal sealed class CustomExecutor() : ReflectingExecutor<CustomExecutor>("CustomExecutor"), IMessageHandler<string>
{
public async ValueTask HandleAsync(string message, IWorkflowContext context)
{
await context.AddEventAsync(new CustomEvent($"Processing message: {message}"));
// Executor logic...
}
}
from agent_framework import (
handler,
Executor,
WorkflowContext,
WorkflowEvent,
)
class CustomEvent(WorkflowEvent):
def __init__(self, message: str):
super().__init__(message)
class CustomExecutor(Executor):
@handler
async def handle(self, message: str, ctx: WorkflowContext[str]) -> None:
await ctx.add_event(CustomEvent(f"Processing message: {message}"))
# Executor logic...
Nästa steg
- Lär dig hur du använder agenter i arbetsflöden för att skapa intelligenta arbetsflöden.
- Lär dig hur du använder arbetsflöden som agenter.
- Lär dig hur du hanterar begäranden och svar i arbetsflöden.
- Lär dig hur du hanterar tillstånd i arbetsflöden.
- Lär dig hur du skapar återställningspunkter och återupptar processen från dem.