2023年8月,微软、宾夕法尼亚州立大学、华盛顿大学以及中国西安电子科技大学的一组研究人员发表了一篇题为《AutoGen:通过多智能体对话实现下一代大型语言模型应用》的论文。该论文介绍了一个全新的开源框架——AutoGen,供开发者构建基于大型语言模型(LLM)的多智能体协作应用。
这些智能体已被证明在解决复杂数学问题、自动化编码流程和提升决策能力方面表现出色。通过利用多个智能体的优势,AutoGen在LLM应用开发上实现了重大突破,提供了一个可针对各种场景定制的强大平台。
自发布以来,AutoGen的人气迅速攀升,目前其GitHub仓库拥有超过3万个星标,贡献者超过300人。
目前,我是一名高级首席软件工程师,带领一个由十人组成的团队,专注于生成式人工智能应用开发。我们使用AutoGen和微软的低代码/无代码Copilot Studio解决金融领域的问题,后者也支持智能体工作流。
微软高级首席软件工程师Ravi Shankar Goli表示:“AutoGen让开发者能够更细粒度地控制多智能体工作流及其定制。该框架在需要人工介入的场景下,便于开发对话式智能体。”
本章将重点介绍AutoGen的核心组件以及如何构建多智能体系统。
注: 本章内容基于AutoGen 0.2版本,预计框架将迎来重大更新,相关进展将在我们的GitHub仓库同步发布。
ConversableAgent(可对话智能体)
ConversableAgent(可对话智能体)是一种专门设计用于高效管理对话的智能体。它能够处理用户输入,利用预定义的逻辑进行处理,并生成恰当的回应。该智能体旨在理解并参与自然语言对话,广泛应用于各种聊天机器人和虚拟助手场景中。它依靠预设技能和上下文理解,提供相关且连贯的互动,确保用户获得流畅且有意义的对话体验。
接下来,我们来看如何使用ConversableAgent。这是一个简单示例,展示两个智能体Alice和Bob之间的对话。Alice是一个友好的AI助手,Bob是一个好奇的学习者。对话将围绕简单的问答展开,最后我们会打印对话详情。
准备工作如下:
pip install --upgrade pyautogen
from autogen import ConversableAgent
llm_config = {"model": "gpt-4o-mini"}
首先安装AutoGen库并导入ConversableAgent,然后设置LLM模型为gpt-4o-mini。
接着创建两个智能体,Alice和Bob:
alice = ConversableAgent(
name="alice",
system_message="Your name is Alice, and you are a friendly AI assistant ready to help with any questions.",
llm_config=llm_config,
human_input_mode="NEVER",
)
bob = ConversableAgent(
name="bob",
system_message="Your name is Bob, and you are a curious learner who loves asking questions.",
llm_config=llm_config,
human_input_mode="NEVER",
)
第一个智能体Alice被设定为一个友好的AI助手。她的系统消息定义了她的角色,表明她随时准备帮助回答用户的问题。配置参数llm_config指定了她生成回应所用的语言模型,human_input_mode设置为“NEVER”,表示Alice在对话中完全自主运行,无需人工输入。
第二个智能体Bob被设定为一个好奇的学习者,喜欢提问。和Alice一样,Bob的行为和回应由他的系统消息塑造,体现其好奇的本性。Bob也使用相同的语言模型配置,并自主运行。
然后用以下代码启动对话:
chat_result = bob.initiate_chat(
recipient=alice,
message="Hi Alice! Can you tell me how photosynthesis works?",
max_turns=2,
)
Bob发起对话,向Alice提出一个关于光合作用的问题。initiate_chat方法启动该对话,Bob作为发送者,Alice作为接收者。Bob发送的初始消息是“Hi Alice! Can you tell me how photosynthesis works?”
参数max_turns=2指定对话将持续两轮交流(Bob发问一轮,Alice回应一轮)。这种设置让Bob可以提出问题,Alice给出信息性回答,展示智能体如何进行结构化且连贯的交流。对话的结果,包括对话历史和生成的回应,会被存储在变量chat_result中,供后续分析或展示。
反思智能体
我们将通过创建一个多智能体系统来探讨“反思”这一概念,该系统旨在生成和优化推文。这里的反思指的是智能体基于其他智能体的反馈,批判性地评估并改进自身输出的过程。该程序展示了如何通过专业化的智能体实现反思——每个智能体承担不同职责,比如撰写初稿推文、优化SEO、确保合规性以及最终审核批准。通过这个示例,你将学习反思如何让智能体反复打磨作品,提升最终产品的质量和连贯性。
首先加载AutoGen库:
import autogen
设置任务:
task = '''
写一条吸引人的推文,推广一款为内容创作者设计的新AI工具。
推文应简洁,包含相关话题标签,并符合Twitter的字符限制。
'''
我们希望推文简洁明了,有效传达AI工具的核心信息,同时符合Twitter的字符限制,包含相关标签以提升可见度和传播力。此任务为多智能体系统的基础指令,指导后续智能体优化推文以确保符合要求并最大化影响力。
接着设置几个智能体:
# 推文撰写智能体
tweet_writer = autogen.AssistantAgent(
name="TweetWriter",
system_message="你是推文撰写者。你撰写简洁且引人入胜的推文,主题围绕指定话题。推文应具有吸引力,包含相关标签,且符合字符限制。",
llm_config=llm_config,
)
# 内容优化智能体
content_optimizer = autogen.AssistantAgent(
name="ContentOptimizer",
system_message="你是内容优化者。你负责提升推文的清晰度、吸引力和影响力。修改应增强信息传达,同时保持简洁且符合字符限制。",
llm_config=llm_config,
)
# SEO审核智能体
seo_reviewer = autogen.AssistantAgent(
name="SEOReviewer",
llm_config=llm_config,
system_message="你是SEO审核员。你优化推文以适应搜索引擎和社交媒体算法。建议应包括提升可见度的关键词和标签。",
)
# 法律审核智能体
legal_reviewer = autogen.AssistantAgent(
name="LegalReviewer",
llm_config=llm_config,
system_message="你是法律审核员。你确保推文符合法律法规,不含潜在法律风险。审核应简洁,保证内容合法合规。",
)
# 最终审核智能体(负责推文终审)
final_reviewer = autogen.AssistantAgent(
name="FinalReviewer",
llm_config=llm_config,
system_message="你是最终审核员。你汇总所有反馈,完成推文的最终定稿,确保其优化、合规且吸引人。",
)
在这个多智能体系统中,每个智能体在工作流程中扮演专门角色,共同创造并优化高质量推文。流程始于推文撰写者,负责起草初稿,确保核心信息精准并吸引目标受众。
初稿完成后,内容优化者介入,提升推文的表达清晰度、吸引力和影响力,打磨语言,使推文既锐利又符合Twitter的简洁要求。
随后,SEO审核者从搜索引擎优化角度评估推文,确保包含合适关键词和标签,提升在社交媒体上的曝光率。
法律审核者负责确保推文符合法律标准,规避版权、误导性声明等潜在法律风险。
最后,最终审核者汇总所有反馈,进行必要调整,完成推文终审,确保推文既合规又优化,同时具有吸引力。
我们定义一个生成反思消息的函数:
def reflection_message(recipient, messages, sender, config):
return f'''Review the following content.\n\n{recipient.chat_messages_for_summary(sender)[-1]['content']}'''
该函数获取指定发送者的最新消息,摘要后发送给接收者进行评价。此反思过程促使智能体相互批判性地审视工作,确保反馈基于最新输出。
接下来设置嵌套审查流程:
review_chats = [
{
"recipient": content_optimizer,
"message": reflection_message,
"summary_method": "reflection_with_llm",
"summary_args": {"summary_prompt":
"Return review as a JSON object only:"
"{'Reviewer': '', 'Review': ''}. Here Reviewer should be your role",},
"max_turns": 1
},
{
"recipient": seo_reviewer,
"message": reflection_message,
"summary_method": "reflection_with_llm",
"summary_args": {"summary_prompt":
"Return review as a JSON object only:"
"{'Reviewer': '', 'Review': ''}.",},
"max_turns": 1
},
{
"recipient": legal_reviewer,
"message": reflection_message,
"summary_method": "reflection_with_llm",
"summary_args": {"summary_prompt":
"Return review as a JSON object only:"
"{'Reviewer': '', 'Review': ''}",},
"max_turns": 1
},
{
"recipient": final_reviewer,
"message": "Aggregate feedback from all reviewers and finalize the tweet.",
"max_turns": 1
},
]
review_chats列表定义了智能体之间的反思互动顺序。内容优化者、SEO审核者和法律审核者依次接收反思消息,基于其专业领域提供反馈。反馈通过reflection_with_llm方法汇总,智能体需返回JSON格式的评审结果,确保结构化和标准化。最终,最终审核者负责整合所有反馈,生成最终版本推文。
注册嵌套对话:
tweet_writer.register_nested_chats(
review_chats,
trigger=tweet_writer,
)
初始化对话并生成最终推文:
res = tweet_writer.generate_reply(messages=[{"content": task, "role": "user"}])
res = final_reviewer.initiate_chat(
recipient=tweet_writer,
message=task,
max_turns=2,
summary_method="last_msg"
)
print(res.summary)
流程始于推文撰写者根据任务生成初稿,generate_reply用于输出草稿推文。随后,最终审核者调用initiate_chat与推文撰写者展开对话,收集并整合先前阶段所有反思反馈。max_turns=2允许双方最多交互两轮,以进一步完善推文。summary_method="last_msg"保证最终输出基于最新对话信息,即最终定稿的推文。最终结果存于res.summary,并打印展示,呈现经所有智能体优化和审查的推文。
图7-1展示了输出结果。
工具使用
我们的下一个程序是为处理员工请假申请的智能体设计的。该程序通过集成自定义函数,注册为智能体可调用的工具,展示了如何利用工具将复杂任务拆解为模块化、可管理的组件,让智能体能够自主执行。程序模拟了一个工作流程:一个智能体总结请假申请,另一个智能体根据总结结果做出批准决策,从而体现工具在多智能体系统中的有效运用。
首先导入库:
from typing import Annotated
Annotated允许你为类型提示添加额外的元数据,便于提供更多上下文或约束,有助于代码文档、校验或工具支持。
接下来有一个请假申请文本:
leave_request_text = """
Employee: John Doe
Department: IT
Leave Type: Annual Leave
Leave Dates: 10/01/2024 - 10/05/2024
Total Days: 5
Reason: Vacation
Remaining Leave Balance: 10 days
Status: Pending Approval
"""
该变量为Python中的多行字符串,包含请假申请详情,如员工姓名、部门、请假类型、日期、总天数、原因、剩余假期余额及当前审批状态(待批准)。
然后定义两个工具函数:
def summarize_leave_request() -> Annotated[str, "Summary of the leave request"]:
"""总结请假申请内容。"""
return ("Summary: Employee John Doe from the IT department has requested 5 days "
"of annual leave from 10/01/2024 to 10/05/2024 for vacation. "
"Remaining leave balance is 10 days. Status is Pending Approval.")
def approve_or_reject_leave(summary: Annotated[str, "Summary of the leave request"]) -> Annotated[str, "Approval or Rejection decision"]:
"""基于请假申请摘要决定批准或拒绝。"""
if "Remaining leave balance is 10 days" in summary and "5 days" in summary:
return "Approved: The leave request is approved as it meets the company policy."
else:
return "Rejected: The leave request is rejected due to insufficient leave balance."
summarize_leave_request根据请假详情生成摘要,approve_or_reject_leave则根据摘要判断是否批准请假,验证余额是否足够,体现自动化决策流程。
接着创建两个智能体:
# 请假申请审核智能体
leave_request_reviewer = ConversableAgent(
name="Leave Request Reviewer",
system_message="你负责审核请假申请。先调用summarize_leave_request()生成摘要,"
"然后将摘要传给请假审批者做出决策。",
llm_config=llm_config,
)
# 请假审批智能体
leave_approver = ConversableAgent(
name="Leave Approver",
system_message="你负责批准或拒绝请假申请。等待请假申请审核者的摘要,"
"并调用approve_or_reject_leave(summary)做出决定。",
llm_config=llm_config,
)
leave_request_reviewer负责总结请假内容,leave_approver基于该摘要做审批决策,体现任务分工协作。
然后将工具函数注册给对应智能体:
from autogen import register_function
register_function(
summarize_leave_request,
caller=leave_request_reviewer,
executor=leave_request_reviewer,
name="summarize_leave_request",
description="总结请假申请内容。",
)
register_function(
approve_or_reject_leave,
caller=leave_approver,
executor=leave_approver,
name="approve_or_reject_leave",
description="根据摘要做批准或拒绝决策。",
)
注册后,智能体即可调用对应工具函数执行任务,实现自动化处理。
最后,运行多智能体系统:
summary_result = summarize_leave_request()
decision_result = approve_or_reject_leave(summary_result)
print(f"Summary: {summary_result}")
print(f"Decision: {decision_result}")
程序先调用summarize_leave_request生成请假摘要,再传入approve_or_reject_leave做审批决策,最终打印摘要和决策结果。此模拟演示了智能体与工具协同工作处理请假申请的完整流程。
输出结果如下:
Summary: Employee John Doe from the IT department has requested 5 days of annual leave from 10/01/2024 to 10/05/2024 for vacation. Remaining leave balance is 10 days. Status is Pending Approval.
Decision: Approved: The leave request is approved as it meets the company policy.
群聊
AutoGen 中的群聊指的是多个智能体通过自动化聊天框架协同完成任务的系统。该功能营造了一个动态且互动的环境,使这些智能体可以相互交流,共同解决复杂任务。
我们来看一个针对网页聊天的代码示例,场景是通过群聊自动化处理客户支持工单。智能体们协作理解问题,提出解决方案,并决定最佳处理方案。
首先是环境配置:
import autogen
llm_config = {"model": "gpt-4o-mini", "cache_seed": 42}
导入库并初始化,设置了模型和缓存种子(cache_seed),后者用于在使用缓存的情况下生成不同的输出。
然后创建用户代理智能体,即客服代表:
user_proxy = autogen.UserProxyAgent(
name="Customer_Service_Rep",
system_message="A human customer service representative.",
code_execution_config={
"last_n_messages": 2,
"work_dir": "support_chat",
"use_docker": False,
},
human_input_mode="TERMINATE",
)
system_message说明该智能体代表人类客服角色。code_execution_config字典指定智能体只考虑最近两条消息,工作目录为“support_chat”,并且不使用 Docker。human_input_mode设置为“TERMINATE”,表示任务完成或满足条件时结束交互。
接着,创建技术支持专家和产品专家智能体:
tech_support = autogen.AssistantAgent(
name="Tech_Support",
system_message="An expert in technical troubleshooting.",
llm_config=llm_config,
)
product_expert = autogen.AssistantAgent(
name="Product_Expert",
system_message="Knowledgeable in all product features and user issues.",
llm_config=llm_config,
)
然后,设置群聊:
groupchat = autogen.GroupChat(agents=[user_proxy, tech_support, product_expert], messages=[], max_round=12)
manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=llm_config)
GroupChat实例以这三个智能体初始化,messages为空列表,表示聊天开始时无历史消息。max_round=12限制对话最多12轮交换。GroupChatManager负责协调智能体之间的交互。
最后,初始化聊天:
user_proxy.initiate_chat(
manager, message="A customer reported that the software crashes during the export function. Investigate and provide a resolution."
)
之后,多个智能体将围绕客户服务问题展开多轮互动,协同进行调查和解决。
网页搜索智能体
在以下示例中,我们将展示如何使用 AssistantAgent 和 UserProxyAgent 进行网页检索。
AssistantAgent 是基于大型语言模型(LLM)的智能体,能够编写 Python 代码。在本例中,我们将用它来抓取网站数据。
UserProxyAgent 则作为用户代理智能体,负责执行 AssistantAgent 编写的代码。根据 human_input_mode 的设置,UserProxyAgent 可以从用户那里接收对 AssistantAgent 的反馈。如果 human_input_mode 设置为“TERMINATE”,则 UserProxyAgent 会执行代码并返回成功或失败的执行结果;如果有用户反馈,UserProxyAgent 会将反馈传回给 AssistantAgent。
示例代码如下:
assistant = autogen.AssistantAgent(
name="assistant",
llm_config=llm_config,
)
user_proxy = autogen.UserProxyAgent(
name="user_proxy",
human_input_mode="TERMINATE",
max_consecutive_auto_reply=10,
is_termination_msg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE"),
code_execution_config={
"work_dir": "web",
"use_docker": False,
}, # 如果可用,建议设置 use_docker=True,使用 Docker 运行生成的代码更安全
llm_config=llm_config,
system_message="""如果任务已经完全解决,请回复 TERMINATE。
否则,请回复 CONTINUE 或说明任务尚未解决的原因。""",
)
接下来,我们需要调用 UserProxyAgent 的 initiate_chat() 方法启动对话:
user_proxy.initiate_chat(
assistant,
message="""
这篇文章的内容是什么:https://pureai.com/Articles/2024/03/01/autogen.aspx
""",
)
此设置将在每条消息结束时提示用户是否对 AssistantAgent 发出的“TERMINATE”信号进行反馈。如果用户直接按回车,聊天将立即结束。
使用该功能的优势在于,UserProxyAgent 生成的网页爬虫能自动理解网页内容和结构,并根据需要修改爬取代码。图 7-2 展示了输出结果。
检索增强生成(RAG)
我们将创建一个使用检索增强生成(RAG)技术的程序。场景是帮助创业者制定有效的商业计划,将大型语言模型(LLM)与文档检索相结合。程序初始化两个智能体:一个是助手智能体,扮演经验丰富的商业顾问角色;另一个是代理检索智能体,负责获取相关的商业文档。检索智能体访问特定资源,包括来自可靠来源的商业计划模板和指南,以确保助手能够提供准确且有文档支持的建议。
以下是初始化代码:
from autogen.agentchat.contrib.retrieve_assistant_agent import RetrieveAssistantAgent
from autogen.agentchat.contrib.retrieve_user_proxy_agent import RetrieveUserProxyAgent
llm_config = {"model": "gpt-4o-mini", "timeout": 600, "cache_seed": 42}
这段代码导入所需模块,包括负责助手智能体的 RetrieveAssistantAgent 和负责文档检索代理的 RetrieveUserProxyAgent。llm_config 定义了语言模型的配置,指定使用“gpt-4o-mini”模型,超时时间为600秒,并设置了“cache_seed”以保证结果可复现。
接下来初始化助手智能体:
assistant = AssistantAgent(
name="business_assistant",
system_message="You are an experienced business consultant helping entrepreneurs.",
llm_config=llm_config,
)
system_message 设置了助手的角色和交互语气,llm_config 传递语言模型及相关配置。
然后使用检索代理智能体从互联网上获取与商业相关的文档:
ragproxyagent = RetrieveUserProxyAgent(
name="business_ragproxyagent",
human_input_mode="NEVER",
max_consecutive_auto_reply=3,
retrieve_config={
"task": "business",
"docs_path": [
"https://www.sba.gov/business-guide/plan-your-business/write-your-business-plan",
"https://www.score.org/resource/business-plan-template-startup-business",
os.path.join(os.path.abspath(""), "..", "business_docs"),
],
},
code_execution_config=False, # 该业务任务不执行代码
)
human_input_mode 设置为不需要人工干预,max_consecutive_auto_reply 允许智能体最多连续自动回复三次后需要进一步操作。retrieve_config 定义任务为“business”,并指定了文档路径列表,包括外部网址和本地路径,智能体可以从这些路径检索商业相关信息,部分来自美国小企业管理局(SBA)。
code_execution_config=False 表示该任务不需要执行代码,重点是文档检索用于商业咨询。
定义商业问题:
business_problem = (
"How can I create an effective business plan for a small retail store, "
"and what should I include in the financial projections?"
)
最后,启动检索代理和助手智能体的对话:
ragproxyagent.initiate_chat(assistant, problem=business_problem, search_string="business plan, financial projections")
initiate_chat 方法使检索代理开始协助助手提供解决方案。助手将利用检索到的文档和资源,针对定义的 business_problem(如制定有效商业计划及财务预测)提供帮助。search_string 参数通过指定关键词“business plan”和“financial projections”进一步聚焦检索内容,指导智能体定位相关资源。
运行程序后,会弹出输入框,您可以输入类似以下内容:
For a business plan for a retail store, write an executive summary.
RAG 系统随后会搜索相关文档并生成响应内容。
使用 Ollama
您可以使用 AutoGen 搭配本地大型语言模型(LLM),常见的方法是使用 Ollama。
首先,创建一个针对本地运行的 Code Llama 模型的配置列表,其中包括本地服务器的基础 URL(例如 "http://localhost:11434/v1")和 API 密钥:
config_list = [
{
"model": "codellama",
"base_url": "http://localhost:11434/v1",
"api_key": "ollama",
}
]
然后,使用该本地模型配置创建一个助手智能体(assistant):
assistant = AssistantAgent("assistant", llm_config={"config_list": config_list})
接着,使用带有代码执行配置的代理智能体(proxy agent):
user_proxy = UserProxyAgent("user_proxy", code_execution_config={"work_dir": "coding", "use_docker": False})
最后,您可以通过代理智能体调用本地模型,比如发送一个提示语:
user_proxy.initiate_chat(assistant, message="Write a Python script to scrape the latest headlines from a news website like BBC.")
AutoGen Studio
AutoGen Studio 是一个强大的工具,旨在帮助您通过低代码方式创建生成式 AI 代理。您可以通过以下链接访问 AutoGen Studio:
autogen-studio.com
开始之前,请确保您已安装 Python 3.11 或更高版本。您可以通过 Conda 轻松安装 Python,Conda 可在这里获取:
anaconda.org/anaconda/co…
接下来,由于 AutoGen Studio 依赖于 OpenAI 的大型语言模型(LLM),您需要一个 OpenAI API 密钥。如果您使用的是 Microsoft Azure,也可以使用 Azure 的 API 密钥。
下面介绍环境搭建步骤。在 Windows 和 macOS 上,打开终端或命令提示符,运行以下命令:
conda create -n autogenstudio python=3.11
然后激活环境:
conda init
conda activate autogenstudio
接着设置您的 OpenAI API 密钥。macOS 或 Linux 系统使用:
export OPENAI_API_KEY=XXXX
Windows 系统使用:
set OPENAI_API_KEY=XXXX
然后安装 AutoGen Studio:
pip install autogenstudio
启动 AutoGen Studio,运行命令:
autogenstudio ui
启动后,复制提供的 URL 到浏览器中访问界面。图 7-3 展示了初始界面。
图 7-3 这是 AutoGen Studio 的初始界面。
在屏幕左上角,有两个选项:
- Build(构建) :用于创建您的 AI 代理。
- Playground(游乐场) :允许您测试和实验您的代理。
我们先来看 Build。屏幕左侧有多个菜单项,其中一个是 Skills(技能) 。它允许您为特定任务创建 Python 函数。您可以使用已有的函数,比如生成并保存图片或 PDF,也可以创建新的函数。当您定义这些技能时,相关的 Python 代码会自动生成和更新。如果您愿意,还可以将这些代码复制粘贴到您自己的集成开发环境(IDE)中。
在屏幕右上角,可以选择 New Skill(新建技能) ,用于创建自定义技能。
图 7-4 展示了该界面。
您可以为技能提供一个名称和描述,描述即为一个提示,用来告诉大语言模型(LLM)该做什么。接着,您可以输入想要使用的LLM。
当您输入这些参数时,左侧的代码会自动更新。
例如,我在“Name(名称)”栏输入了“tweet_creator”,在“Description(描述)”栏输入了“Create an interesting tweet(创建一条有趣的推文)”,然后点击了“Save Skill(保存技能)”。
下一个菜单选项是“Models(模型)”。在这里,您可以指定想使用的LLM。AutoGen Studio支持多个预配置模型,比如GPT-4。您也可以添加不在列表中的模型,只需选择“New Model(新建模型)”,输入相关信息,如模型名称和API密钥,然后点击“Test Model(测试模型)”查看连接是否成功。图7-5展示了针对gpt-4o的界面。
接下来是“Agents(代理)”菜单项。通过它,我们可以为您的工作流程配置代理。这里有不同的选项,比如用于规划的代理和语言助理代理。您可以在图7-6中看到这些内容。
您可以通过选择“New Agent(新建代理)”来创建自定义代理。系统提供了不同的模板,分别是:
- User Proxy Agent(用户代理):代表用户并执行代码。
- Assistant Agent(助理代理):用于规划和生成代码以解决问题。
- GroupChat(群聊):用于管理群聊交互。
最后,还有一个名为“Workflows(工作流)”的菜单项。这里可以连接多个代理,创建复杂的多代理交互。例如,您可以构建一个旅行规划的工作流,不同的代理之间可以相互沟通和协作。
创建好代理后,我们可以在“Playground(游乐场)”中进行测试。选择“New(新建)”即可创建一个会话。
然后,您需要选择工作流类型,我会选择默认选项,接着点击“Create(创建)”。
图7-7展示了该界面。
然后,您可以通过输入提示语或使用预设的提示语来进行测试。
总结
AutoGen 提供了一个强大的框架,用于构建多代理系统,能够高效解决各种复杂任务,适用于广泛的应用场景。从生成引人入胜的社交媒体内容到自动化审批流程,AutoGen 使开发者能够创建高度专业化的代理,协同工作以实现精准的目标。该平台的模块化和灵活性支持无缝集成自定义工具,增强代理间的协作能力,并能应对多样化的场景。随着多代理系统开发的不断进步,AutoGen 脱颖而出,成为为开发者提供强大功能的先驱框架。