什么是AutoGen

AI解读 2小时前 硕雀
2 0

AutoGen 是一个开源的 智能体(Multi-Agent)‍ 框架,由 Microsoft 开发。它旨在简化构建 大语言模型LLM‍ 应用的过程,特别是那些需要 多个智能体协作人机交互 或 工具调用 的复杂任务。

什么是 AutoGen?

AutoGen 的核心理念是“对话驱动的协作”。它将复杂的任务分解为一系列对话,通过不同的智能体(Agent)之间的交流来解决问题。它不仅支持 LLM 之间的对话,还支持 LLM 调用外部工具(如 Python 代码执行、搜索 API、数据库等)来获取信息。

核心特点:

  1. 多智能体协作:支持多个 AI 智能体(如不同性格的助手)在群聊中协作完成任务。
  2. 工具调用(Tool Calling)‍:可以让模型自动调用外部工具(如 Python 代码执行、搜索引擎、数据库查询)来获取实时数据。
  3. 人机交互:支持人类用户(Human)介入智能体的对话,做出决策或提供额外信息。
  4. 内存与知识检索:支持将对话历史(内存)存入向量数据库,并在需要时检索相关信息。

详细介绍

以下是 AutoGen 框架的主要模块和工作机制:

1. 核心模块

  • AssistantAgent(助理智能体)‍:
    • 角色:主要负责解决问题和执行任务。
    • 特点:通常由 LLM(如 GPT-4)驱动,负责思考、计划和回答。
  • UserProxyAgent(用户代理)‍:
    • 角色:模拟人类用户的行为。
    • 特点:负责提供需求、评估 Assistant 的回答,并决定是否继续执行。
  • Tool(工具)‍:
    • 角色:外部函数或服务。
    • 特点:可以是 Python 函数、REST API、数据库查询或搜索引擎。例如,用户可以定义一个 search_web(query) 函数作为工具供 Agent 调用。
  • GroupChat(群聊)‍:
    • 角色:智能体之间交流的媒介。
    • 特点:负责管理消息传递,确保对话顺序和参与者之间的协作。

2. 工作流

AutoGen 的工作流程通常遵循以下步骤:

  1. 任务分配:AssistantAgent 接收任务,判断是否需要外部工具。
  2. 工具调用:如果需要,AssistantAgent 通过 register_for_llm 将工具注册给 LLM。模型会生成一个 JSON 格式的函数调用请求(Tool Call)。
  3. 执行结果返回:AutoGen 解析工具调用请求,执行实际函数(如调用搜索 API),并将结果返回给 AssistantAgent。
  4. 决策与响应:AssistantAgent 接收结果,继续思考或将最终答案返回给用户。

3. 代码示例

以下是一个简单的 AutoGen 示例,演示了如何创建智能体并让它们进行对话:

from autogen import AssistantAgent, UserProxyAgent, config_list_from_json

# 加载 LLM 配置
config_list = config_list_from_json(env_or_file="OAI_CONFIG_LIST")

# 创建智能体
assistant = AssistantAgent(name="Assistant", system_message="You are a helpful AI assistant.", llm_config={"config_list": config_list})
user_proxy = UserProxyAgent(name="User", system_message="You are a user proxy agent.")

# 进行对话
assistant.initiate_chat(user_proxy, message="你好,请帮我写一段Python代码,实现两个数相加。")

运行后,AssistantAgent 会生成代码,UserProxyAgent 负责接收并验证结果。


相关链接

以下是获取 AutoGen 资源的官方链接:


适用场景

AutoGen 非常适合以下应用:

  • 复杂的业务流程:如 “租房合同签署” 需要搜索信息、生成合同、校对签名等多步骤协作。
  • 技术研发:让 AI 自己搜索最新的科研文献或 Stack Overflow 答案并编写代码。
  • 客服系统:AI 先尝试解决问题,如果解决不了则调用外部工单系统或转接人工客服。
  • 教育教学:虚拟教师与学生互动,实时调用搜索引擎获取最新的学术资料。
来源:www.aiug.cn
声明:文章均为AI生成,请谨慎辨别信息的真伪和可靠性!