元哥手把手玩转AutoGen AgentChat:轻松组建你的第一个AI Agent“小队”

90 阅读6分钟

来了来了!各位观众,你们的元哥带着代码走来了!

前面两篇,咱们把AutoGen的理论和核心(Core)聊了个底朝天。是不是感觉“道理都懂,但就是没爽到”?

别急,今天这篇,咱们就“撸起袖子加油干”!元哥我将手把手带大家玩转AutoGen AgentChat,从零开始,组建你的第一个能干活、会聊天的AI Agent“小队”。

告别理论,唯有实战,才能让你真正感受到AutoGen的威力!

AgentChat:你的“AI Agent样板间”

如果说AutoGen Core是“毛坯房”,那AgentChat就是为你准备好的“精装样板间”。

微软的工程师们已经预料到大家的需求,提前封装好了很多常用的Agent和功能,比如:

  • AssistantAgent:这是你的主力“打工人”,一个内置了LLM(大语言模型)能力的通用Agent,能聊天,能调用工具。
  • UserProxyAgent:这是你的“代言人”,它代表人类用户参与到对话中,可以接收你的指令,也可以帮你执行代码。
  • GroupChatManager:这是“群主”或“会议主持人”,负责管理多个Agent的对话流程。

有了这些“预制件”,我们搭建Agent应用就跟搭乐高一样,简单又有趣。

实战目标:打造一个“AI编程铁三角”

我们今天的目标,是创建一个包含三名“成员”的AI小队:

  1. boss(老板): 由 UserProxyAgent 扮演,也就是我们自己。负责下达最终指令,并在关键时刻“拍板”。
  2. coder(程序员): 由 AssistantAgent 扮演,负责根据需求写Python代码。
  3. reviewer(审查员): 同样由 AssistantAgent 扮演,但赋予他人设(System Message),让他成为一个挑剔的代码审查专家,负责检查coder写的代码。

任务流程boss提出需求 -> coder写代码 -> reviewer审查代码 -> boss确认最终代码 -> boss选择是否执行代码。

开干!四步组建你的AI小队

第一步:环境准备和安装

首先,你得有个Python环境(3.10以上版本)。元哥我强烈建议你搞个虚拟环境,免得把系统环境搞得一团糟。

# 创建并激活虚拟环境 (macOS/Linux)
python3 -m venv .venv
source .venv/bin/activate

# (Windows)
# python -m venv .venv
# .\.venv\Scripts\activate

# 安装AutoGen AgentChat和OpenAI扩展
pip install autogen-agentchat autogen-ext-openai
第二步:配置你的LLM

Agent们的大脑——LLM,得先配置好。你需要一个OpenAI的API Key。在你的项目根目录创建一个名为OAI_CONFIG_LIST的文件(注意,没有后缀名),格式如下:

[
    {
        "model": "gpt-4o",
        "api_key": "sk-YourAPIKeyHere"
    }
]

注意:sk-YourAPIKeyHere换成你自己的真实API Key。这个文件非常重要,请妥善保管,不要上传到任何公共代码库!

第三步:编写核心代码

新建一个Python文件,比如app.py,然后把下面的代码复制进去。元哥我已经在代码里加了详细的注释,保证你能看懂每一步是干嘛的。

import autogen
from autogen.agentchat import AssistantAgent, UserProxyAgent, GroupChat, GroupChatManager

# 1. 配置LLM
# AutoGen会自动从OAI_CONFIG_LIST文件中加载配置
config_list = autogen.config_list_from_json(
    "OAI_CONFIG_LIST",
    filter_dict={"model": ["gpt-4o"]}, # 确保我们用的是GPT-4o模型
)

# LLM的配置,我们希望结果更有确定性,所以将temperature设为0
llm_config = {"config_list": config_list, "temperature": 0}

# 2. 创建我们的“AI铁三角”

# 成员一:boss (我们自己)
# UserProxyAgent是人类的代理,code_execution_config设置为"manual"意味着
# 在执行代码前,它会停下来寻求人类的批准。
boss = UserProxyAgent(
    name="Boss",
    system_message="A human admin.",
    code_execution_config={"work_dir": "coding", "use_docker": False, "last_n_messages": 2}, # use_docker=False表示在本地直接执行
    human_input_mode="MANUAL" # 设置为手动模式,boss的每次回复都需要你手动输入
)

# 成员二:coder (程序员)
# AssistantAgent是基于LLM的Agent
coder = AssistantAgent(
    name="Coder",
    llm_config=llm_config,
    system_message="""You are a professional programmer. Your job is to write Python code to solve tasks. 
    You must follow the coding standards and write clean, efficient code.
    When you are done, reply with only the code block. Do not add any explanation.
    """
)

# 成员三:reviewer (代码审查员)
reviewer = AssistantAgent(
    name="Reviewer",
    llm_config=llm_config,
    system_message="""You are a senior code reviewer. Your job is to check the code provided by the Coder.
    You need to check for bugs, style issues, and potential improvements.
    If you find any issues, provide constructive feedback. If the code is perfect, say 'LGTM' (Looks Good To Me).
    """
)

# 3. 创建群聊和群主

# 定义群聊成员
groupchat = GroupChat(agents=[boss, coder, reviewer], messages=[], max_round=10)

# 创建群主/经理
manager = GroupChatManager(groupchat=groupchat, llm_config=llm_config)

# 4. 开始聊天!

# 使用boss发起一个任务
boss.initiate_chat(
    manager,
    message="Find the latest closing price of NVIDIA stock (NVDA) and save it to a file named 'nvda_price.txt'.",
)
第四步:运行并观察

保存好代码,在你的终端里运行它:

python app.py

接下来,你将会在终端里看到一场精彩的“AI团队协作”大戏!

  • Boss(你)首先发言,提出任务。
  • Manager(群主)会点名,让Coder开始干活。
  • Coder会思考如何解决问题,它可能会先写一段代码去安装yfinance库(用来获取股票数据),然后写另一段代码去获取价格并保存。
  • Reviewer会跳出来,对Coder的代码进行审查。它可能会提出一些修改建议,比如增加错误处理。
  • Coder会根据反馈修改代码。
  • ……
  • 这个过程会循环往复,直到Reviewer认为代码完美,说出“LGTM”。
  • 最后,代码会交到Boss(你)面前,终端会询问你是否执行(EXECUTE or TERMINATE)。你输入EXECUTE,代码就会在本地运行,然后你就会在coding目录下找到nvda_price.txt文件。

整个过程,你就像一个真正的老板,看着你的AI员工们高效地协作,完成你交办的任务。是不是感觉权力的小火苗在心中燃起?

元哥说

看到这里,你是不是已经迫不及待想自己动手试试了?

今天的实战,只是AutoGen AgentChat能力的冰山一角。我们只用了最基础的AssistantAgentUserProxyAgent,就构建了一个有模有样的自动化工作流。

在下一篇,也是我们这个系列的收官之作中,元哥将带大家探索更高级的玩法:

  • 如何给你的Agent装上“记忆”和“知识库”(RAG),让它成为特定领域的专家?
  • 如何定义更复杂的Agent工作流(GraphFlow)?
  • 如何打造你自己的专属Agent?

技术的魅力就在于不断探索和创造。希望今天的实-战能为你打开一扇新的大门。

快去动手组建你自己的AI小队吧!如果你遇到了什么问题,或者有什么酷炫的想法,欢迎在评论区和元哥交流!

【引用说明】 本文内容基于对 Microsoft AutoGen 官方文档的理解和总结。 参考链接:

  1. AutoGen AgentChat - Quickstart: microsoft.github.io/autogen/sta…
  2. AutoGen AgentChat - Agents: microsoft.github.io/autogen/sta…
  3. AutoGen AgentChat - Teams: microsoft.github.io/autogen/sta…

大家也可微信搜索“极客纪元”并关注我,获得更多分享。

扫码_搜索联合传播样式-标准色版.png