基于 AutoGen 构建多智能体互动对话系统
1. 引言
随着大语言模型(LLM)技术的快速发展,单一的智能体已难以满足复杂任务的需求。多智能体协作系统(Multi-Agent Systems)通过模拟人类团队分工,能够处理更复杂的逻辑推理、代码生成及创意写作任务。AutoGen 是一个开源框架,旨在简化多智能体应用程序的开发。本教程将深入探讨如何利用 AutoGen 构建具备高度互动性的多智能体应用,从基础环境搭建到高级对话控制策略。
2. 环境安装指南
在开始之前,请确保您的开发环境已配置好 Python 3.10 及以上版本。推荐使用 Conda 创建独立虚拟环境以避免依赖冲突。
conda create -n pyautogen python=3.10
conda activate pyautogen
pip install pyautogen
若需使用特定模型 API(如阿里云通义千问),还需安装相应的 SDK 并配置环境变量。
3. ConversableAgent 核心解析
AutoGen 的核心组件是 ConversableAgent。它代表了能够发送和接收消息的实体。每个 Agent 由强大的 LLM 支持、代码执行引擎、外部工具接口及人性化设计组件构成。
3.1 关键参数详解
初始化 Agent 时,以下参数至关重要:
- name: 设定智能体名称,用于区分不同角色。
- system_message: 系统提示词,定义角色的背景、人设及行为准则。这是塑造 Agent 性格的关键。
- is_termination_msg: 一个回调函数,用于判断当前消息是否应终止对话。例如检测关键词'再见'。
- max_consecutive_auto_reply: 限制连续自动回复次数,防止死循环或过度消耗 Token。
- human_input_mode: 控制人类介入程度,可选值包括 "ALWAYS"(总是询问)、"NEVER"(完全自动)、"TERMINATE"(仅在收到终止信号时停止)。
- function_map: 绑定可调用函数,使 Agent 具备调用外部工具的能力。
- llm_config: 配置 LLM 连接信息,包括模型名称、API Key、温度(temperature)等。
- code_execution_config: 配置代码执行环境,如 Docker 容器或本地沙箱,用于安全运行生成的代码。
- description: 对外介绍 Agent 能力,通常用于其他 Agent 识别其功能。
- chat_messages: 提供历史对话记录,赋予 Agent 上下文记忆能力。
3.2 单智能体示例
创建一个基础的聊天机器人,代码如下:
import os
from autogen import ConversableAgent
llm_config = {
"config_list": [
{"model": "qwen-max-1201", "api_key": os.getenv("QWEN_API_TOKEN"),
"temperature": 0.1, "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1"}
],
}
agent = ConversableAgent(
name=,
llm_config=llm_config,
code_execution_config=,
function_map=,
human_input_mode=
)
reply = agent.generate_reply(messages=[{: , : }])
(reply)


