
创建您自己的 OpenAI 操作员代理:使用 Microsoft Autogen 框架最新功能的逐步指南
- Rifx.Online
- Large Language Models , AI Applications , AI Research
- 05 Mar, 2025
用几行代码创建你自己的类似 OpenAI 的 Operator 代理!
Microsoft AutoGen 是一个用于构建 LLM 驱动的 AI 应用程序的开源框架。 之前,我写了一篇关于 AutoGen 0.2 版本和 AutoGen Studio 的博客。 在这篇 博客 中,我将介绍 AutoGen 的最新版本。
AutoGen 0.4 的核心是代理。 它提供了一些预构建的代理,无需深入研究细节即可利用。 我们开箱即用的最好的代理系统之一是 ‘Magentic-One’。
[图片 1] AutoGen 框架构建模块。
除此之外,Autogen 0.4 还更新了 No-Code Agent 平台“Autogen Studio”,外观焕然一新,并使用 React-flow 提供无缝的代理构建体验。
[图片 2] AutoGen Studio 截图。
我认为这个介绍足以让我们开始逐步指南。
从 Magentic-One 代理系统(参考图片 3),我们将使用 2 个组件:
- Web Surfer 代理
- Orchestrator ( MagenticOneGroupChat)
[图片 3] Magentic-One 架构。
步骤 0: 使用 conda 准备虚拟环境。
conda activate autogen
提示:建议使用虚拟环境,因为我们将访问 Web 获取数据。
步骤 1: 安装多模态 Web Surfer 代理
pip install "autogen-ext[web-surfer]"
提示:我在 0.4.5 稳定版上遇到了缺少软件包的问题。 如果您也遇到此问题,只需运行 pip install -U “autogen-agentchat
。 更多安装信息 在此处。
步骤 2: 创建 Azure OpenAI 客户端。 我将使用 DefaultAzureCredentia() 作为一种安全的方式连接到 Azure OpenAI,而不是基于密钥的身份验证。
from autogen_ext.models.openai import AzureOpenAIChatCompletionClient
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
### Create the token provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default" # while running locally, it will use user's credentail.
)
client = AzureOpenAIChatCompletionClient(
azure_deployment="GPT4ov1", # deployment name from Azure OpenAI Deployments tab
model="gpt-4o",
api_version="2024-08-01-preview",
azure_endpoint="https://testmediumazureopenai.openai.azure.com/", # your Azure OpenAI endpoint
azure_ad_token_provider=token_provider,
)
您也可以使用 OpenAI 创建客户端:
model_client=OpenAIChatCompletionClient(model="gpt-4o-2024-08-06")
### Note you need to add `api-key` in the env variable
提示:如果您使用基于 Azure Ad 的身份验证,请确保您已安装 Azure CLI — https://learn.microsoft.com/en-gb/azure/developer/azure-developer-cli
步骤 3: 定义 Web Surfer 代理
# Define an agent
web_surfer_agent = MultimodalWebSurfer(
name="MultimodalWebSurfer",
model_client=client,
headless = False, # to open cromium browser in GUI mode
animate_actions = True # to animate click actions
)
步骤 4: 使用 Magnetic-One orchestrator 创建代理团队
agent_team = MagenticOneGroupChat([web_surfer_agent], max_turns=13, model_client=client)
提示:Web Surfer 代理基于 Playwright 框架进行自动化测试。 您需要使用 **playwright install
安装它
步骤 5: 将所有内容放在一起
async def main() -> None:
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default" # while running locally, it will use user's credentail.
)
client = AzureOpenAIChatCompletionClient(
azure_deployment="GPT4ov1", # deployment name from Azure OpenAI Deployments tab
model="gpt-4o",
api_version="2024-08-01-preview",
azure_endpoint="https://testmediumazureopenai.openai.azure.com/", # your Azure OpenAI endpoint
azure_ad_token_provider=token_provider,
)
# Define an agent
web_surfer_agent = MultimodalWebSurfer(
name="MultimodalWebSurfer",
model_client=client,
headless = False, # to open cromium browser in GUI mode
animate_actions = True # to animate click actions
)
## Define a team
agent_team = MagenticOneGroupChat([web_surfer_agent], max_turns=13, model_client=client)
task = input("Enter the task for the agent team: ")
## Run the team and stream messages to the console
stream = agent_team.run_stream(task=task)
await Console(stream)
## Close the browser controlled by the agent
await web_surfer_agent.close()
asyncio.run(main())
因此,对于任务:“转到 opentable,并在亚特兰大预订餐厅。 使用我的电话号码 123–456–7890 进行预订”
最后的想法
很高兴看到在 AutoGen 中创建基于视觉的 Web Surfer 代理是多么容易。 但是,请记住,AutoGen 仅用于研究和概念验证目的,不应在生产中使用。 Microsoft 建议 使用 Semantic Kernel 进行企业支持。 虽然 Semantic Kernel 仍然落后于 AutoGen,但在 Semantic Kernel 中创建此类代理也很容易。 查看我之前的 博客 了解更多详情。
参考:
[## AutoGen
AutoGen 的顶级文档,这是一个使用 AI 代理开发应用程序的框架
microsoft.github.io](https://microsoft.github.io/autogen/stable/index.html)
## 微软的代理 AI 框架:AutoGen 和 Semantic Kernel | Semantic Kernel
微软的 Agentic AI 框架:Semantic Kernel 和 AutoGen 深度协作
微软的 agentic AI 框架 Semantic Kernel 和 AutoGen 正在深度协作,为构建多智能体应用程序提供一流的支持。 此次合作旨在利用每个框架的优势,使开发人员能够创建更复杂、更高效的 AI 解决方案。
Semantic Kernel:编排框架
Semantic Kernel (SK) 是一个开源 SDK,允许开发人员轻松地将大型语言模型 (LLM) 与传统编程语言集成。它充当一个编排框架,使开发人员能够:
- 编排 LLM 调用: SK 简化了调用 LLM 的过程,处理提示工程和上下文管理等复杂问题。
- 链接不同的技能: 开发人员可以定义执行特定任务的“技能”,并将它们链接在一起以创建复杂的工作流程。
- 管理内存和上下文: SK 提供了管理对话上下文并将相关信息存储在内存中的机制。
AutoGen:多智能体框架
AutoGen 是一个用于构建多智能体系统的框架。它允许开发人员定义具有不同角色和能力的智能体,并让他们协作以解决复杂的任务。 AutoGen 的主要功能包括:
- 多智能体对话: AutoGen 使智能体能够沟通和交换信息以实现共同目标。
- 多样化的智能体能力: 开发人员可以使用不同的 LLM、工具和个性来创建智能体。
- 自动智能体编排: AutoGen 可以自动编排智能体之间的交互,优化工作流程并减少人工干预。
Semantic Kernel 和 AutoGen 之间的协作
Semantic Kernel 和 AutoGen 之间的协作侧重于以下关键领域:
- 技能集成: AutoGen 智能体现在可以直接使用 Semantic Kernel 技能,从而扩展其能力并使它们能够执行更复杂的任务。
- 上下文管理: Semantic Kernel 的上下文管理功能与 AutoGen 集成,确保智能体可以访问做出明智决策所需的必要信息。
- 工作流程编排: 结合的框架提供了一个强大的平台,用于编排涉及多个智能体和 LLM 的复杂工作流程。
协作的好处
Semantic Kernel 和 AutoGen 之间的协作为开发人员提供了几个好处:
- 更高的灵活性: 开发人员可以根据自己的特定需求选择最佳框架,并将它们结合起来创建自定义解决方案。
- 更高的效率: 技能和上下文管理的集成简化了开发过程,并减少了所需的代码量。
- 增强的功能: 结合的框架使开发人员能够构建更复杂、更强大的 AI 应用程序。
快速入门
要开始使用 Semantic Kernel 和 AutoGen 之间的协作,开发人员可以参考以下资源:
- Semantic Kernel 文档:https://learn.microsoft.com/semantic-kernel/
- AutoGen 文档:https://microsoft.github.io/autogen/
- 示例代码和教程:这两个框架的文档都包含示例代码和教程,演示了如何使用组合框架来构建多智能体应用程序。