📢gitzw.com上线了,功能陆续更新中,如有问题或反馈请在下方反馈/建议中给我们留言。
autogen 进阶:构建多智能体 AI 应用

autogen 进阶:构建多智能体 AI 应用

📌 本文速覽

autogen 是一个用于创建多智能体 AI 应用的框架,支持自主运行或与人类协同工作。本教程将指导您如何使用 autogen 构建多智能体 AI 应用,包括安装、快速上手、多智能体编排和工作流管理等内容。通过本教程,您将能够创建自己的多智能体 AI 应用,并将其应用于实际场景。

🎯 进阶📖 10 章⏱ ≈27 分鐘讀完🔄 更新於 2026-07-09📅 資料截至 2026-07
源專案:github.com/microsoft/autogen★ 59,607

1. autogen 介绍:什么是 autogen 及其应用场景

autogen 是一个用于创建多智能体 AI 应用的框架,能够让这些应用独立运行或与人类协同工作。要了解 autogen 的应用场景,我们需要从其基本概念开始。

autogen 的基本概念

  • autogen 是一个框架:它为开发者提供了一个基础结构来构建多智能体 AI 应用。
  • 多智能体 AI 应用:这些应用包含多个智能体,能够独立或协同工作以实现特定目标。

autogen 的应用场景

autogen 可以应用于以下几个领域:

  • 自动化:autogen 可以用来自动化复杂的任务和流程。
  • 协同工作:autogen 可以让多个智能体协同工作以实现共同目标。
  • 研究:autogen 可以用来研究多智能体系统的行为和交互。

autogen 的特点

  • 层次化设计:autogen 的架构采用层次化设计,每层有明确的责任和边界。
  • 可扩展性:autogen 的设计使其能够被扩展和定制以满足不同应用的需求。

为什么选择 autogen?

虽然 autogen 现在处于维护模式,不会再有新特性或增强,但其仍然是一个不错的选择,尤其是对于已经开始使用 autogen 的开发者。对于新项目,微软推荐使用 Microsoft Agent Framework,它是在 autogen 的基础上发展起来的,具有企业级的支持。

本章小结

  • autogen 是一个用于创建多智能体 AI 应用的框架。
  • autogen 可以应用于自动化、协同工作和研究等领域。
  • autogen 采用层次化设计,具有可扩展性。

2. 安装 autogen:环境准备和安装步骤

安装 autogen 需要满足特定的环境条件。我们先来看看这些条件:

  • Node.js 版本:需要 Node.js 14 或更高版本。
  • npm 版本:需要 npm 6 或更高版本。

接着,我们需要安装 autogen。可以使用以下命令:

npm install -g @autogen/cli

预期结果:autogen 命令行工具将被安装到全局环境中。

如果你遇到安装错误,可以尝试清除 npm 缓存:

npm cache clean --force

然后重新运行安装命令。

注意:由于 autogen 现在处于维护模式,新项目应使用 Microsoft Agent Framework

推荐做法:在安装 autogen 之前,检查你的 Node.js 和 npm 版本是否符合要求。

反例:直接运行 npm install autogen 而不指定版本可能会导致安装错误。

现在,我们可以验证 autogen 是否安装成功:

autogen --version

预期结果:将显示 autogen 的版本号。

本章小结

  • 安装 autogen 需要 Node.js 14 或更高版本和 npm 6 或更高版本。
  • 可以使用 npm install -g @autogen/cli 安装 autogen。
  • autogen 现在处于维护模式,新项目应使用 Microsoft Agent Framework。

3. 快速上手:创建第一个 autogen 应用

创建第一个 autogen 应用,我们需要使用 autogen 命令行工具。

前置条件

  • autogen 命令行工具已安装。
  • Node.js 14 或更高版本和 npm 6 或更高版本。

步骤 1:创建新应用

autogen init my-app

预期结果:将创建一个名为 my-app 的新应用目录。

步骤 2:进入应用目录

cd my-app

步骤 3:安装依赖

npm install

预期结果:将安装应用所需的依赖。

步骤 4:启动应用

autogen start

预期结果:将启动应用。

注意:如果你遇到启动错误,可以尝试检查应用的配置文件是否正确。

推荐做法:在创建新应用之前,检查你的 Node.js 和 npm 版本是否符合要求。

反例:直接运行 autogen start 而不安装依赖可能会导致启动错误。

实用技巧:你可以使用 autogen --help 命令查看 autogen 的帮助信息。

现在,我们可以使用 AutoGen Studio 来原型和运行多智能体工作流。

步骤 5:启动 AutoGen Studio

autogenstudio ui --port 8080 --appdir ./my-app

预期结果:将启动 AutoGen Studio 并在 http://localhost:8080 上运行。

注意:AutoGen Studio 是用于原型和运行多智能体工作流的工具,不是生产就绪的应用。

本章小结

  • 创建新应用使用 autogen init 命令。
  • 启动应用使用 autogen start 命令。
  • AutoGen Studio 可以用于原型和运行多智能体工作流。
  • 应用应该在本地环境中测试和调试。

4. 多智能体编排:使用 AgentTool 创建多智能体应用

现在,我们已经创建了一个基本的 autogen 应用,并启动了 AutoGen Studio。在这一章中,我们将学习如何使用 AgentTool 创建多智能体应用。

前置条件

  • 你已经安装了 autogen 和 AutoGen Studio。
  • 你已经创建了一个基本的 autogen 应用,并启动了 AutoGen Studio。

步骤 1:安装 AgentTool

pip install -U "autogen-agentchat" "autogen-ext[openai]"

预期结果:将安装 AgentTool 和 OpenAI 客户端。

注意:AgentTool 是用于创建多智能体应用的工具,需要安装 autogen-agentchat 和 autogen-ext[openai] 包。

步骤 2:创建多智能体应用

import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.tools import AgentTool
from autogen_ext.models.openai import OpenAIChatCompletionClient

async def main() -> None:
    model_client = OpenAIChatCompletionClient(model="gpt-4.1")

    math_agent = AssistantAgent(
        "math_expert",
        model_client=model_client,
        system_message="You are a math expert.",
        description="A math expert assistant.",
        model_client_stream=True,
    )
    math_agent_tool = AgentTool(math_agent, return_value_as_last_message=True)

    chemistry_agent = AssistantAgent(
        "chemistry_expert",
        model_client=model_client,
        system_message="You are a chemistry expert.",
        description="A chemistry expert assistant.",
        model_client_stream=True,
    )
    chemistry_agent_tool = AgentTool(chemistry_agent, return_value_as_last_message=True)

    agent = AssistantAgent(
        "assistant",
        system_message="You are a general assistant. Use expert tools when needed.",
        model_client=model_client,
        model_client_stream=True,
        tools=[math_agent_tool, chemistry_agent_tool],
        max_tool_iterations=10,
    )
    await Console(agent.run_stream(task="What is the integral of x^2?"))
    await Console(agent.run_stream(task="What is the molecular weight of water?"))

asyncio.run(main())

预期结果:将创建一个多智能体应用,包含数学和化学专家代理。

注意:在创建多智能体应用时,需要定义每个代理的角色和功能,并使用 AgentTool 将它们组合起来。

常见报错

  • 如果你遇到 ModuleNotFoundError,请检查是否已经安装了所需的包。
  • 如果你遇到 ConnectionError,请检查是否已经启动了 OpenAI API。

实用技巧

  • 使用 autogen-agentchat 包来创建多智能体应用。
  • 使用 AgentTool 来组合多个代理。
  • 使用 OpenAIChatCompletionClient 来与 OpenAI API 交互。

本章小结

  • 使用 AgentTool 创建多智能体应用。
  • 定义每个代理的角色和功能。
  • 使用 autogen-agentchat 包和 AgentTool 来组合多个代理。
  • 使用 OpenAIChatCompletionClient 来与 OpenAI API 交互。

5. 工作流管理:使用 AutoGen Studio 进行无代码开发

现在让我们学习如何使用 AutoGen Studio 进行无代码开发。首先,我们需要安装 AutoGen Studio。打开终端,运行以下命令:

pip install -U "autogenstudio"

预期结果:AutoGen Studio 将被安装到你的 Python 环境中。

注意:确保你已经安装了 Python 3.10 或更高版本。

接下来,我们需要运行 AutoGen Studio。运行以下命令:

autogenstudio ui --port 8080 --appdir ./my-app

预期结果:AutoGen Studio 将在 http://localhost:8080 启动。

现在,我们可以使用 AutoGen Studio 来创建和管理多智能体工作流。打开浏览器,访问 http://localhost:8080。你将看到 AutoGen Studio 的用户界面。

实用技巧

  • 使用 AutoGen Studio 来快速原型化多智能体工作流。
  • 使用 AutoGen Studio 来管理和调试多智能体应用。
  • 使用 AutoGen Studio 来创建和编辑多智能体工作流的配置文件。

常见报错

  • 如果你遇到 ConnectionError,请检查是否已经启动了 AutoGen Studio。
  • 如果你遇到 ModuleNotFoundError,请检查是否已经安装了所需的包。

本章小结

  • 安装 AutoGen Studio。
  • 运行 AutoGen Studio。
  • 使用 AutoGen Studio 来创建和管理多智能体工作流。
  • 使用 AutoGen Studio 来调试和优化多智能体应用。

6. 高级主题:autogen 的架构和设计原则

我们现在要深入了解 autogen 的架构和设计原则。autogen 的设计基于一个分层和可扩展的模型,具有明确的层次结构和责任划分。

autogen 架构层次

  1. 核心层(Core):提供基本的多智能体编排功能。
  2. 服务层(Service):提供高级的多智能体服务,包括工作流管理和调度。
  3. 应用层(Application):提供用户界面和应用程序逻辑。

设计原则

  • 分层设计:每一层都有明确的责任和接口,方便扩展和维护。
  • 可扩展性:autogen 的设计允许用户扩展和定制各个层次的功能。
  • 灵活性:autogen 支持多种编程语言和开发框架。

实用技巧

  • 在使用 autogen 时,应根据具体需求选择合适的层次和接口。
  • 在扩展 autogen 的功能时,应遵循分层设计原则,避免破坏原有的架构。

常见误解

  • autogen 只是一个简单的多智能体编排框架,其实 autogen 的设计非常灵活和可扩展。
  • autogen 只支持特定的编程语言,实际上 autogen 支持多种编程语言和开发框架。

本章小结

  • 了解 autogen 的架构和设计原则。
  • 了解 autogen 的分层设计和可扩展性。
  • 了解 autogen 的灵活性和支持多种编程语言和开发框架。
  • 了解如何在使用 autogen 时选择合适的层次和接口。

7. 实战案例:使用 autogen 构建实际应用

实战案例:使用 autogen 构建实际应用

本章我们将使用 autogen 构建一个实际应用,展示 autogen 的实用性和灵活性。

前置条件

  • 已经安装 autogen 和相关依赖
  • 了解 autogen 的架构和设计原则
  • 熟悉使用 AutoGen Studio 进行无代码开发

步骤 1:创建一个新应用

我们先创建一个新应用,使用 AutoGen Studio 进行无代码开发。打开终端,运行以下命令:

autogenstudio ui --port 8080 --appdir ./my-app

这将启动 AutoGen Studio,并创建一个新应用在 ./my-app 目录下。

步骤 2:设计多智能体工作流

使用 AutoGen Studio,我们可以设计多智能体工作流。打开 http://localhost:8080,并创建一个新工作流。我们可以添加多个智能体,并配置它们之间的交互。

步骤 3:实现智能体逻辑

我们需要实现每个智能体的逻辑。我们可以使用 autogen 提供的高级 API 或低级组件来实现智能体的逻辑。

步骤 4:测试和调试

我们需要测试和调试我们的应用。我们可以使用 AutoGen Studio 提供的调试工具来调试我们的应用。

常见报错和排查办法

  • 如果出现 autogenstudio 命令不识别,检查是否已经安装 autogen 和相关依赖。
  • 如果出现工作流配置错误,检查工作流配置文件是否正确。

实用技巧

  • 使用 AutoGen Studio 进行无代码开发,可以快速原型和测试我们的应用。
  • 使用 autogen 提供的高级 API 或低级组件,可以实现智能体的逻辑。

小例子

我们可以创建一个简单的多智能体应用,包括两个智能体:一个生产者和一个消费者。生产者智能体生产数据,消费者智能体消费数据。我们可以使用 AutoGen Studio 设计工作流,并实现智能体逻辑。

本章小结

  • 了解如何使用 autogen 构建实际应用
  • 了解如何使用 AutoGen Studio 进行无代码开发
  • 了解如何设计多智能体工作流和实现智能体逻辑
  • 了解如何测试和调试我们的应用

8. 性能优化和调试:如何优化 autogen 应用的性能

性能优化和调试:如何优化 autogen 应用的性能

要优化 autogen 应用的性能,我们需要从多个方面入手。首先,我们需要了解 autogen 的架构和设计原则,以便我们能够更好地优化应用。

步骤 1:了解 autogen 的架构

autogen 的架构分为多个层次,每个层次都有其特定的职责。了解这些层次可以帮助我们优化应用的性能。

  • Core 层:提供基本的功能和组件。
  • 高级 API 层:提供高级的 API 接口,方便开发者使用。
  • 低级组件层:提供低级的组件,开发者可以使用这些组件来实现自定义的功能。

步骤 2:优化应用的配置

应用的配置也会对性能产生影响。我们需要优化应用的配置,以便获得最佳的性能。

  • 使用 autogenstudio ui 命令启动 AutoGen Studio,并指定应用目录和端口号:```bash autogenstudio ui --port 8080 --appdir ./my-app
*   在 AutoGen Studio 中,配置应用的设置,例如工作流、智能体和交互。

#### 步骤 3:优化智能体的逻辑

智能体的逻辑也会对性能产生影响。我们需要优化智能体的逻辑,以便获得最佳的性能。

*   使用 autogen 提供的高级 API 或低级组件来实现智能体的逻辑。
*   优化智能体的算法和数据结构,以减少计算时间和内存占用。

#### 步骤 4:测试和调试

测试和调试是优化应用性能的重要步骤。我们需要测试和调试应用,以便发现和解决性能问题。

*   使用 AutoGen Studio 提供的调试工具来调试应用。
*   测试应用的性能,使用工具如 `autogenstudio` 命令来监视应用的性能。

#### 常见报错和排查办法

*   如果出现 `autogenstudio` 命令不识别,检查是否已经安装 autogen 和相关依赖。
*   如果出现工作流配置错误,检查工作流配置文件是否正确。

#### 实用技巧

*   使用 AutoGen Studio 进行无代码开发,可以快速原型和测试应用。
*   使用 autogen 提供的高级 API 或低级组件,可以实现智能体的逻辑。

#### 小例子

我们可以创建一个简单的多智能体应用,包括两个智能体:一个生产者和一个消费者。生产者智能体生产数据,消费者智能体消费数据。我们可以使用 AutoGen Studio 设计工作流,并实现智能体逻辑。

**本章小结**

*   了解 autogen 的架构和设计原则。
*   了解如何优化应用的配置和智能体的逻辑。
*   了解如何测试和调试应用。
*   了解如何使用 AutoGen Studio 进行无代码开发和调试。

9. 安全注意事项:使用 autogen 的安全考虑

安全注意事项:使用 autogen 的安全考虑

使用 autogen 构建多智能体 AI 应用时,需要考虑安全问题。由于 autogen 现在处于维护模式,新用户应该使用 Microsoft Agent Framework,而现有用户应该迁移到 Microsoft Agent Framework。

  • 安全注意事项:
    • 使用 AutoGen Studio 时,需要注意它不是一个生产就绪的应用,开发者需要自己实现身份验证、安全和其他功能。
    • 使用 autogen 框架时,需要注意其层次和可扩展的设计,确保使用高级 API 或低级组件时的安全性。

常见安全风险和防范措施

  • 身份验证和授权:确保应用正确实现身份验证和授权机制,防止未经授权的访问。
  • 数据加密:确保应用正确加密敏感数据,防止数据泄露。
  • 输入验证:确保应用正确验证用户输入,防止 SQL 注入和跨站脚本攻击等安全漏洞。

实用安全技巧

  • 使用安全的编程实践,例如输入验证和错误处理。
  • 使用安全的通信协议,例如 HTTPS。
  • 定期更新和修复应用中的安全漏洞。

小例子

我们可以创建一个安全的多智能体应用,包括身份验证和授权机制。我们可以使用 AutoGen Studio 设计工作流,并实现安全的智能体逻辑。

# 运行 AutoGen Studio 时,指定安全的端口和应用目录
autogenstudio ui --port 8080 --appdir ./my-secure-app

本章小结

  • 了解使用 autogen 的安全注意事项。
  • 了解如何防范常见的安全风险。
  • 了解实用安全技巧。
  • 了解如何创建一个安全的多智能体应用。

10. 迁移指南:从 autogen 迁移到 Microsoft Agent Framework

迁移指南:从 autogen 迁移到 Microsoft Agent Framework

上一章我们讨论了 autogen 的安全注意事项,现在我们需要将现有的 autogen 应用迁移到 Microsoft Agent Framework。

前置条件

  • 安装 Python 3.10 或更高版本
  • 已经安装 autogen 和相关依赖

步骤 1:安装 Microsoft Agent Framework

# 安装 Microsoft Agent Framework
pip install -U "agent-framework"

步骤 2:迁移 autogen 代码

  • 修改导入语句,替换 autogenagent-framework
  • 更新代码,使用 Microsoft Agent Framework 的 API 和组件
# 示例:修改导入语句
import asyncio
from agent_framework.agents import AssistantAgent
from agent_framework.ext.models.openai import OpenAIChatCompletionClient

步骤 3:更新配置文件

  • 修改配置文件,使用 Microsoft Agent Framework 的配置格式
  • 更新配置项,使用 Microsoft Agent Framework 的默认值
# 示例:更新配置文件
agent-framework config --appdir ./my-app

注意事项

  • Microsoft Agent Framework 的 API 和组件可能与 autogen 有所不同
  • 需要更新代码和配置文件,以适应 Microsoft Agent Framework 的变化

实用技巧

  • 使用 Microsoft Agent Framework 的文档和示例,了解其使用方法
  • 参加 Microsoft Agent Framework 的社区,获取帮助和支持

小例子

我们可以创建一个使用 Microsoft Agent Framework 的多智能体应用,包括身份验证和授权机制。

# 示例:创建一个使用 Microsoft Agent Framework 的多智能体应用
import asyncio
from agent_framework.agents import AssistantAgent
from agent_framework.ext.models.openai import OpenAIChatCompletionClient

async def main() -> None:
    model_client = OpenAIChatCompletionClient(model="gpt-4.1")
    agent = AssistantAgent("assistant", model_client=model_client)
    print(await agent.run(task="Say 'Hello World!'"))
    await model_client.close()

asyncio.run(main())

本章小结

  • 了解如何迁移 autogen 应用到 Microsoft Agent Framework
  • 了解 Microsoft Agent Framework 的安装和使用方法
  • 了解迁移代码和配置文件的注意事项
  • 了解实用技巧和小例子,帮助您快速上手 Microsoft Agent Framework

常見問題

问题:AutoGen 项目目前的状态是什么?

AutoGen 目前处于维护模式,不会有新的功能或增强,但仍由社区管理。新用户建议从 Microsoft Agent Framework 开始,而现有用户则鼓励迁移到 Microsoft Agent Framework。

问题:如何安装 AutoGen?

安装 AutoGen 需要 Python 3.10 或更高版本。可以使用 pip 安装,命令为 pip install -U "autogen-agentchat" "autogen-ext[openai]"。如果需要安装 AutoGen Studio,则使用 pip install -U "autogenstudio"

问题:AutoGen 的快速入门示例中,需要哪些依赖和配置?

快速入门示例需要创建一个 OpenAI 账户,并将 API 密钥导出为环境变量 OPENAI_API_KEY。此外,需要安装 autogen-agentchatautogen-ext[openai]

问题:如何使用 AutoGen 创建一个简单的助手代理?

可以使用 AssistantAgent 类创建一个简单的助手代理,需要传入模型客户端和任务。例如,使用 OpenAI 的 GPT-4 模型,可以创建一个助手代理来执行任务,如下所示:

import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient

async def main() -> None:
    model_client = OpenAIChatCompletionClient(model="gpt-4.1")
    agent = AssistantAgent("assistant", model_client=model_client)
    print(await agent.run(task="Say 'Hello World!'"))
    await model_client.close()

asyncio.run(main())

问题:AutoGen 与 Microsoft Agent Framework 的关系是什么?

Microsoft Agent Framework 是 AutoGen 的企业级继任者,提供了稳定的 API 和长期支持。新用户建议从 Microsoft Agent Framework 开始,而现有 AutoGen 用户则鼓励迁移到 Microsoft Agent Framework。

问题:如何使用 AutoGen 实现多代理编排?

可以使用 AgentTool 类创建一个基本的多代理编排设置。例如,创建两个专家代理(数学和化学),然后创建一个总代理来协调它们:

import asyncio

from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.tools import AgentTool
from autogen_agentchat.ui import Console
from autogen_ext.models.openai import OpenAIChatCompletionClient

async def main() -> None:
    model_client = OpenAIChatCompletionClient(model="gpt-4.1")

    math_agent = AssistantAgent(
        "math_expert",
        model_client=model_client,
        system_message="You are a math expert.",
        description="A math expert assistant.",
        model_client_stream=True,
    )
    math_agent_tool = AgentTool(math_agent, return_value_as_last_message=True)

    chemistry_agent = AssistantAgent(
        "chemistry_expert",
        model_client=model_client,
        system_message="You are a chemistry expert.",
        description="A chemistry expert assistant.",
        model_client_stream=True,
    )
    chemistry_agent_tool = AgentTool(chemistry_agent, return_value_as_last_message=True)

    agent = AssistantAgent(
        "assistant",
        system_message="You are a general assistant. Use expert tools when needed.",
        model_client=model_client,
        model_client_stream=True,
        tools=[math_agent_tool, chemistry_agent_tool],
        max_tool_iterations=10,
    )
    await Console(agent.run_stream(task="What is the integral of x^2?"))
    await Console(agent.run_stream(task="What is the molecular weight of water?"))

asyncio.run(main())

问题:AutoGen Studio 的作用是什么?

AutoGen Studio 是一个无代码 GUI,用于原型设计和运行多代理工作流。它不是一个生产就绪的应用程序,开发者应该使用 AutoGen 框架来构建自己的应用程序,实现身份验证、安全性和其他所需功能。

🔗 相關推薦

📘 教程

AutoGPT 从零实战:手把手做出你的第一个 AI AgentAutoGPT 是一个让你创建、部署和管理持续运行 AI Agent 的平台。本教程将带你从安装开始,一步步学会构建自定义 Agent、设计工作流、接入外部工具,并最终部署到生产环境。读完你就能用 AutoGPT 自动化复杂任务,比如自动生成视频或管理社交媒体。入门13 章★ 185.2kagentic-aiagentsai30分钟部署zeroclaw:快速构建AI个人助手zeroclaw是一个快速、轻量级、全自主的AI个人助手基础设施,可以部署在任何操作系统和平台上。本教程将指导您快速部署zeroclaw,了解其核心概念和功能,并掌握如何进行配置和定制。通过本教程,您将能够快速构建自己的AI个人助手,并了解如何将其应用于实际场景。进阶10 章★ 32.2kagentagenticaiFoundry:打造全栈智能代理系统Foundry 是一个 Python 框架,用于构建全栈智能代理系统。它提供了一个生产就绪、安全的基础层,支持多种模型和工具。通过 Foundry,您可以创建自主的智能代理,实现自动化和智能化的应用。读完本教程,您将能够使用 Foundry 构建自己的智能代理系统,解决实际问题。进阶10 章★ 854agent-frameworkagent-runtimeagentic-aitaste-skill 使用教程taste-skill 是一个为 AI 代理提供前端设计品味的技能集,可生成高质量、非模板化的 UI 代码或设计参考图。本教程将指导你从安装到进阶使用,涵盖多种技能的选择与组合,帮助你告别 AI 生成的“千篇一律”界面。进阶9 章★ 49.6kagentaiclaude

📦 相關專案