microsoft / semantic-kernel

Integrate cutting-edge LLM technology quickly and easily into your apps
https://aka.ms/semantic-kernel
MIT License
22.07k stars 3.29k forks source link

.Net: Bug - package Microsoft.SemanticKernel.Agents.OpenAI file_search tool call no longer works past nuget v1.24.1-alpha #9723

Closed Mano1192 closed 6 days ago

Mano1192 commented 1 week ago

Describe the bug The file_search tool call works as expected in v1.24.1-alpha, as you update all SK packages to 1.29 and equivalent latest packages this feature breaks. The last known latest versions of all packages where file_search tool calling works: Image

To Reproduce Steps to reproduce the behavior:

  1. Setup up test with the packages listed above (this is the working state)
  2. Update any of the packages up 1 version
  3. Create an openaiassistantagent and attach a file
  4. Search contents within this file and the following exception is raised
    System.NullReferenceException: Object reference not set to an instance of an object.
    at OpenAI.Assistants.RunStepDetailsUpdate.get_FunctionName()
    at Microsoft.SemanticKernel.Agents.OpenAI.Internal.AssistantThreadActions.InvokeStreamingAsync(OpenAIAssistantAgent agent, AssistantClient client, String threadId, IList`1 messages, OpenAIAssistantInvocationOptions invocationOptions, ILogger logger, Kernel kernel, KernelArguments arguments, CancellationToken cancellationToken)+MoveNext()
    at Microsoft.SemanticKernel.Agents.OpenAI.Internal.AssistantThreadActions.InvokeStreamingAsync(OpenAIAssistantAgent agent, AssistantClient client, String threadId, IList`1 messages, OpenAIAssistantInvocationOptions invocationOptions, ILogger logger, Kernel kernel, KernelArguments arguments, CancellationToken cancellationToken)+MoveNext()
    at Microsoft.SemanticKernel.Agents.OpenAI.Internal.AssistantThreadActions.InvokeStreamingAsync(OpenAIAssistantAgent agent, AssistantClient client, String threadId, IList`1 messages, OpenAIAssistantInvocationOptions invocationOptions, ILogger logger, Kernel kernel, KernelArguments arguments, CancellationToken cancellationToken)+System.Threading.Tasks.Sources.IValueTaskSource<System.Boolean>.GetResult()

Notes