mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
- Add UTF-8 BOM to 20 .cs files across DurableTask, AzureFunctions, unit tests, and workflow samples - Remove unnecessary using directive in 07_SubWorkflows/Executors.cs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
231 lines
7.9 KiB
C#
231 lines
7.9 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
|
|
using Microsoft.Agents.AI.DurableTask;
|
|
using Microsoft.Extensions.AI;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
internal static partial class Logs
|
|
{
|
|
[LoggerMessage(
|
|
EventId = 1,
|
|
Level = LogLevel.Information,
|
|
Message = "[{SessionId}] Request: [{Role}] {Content}")]
|
|
public static partial void LogAgentRequest(
|
|
this ILogger logger,
|
|
AgentSessionId sessionId,
|
|
ChatRole role,
|
|
string content);
|
|
|
|
[LoggerMessage(
|
|
EventId = 2,
|
|
Level = LogLevel.Information,
|
|
Message = "[{SessionId}] Response: [{Role}] {Content} (Input tokens: {InputTokenCount}, Output tokens: {OutputTokenCount}, Total tokens: {TotalTokenCount})")]
|
|
public static partial void LogAgentResponse(
|
|
this ILogger logger,
|
|
AgentSessionId sessionId,
|
|
ChatRole role,
|
|
string content,
|
|
long? inputTokenCount,
|
|
long? outputTokenCount,
|
|
long? totalTokenCount);
|
|
|
|
[LoggerMessage(
|
|
EventId = 3,
|
|
Level = LogLevel.Information,
|
|
Message = "Signalling agent with session ID '{SessionId}'")]
|
|
public static partial void LogSignallingAgent(this ILogger logger, AgentSessionId sessionId);
|
|
|
|
[LoggerMessage(
|
|
EventId = 4,
|
|
Level = LogLevel.Information,
|
|
Message = "Polling agent with session ID '{SessionId}' for response with correlation ID '{CorrelationId}'")]
|
|
public static partial void LogStartPollingForResponse(this ILogger logger, AgentSessionId sessionId, string correlationId);
|
|
|
|
[LoggerMessage(
|
|
EventId = 5,
|
|
Level = LogLevel.Information,
|
|
Message = "Found response for agent with session ID '{SessionId}' with correlation ID '{CorrelationId}'")]
|
|
public static partial void LogDonePollingForResponse(this ILogger logger, AgentSessionId sessionId, string correlationId);
|
|
|
|
[LoggerMessage(
|
|
EventId = 6,
|
|
Level = LogLevel.Information,
|
|
Message = "[{SessionId}] TTL expiration time updated to {ExpirationTime:O}")]
|
|
public static partial void LogTTLExpirationTimeUpdated(
|
|
this ILogger logger,
|
|
AgentSessionId sessionId,
|
|
DateTime expirationTime);
|
|
|
|
[LoggerMessage(
|
|
EventId = 7,
|
|
Level = LogLevel.Information,
|
|
Message = "[{SessionId}] TTL deletion signal scheduled for {ScheduledTime:O}")]
|
|
public static partial void LogTTLDeletionScheduled(
|
|
this ILogger logger,
|
|
AgentSessionId sessionId,
|
|
DateTime scheduledTime);
|
|
|
|
[LoggerMessage(
|
|
EventId = 8,
|
|
Level = LogLevel.Information,
|
|
Message = "[{SessionId}] TTL deletion check running. Expiration time: {ExpirationTime:O}, Current time: {CurrentTime:O}")]
|
|
public static partial void LogTTLDeletionCheck(
|
|
this ILogger logger,
|
|
AgentSessionId sessionId,
|
|
DateTime? expirationTime,
|
|
DateTime currentTime);
|
|
|
|
[LoggerMessage(
|
|
EventId = 9,
|
|
Level = LogLevel.Information,
|
|
Message = "[{SessionId}] Entity expired and deleted due to TTL. Expiration time: {ExpirationTime:O}")]
|
|
public static partial void LogTTLEntityExpired(
|
|
this ILogger logger,
|
|
AgentSessionId sessionId,
|
|
DateTime expirationTime);
|
|
|
|
[LoggerMessage(
|
|
EventId = 10,
|
|
Level = LogLevel.Information,
|
|
Message = "[{SessionId}] TTL deletion signal rescheduled for {ScheduledTime:O}")]
|
|
public static partial void LogTTLRescheduled(
|
|
this ILogger logger,
|
|
AgentSessionId sessionId,
|
|
DateTime scheduledTime);
|
|
|
|
[LoggerMessage(
|
|
EventId = 11,
|
|
Level = LogLevel.Information,
|
|
Message = "[{SessionId}] TTL expiration time cleared (TTL disabled)")]
|
|
public static partial void LogTTLExpirationTimeCleared(
|
|
this ILogger logger,
|
|
AgentSessionId sessionId);
|
|
|
|
// Durable workflow logs (EventIds 100-199)
|
|
|
|
[LoggerMessage(
|
|
EventId = 100,
|
|
Level = LogLevel.Information,
|
|
Message = "Starting workflow '{WorkflowName}' with instance '{InstanceId}'")]
|
|
public static partial void LogWorkflowStarting(
|
|
this ILogger logger,
|
|
string workflowName,
|
|
string instanceId);
|
|
|
|
[LoggerMessage(
|
|
EventId = 101,
|
|
Level = LogLevel.Information,
|
|
Message = "Superstep {Step}: {Count} active executor(s)")]
|
|
public static partial void LogSuperstepStarting(
|
|
this ILogger logger,
|
|
int step,
|
|
int count);
|
|
|
|
[LoggerMessage(
|
|
EventId = 102,
|
|
Level = LogLevel.Debug,
|
|
Message = "Superstep {Step} executors: [{Executors}]")]
|
|
public static partial void LogSuperstepExecutors(
|
|
this ILogger logger,
|
|
int step,
|
|
string executors);
|
|
|
|
[LoggerMessage(
|
|
EventId = 103,
|
|
Level = LogLevel.Information,
|
|
Message = "Workflow completed")]
|
|
public static partial void LogWorkflowCompleted(
|
|
this ILogger logger);
|
|
|
|
[LoggerMessage(
|
|
EventId = 104,
|
|
Level = LogLevel.Warning,
|
|
Message = "Workflow '{InstanceId}' terminated early: reached maximum superstep limit ({MaxSupersteps}) with {RemainingExecutors} executor(s) still queued")]
|
|
public static partial void LogWorkflowMaxSuperstepsExceeded(
|
|
this ILogger logger,
|
|
string instanceId,
|
|
int maxSupersteps,
|
|
int remainingExecutors);
|
|
|
|
[LoggerMessage(
|
|
EventId = 105,
|
|
Level = LogLevel.Debug,
|
|
Message = "Fan-In executor {ExecutorId}: aggregated {Count} messages from [{Sources}]")]
|
|
public static partial void LogFanInAggregated(
|
|
this ILogger logger,
|
|
string executorId,
|
|
int count,
|
|
string sources);
|
|
|
|
[LoggerMessage(
|
|
EventId = 106,
|
|
Level = LogLevel.Debug,
|
|
Message = "Executor '{ExecutorId}' returned result (length: {Length}, messages: {MessageCount})")]
|
|
public static partial void LogExecutorResultReceived(
|
|
this ILogger logger,
|
|
string executorId,
|
|
int length,
|
|
int messageCount);
|
|
|
|
[LoggerMessage(
|
|
EventId = 107,
|
|
Level = LogLevel.Debug,
|
|
Message = "Dispatching executor '{ExecutorId}' (agentic: {IsAgentic})")]
|
|
public static partial void LogDispatchingExecutor(
|
|
this ILogger logger,
|
|
string executorId,
|
|
bool isAgentic);
|
|
|
|
[LoggerMessage(
|
|
EventId = 108,
|
|
Level = LogLevel.Warning,
|
|
Message = "Agent '{AgentName}' not found")]
|
|
public static partial void LogAgentNotFound(
|
|
this ILogger logger,
|
|
string agentName);
|
|
|
|
[LoggerMessage(
|
|
EventId = 109,
|
|
Level = LogLevel.Debug,
|
|
Message = "Edge {Source} -> {Sink}: condition returned false, skipping")]
|
|
public static partial void LogEdgeConditionFalse(
|
|
this ILogger logger,
|
|
string source,
|
|
string sink);
|
|
|
|
[LoggerMessage(
|
|
EventId = 110,
|
|
Level = LogLevel.Warning,
|
|
Message = "Failed to evaluate condition for edge {Source} -> {Sink}, skipping")]
|
|
public static partial void LogEdgeConditionEvaluationFailed(
|
|
this ILogger logger,
|
|
Exception ex,
|
|
string source,
|
|
string sink);
|
|
|
|
[LoggerMessage(
|
|
EventId = 111,
|
|
Level = LogLevel.Debug,
|
|
Message = "Edge {Source} -> {Sink}: routing message")]
|
|
public static partial void LogEdgeRoutingMessage(
|
|
this ILogger logger,
|
|
string source,
|
|
string sink);
|
|
|
|
[LoggerMessage(
|
|
EventId = 112,
|
|
Level = LogLevel.Information,
|
|
Message = "Workflow waiting for external input at RequestPort '{RequestPortId}'")]
|
|
public static partial void LogWaitingForExternalEvent(
|
|
this ILogger logger,
|
|
string requestPortId);
|
|
|
|
[LoggerMessage(
|
|
EventId = 113,
|
|
Level = LogLevel.Information,
|
|
Message = "Received external event for RequestPort '{RequestPortId}'")]
|
|
public static partial void LogReceivedExternalEvent(
|
|
this ILogger logger,
|
|
string requestPortId);
|
|
}
|