AutoGen是微软开源的多智能体AI系统框架,通过多个专门化AI智能体在对话中协作完成复杂任务。框架定义了三类核心智能体(对话智能体、助手智能体、用户代理智能体),支持人工参与、代码执行、工具集成和多智能体协作模式。它封装底层复杂度,让开发者专注于业务逻辑和智能体设计,实现AI之间的讨论、推理和演化,无需人工逐步编写脚本。

前排提示,文末有大模型AGI-CSDN独家资料包哦!

AutoGen 是微软研究院开源的多智能体 AI 系统框架。这个框架的设计思路很简单——让多个 AI 智能体(加上人类参与)在对话中完成复杂任务的协作和推理。

你甚至可以把它理解成一个团队聊天室,智能体们在里面讨论、争论、协作,最终得出解决方案。

AutoGen 通过创建多个专门化智能体,为每个智能体设定自己的角色、目标,来达到上面说的聊天能力,并且还能通过配置工具来获得代码执行能力。智能体之间通过消息机制通信,互相配合完成任务。

AutoGen 为什么值得关注

AutoGen 真正好玩的地方在于它实现了 AI 之间的协作。智能体可以相互辩论、推理、纠错、共同创造,整个过程不需要人工逐步编写脚本,设置可以不需要人工的参与。

相比于CrewAI,AutoGen 则把重点放在讨论、推理和演化上,而CrewAI 更关注执行层面。

你可以理解为CrewAI更像是我们现在用的工作助手,而AutoGen 更像是圆桌会议。

AutoGen 框架处理了很多底层问题,这样我们可以只专著于如何编排角色和任务。

AutoGen 定义了三类核心智能体:

  • Conversable Agent:负责管理结构化对话和预定义的交互模式
  • Assistant Agent:执行具体任务,调用工具或 LLM
  • UserProxy Agent:充当人机接口层,转发消息和响应


简单的群聊演示

 
from autogen import ConversableAgent, AssistantAgent, UserProxyAgent, GroupChat, GroupChatManager

# Define AssistantAgent (AI assistant)

assistant = AssistantAgent(

    name="AssistantAgent",

    system_message="You are a helpful AI assistant. Suggest Python code when relevant.",

    human_input_mode="NEVER"  # No human input required, runs automatically

)

# Define UserProxyAgent (represents human)

user_proxy = UserProxyAgent(

    name="UserProxyAgent",

    human_input_mode="ALWAYS"  # Requires human input

)

# Define group chat

chat = GroupChat(

    agents=[assistant, user_proxy],

    messages=[]

)

# Manage group chat with GroupChatManager

manager = GroupChatManager(

    groupchat=chat,

    llm_config={"model": "gpt-5-mini"}

)

#  Start the chat

user_proxy.initiate_chat(

    manager,

    message="Write a short Python function to calculate factorial."

)

AutoGen 核心概念详解

1、Human-in-the-Loop(人工参与)

这个功能让人类可以在智能体执行过程中进行干预。

 
# Human-in-the-Loop example

from autogen import AssistantAgent, UserProxyAgent

# Step 1: Create assistant agent

assistant = AssistantAgent(

    name="code_writer",

    system_message="You are a helpful coding assistant."

)

# Step 2: Create user proxy with human-in-the-loop enabled

user = UserProxyAgent(

    name="human_user",

    human_input_mode="ALWAYS"  # 👈 Enable human confirmation

)

# Step 3: Start conversation

user.initiate_chat(

    assistant,

    message="Write a Python function to calculate factorial."

)

2、Code Executor 的工作机制

Code Executor 负责安全执行智能体生成的代码。

 
# Behind the scenes

# AssistantAgent generates code:

sum([x for x in range(1, 21) if x % 2 == 0])

# PythonCodeExecutor automatically:

# - Executes safely in sandbox

# - Captures output

# - Returns result to agent

# UserProxyAgent displays result:

✅ Result: 110

# Optional: Add human approval

user = UserProxyAgent(

    name="human_user",

    code_execution_config={"executor": executor},

    human_input_mode="ALWAYS"

)

3、工具集成方式

工具通过初始化时的 tools 参数传入智能体。

 
from autogen import AssistantAgent, UserProxyAgent, Tool

# Define tool function

def multiply_numbers(a: int, b: int) -> int:

    """Returns the product of two numbers."""

    return a * b

# Wrap as Tool object

multiply_tool = Tool(

    func=multiply_numbers,

    name="multiply_tool",

    description="Multiplies two numbers and returns the product."

)

# Create agent and integrate tool

assistant = AssistantAgent(

    name="math_agent",

    system_message="You are a math assistant. Use multiply_tool when needed.",

    tools=[multiply_tool]

)

user = UserProxyAgent(name="human_user")

user.initiate_chat(

    assistant,

    message="Can you multiply 8 and 7?"

)

4、多智能体协作模式

AutoGen 对话系统的核心特征是支持多智能体协作对话模式。

 
# Example: Multi-agent conversational pattern

from autogen import AssistantAgent, ReviewerAgent, UserProxyAgent, PythonCodeExecutor

executor = PythonCodeExecutor()

# Coder agent

coder = AssistantAgent(

    name="coder_agent",

    system_message="You are a code-writing assistant."

)

# Reviewer agent

reviewer = ReviewerAgent(

    name="reviewer_agent",

    system_message="You are a code reviewer. Check logic and security."

)

# User proxy

user = UserProxyAgent(

    name="human_user",

    human_input_mode="TERMINATE",

    code_execution_config={"executor": executor}

)

def run_multi_agent_workflow(prompt: str):

    coder_response = coder.chat_with(user, message=prompt)

    print("Coder ->", coder_response["content"])

    reviewer_response = reviewer.review(code={"code": coder_response["content"]})

    print("Reviewer ->", reviewer_response["content"])

    if "SUGGEST_CHANGES" in reviewer_response["content"]:

        revision = coder.chat_with(reviewer, message=reviewer_response["content"])

        final_code = revision["content"]

    else:

        final_code = coder_response["content"]

    print("Waiting for human approval...")

    if not user.get_human_approval(final_code):

        print("Human rejected execution.")

        return

    exec_result = executor.execute(final_code)

    print("Execution result ->", exec_result["output"])

if __name__ == "__main__":

    run_multi_agent_workflow("Write a Python function prime_factors(n).")

这个例子展示了多智能体协作的几个关键点:Coder、Reviewer、User 各司其职完成协作,然后通过Reviewer 把关代码的安全性和质量,HITL 模式给人类最终审批权,最后可以通过Code Executor 在沙箱环境安全执行代码

5、会话终止机制

会话会在满足终止条件时结束,这样一个整个的”会议“就结束了

 
from autogen import AssistantAgent, UserProxyAgent

def is_termination_msg(message):

    """Returns True when message contains TERMINATE keyword."""

    return "TERMINATE" in message["content"].upper()

assistant = AssistantAgent(

    name="helper_agent",

    system_message="Stop when receiving 'TERMINATE'."

)

user = UserProxyAgent(

    name="human_user",

    is_termination_msg=is_termination_msg

)

user.initiate_chat(assistant, message="Hello, explain recursion in simple terms.")

assistant.send({"role": "user", "content": "Thanks, that's clear. TERMINATE"})

总结

AutoGen 提供了构建复杂 AI 协作系统的完整支持,覆盖了角色结构、通信机制、人工参与、工具集成、代码执行和多智能体协作设计等各个方面。框架把底层复杂度封装得很好,开发者可以专注在业务逻辑和智能体设计上。

读者福利:倘若大家对大模型感兴趣,那么这套大模型学习资料一定对你有用。

针对0基础小白:

如果你是零基础小白,快速入门大模型是可行的。
大模型学习流程较短,学习内容全面,需要理论与实践结合
学习计划和方向能根据资料进行归纳总结

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

请添加图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

这里我们能提供零基础学习书籍和视频。作为最快捷也是最有效的方式之一,跟着老师的思路,由浅入深,从理论到实操,其实大模型并不难

在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Logo

更多推荐