-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Python: Improve/Simplify the Assistant Agents #10666
Open
moonbox3
wants to merge
13
commits into
microsoft:main
Choose a base branch
from
moonbox3:assistant-agent-refresh
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
+4,354
−6,508
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 58 out of 58 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
python/samples/concepts/agents/assistant_agent/assistant_agent_streaming.py:54
- The 'MenuPlugin' is referenced but not defined or imported; please ensure it is properly defined or imported in this file.
plugins=[MenuPlugin()]
python/samples/concepts/agents/assistant_agent/assistant_agent_structured_outputs.py
Outdated
Show resolved
Hide resolved
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
agents
experimental
Associated with an experimental feature
PR: breaking change
Pull requests that introduce breaking changes
python
Pull requests for the Python Semantic Kernel
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation and Context
The current abstractions we have around the Semantic Kernel Assistant Agents are considered to be "fully-wrapped." This is beneficial in that SK provides a tight/complete abstraction over the agent; however, it doesn't scale well when new features are added to the underlying APIs (OpenAI) - it requires updates from SK to make each and every update. It also adds a lot more complexity in terms of needing to handle everything in SK, requires more code coverage, and chances for bugs to surface due to these complexities.
Similar to how the
AzureAIAgent
was created, we're moving to a "less-wrapped" abstraction around the OpenAI Assistant v2 APIs. We do have some "convenience methods" on the Agents, via class methods, to configure things like the code interpreter tool and resource, file search tool and resource, the clients required to interact with the Assistants, as well as being able to easily configure structured outputs, similar to how it is done with a ChatCompletion (either provide the Pydantic model or the Python class).To work with Assistant Agents now, it's as simple as:
I will create a migration guide (issue) showing what needs to be updated from the previous usage to this new pattern.
Description
This PR provides the new abstractions for the
AzureAssistantAgent
/OpenAIAssistantAgent
classes.Samples will be updated accordingly to show new patterns.
Contribution Checklist