如何入门多Agent协作,实现AgentGroupChat?
摘要:本文介绍了如何通过Semantic Kernel提供的AgentGroupChat来实现多Agent的协作,其中最要的部分就是定义选择轮次策略 和 终止聊天策略,相信通过这个案例你能够有个感性的认识。当然,除了群组聊天模式之外,多Agent
大家好,我是Edison。
近日抽空学习了下Semantic Kernel提供的AgentGroupChat对象写了一个多Agent群组对话的Demo,总结一下分享与你。当然,多Agent协作还有其他的方式,就留到后续慢慢介绍给你。
AgentChat是什么鬼?
在Semantic Kernel中,AgentChat提供了一个框架,可以启用多个代理之间的交互,即使它们属于不同类型的代理。 这使得 ChatCompletionAgent和 OpenAIAssistantAgent 可以在同一对话中协同工作。 AgentChat还定义了用于启动代理之间协作的入口点,无论是通过多个响应还是单个代理响应。
在实现层面,AgentGroupChat提供了 AgentChat 的具体实现,它是使用基于策略的方法来管理聊天的动态。
快速入门案例
这里我们来快速实现一个案例:Reviewer & Writer,让这两个不同功能的Agent能够相互配合协作,完成一个指定的功能:
(1)Reviewer 可以审核用户输入的文案并给出优化建议;
(2)Writer 则根据优化建议进行文案的优化创作;
为了简单地实现这个功能,我们创建一个.NET控制台项目,然后安装以下包:
Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.Json
Microsoft.SemanticKernel.Agents.Core
Microsoft.SemanticKernel.Agents.OpenAI (Preview版本)
需要注意的是,由于Semantic Kernel的较多功能目前还处于实验预览阶段,所以建议在该项目的csproj文件中加入以下配置,统一取消警告:
<PropertyGroup>
<NoWarn>$(NoWarn);CA2007;IDE1006;SKEXP0001;SKEXP0110;OPENAI001</NoWarn>
</PropertyGroup>
创建一个appsettings.json配置文件,填入以下关于LLM API的配置,其中API_KEY请输入你自己的:
{
"LLM":
{
"BASE_URL": "https://api.siliconflow.cn",
"API_KEY": "******************************",
"MODEL_ID": "Qwen/Qwen2.5-32B-Instruct"
}
}
这里我们使用SiliconCloud提供的Qwen2.5-32B-Instruct模型,你可以通过:https://cloud.siliconflow.cn/i/DomqCefW 注册一个账号,获取大量免费的Token来来进行这个DEMO实验。
