【实战智能体】《大模型应用开发_动手做AI_Agent》_178.[第10章 多Agent框架实战] AutoGen实战(上)——搭建双Agent协作编程环境

一个人写代码写到头秃?让两个AI Agent互相撕逼(协作),代码质量直接起飞!AutoGen双Agent编程实战,手把手教你搭建"程序员+代码审查员"的黄金搭档,从此告别单打独斗的孤独编程。
目录
- 核心概念篇:理解AutoGen的协作哲学
- 环境搭建篇:从零配置开发环境
- 角色设计篇:打造你的AI搭档
- 实战编码篇:跑通第一个双Agent程序
- 进阶技巧篇:让协作更丝滑
- 避坑指南篇:新手必看的生存法则
嗨,大家好呀,我是你的老朋友精通代码大仙。接下来我们一起学习 《大模型应用开发_动手做AI_Agent》,震撼你的学习轨迹!
引入:一个人的战斗,真的太累了
“一个人走得快,一群人走得远”——这话放在编程圈,简直扎心。
你是不是也这样:深夜对着屏幕,一个bug改到凌晨三点,越改越懵,越懵越急,最后干脆躺平明天再说。或者好不容易让AI写了一段代码,结果跑不通,你复制报错信息给AI,它改完又出新bug,循环往复,仿佛进入无限套娃的地狱模式。
更惨的是,有些代码看起来能跑,但总觉得哪里不对劲——变量命名规范吗?异常处理到位吗?性能有没有坑?你一个人审查自己的代码,就像自己给自己理发,后脑勺永远看不见。
学编程就像打怪升级,总会遇到卡关的时候。而AutoGen的双Agent协作,就是给你找个靠谱的队友,一个负责冲锋写代码,一个负责兜底把关,两个人互相配合,效率直接翻倍。今天这篇,我就带你手把手搭建这个"黄金搭档",从此告别单打独斗的孤独编程。
一、核心概念篇:理解AutoGen的协作哲学
点题:AutoGen到底是什么?
AutoGen是微软开源的多Agent对话框架,核心理念特别简单:让多个AI角色通过对话协作完成任务。
它不是那种"一个大模型包办一切"的思路,而是模拟真实团队的分工——有人专门写代码,有人专门测试,有人专门提需求,大家开会讨论、迭代优化,直到产出合格的结果。
双Agent协作是最小可用单元:UserProxyAgent(用户代理) + AssistantAgent(助手代理)。一个代表人类用户传达意图、执行代码、检查结果;一个专注于理解需求、生成方案、编写代码。
痛点分析:新手最容易踩的坑
误区一:以为AutoGen就是"更厉害的ChatGPT"
很多新手第一次接触,直接把AutoGen当升级版聊天工具用,问一句答一句,完全没发挥多Agent协作的优势。结果呢?该出的bug照样出,该改到凌晨还是凌晨。
误区二:两个Agent角色混乱,互相抢戏
我见过有人把两个Agent都配置成"全能型",结果对话变成:
Agent A:“我来写代码”
Agent B:“不,我来写,你看着”
Agent A:“你写的有问题,听我的”
…无限扯皮,任务永远完不成。
误区三:忽视对话终止条件,Token烧到心疼
没有设置好什么时候该停,两个Agent能聊到地老天荒。有人跑了个简单任务,一看账单傻眼了——两百多轮对话,API费用够吃顿火锅。
解决方案:建立清晰的协作边界
正确理解分工:
| 角色 | 核心职责 | 典型行为 |
|---|---|---|
| UserProxyAgent | 代表用户、执行代码、反馈结果 | 运行代码、检查输出、决定任务是否完成 |
| AssistantAgent | 生成方案、编写代码、解释逻辑 | 分析需求、写代码、回答技术问题 |
配置原则:一个"动手",一个"动脑";一个"务实",一个"务虚"。
关键代码示例(正确配置):
from autogen import AssistantAgent, UserProxyAgent
# 程序员Agent:专注写代码,不执行
coder = AssistantAgent(
name="python_coder",
system_message="""你是一个专业的Python程序员。
你的任务是编写高质量、可运行的Python代码。
- 代码必须完整,包含必要的导入语句
- 添加适当的错误处理
- 使用清晰的变量命名
- 代码写完后,等待用户代理运行并反馈结果""",
llm_config={"model": "gpt-4", "api_key": "..."}
)
# 用户代理Agent:负责执行和把关
user_proxy = UserProxyAgent(
name="code_executor",
system_message="""你是用户代理,负责执行代码并反馈结果。
- 使用提供的代码执行工具运行Python代码
- 检查输出结果,判断任务是否完成
- 如果代码有错误,将错误信息反馈给程序员
- 如果任务完成,回复 TERMINATE 结束对话""",
code_execution_config={"work_dir": "coding_workspace"},
human_input_mode="NEVER" # 完全自动,不需要人类介入
)
这样做的好处:角色边界清晰,不会互相抢戏;代码生成和执行分离,形成闭环;自动终止避免无限对话,省钱省心。
小结
AutoGen的双Agent不是"1+1=2"的简单叠加,而是"一个敢写、一个敢跑"的默契配合。明确分工、设置边界、建立终止机制,是让协作顺畅的三根支柱。
二、环境搭建篇:从零配置开发环境
点题:工欲善其事,必先利其器
环境搭建是新手的第一道坎。很多人还没开始写Agent,就被各种依赖冲突、版本不兼容、API配置搞到崩溃,直接劝退。
这一节我把踩过的坑都给你填平,确保你10分钟内跑通环境。
痛点分析:环境配置的"死亡三连"
坑一:Python版本混乱
AutoGen对Python版本有要求(推荐3.9-3.11),但很多人系统里同时装了3.8、3.10、3.12,pip install完发现导入报错,排查两小时才发现装错环境了。
坑二:依赖地狱
AutoGen依赖的库很多,直接pip install pyautogen可能和其他项目冲突。我见过最惨的案例:某个依赖和jupyter notebook冲突,导致整个数据分析环境崩溃。
坑三:API密钥裸奔
新手最容易犯的错:直接把OpenAI密钥写在代码里,然后不小心提交到GitHub。等你收到"您的账户存在异常使用"的邮件时,账单可能已经够买台MacBook了。
解决方案:隔离、规范、安全
Step 1:创建隔离环境(必做)
# 使用conda创建专属环境
conda create -n autogen python=3.10 -y
conda activate autogen
# 或者使用venv(轻量方案)
python3.10 -m venv autogen_env
source autogen_env/bin/activate # Linux/Mac
# autogen_env\Scripts\activate # Windows
Step 2:安装AutoGen(指定版本)
# 基础安装
pip install pyautogen==0.2.0
# 如果需要代码执行功能(推荐)
pip install pyautogen[ipython]==0.2.0
# 验证安装
python -c "import autogen; print(autogen.__version__)"
Step 3:安全的API配置
绝对不要这样做:
# ❌ 错误示范:密钥裸奔
coder = AssistantAgent(
name="coder",
llm_config={"api_key": "sk-1234567890abcdef..."} # 危险!
)
推荐做法:环境变量 + 配置文件
# config.py - 读取环境变量
import os
# 从环境变量读取(推荐生产环境)
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
OPENAI_BASE_URL = os.getenv("OPENAI_BASE_URL", "https://api.openai.com/v1")
# 本地开发可以用python-dotenv
from dotenv import load_dotenv
load_dotenv() # 自动读取.env文件
.env文件内容(加入.gitignore!):
OPENAI_API_KEY=sk-your-key-here
OPENAI_BASE_URL=https://api.openai.com/v1 # 如果用第三方代理,改这里
.gitignore追加:
.env
coding_workspace/
__pycache__/
*.pyc
Step 4:项目结构规划
my_autogen_project/
├── .env # 密钥(不提交)
├── .gitignore # 忽略敏感文件
├── config.py # 配置读取
├── agents/ # Agent定义
│ ├── __init__.py
│ ├── coder_agent.py
│ └── executor_agent.py
├── workspace/ # 代码执行目录
│ └── .gitkeep
├── examples/ # 示例脚本
│ └── hello_autogen.py
└── requirements.txt # 依赖清单
小结
环境隔离避免冲突,环境变量保护密钥,清晰结构方便维护。这三步做到位,后面的路会顺畅很多。记住:开始写代码前,先确保能安全地跑起来。
三、角色设计篇:打造你的AI搭档
点题:好Agent是调出来的,不是造出来的
同样的底层模型,不同的system message(系统提示词),表现天差地别。这一节教你设计"专业、可靠、不抢戏"的双Agent角色。
痛点分析:角色设计的常见翻车现场
翻车一:提示词太笼统
# ❌ 反面教材:毫无特色的"程序员"
system_message="你是一个 helpful 的AI助手。"
结果:Agent什么都能干,什么都干不精。写代码没规范,出错了不会调试,问它"这段代码有问题吗",它回答"看起来没问题呢"——实际上跑都跑不通。
翻车二:提示词太啰嗦
有人把Python编码规范、PEP8、设计模式、单元测试要求全塞进去,system message长达3000字。结果呢?模型注意力被稀释,关键要求被忽略,反而表现更差。
翻车三:没有明确的行为约束
没告诉Agent"什么时候该停"、“什么情况下要反馈”,导致对话失控。我见过一个案例:Agent写了个排序算法,用户代理说"测试通过",结果Agent非要优化成"更快的版本",又改了五轮,最后引入bug。
解决方案:精准、简洁、有边界
AssistantAgent(程序员)设计模板:
PYTHON_CODER_PROMPT = """你是Python专家Coder,专精算法实现与代码优化。
【核心职责】
1. 根据需求编写完整、可运行的Python代码
2. 代码必须包含:导入语句、函数定义、示例调用
3. 主动添加错误处理(try-except)和输入验证
【编码规范】
- 使用类型提示(typing)
- 函数docstring说明参数和返回值
- 复杂逻辑添加行内注释
【协作规则】
- 代码写完后,明确说"请运行这段代码"
- 收到错误反馈时,分析原因并修复,不辩解
- 任务完成时,回复 TERMINATE
【禁止行为】
- 不执行代码(你没有执行权限)
- 不主动结束对话(除非收到运行成功反馈)
"""
UserProxyAgent(执行者)设计模板:
CODE_EXECUTOR_PROMPT = """你是代码执行代理,负责运行代码并判断结果。
【核心职责】
1. 使用ipython工具执行Python代码
2. 检查输出:成功/报错/超时/无输出
3. 向Coder反馈:结果摘要或错误详情
【判断标准】
- 代码运行成功 + 输出符合预期 → 回复 TERMINATE
- 代码报错 → 复制完整错误信息给Coder
- 输出不符合预期 → 描述差异,要求修改
- 运行超时(>30秒) → 中断并报告
【执行原则】
- 不信任任何代码,必须在隔离环境运行
- 不修改Coder的代码,只执行
- 不主动编写新代码,只反馈结果
"""
关键配置参数详解:
from autogen import AssistantAgent, UserProxyAgent
# 程序员Agent配置
coder = AssistantAgent(
name="python_coder",
system_message=PYTHON_CODER_PROMPT,
llm_config={
"config_list": [{
"model": "gpt-4",
"api_key": os.getenv("OPENAI_API_KEY"),
"temperature": 0.1, # 低温度,更确定性
}],
"timeout": 60,
}
)
# 用户代理配置(重点!)
user_proxy = UserProxyAgent(
name="code_runner",
system_message=CODE_EXECUTOR_PROMPT,
human_input_mode="NEVER", # 完全自动,关键参数!
max_consecutive_auto_reply=10, # 最多自动回复10轮,防失控
code_execution_config={
"work_dir": "workspace", # 代码执行目录
"use_docker": False, # 本地开发关docker,简化配置
"timeout": 30, # 单段代码执行超时
},
llm_config=False, # 执行者不需要LLM,省钱!
)
human_input_mode的三种模式:
| 模式 | 行为 | 适用场景 |
|---|---|---|
ALWAYS |
每轮都问人类 | 调试、关键决策 |
TERMINATE |
只有终止时问人类 | 半自动,最后把关 |
NEVER |
完全自动 | 批量任务、自动化流程 |
新手建议先用TERMINATE,熟悉后再切NEVER。
小结
好的角色设计 = 清晰的职责边界 + 具体的行为约束 + 明确的终止条件。提示词不在长,而在精准。记住:你要设计的是"专才"不是"通才",是"员工"不是"老板"。
四、实战编码篇:跑通第一个双Agent程序
点题:从"能跑"到"好用",只差一个完整闭环
理论讲再多,不如亲手跑一遍。这一节我们完成一个完整任务:让双Agent协作实现"读取CSV文件,计算统计指标,生成可视化图表"。
痛点分析:第一次实战的常见崩溃
崩溃一:代码执行环境隔离问题
Agent生成的代码要读写文件,但执行目录没配置对,导致FileNotFoundError。新手排查半天,发现代码在/tmp执行,但CSV文件在当前目录。
崩溃二:依赖库缺失
Agent写了import pandas as pd,但执行环境没装pandas,直接报错ModuleNotFoundError。Agent收到错误,又生成!pip install pandas,结果执行器没权限,陷入死循环。
崩溃三:可视化输出看不到
生成matplotlib图表了,但执行结果是<Figure size 640x480>这种对象描述,不是图片。Agent以为成功了,实际上用户啥也没看到。
解决方案:预置环境、明确输出、可视化保存
Step 1:准备测试数据
# 提前创建测试数据,避免文件路径问题
# create_sample_data.py
import pandas as pd
import numpy as np
np.random.seed(42)
df = pd.DataFrame({
'date': pd.date_range('2024-01-01', periods=100),
'sales': np.random.normal(1000, 200, 100),
'region': np.random.choice(['华东', '华北', '华南', '华西'], 100),
'product': np.random.choice(['A', 'B', 'C'], 100)
})
df.to_csv('workspace/sales_data.csv', index=False, encoding='utf-8')
print("测试数据已创建:workspace/sales_data.csv")
Step 2:预装必要依赖
# requirements.txt
pandas>=2.0.0
matplotlib>=3.7.0
seaborn>=0.12.0
# 安装
pip install -r requirements.txt
Step 3:完整实战代码
# examples/data_analysis_task.py
import os
import sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from config import OPENAI_API_KEY, OPENAI_BASE_URL
from autogen import AssistantAgent, UserProxyAgent
# ========== 角色定义 ==========
CODER_PROMPT = """你是数据分析专家,专精Python数据处理与可视化。
任务流程:
1. 读取 workspace/sales_data.csv
2. 计算:总销售额、分区域销售额、分产品销售额
3. 生成可视化:区域销售柱状图 + 产品占比饼图
4. 图表保存到 workspace/output_*.png
要求:
- 处理中文显示:plt.rcParams['font.sans-serif'] = ['SimHei']
- 添加数据验证:检查文件存在、列名正确
- 所有图表必须调用 plt.savefig() 保存,不要只show()
- 完成后报告:保存的文件路径和关键统计数字
"""
EXECUTOR_PROMPT = """你是代码执行代理。
执行规则:
- 运行Coder提供的所有代码
- 检查 workspace/ 目录是否生成 output_*.png 文件
- 确认统计结果合理(非空、无异常值)
- 成功则回复 TERMINATE,失败则反馈具体错误
"""
# 创建Agent
coder = AssistantAgent(
name="data_analyst",
system_message=CODER_PROMPT,
llm_config={
"config_list": [{
"model": "gpt-4",
"api_key": OPENAI_API_KEY,
"base_url": OPENAI_BASE_URL,
"temperature": 0.2,
}]
}
)
executor = UserProxyAgent(
name="code_runner",
system_message=EXECUTOR_PROMPT,
human_input_mode="NEVER",
max_consecutive_auto_reply=8,
code_execution_config={
"work_dir": "workspace",
"use_docker": False,
"timeout": 60,
},
llm_config=False,
)
# ========== 启动任务 ==========
task_description = """
请完成销售数据分析任务:
1. 读取 sales_data.csv
2. 计算整体和分维度的销售统计
3. 生成两张可视化图表并保存
4. 汇报关键发现
"""
print("=" * 50)
print("🚀 启动双Agent协作任务")
print("=" * 50)
# 关键:executor发起对话,coder响应
executor.initiate_chat(
recipient=coder,
message=task_description,
clear_history=True,
)
print("\n" + "=" * 50)
print("✅ 任务结束,检查输出文件...")
import glob
outputs = glob.glob("workspace/output_*.png")
print(f"生成图表:{outputs}")
Step 4:运行与观察
执行后,你会看到这样的对话流程:
code_runner (to data_analyst):
请完成销售数据分析任务...
data_analyst (to code_runner):
我来分析数据。首先读取文件并检查...
[代码块1:读取和验证]
code_runner (to data_analyst):
代码执行成功。输出:文件存在,列名为...
data_analyst (to code_runner):
现在计算统计指标并生成可视化...
[代码块2:统计计算 + 可视化]
code_runner (to data_analyst):
代码执行成功。检测到文件:workspace/output_region.png, workspace/output_product.png
统计结果:总销售额98750,华东占比32%...
TERMINATE
关键成功要素:
| 要素 | 作用 | 配置位置 |
|---|---|---|
| 明确保存路径 | 确保输出可验证 | Coder的prompt + 代码中plt.savefig() |
| 中文显示处理 | 避免乱码 | Coder的prompt中指定plt.rcParams |
| 文件存在检查 | 提前发现路径问题 | Coder的数据验证逻辑 |
| 执行超时设置 | 防止无限等待 | code_execution_config["timeout"] |
小结
一个完整的双Agent任务 = 清晰的需求描述 + 预置的执行环境 + 可验证的输出目标 + 明确的终止条件。跑通这个例子,你就掌握了AutoGen的核心套路。
五、进阶技巧篇:让协作更丝滑
点题:从"能用"到"好用",细节决定体验
基础功能跑通后,如何让双Agent协作更高效、更稳定、更省钱?这一节分享四个实战技巧。
技巧一:对话历史的智能管理
痛点:长对话导致上下文溢出,模型"遗忘"早期需求,或者Token费用暴涨。
方案:关键信息摘要 + 定期重置。
from autogen import ChatResult
# 获取对话历史
chat_history: ChatResult = executor.initiate_chat(
recipient=coder,
message=task_description,
)
# 提取关键信息,用于新对话
summary = f"""
任务摘要:{task_description}
关键决策:{[msg['content'] for msg in chat_history.chat_history if '决定' in msg['content']]}
最终代码:{chat_history.chat_history[-2]['content'] if len(chat_history.chat_history) > 1 else 'N/A'}
"""
# 新任务时,用摘要代替完整历史
new_task = f"基于之前任务:{summary}\n\n新需求:优化性能"
技巧二:分层提示词优化
痛点:复杂任务中,Agent容易遗漏部分要求。
方案:用结构化标记强化关键信息。
STRUCTURED_PROMPT = """你是Python专家。收到任务后,按以下步骤执行:
<steps>
1. [分析] 理解需求,识别输入输出
2. [设计] 确定算法和数据结构
3. [编码] 实现功能,添加注释
4. [验证] 自测边界情况
</steps>
<constraints>
- 时间复杂度不超过 O(n log n)
- 内存使用不超过 100MB
- 必须处理空输入和异常值
</constraints>
<output_format>
```python
# 完整代码
...
- [ ] 已测试正常情况 - [ ] 已测试边界情况 - [ ] 已检查性能 """ ```
XML标签比纯文本更容易被模型准确解析。
技巧三:成本监控与限速
痛点:AutoGen自动多轮对话,费用不可控。
方案:自定义回调监控Token使用。
import functools
def token_monitor(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
# 记录开始
print(f"[监控] 开始调用: {func.__name__}")
result = func(*args, **kwargs)
# 尝试获取Token信息(取决于具体实现)
if hasattr(result, 'cost'):
print(f"[监控] 本次消耗: ${result.cost:.4f}")
return result
return wrapper
# 包装关键调用
monitored_chat = token_monitor(executor.initiate_chat)
# 或者更简单的:设置预算上限
llm_config = {
"config_list": [...],
"max_tokens": 2000, # 单次回复上限
"cache_seed": 42, # 启用缓存,重复请求省钱
}
技巧四:错误恢复与重试
痛点:网络波动或API限流导致任务中断。
方案:包装 resilient 调用。
import time
from tenacity import retry, stop_after_attempt, wait_exponential
class ResilientAgent:
def __init__(self, agent):
self.agent = agent
self.max_retries = 3
@retry(
stop=stop_after_attempt(3),
wait=wait_exponential(multiplier=1, min=4, max=10),
retry=lambda e: isinstance(e, (TimeoutError, ConnectionError))
)
def send_message(self, message, recipient):
try:
return self.agent.initiate_chat(
recipient=recipient,
message=message,
)
except Exception as e:
print(f"[重试] 第{self.send_message.retry.statistics['attempt_number']}次尝试失败: {e}")
raise
def run_with_fallback(self, task, fallback_model="gpt-3.5-turbo"):
"""主模型失败时降级"""
try:
return self.send_message(task, self.agent)
except Exception as e:
print(f"[降级] 切换到备用模型: {fallback_model}")
# 临时修改配置
original_config = self.agent.llm_config
self.agent.llm_config["config_list"][0]["model"] = fallback_model
result = self.send_message(task, self.agent)
self.agent.llm_config = original_config
return result
小结
进阶技巧的核心是可控性——控制成本、控制质量、控制风险。对话管理防遗忘,结构化提示防遗漏,成本监控防破产,错误恢复防崩溃。四管齐下,生产环境也能稳如老狗。
六、避坑指南篇:新手必看的生存法则
点题:前人踩过的坑,都是你的护城河
这一节汇总我和社群小伙伴的血泪经验,帮你避开80%的常见问题。
坑点一:代码执行的安全黑洞
现象:Agent生成的代码执行了rm -rf /或者读取了敏感文件。
防御:
# 严格限制执行环境
code_execution_config = {
"work_dir": "workspace", # 只允许访问此目录
"use_docker": True, # 生产环境必须用Docker隔离
"docker_image": "python:3.10-slim", # 指定干净镜像
"timeout": 30,
# 禁止的危险操作(需要自定义执行器实现)
"forbidden_commands": ["rm -rf", "eval(", "exec("],
}
底线原则:永远假设Agent生成的代码是恶意的,执行环境必须可丢弃。
坑点二:模型幻觉导致虚假成功
现象:Agent报告"任务完成",但实际上文件没生成、结果是编造的。
防御:强制可验证的输出。
VERIFICATION_PROMPT = """...你的原有prompt...
【强制验证】
回复"任务完成"前,必须:
1. 列出所有生成的文件路径
2. 说明每个文件的大小(字节)
3. 提供关键结果的MD5校验或截图描述
"""
坑点三:对话陷入死循环
现象:两个Agent来回扯皮,“我觉得可以优化”、“再试试另一种方案”…
防御:硬性终止条件。
from autogen import config_list_from_json
# 方法1:轮数限制
max_consecutive_auto_reply=5 # 单Agent最多连续回复5次
# 方法2:内容检测终止
def is_termination_msg(message):
"""检测到这些模式就终止"""
content = message.get("content", "")
patterns = [
"TERMINATE",
"任务完成",
"无需修改",
r"第\d+次尝试.*仍?失败", # 多次失败
]
import re
return any(re.search(p, content) for p in patterns)
coder = AssistantAgent(
...,
is_termination_msg=is_termination_msg,
)
坑点四:版本兼容性噩梦
现象:代码在AutoGen 0.2.0能跑,升级到0.2.5报错。
防御:锁定版本 + 隔离环境。
# requirements.txt 精确锁定
pyautogen==0.2.0
# 不自动升级,除非测试通过
坑点五:中文编码与路径问题
现象:Windows上路径用\,Linux用/,中文文件名乱码。
防御:统一使用Pathlib,强制UTF-8。
from pathlib import Path
import platform
# 跨平台路径
work_dir = Path("workspace") / "outputs"
work_dir.mkdir(parents=True, exist_ok=True)
# 强制UTF-8(尤其在Windows)
import locale
if platform.system() == "Windows":
locale.setlocale(locale.LC_ALL, '.UTF-8')
# 文件操作
file_path = work_dir / "中文报告.csv"
with open(file_path, 'w', encoding='utf-8-sig') as f: # BOM头,Excel兼容
...
快速排错检查清单
| 现象 | 可能原因 | 检查点 |
|---|---|---|
| 导入autogen报错 | Python版本/依赖冲突 | python --version, 是否隔离环境 |
| API连接失败 | 密钥/代理配置错误 | echo $OPENAI_API_KEY, base_url |
| 代码不执行 | 执行器配置错误 | code_execution_config参数 |
| 输出文件找不到 | 工作目录不一致 | work_dir绝对路径确认 |
| 费用异常高 | 对话未终止/循环 | max_consecutive_auto_reply, 终止条件 |
| 中文乱码 | 编码未指定 | encoding='utf-8', plt.rcParams |
小结
安全、验证、终止、版本、编码——这五个维度守住了,AutoGen的坑就踩得差不多了。记住:不要相信,要验证;不要假设,要检查;不要裸奔,要隔离。
写在最后
咱们今天从AutoGen的核心概念聊起,一步步搭环境、设角色、跑实战、学技巧、避大坑,完整走完了双Agent协作编程的入门之路。
说实话,我第一次用AutoGen的时候,也是一头雾水——这玩意儿比直接调API复杂多了,两个Agent来回对话,看着就头大。但当我真正跑通第一个任务,看到Coder写代码、Executor自动执行、报错后自动修复、最终输出正确结果的全过程,那种"哇,这俩AI在替我干活"的震撼,至今难忘。
多Agent协作不是炫技,是解决真实痛点的方案。一个人写代码,容易钻牛角尖;两个人协作,能互相补位。AI Agent也是如此——让专业的角色干专业的事,建立清晰的协作流程,设置合理的边界条件,整个系统的可靠性会远超单Agent。
编程之路不易,但每一步成长都算数。AutoGen只是工具,背后的思维——分解问题、定义角色、建立协作、持续迭代——才是 transferable 的能力。掌握了这个套路,不管是用AutoGen、LangGraph还是未来的新框架,你都能快速上手。
保持好奇,持续学习,你也能成为驾驭AI Agent的高手。下次咱们继续深入,聊聊多Agent的群聊模式、人机协作的混合流程,以及如何把这套方案用到真实的业务场景里。
期待和你继续这段旅程。
关注私信备注:“资料代找获取”,全网计算机学习资料代找:例如:
《课程:2026 年多模态大模型实战训练营》
《课程:AI 大模型工程师系统课程 (22 章完整版 持续更新)》
《课程:AI 大模型系统实战课第四期 (2026 年开课 持续更新)》
《课程:2026 年 AGI 大模型系统课 23 期》
《课程:2026 年 AGI 大模型系统课 21 期》
《课程:AI 大模型实战课 8 期 (2026 年 2 月最新完结版)》
《课程:AI 大模型系统实战课三期》
《课程:AI 大模型系统课程 (2026 年 2 月开课 持续更新)》
《课程:AI 大模型全阶课程 (2025 年 12 月开课 2026 年 6 月结课)》
《课程:AI 大模型工程师全阶课程 (2025 年 10 月开课 2026 年 4 月结课)》
《课程:2026 年最新大模型 Agent 开发系统课 (持续更新)》
《课程:LLM 多模态视觉大模型系统课》
《课程:大模型 AI 应用开发企业级项目实战课 (2026 年 1 月开课)》
《课程:大模型智能体线上速成班 V2.0》
《课程:Java+AI 大模型智能应用开发全阶课》
《课程:Python+AI 大模型实战视频教程》
《书籍:软件工程 3.0: 大模型驱动的研发新范式.pdf》
《课程:人工智能大模型系统课 (2026 年 1 月底完结版)》
《课程:AI 大模型零基础到商业实战全栈课第五期》
《课程:Vue3.5+Electron + 大模型跨平台 AI 桌面聊天应用实战 (2025)》
《课程:AI 大模型实战训练营 从入门到实战轻松上手》
《课程:2026 年 AI 大模型 RAG 与 Agent 智能体项目实战开发课》
《课程:大模型训练营配套补充资料》
更多推荐

所有评论(0)