AI

AutoGen:微软的多智能体对话框架

AutoGen 是微软用于构建多智能体 AI 系统的框架,通过对话式智能体协作解决复杂任务。

Keeping this site alive takes effort — your support means everything.
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分! 無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!
AutoGen:微软的多智能体对话框架

最复杂的问题很少是由单个人独自解决的。它们需要协作——专家贡献自己的专业知识、辩论方法、在彼此的工作基础上构建、并迭代寻求解决方案。AutoGen,微软的多智能体对话框架,将同样的协作范式带到了 AI 智能体中。

AutoGen 建立在一个简单但强大的理念之上:多个 AI 智能体,每个具有不同的能力和角色,可以通过自然对话协同工作,解决任何单个智能体都无法单独处理的问题。一个编码智能体生成解决方案,一个审查智能体检查错误,一个执行智能体运行测试,一个项目经理协调工作流——全部通过结构化对话进行通信。

该框架由微软研究院开发,已被广泛应用于软件开发、数据分析、研究综合和复杂工作流自动化等场景。其对话式的多智能体协调方法使其区别于使用预定义管道或固定图的框架。


AutoGen 的多智能体架构是如何工作的?

AutoGen 使用对话式消息传递架构,智能体异步通信。

graph TD
    subgraph AutoGen 对话
        A[UserProxyAgent\n人类代表] --> B[AssistantAgent\nLLM 驱动的编码者]
        A --> C[AssistantAgent\n审查者 / 评论家]
        B --> D[代码执行\n沙盒环境]
        B --> A
        C --> B
        D --> B
    end
    subgraph GroupChat(高级)
        E[GroupChatManager\n编排者] --> F[智能体 1\n规划者]
        E --> G[智能体 2\n编码者]
        E --> H[智能体 3\n审查者]
        E --> I[智能体 4\n执行者]
    end

在双智能体模式中,UserProxyAgent 发起任务并执行代码,而 AssistantAgent 生成解决方案。在 GroupChat 中,管理者根据对话上下文将消息路由到适当的智能体。


AutoGen 支持哪些智能体模式?

AutoGen 支持多种交互模式,适用于不同的协作场景。

模式智能体用例
双智能体Assistant + UserProxy简单编码任务、问答
三智能体Assistant + Reviewer + UserProxy带质量审查的代码生成
GroupChat多个专业智能体复杂的多步骤项目
嵌套聊天生成子对话的智能体分层任务分解
人在回路任何对话中的人类智能体敏感操作、审批
基于工具具有函数/工具访问的智能体API 集成、数据检索

每种模式都可以通过智能体特定的系统提示、模型配置和工具集进行定制。


AutoGen 智能体具有哪些能力?

AutoGen 智能体可以通过工具和函数配备广泛的能力。

能力实现安全特性
代码执行Docker 中的 Python/Shell沙盒环境
网页浏览无头浏览器可配置的 URL 限制
文件操作读写文件路径限制
API 调用HTTP 请求速率限制
数据分析Pandas、可视化执行超时
数据库查询SQL 连接器默认只读模式

所有能力都可以被限制、批准或记录,以满足安全和审计目的。


如何构建 AutoGen 应用程序?

构建 AutoGen 应用程序涉及定义智能体、配置其能力并启动对话。

步骤实现描述
1. 配置 LLMconfig_list = [...]定义模型端点和 API 密钥
2. 创建智能体AssistantAgent(...)UserProxyAgent(...)设置角色、提示和能力
3. 注册工具agent.register_for_llm(...)为智能体定义函数工具
4. 启动对话user_proxy.initiate_chat(assistant, message=...)开始多智能体工作流
5. 监控内置日志记录和追踪跟踪智能体交互和决策

API 设计直观,智能体定义和对话编排之间有清晰的分离。


常见问题

什么是 AutoGen? AutoGen 是微软的开源框架,用于构建多智能体 AI 系统。它支持创建可以通过协作解决复杂任务的对话式智能体,智能体可以承担不同角色(规划者、编码者、审查者、执行者)、使用工具、调用函数,并参与结构化对话以完成多步骤目标。

AutoGen 支持哪些类型的智能体? AutoGen 支持几种智能体类型:ConversableAgent(具有对话能力的基础类)、AssistantAgent(LLM 驱动,可以生成代码和响应)、UserProxyAgent(代表人类用户,可以执行代码)、GroupChat(用于多智能体对话管理)以及针对不同角色的专业智能体。智能体可以配置不同的系统提示、模型和工具集。

AutoGen 中的多智能体对话是如何工作的? AutoGen 使用消息传递架构,智能体通过对话系统发送和接收消息。在最简单的情况下,两个智能体进行轮流对话。对于复杂场景,GroupChat 通过 GroupChatManager 管理多个智能体之间的对话,GroupChatManager 控制流程,根据对话状态选择下一个发言的智能体。

AutoGen 智能体可以做什么? AutoGen 智能体可以执行 Python 代码(本地或 Docker 中)、调用外部 API、浏览网页、执行 shell 命令、读写文件、查询数据库和使用自定义工具。该框架提供沙盒环境(Docker)中的内置代码执行以确保安全,并支持用于批准或输入的人在回路交互。

AutoGen 与其他智能体框架相比如何? AutoGen 通过其对话式多智能体设计脱颖而出,智能体像人类在对话中一样自然地通信。这与 LangChain/LangGraph 的基于图的方法和 CrewAI 的基于角色的设计形成对比。AutoGen 强调通过对话而非预定义工作流进行涌现式协作,这可以带来更灵活的问题解决能力。


延伸阅读

TAG
CATEGORIES