开发框架教程(6):AutoGen —— 微软的黑科技
**AutoGen** 是由**微软 (Microsoft)** 研究院推出的多智能体框架。与 CrewAI 类似,它也主打"多 Agent 对话",但它的技术底蕴更深,甚至支持 Agent 之间**互相写代码、运行代码**。
5分钟
2025-12-26
框架开发SDK开发框架教程(6):AutoGen
开发框架教程(6):AutoGen —— 微软的黑科技
1. 什么是 AutoGen?
AutoGen 是由微软 (Microsoft) 研究院推出的多智能体框架。与 CrewAI 类似,它也主打"多 Agent 对话",但它的技术底蕴更深,甚至支持 Agent 之间互相写代码、运行代码。
最酷的特性:Human Proxy (人类代理)
AutoGen 有一个独特的 Agent 叫 UserProxyAgent。
- 它可以代表屏幕前的你。
- 当其他 AI 遇到困难(比如代码运行报错),它会暂停,请求你输入指令。
- 如果代码运行成功,它甚至可以自动把运行结果反馈给写代码的 AI,让 AI 继续做下一步。这实现了完全自主的编程闭环。
2. 核心工作流:Conversable Agent
在 AutoGen 里,一切都是对话 (Conversation)。
- 两个 AI 之间的 API 调用 = 对话。
- 人和 AI 的交互 = 对话。
- 代码执行器的反馈 = 对话。
常见的双人转模式
通常我们需要两个 Agent:
- AssistantAgent (助手):负责动脑子,写代码,出方案。
- UserProxyAgent (执行者):负责作为"替身",在本地环境执行助手写的代码,或者询问真人的意见。
3. 实战:让 AutoGen 帮你画图
这个例子会让 AutoGen 自动写一个 Python 脚本画一张股票走势图,并保存下来。
# pip install pyautogen
from autogen import AssistantAgent, UserProxyAgent
config_list = [{"model": "gpt-4", "api_key": "YOUR_KEY"}]
# 1. 创建助手 (它负责写代码)
assistant = AssistantAgent(
name="coder",
llm_config={"config_list": config_list}
)
# 2. 创建用户代理 (它负责执行代码)
# human_input_mode="NEVER": 全自动模式,不问人,自己跑。
# code_execution_config: 允许在本地 Docker 或环境中跑代码。
user_proxy = UserProxyAgent(
name="user_proxy",
human_input_mode="NEVER",
max_consecutive_auto_reply=10,
code_execution_config={"work_dir": "coding", "use_docker": False}
)
# 3. 发起任务
user_proxy.initiate_chat(
assistant,
message="请帮我写一个 Python 脚本,画出 NVDA (英伟达) 和 TSLA (特斯拉) 今年以来的股价对比图,并保存为 plot.png。"
)
运行过程:
coder会写一段 python 代码。user_proxy收到代码,自动在本地执行。- 如果报错(比如没安装库),
user_proxy会把报错信息发回给coder。 coder看到报错,自我修正代码,再发过来。user_proxy再次执行,成功生成图片。- 任务结束。
4. 总结
AutoGen 是目前代码生成与自动执行领域最强的框架。如果你想做一个全自动写代码的项目(类似于 Devin 的简易版),AutoGen 是最佳起步点。