Agent 开发实战:用 AutoGen 构建多智能体协作系统

项目背景

Agent 是 2024 年 AI 领域最火热的方向之一。本文通过实战案例演示如何构建多智能体系统。

多智能体协作
多智能体协作

AutoGen 简介

AutoGen 是微软开源的多智能体对话框架,特点:

  • 🤖 支持多 Agent 协作
  • 💬 自动化对话管理
  • 🔧 高度可定制
  • 📊 内置代码执行能力

系统架构

┌─────────────────────────────────────────────────┐ │ GroupChat Manager │ ├─────────────────────────────────────────────────┤ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ Planner │ │ Coder │ │ Critic │ │ │ │ Agent │ │ Agent │ │ Agent │ │ │ └────┬────┘ └────┬────┘ └────┬────┘ │ │ │ │ │ │ │ └────────────┼────────────┘ │ │ ▼ │ │ ┌─────────────┐ │ │ │ Executor │ │ │ └─────────────┘ │ └─────────────────────────────────────────────────┘

代码实现

1. 定义 Agent

import autogen # 配置 LLM config_list = [{"model": "gpt-4", "api_key": "your-key"}] # 规划 Agent planner = autogen.AssistantAgent( name="Planner", system_message="你是一个项目规划专家,负责拆解任务。", llm_config={"config_list": config_list} ) # 编码 Agent coder = autogen.AssistantAgent( name="Coder", system_message="你是一个资深程序员,负责编写代码。", llm_config={"config_list": config_list} ) # 评审 Agent critic = autogen.AssistantAgent( name="Critic", system_message="你是一个代码评审专家,负责检查代码质量。", llm_config={"config_list": config_list} )

2. 创建群聊

# 用户代理 user_proxy = autogen.UserProxyAgent( name="User", human_input_mode="NEVER", code_execution_config={"work_dir": "workspace"} ) # 创建群聊 groupchat = autogen.GroupChat( agents=[user_proxy, planner, coder, critic], messages=[], max_round=10 ) manager = autogen.GroupChatManager(groupchat=groupchat)

3. 启动任务

user_proxy.initiate_chat( manager, message="请帮我开发一个天气查询 API" )

Agent 协作流程
Agent 协作流程

运行效果

Planner: 我来分析这个需求,需要以下步骤: 1. 设计 API 接口 2. 实现天气数据获取 3. 添加缓存机制 ... Coder: 好的,我来实现代码: [编写代码] Critic: 代码审查意见: - 建议添加错误处理 - 需要增加请求限流 ...

总结

AutoGen 让多智能体开发变得简单,是构建复杂 AI 系统的利器。