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

[Feature Request] Semantic Kernel agents adapter #5614

Open
jsburckhardt opened this issue Feb 19, 2025 · 3 comments
Open

[Feature Request] Semantic Kernel agents adapter #5614

jsburckhardt opened this issue Feb 19, 2025 · 3 comments
Assignees
Milestone

Comments

@jsburckhardt
Copy link
Contributor

Hi folks,

I’m looking for an adapter that bridges Semantic Kernel (SK) Agents and Autogen Teams/Runtime. Currently, I see that the project includes adapters for ChatCompletion, but I couldn’t find one specifically for agents such as:
• ChatCompletionAgent
• AzureAssistantAgent
• OpenAIAssistantAgent

Reference:
Semantic Kernel Agents Code

Use Case

We are in the process of building a multi-agent application and evaluating whether to use AG or AG? (Autogen vs. Semantic Kernel). We recognize the strengths of both tools and want to align with AG’s production-ready features for managing multi-agent environments.

Ideally, we’d like to:
1. Run SK agents in AG Runtime seamlessly.
2. Enable Team chat with SK agents using AG’s coordination features.

Would love to hear thoughts on feasibility or if there’s an existing approach that we might have missed. Thanks!

@jackgerrits
Copy link
Member

Hi! This exact feature is in PR right now, see here: #5134

@lspinheiro
Copy link
Collaborator

Hi @jackgerrits , would you mind if we keep the issue open just to validate if we need the adapter? @jsburckhardt reached out and I suggested opening an issue.

@jsburckhardt , would you be able to add more detail why the SKAssistantAgent wouldn't work for you? The ChatCompletionAgent in SK has a very similar interface to SKAssistantAgent, so replacing it in your code shouldn't be too challening. And Autogen also has a OpenAI Assistant agent implementation. It does seem like the kernel internals would have the same effect for both cases and the agent abstraction around the kernel is mostly to connect it with the messaging patterns in each framework.

Adding adapters for each SK agent when there is already an abstraction that reuses the same kernel functionally would add some maintenance burden and we would like to understand what is the blocker to use SKAssistantAgent directly.

@lspinheiro lspinheiro self-assigned this Feb 19, 2025
@jsburckhardt
Copy link
Contributor Author

Hi! This exact feature is in PR right now, see here: #5134

Hi @jackgerrits! thanks for having a read into the issue. Unfortunately, that PR isn't for the same scenario we are working on. Currently, we are trying to build a multiagent solution that targets a "production ready" environment. Based on different reads, SK is targeting a stable production ready framework. While AG, is up to date with latest research on the multi agent arena.
We also understand that SK is bringing into their platform mature patterns from the AG framework. So, in our case, we are trying to be as close as possible to SK and take bring the orchestration that AG Standalone Runtime offers.

Now regarding the the difference between SK Agent and SK Kernel Service, from the doco:

Agent

  • Definition: An agent in the Semantic Kernel framework is an entity that can participate in one or more conversations. It includes attributes like name, description, and instructions.
  • Functionality: Agents define their communication protocols through an AgentChannel and can format instructions for the kernel. They can merge arguments and create communication channels.
  • Example: Agent class in Python source.

Kernel Service

  • Definition: Kernel services extend the functionality of the Kernel by adding services related entities, including AI services.
  • Functionality: Kernel services can select AI services, add, remove, and get services by ID or type. They manage services like TextCompletionClientBase and ChatCompletionClientBase.
  • Example: KernelServicesExtension in Python source.

In summary, agents are responsible for handling interactions and communication protocols, while kernel services manage the underlying AI services and functionality within the Semantic Kernel framework.

So far from our research pointed out the PR from @lspinheiro and the existing adapter SKChatCompletionAdapter

Hope it provides more clarity.

Thanks!

@jackgerrits jackgerrits reopened this Feb 20, 2025
@ekzhu ekzhu added this to the 0.4.x-python milestone Feb 21, 2025
@ekzhu ekzhu closed this as completed Feb 21, 2025
@ekzhu ekzhu reopened this Feb 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants