大模型应用技术之 Agent框架 AutoGen

1. AutoGen 原理与介绍

1.1 什么是 AutoGen

AutoGen是由微软(Microsoft)开发的开源多智能体对话框架。它允许开发者通过定义多个可对话的 Agent(Conversable Agents),让它们通过自动对话来协作解决任务。AutoGen 的核心优势在于其强大的代码执行能力灵活的对话模式(支持两方对话、群聊、层级对话等)。

1.2 核心设计理念

  • 对话即计算(Conversation as Computation):将任务求解过程建模为多智能体之间的对话
  • 代码优先(Code First):Agent 可以编写代码、调试代码并在本地/Docker 容器中执行代码
  • 人类介入(Human in the Loop):原生支持在对话的任意阶段引入人工反馈
  • 可定制化(Customizable):Agent 的 LLM 配置、系统提示词、技能均可灵活定制

1.3 技术架构

AutoGen 的架构基于ConversableAgent基类:

┌───────────────────────────────────────────────┐ │ ConversableAgent │ │ (基类:负责接收消息、LLM推理、生成回复) │ └──────────────────────┬────────────────────────┘ │ ┌────────────┴────────────┐ ▼ ▼ ┌────────────────┐ ┌────────────────┐ │ AssistantAgent │ │ UserProxyAgent │ │ (AI 助手) │ │ (用户代理) │ │ - 编写代码 │ │ - 执行代码 │ │ - 制定计划 │ │ - 请求人工输入 │ └────────────────┘ └────────────────┘

1.4 版本信息

重要说明:AutoGen 在 PyPI 上的发行形态是元包pyautogen。在pyautogen==0.10.0下:

  • ✅ 可导入模块:autogen_agentchatautogen_core
  • ❌ 不存在:import autogen(会ModuleNotFoundError
  • AutoGen 最新版本(元包)pyautogen==0.10.0
  • 关键子包autogen-agentchat==0.7.5autogen-core==0.7.5(随pyautogen安装)
  • Python 版本要求:Python 3.8+

2. AutoGen 数据流向

2.1 双智能体对话流

最基础的模式是 UserProxyAgent 与 AssistantAgent 的互答:

AssistantAgentUserProxyAgent用户AssistantAgentUserProxyAgent用户alt[执行出错][执行成功]1. 发起任务 ("画一张股价走势图")2. 转发任务3. 思考 & 编写 Python 代码4. 发送代码块5. (自动/人工) 执行代码6. 发送执行结果 (Success/Error)7. 修正代码8. 发送新代码9. "TERMINATE" (结束对话)

2.2 群聊 (GroupChat) 数据流

多个 Agent 参与的群组对话:

选择发言人策略

发起

广播上下文

广播上下文

广播上下文

回复

回复

回复

1.调用 LLM 选择

Coder

UserProxyAgent

GroupChatManager

Coder

Reviewer

ProductManager

谁下一个发言?


3. AutoGen 核心组件

3.1 AssistantAgent

负责解决任务的 AI 角色。它通常配置了 LLM,能够理解指令、编写代码或给出建议。

fromautogen_agentchat.agentsimportAssistantAgentfromautogen_ext.models.openaiimportOpenAIChatCompletionClient llm=OpenAIChatCompletionClient(model="gpt-4",api_key="YOUR_KEY")assistant=AssistantAgent(name="assistant",model_client=llm)

3.2 UserProxyAgent

代表用户或执行环境的代理。它通常配置 LLM(或只作为辅助),主要职责是:

  1. 执行代码:运行 Assistant 发来的代码块。
  2. 请求人工输入:在关键步骤暂停,等待人类确认。
fromautogen_agentchat.agentsimportUserProxyAgent# 注意:在 pyautogen==0.10.0 中,UserProxyAgent 主要用于“代表人类输入/代理人类”。# 旧版 autogen 的 code_execution_config(自动执行代码块)API 已不适用;# 新版需要通过 tool / workbench / runtime 接入代码执行能力(请参考官方文档示例)。user_proxy=UserProxyAgent(name="user_proxy")

3.3 GroupChat & Manager

用于管理 3 个及以上 Agent 的对话。

  • GroupChat: 维护 Agent 列表和对话历史。
  • GroupChatManager: 特殊的 Agent,利用 LLM 来决定"下一个轮到谁发言"。

4. AutoGen vs CrewAI vs LangGraph 三方对比

特性AutoGenCrewAILangGraph
核心隐喻对话(Conversation)团队/角色(Role/Crew)图/状态机(Graph/State)
代码执行原生强项(UserProxy 自动执行)⚠️ 需通过 Tool 间接实现⚠️ 需自定义 Node 实现
控制流自动 (LLM 决定下一发言人)顺序/层级 (Sequential/Hierarchical)精确 (边/条件分支)
适用场景编程、调试、开放式探索内容生成、报告分析、线性任务复杂业务流、生产级应用
上手难度⭐⭐ (概念少,但调试Prompt难)⭐ (封装好,易上手)⭐⭐⭐ (需理解图论/状态)

4.4 为什么选择 AutoGen?

选择 AutoGen 的主要理由通常是:

  1. 你需要 Agent 真的去"做"事情:不仅仅是生成文本,而是生成代码并运行代码(画图、抓取数据、数值计算)。
  2. 任务需要反复试错:AutoGen 的"生成-执行-报错-修正"循环非常成熟,非常适合编程类任务。

5. AutoGen 适用场景

5.1 自动化编程与数据分析

Agent A 写代码,Agent B (Proxy) 运行代码并反馈报错,Agent A 修正代码。这在数据清洗、机器学习模型训练脚本生成中非常有效。

5.2 复杂问题的多角度研讨

创建一个由 “正方代表”、“反方代表” 和 “主持人” 组成的 GroupChat,让他们针对一个议题进行辩论,生成更全面的观点。

5.3 动态工作流

当任务步骤无法预先确定(例如:先搜索,如果没搜到就去爬虫,如果爬虫失败就换个源),AutoGen 的对话驱动模式比硬编码的工作流更灵活。


6. 快速开始指南

6.1 安装

pipinstallpyautogen==0.10.0 autogen-ext==0.7.5

6.2 最小可运行示例(v0.10.0:验证 import 与接线方式)

创建一个简单的脚本app.py

fromautogen_agentchat.agentsimportAssistantAgent,UserProxyAgentfromautogen_agentchat.teamsimportRoundRobinGroupChatfromautogen_agentchat.conditionsimportTextMentionTerminationfromautogen_ext.models.openaiimportOpenAIChatCompletionClient llm=OpenAIChatCompletionClient(model="gpt-4",api_key="sk-...",# 填入你的 OpenAI Key)assistant=AssistantAgent(name="assistant",model_client=llm)user_proxy=UserProxyAgent(name="user_proxy")team=RoundRobinGroupChat(participants=[user_proxy,assistant],termination_condition=TextMentionTermination("TERMINATE"),max_turns=5,)# 注意:该示例会调用真实 LLM;完成后需让 assistant 回复 TERMINATEresult=team.run(task="请用 Python 打印当前日期的斐波那契数列前 10 位;完成后回复 TERMINATE。")print(result)

6.3 运行

python app.py

你会在coding/目录下看到生成的代码文件和执行结果。


7. 最佳实践

  1. 限制对话轮次:使用max_turns(例如RoundRobinGroupChat(max_turns=5))防止无限对话消耗 Token。
  2. 明确终止条件:使用TextMentionTermination(\"TERMINATE\")(或其他 termination condition)明确结束条件。
  3. 代码执行要隔离:新版 AutoGen 通过 tool/workbench/runtime 接入代码执行能力;生产环境务必使用容器/沙盒隔离执行。
  4. 精细化 System Message:给每个 Agent 设定清晰的人设(如 “你是一个极其严谨的代码审查员,只关注安全性漏洞”)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1124918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双向DC-DC Boost变换器系统滑模控制与非线性干扰观测器研究:PWM应用与波形复现EI期刊探讨

双向DC- DC,基于PWM的DC-DC Boost变换器系统中基于非线性干扰观测器的滑模控制,滑模控制SMC,扰动观测器NDOB。 EI期刊复现,各个波形与文章匹配。双向DC-DC转换器系统是一个在电力电子学领域广泛研究的课题,其中基于PWM…

MongoDB 远程连不上?用cpolar告别局域网束缚,跨网访问就这么简单

目录教程新鲜出炉,看下面👇1. 安装Docker2. 使用Docker拉取MongoDB镜像3. 创建并启动MongoDB容器4. 本地连接测试5. 公网远程访问本地MongoDB容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问MongoDB 是一款 NoSQL 数据库&…

渗透工程师必刷!2026年最常考的15道面试题(附答案)

网络安全工程师必看:15个实战漏洞解析与防护技巧(建议收藏) 本文是一份全面的网络安全技术指南,涵盖SQL注入、XSS/CSRF、XXE漏洞、Kerberos认证、权限提升、代码混淆、WAF绕过、EDR系统、SSL/TLS、二进制漏洞分析、AWS配置、Android逆向、钓鱼攻击、恶意…

渗透测试的8个步骤,一文详解(小白必看)!

【全网最全】渗透测试与入侵的区别:小白到网络安全高手的收藏指南 本文详细阐述了渗透测试与入侵的本质区别,前者是以安全为目标的合法测试,后者则是恶意获取系统权限的行为。文章系统介绍了学习渗透测试的八个阶段:网络基础、网…

MT键槽加工动力刀座

MT键槽加工动力刀座直接在车床上加工键槽,无需借助其他专用设备MT的拉削工具,与其他技术相比,可以在一个非常短的时间内实现键槽加工,而不需要在两台设备上加工完成,所有的加工都在一台车床上,因此&#xf…

基于Spring boot+Vue的大学生心理咨询平台_44ik50ky

目录基于Spring BootVue的大学生心理咨询平台开发技术核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!基于Sprin…

Baklib 2025 年度总结:AI 驱动的内容进化与平台实力强化

Baklib在过去一年中围绕 “AI 内容云” 架构的持续创新和能力扩展。Baklib 致力于用人工智能和先进的内容管理技术重塑企业内容数字化体验,为客户提供更高效、智能和可扩展的企业内容解决方案。全面提升平台核心能力:功能迭代与客户扩展在 2025 年&…

学术合规 “双 buff” 上线!虎贲等考 AI:降重 + 降 AIGC 同步清零,论文审核一次过

学术创作进入 “双重合规” 严审时代 —— 重复率超标直接驳回,AIGC 痕迹明显判定不合规,无数科研人、毕业生陷入两难:手动降重耗时耗力还逻辑混乱,普通工具改写易失真,AI 生成的优质内容因 “机器感” 无法通过审核&a…

内网渗透入门到精通:超详细实战教程,带你从小白变大神

网络安全攻防实战:内网渗透技术与防御策略,收藏级教程 本文系统介绍内网渗透技术全流程,包括环境搭建、信息收集、权限提升、横向移动和权限维持等关键环节,提供实战案例与代码示例。强调法律合规,提醒需获得授权&…

springboot_vue公司企业项目分配进度管理系统的设计与实现_60jjvqqg

目录摘要开发技术核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 该项目基于SpringBoot和Vue.js技术栈&am…

虎贲等考 AI:AI 驱动学术创作,全流程智能辅助新范式

在学术探索的征程中,从选题构思到答辩收官,科研工作者与学子常面临文献搜集繁琐、数据支撑薄弱、格式规范复杂、查重降重棘手等多重困境。虎贲等考 AI 作为一款基于前沿人工智能技术打造的专业论文写作辅助工具,以 “全流程覆盖、高专业保障、…

本地AI崛起!Ollama全家桶带你无损运行30+模型

一、Ollama 全家桶,开启本地 AI 新时代 在人工智能飞速发展的今天,大语言模型(LLMs)展现出了令人惊叹的能力,从智能聊天到内容创作,从代码生成到数据分析,其应用场景日益广泛。然而,许多强大的语言模型通常依赖云端服务,这不仅带来了隐私和数据安全方面的担忧,还可能…

内网渗透技术全解析:从Web入侵到域控获取的实战教程

【珍藏】内网渗透技术全解析:从Web入侵到域控获取的实战教程 本文详细介绍了内网渗透测试全流程,从Web服务器ThinkPHP漏洞利用开始,通过信息搜集、权限提升、凭证获取等技术,实现内网横向移动。文章展示了MSF框架使用、IPC连接、…

springboot基于vue的大学生兼职管理系统的设计与实现_dz2fko41

目录 系统概述技术架构核心功能模块创新与优化应用价值 开发技术 核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式&#xff0…

把Gemma 2B塞进手机:MNN端侧AI推理超详细指南

引言 在人工智能飞速发展的当下,端侧 AI 推理的重要性日益凸显。以往,AI 模型大多依赖云端服务器进行计算和推理,然而,这种模式存在着网络延迟高、数据隐私难以保障、带宽成本高以及对网络稳定性要求高等诸多问题。例如,在实时翻译场景中,云端推理的延迟可能导致对话的流…

期刊投稿 “屡投屡拒”?虎贲等考 AI:破解核心期刊 “录用密码”,投稿命中率翻倍

在学术圈,期刊论文发表是科研工作者、高校教师与研究生的 “硬通货”。但多数人都深陷 “投稿 - 拒稿 - 修改 - 再投稿” 的循环:选题踩不准期刊偏好、文献综述缺乏深度、格式不符初审被刷、数据支撑薄弱论证乏力…… 普通 AI 工具仅能生成基础文本&…

问卷设计 “慢工出粗活” VS “AI 快工出细活”!虎贲等考 AI:30 分钟拿捏专业量表

做实证研究、写毕业论文时,问卷设计总能成为 “拖慢进度的绊脚石”—— 人工设计要啃遍文献、精通量表逻辑、反复打磨题项,耗时数周仍可能因 “题项歧义”“逻辑断层”“信效度不达标” 导致数据作废;而普通 AI 工具生成的问卷又多是 “模板堆…

利用r2ai与LM Studio本地运行GPT-OSS模型进行恶意软件逆向分析

背景: radare2,昵称“r2”,是一个强大的开源反汇编器。r2ai 是一个为 r2 开发的开源插件,用于与人工智能进行交互。 场景:使用 r2 进行恶意软件分析。 免责声明:以下关于我个人偏好的模型和配置仅代表我的个…

最新AI资讯:2026开年重磅:物理AI时代降临,Rubin芯片引爆CES!

摘要:CES 2026首日,黄仁勋发布Rubin平台,宣布“物理AI”时刻到来;联想推出万卡级“AI云超级工厂”;斯坦福发布睡眠诊断大模型。2026年,AI正式从屏幕走向物理世界,Agentic AI(代理智能…

springboot基于vue的新疆旅游平台的 可视化大屏4t007914

目录平台概述核心功能技术实现应用价值开发技术核心代码参考示例1.建立用户稀疏矩阵,用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度总结源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!平台概述 Sprin…