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
In the agentic world, different agents are created and maintained by different teams in an organization. Each team has their own way of creating agents and hosting them which are independent of each other. To utilize these agents when creating a multi-agent application, semantic kernel will need to integrate with agents which lies outside the semantic kernel application. For semantic kernel, these agents are black box services that have their own implementation of "intelligence" but could still use the plugins registered in kernel as needed.
AgentGroupChat
should be able to orchestrate between these agents as usual.Description
Although there could be multiple ways to implement such concept, this PR takes the approach of deriving from
ChatCompletionClientBase
and taking inspiration fromOpenAIChatCompletionBase
to implementSelfHostedChatCompletion
which makes a REST request to externally hosted agents. Instances ofSelfHostedChatCompletion
are registered as service in kernelChatCompletionAgent
is used to create agents and the appropriate service is referenced usingservice_id
.The agents themselves are implemented in a fastapi server under
agents
folder.AgentGroupChat
is used to orchestrate between the agents.Contribution Checklist