AutoGen 是微软开源的多 Agent 对话框架,让多个 AI Agent 互相协作完成复杂任务。比如让一个 Agent 当「程序员」写代码,另一个当「代码审查员」检查质量,第三个当「产品经理」提需求——它们自动对话,最终产出高质量的结果。
本教程将手把手教你用 Docker 部署 AutoGen Studio,零基础也能跟着做。
1. 什么是 AutoGen?
1.1 核心概念
AutoGen 的核心思想是多 Agent 对话:
- Agent:一个有特定角色和能力的 AI 实体(如程序员、审查员、产品经理)
- 对话:Agent 之间通过消息交互来协作完成任务
- 工作流:定义 Agent 之间的协作方式和对话流程
1.2 AutoGen Studio
AutoGen Studio 是 AutoGen 的可视化界面,提供:
- 拖拽式工作流设计:不用写代码就能搭建多 Agent 系统
- 实时对话监控:观察 Agent 之间的对话过程
- 组件市场:内置常用的 Agent 和工具模板
- 一键部署:把设计好的工作流直接部署为 API
1.3 为什么用 Docker 部署?
AutoGen 依赖较多(Python、前端、数据库),Docker 把所有依赖打包在一起,避免环境冲突。
2. 环境准备
2.1 硬件要求
| 配置项 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 2 核 | 4 核+ |
| 内存 | 4GB | 8GB+ |
| 磁盘 | 10GB 可用空间 | 20GB+ |
| GPU | 不需要 | 不需要(AutoGen 调用外部 API) |
说明:AutoGen 本身不需要 GPU,它调用 OpenAI、Anthropic 等云端 API。如果你要用本地模型,才需要 GPU。
2.2 软件要求
- Docker 20.10+
- Docker Compose v2
- OpenAI API Key(或其他 LLM 提供商的 Key)
2.3 获取 API Key
AutoGen 需要一个 LLM 提供商的 API Key:
- OpenAI:访问 https://platform.openai.com/api-keys 创建
- Anthropic:访问 https://console.anthropic.com/ 创建
- 本地模型:可以用 Ollama(后续章节会讲)
3. 使用 Docker 部署
3.1 快速启动(推荐新手)
# 创建数据目录mkdir-p~/autogen-data# 设置 API KeyexportOPENAI_API_KEY=your_openai_api_key_here# 运行 AutoGen Studiodockerrun-d\--nameautogen-studio\-p8080:8080\-v~/autogen-data:/app/data\-eOPENAI_API_KEY=${OPENAI_API_KEY}\autogen/autogenstudio:latest参数说明:
-p 8080:8080:映射 Web 界面端口-v ~/autogen-data:/app/data:持久化数据,避免容器重启后丢失-e OPENAI_API_KEY:传入 API Key
3.2 使用 Docker Compose(推荐)
创建项目目录:
mkdir-p~/autogen-studio&&cd~/autogen-studio创建docker-compose.yml:
version:'3.8'services:autogen-studio:image:autogen/autogenstudio:latestcontainer_name:autogen-studioports:-"8080:8080"volumes:-./data:/app/dataenvironment:-OPENAI_API_KEY=${OPENAI_API_KEY}# 可选:使用 Anthropic# - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}# 可选:使用本地 Ollama# - OLLAMA_BASE_URL=http://host.docker.internal:11434restart:unless-stoppedhealthcheck:test:["CMD","curl","-f","http://localhost:8080/api/health"]interval:30stimeout:10sretries:3创建.env文件:
echo"OPENAI_API_KEY=your_openai_api_key_here">.env启动服务:
# 启动dockercompose up-d# 查看日志dockercompose logs-f# 检查状态dockercomposeps3.3 使用本地模型(Ollama)
如果你想用本地模型而不是云端 API,可以同时部署 Ollama:
version:'3.8'services:ollama:image:ollama/ollama:latestcontainer_name:ollamaports:-"11434:11434"volumes:-ollama-data:/root/.ollamadeploy:resources:reservations:devices:-driver:nvidiacount:allcapabilities:[gpu]restart:unless-stoppedautogen-studio:image:autogen/autogenstudio:latestcontainer_name:autogen-studioports:-"8080:8080"volumes:-./data:/app/dataenvironment:-OLLAMA_BASE_URL=http://ollama:11434depends_on:-ollamarestart:unless-stoppedvolumes:ollama-data:启动后,先拉取模型:
dockerexecollama ollama pull qwen2.5:7b4. 访问与使用
4.1 打开界面
浏览器访问http://localhost:8080,你会看到 AutoGen Studio 的主界面。
4.2 配置模型
首次使用需要配置 LLM 提供商:
- 点击左侧「Settings」
- 在「Model Providers」中添加你的 API Key
- 选择模型(如
gpt-4o、gpt-4o-mini) - 点击「Test Connection」验证连接
4.3 创建第一个多 Agent 工作流
- 点击「Create New Workflow」
- 从组件市场拖入 Agent:
- Product Manager:负责理解需求、拆解任务
- Coder:负责编写代码
- Reviewer:负责代码审查
- 连接 Agent 的对话关系
- 保存并运行
4.4 测试对话
在工作流界面输入一个任务,比如:
“帮我写一个 Python 脚本,实现冒泡排序,并加上单元测试”
你会看到三个 Agent 自动开始对话:
Product Manager: 好的,我来拆解这个任务。需要实现冒泡排序算法, 并编写单元测试。Coder 请先实现算法。 Coder: 我来实现冒泡排序: def bubble_sort(arr): n = len(arr) for i in range(n): for j in range(0, n-i-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr Reviewer: 代码逻辑正确,但建议加上类型注解和文档字符串。 另外建议处理空列表的情况。 Coder: 收到,我来改进...5. 进阶配置
5.1 自定义 Agent
你可以在 UI 中自定义 Agent 的行为:
- System Message:定义 Agent 的角色和行为规范
- Skills:给 Agent 添加工具能力(如执行代码、搜索网页)
- Termination Conditions:定义对话何时结束
5.2 API 访问
AutoGen Studio 提供 REST API,可以把工作流集成到你的应用中:
# 获取所有工作流curlhttp://localhost:8080/api/workflows# 运行指定工作流curl-XPOST http://localhost:8080/api/workflows/{id}/run\-H"Content-Type: application/json"\-d'{"message": "帮我写一个快速排序算法"}'5.3 使用 Python SDK
fromautogen_agentchat.agentsimportAssistantAgentfromautogen_agentchat.teamsimportRoundRobinGroupChatfromautogen_ext.models.openaiimportOpenAIChatCompletionClient# 创建模型客户端model=OpenAIChatCompletionClient(model="gpt-4o-mini")# 创建 Agentcoder=AssistantAgent(name="Coder",model_client=model,system_message="你是一个专业的 Python 程序员,负责编写高质量的代码。")reviewer=AssistantAgent(name="Reviewer",model_client=model,system_message="你是一个代码审查专家,负责检查代码质量并提出改进建议。")# 创建团队team=RoundRobinGroupChat(participants=[coder,reviewer],max_turns=4)# 运行importasyncioasyncdefmain():result=awaitteam.run(task="写一个快速排序算法")print(result)asyncio.run(main())6. 常见问题
6.1 容器启动失败
# 查看日志dockerlogs autogen-studio# 常见原因:端口被占用sudolsof-i:8080# 如果被占用,修改 docker-compose.yml 中的端口映射6.2 API Key 无效
# 检查环境变量是否正确传入dockerexecautogen-studioenv|grepOPENAI_API_KEY# 测试 API 连通性curlhttps://api.openai.com/v1/models\-H"Authorization: Bearer${OPENAI_API_KEY}"6.3 Agent 对话卡住
- 检查 API 余额是否充足
- 尝试使用更便宜的模型(如
gpt-4o-mini) - 设置
max_turns限制对话轮数
6.4 使用国内镜像
如果网络不通,可以使用代理:
environment:-OPENAI_API_BASE=https://your-proxy.com/v1-OPENAI_API_KEY=your_key7. 与其他框架对比
| 特性 | AutoGen | CrewAI | LangChain |
|---|---|---|---|
| 多 Agent 对话 | ✅ 核心特性 | ✅ 角色扮演 | ⚠️ 需要手动编排 |
| 可视化界面 | ✅ AutoGen Studio | ❌ | ❌ |
| 代码执行 | ✅ 沙盒环境 | ✅ | ✅ |
| 学习曲线 | 中等 | 较低 | 较高 |
| 适用场景 | 复杂协作任务 | 任务流水线 | 通用 AI 应用 |
8. 总结
通过本教程,你已经成功部署了 AutoGen Studio。现在你可以:
- ✅ 通过可视化界面设计多 Agent 工作流
- ✅ 让多个 AI Agent 协作完成复杂任务
- ✅ 使用云端或本地 LLM 作为 Agent 的大脑
- ✅ 通过 API 把多 Agent 系统集成到你的应用中
下一步建议:
- 尝试设计一个「代码生成 + 审查 + 测试」的三 Agent 工作流
- 给 Agent 添加工具能力(如执行代码、搜索网页)
- 探索 AutoGen 的 GroupChat 模式,让 Agent 自由讨论
- 结合 RAG,让 Agent 能访问你的私有知识库
多 Agent 协作是 AI 应用的下一个趋势,AutoGen 让你能轻松构建这样的系统。