入门指南
AutoGen 是一个框架,可以使用多个代理进行对话,解决任务,从而实现 LLM 应用的开发。AutoGen 代理是可定制、可对话的,并且可以无缝地允许人类参与。它们可以在使用 LLM、人类输入和工具的各种模式下运行。
主要特点
- AutoGen 可以基于多代理对话的方式,以最小的工作量构建下一代 LLM 应用。它简化了复杂 LLM 工作流的编排、自动化和优化。它最大化了 LLM 模型的性能,并克服了它们的弱点。
- 它支持多样化的对话模式,适用于复杂的工作流程。开发人员可以使用可定制和可对话的代理,使用 AutoGen 构建涉及对话自治性、代理数量和代理对话拓扑的各种对话模式。
- 它提供了一系列具有不同复杂性的工作系统。这些系统涵盖了各种领域和复杂度的应用。这展示了 AutoGen 如何轻松支持多样化的对话模式。
AutoGen 的研究成果来自于 Microsoft、宾夕法尼亚州立大学和华盛顿大学的合作研究项目。
快速入门
pip install pyautogen
- 无代码执行
- 本地执行
- Docker 执行
import os
from autogen import AssistantAgent, UserProxyAgent
llm_config = {"model": "gpt-4", "api_key": os.environ["OPENAI_API_KEY"]}
assistant = AssistantAgent("assistant", llm_config=llm_config)
user_proxy = UserProxyAgent("user_proxy", code_execution_config=False)
# 开始对话
user_proxy.initiate_chat(
assistant,
message="Tell me a joke about NVDA and TESLA stock prices.",
)
warning
在继续之前,请确保检查生成的代码以确保其安全运行。
import os
import autogen
from autogen import AssistantAgent, UserProxyAgent
llm_config = {"model": "gpt-4", "api_key": os.environ["OPENAI_API_KEY"]}
assistant = AssistantAgent("assistant", llm_config=llm_config)
user_proxy = UserProxyAgent(
"user_proxy", code_execution_config={"executor": autogen.coding.LocalCommandLineCodeExecutor(work_dir="coding")}
)
# 开始对话
user_proxy.initiate_chat(
assistant,
message="Plot a chart of NVDA and TESLA stock price change YTD.",
)
import os
import autogen
from autogen import AssistantAgent, UserProxyAgent
llm_config = {"model": "gpt-4", "api_key": os.environ["OPENAI_API_KEY"]}
with autogen.coding.DockerCommandLineCodeExecutor(work_dir="coding") as code_executor:
assistant = AssistantAgent("assistant", llm_config=llm_config)
user_proxy = UserProxyAgent(
"user_proxy", code_execution_config={"executor": code_executor}
)
# 开始对话
user_proxy.initiate_chat(
assistant,
message="绘制 NVDA 和 TESLA 股票今年以来的价格变化图表。将图表保存为名为 plot.png 的文件。",
)
打开 coding/plot.png
查看生成的图表。
tip
了解有关为代理配置 LLM 的更多信息,请点击这里。
多代理对话框架
Autogen 提供了一个通用的多代理对话框架,为下一代 LLM 应用程序提供支持。它提供了可定制和可对话的代理,这些代理集成了 LLM、工具和人类。 通过自动化多个能力代理之间的聊天,可以轻松地使它们集体自主地执行任务,或者通过人类反馈来执行任务,包括需要通过代码使用工具的任务。例如,这里是一个示例。
下图显示了使用 AutoGen 的示例对话流程。