Skip to content

.Net Bug: LoggerFactory is never set in Agent #10110

@RicardoNiepel

Description

@RicardoNiepel

Describe the bug
LoggerFactory is never set in Agent class and thus is always using NullLoggerFactory, which results in no logs at all.

https://github.com/microsoft/semantic-kernel/blob/main/dotnet/src/Agents/Abstractions/Agent.cs#L43

To Reproduce

IKernelBuilder builder = Kernel.CreateBuilder();
builder.Services.AddSingleton(loggerFactory);
Kernel kernel = builder.Build();

var agent = await OpenAIAssistantAgent.CreateAsync(
        clientProvider: OpenAIClientProvider.ForAzureOpenAI(new AzureCliCredential(), oaiEndpoint),
        definition: new OpenAIAssistantDefinition("chat")
        {
            Name = "Bot",
            Instructions = "Please answer the following question."
        },
        kernel: kernel);

Expected behavior
The LoggerFactory from the Kernel should be used.

Workaround

var loggerFactoryProperty = typeof(OpenAIAssistantAgent).GetProperty("LoggerFactory", BindingFlags.Public | BindingFlags.Instance);
if (loggerFactoryProperty != null)
{
    loggerFactoryProperty.SetValue(agent, kernel.LoggerFactory);
}

Platform

  • Microsoft.SemanticKernel, 1.32.0
  • Microsoft.SemanticKernel.Agents.OpenAI, 1.32.0-alpha

Metadata

Metadata

Assignees

Labels

.NETIssue or Pull requests regarding .NET codeagentsbugSomething isn't workingexperimentalAssociated with an experimental feature

Type

Projects

Status

Sprint: Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions