AutoGen 是一个由 Microsoft Research 开发的 LLM (大语言模型) 编排框架,用于 多智能体协作 和 自动化任务执行。它允许多个 LLM 代理 (Agents) 互相交流、分工协作,从而自动完成复杂任务,如 代码生成、数据分析、RAG (检索增强生成)、自动问答 等。
多智能体协作(Multi-Agent Collaboration)
可配置 & 易扩展
LangChain
、FAISS
、SQL
数据库等。支持长对话 & 记忆
内置异步 & 交互机制
message passing
(消息传递) 方式进行交流。AutoGen 的核心是 多智能体架构,一个完整的任务通常由多个 LLM 代理(Agents)协作完成。常见的 智能体角色 包括:
示例:一个 AutoGen 代码调试系统
UserProxyAgent ⟶ AssistantAgent (编写代码) ⟶ CriticAgent (检查错误) ⟶ AssistantAgent (修正代码)
整个流程就像一个 AI 团队协作 来完成复杂任务。
AssistantAgent
生成代码 → CriticAgent
检查错误 → AssistantAgent
修正 → 执行代码并返回结果
。RetrievalAgent
负责从 FAISS/数据库中检索信息 → AssistantAgent
负责总结答案。from autogen import AssistantAgent, UserProxyAgent
# 创建用户代理 (User)
user_agent = UserProxyAgent(name="user", human_input_mode="ALWAYS")
# 创建 AI 助手代理 (Assistant)
assistant = AssistantAgent(name="assistant")
# 让 User 代理给 Assistant 代理发送任务
user_agent.initiate_chat(assistant, message="请帮我写一个Python函数,计算斐波那契数列")
这个示例里:
user_agent
代表人类用户,提出需求。assistant
代理负责生成 Python 代码来计算斐波那契数列。特性 | AutoGen | LangChain |
---|---|---|
多智能体协作 | ✅ 是核心功能 | ❌ 主要是单一 LLM 交互 |
RAG 支持 | ✅ 通过代理协作实现 | ✅ 内置 FAISS / ChromaDB |
代码自动化 | ✅ 强调 AI 代理写代码 | ❌ 代码生成支持较弱 |
可扩展性 | ✅ 可以自定义代理角色 | ✅ 模块化设计 |
适用场景 | 复杂任务、代码调试、自动化 | 问答系统、知识库检索 |
✅ LangChain 适合 RAG + LLM
✅ AutoGen 适合 AI 代理协作 & 任务自动化
✅ AutoGen 是一个 AI 代理编排框架,能让多个 LLM 代理 协作 来完成复杂任务。
✅ 适用于 RAG、代码调试、任务自动化、复杂问答系统 等。
✅ 比 LangChain 更侧重 AI 代理间的交互和多轮任务执行。
如果你在做 RAG 知识库,可以结合 AutoGen + FAISS 来让 AI 代理 检索 + 生成 结构化回答。