semantic-kernel
semantic-kernel copied to clipboard
Python: Introduce the single, non-group chat completion agent
Motivation and Context
Following in the steps of dotnet, we're beginning to add agent support to Python. For an initial implementation the focus is on non-grouped, chat completion agents. The first pass is covering a ChatCompletionAgent that allows the user to define a ChatCompletion Service as part of the SK Kernel, and then reference that service in an agent implementation.
Description
The PR:
- Adds support for a standard chat completion agent
- Adds the required abstractions to allow the single chat completion agent to work
- Introduces a new agent concept sample showing how to invoke the agent for a streaming and non-streaming context.
- Adds unit tests to cover the new code
- Closes #7079
Contribution Checklist
- [X] The code builds clean without any errors or warnings
- [X] The PR follows the SK Contribution Guidelines and the pre-submission formatting script raises no violations
- [X] All unit tests pass, and I have added new tests where possible
- [X] I didn't break anyone :smile: