Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.Net: 1.38 seems to have lot of breaking changes from 1.37 : Is there a migration guide to make this transition #10632

Open
shanthuk opened this issue Feb 20, 2025 · 9 comments
Assignees
Labels
agents documentation feature_graduation Applied to all feature graduation issues .NET Issue or Pull requests regarding .NET code

Comments

@shanthuk
Copy link

I just got the v1.38 and solution is not compiling with breaking changes. I am wondering if there is a guidance for this migration.

@moonbox3
Copy link
Contributor

@shanthuk could you provide some more context, please? Is this agent related?

@moonbox3 moonbox3 changed the title 1.38 seems to have lot of breaking changes from 1.37 : Is there a migration guide to make this transition .Net: 1.38 seems to have lot of breaking changes from 1.37 : Is there a migration guide to make this transition Feb 20, 2025
@moonbox3 moonbox3 added the .NET Issue or Pull requests regarding .NET code label Feb 20, 2025
@shanthuk
Copy link
Author

shanthuk commented Feb 20, 2025

@moonbox3 - Yes most of the compilation issues are related to agents

Ex #1:
Argument 2: cannot convert from 'Microsoft.SemanticKernel.Agents.OpenAI.OpenAIAssistantInvocationOptions' to 'Microsoft.SemanticKernel.KernelArguments?'

Ex #2:
OpenAIThreadCreationOptions is Obsolete

Ex #3:

CreateThreadAsync is Obsolete

@shanthuk
Copy link
Author

@moonbox3 @crickman - Should we stay with v1.37 until these issues are resolved ?

@moonbox3
Copy link
Contributor

Hi @shanthuk,

I'll let @crickman add any additional comments if needed.

TL;DR: We're working to bring some of our agents to general availability (GA) soon.

Our current agent framework is experimental. As we move toward finalized APIs for GA and beyond, some breaking changes may be necessary (as you've experienced). We are committed to minimizing these changes during the experimental phase and will provide clear, detailed communication about any breaking changes and how to upgrade to the latest code.

@crickman
Copy link
Contributor

crickman commented Feb 21, 2025

@shanthuk - You can examine the samples here for working patterns. You can also suppress the [Obsolete] warnings in your project and things will continue to work "as-is".

These changes weren't expected to be packaged until next week. Each [Obsolete] message contains direction on the new prefered pattern. For example, you can create a thread directly using the SDK client. Many customers had observed that binding this to the agent was limiting as they wanted to define a thread outside of the agent life-cycle. When you use the SDK directly, OpenAIThreadCreationOptions can be replaced by ThreadCreationOptions. We've also made the extension method available for convenience: https://github.com/microsoft/semantic-kernel/blob/main/dotnet/src/Agents/OpenAI/Extensions/AssistantClientExtensions.cs#L142C38-L142C55.

Instead of OpenAIAssistantInvocationOptions you can use the SDK RunCreationOptions directly. This way our agent pattern isn't obscuring features from the underlying SDK...such as "structured output"...which now works.

In anycase, these changes weren't intended to be released until next week. We're looking at providing more context within that timeline.

@crickman crickman added agents feature_graduation Applied to all feature graduation issues labels Feb 21, 2025
@shanthuk
Copy link
Author

Thank you, we appreciate all your work with SK.

@shanthuk
Copy link
Author

shanthuk commented Feb 21, 2025

This question is not quite relevant in this context. Since you are planning to support many different agent frameworks (such as Azure Agent Service etc.). When working with SK + Azure OpenAI to build agents, there is no way to see the details of the thread (what functions were called, parameters passed etc.). Without such a console, it becomes very hard to develop/debug. OpenAI dashboard has a nice way to see everything that happens in the thread. When we moved from OpenAI to Azure OpenAI, we are sorely missing that feature.

Also, please review the entire code base of SK, it appears that SK may be swallowing exceptions. When developers can't see the exceptions causing the issues, it becomes much harder to figure out the root cause.

@crickman
Copy link
Contributor

Agree that swallowing exceptions is problematic. Do you have any guidance on where you've experienced this?

Regarding agent dashboard, I know the service team is working hard to complete the tools available. We've recently enhanced the tracing features within the agent framework to aid in overall diagnostics.

@crickman
Copy link
Contributor

@shanthuk - Staged migration details in this issue #10637 (comment) so it may be communicated more broadly.

@crickman crickman moved this to Sprint: In Review in Semantic Kernel Feb 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
agents documentation feature_graduation Applied to all feature graduation issues .NET Issue or Pull requests regarding .NET code
Projects
Status: Sprint: In Review
Development

No branches or pull requests

3 participants