什么是 AutoGen?

AutoGen 是一个用于开发大型语言模型(LLM)应用的开源框架。它的核心设计理念是“多智能体对话(Multi-Agent Conversation)”:将复杂的任务分配给多个具有不同人设、工具和系统提示词的可定制智能体(ConversableAgent),并让它们通过自然语言互相发送消息(Message)来协作解决问题。这种架构极大地降低了构建高度自治 AI 系统的门槛。

快速了解

全称Microsoft AutoGen Framework
创建时间由微软研究院开发,是目前 Github 上 Star 数最高的多智能体框架之一

工作原理

随着任务复杂度的提升,单个大模型往往无法同时兼顾代码编写、测试、逻辑推理和信息检索。AutoGen 提供了一种极其优雅的解决方案:组建一个虚拟团队。例如,你可以创建一个“程序员” Agent 和一个“代码执行器” Agent(通常由本地代码环境驱动)。当用户提出需求时,“程序员”写出代码发给“代码执行器”,“执行器”在本地运行后将错误日志再发回给“程序员”进行修改。整个过程通过自然语言对话驱动,无需编写复杂的控制流逻辑。此外,AutoGen 支持灵活的拓扑结构(如群聊 GroupChat、层级结构等),并允许人类用户(Human-in-the-loop)随时无缝介入对话,纠正 Agent 的行为。

主要特点

  • 对话驱动:通过智能体之间的自然语言 Message 传递来推进任务,而非硬编码的流程图
  • 灵活的组网拓扑:支持两个 Agent 单聊,也支持多个 Agent 在一个群聊(GroupChat)中动态发言
  • 内置代码执行能力:Agent 可以自动生成 Python 代码并在安全的 Docker 沙箱中运行获取结果
  • 人类无缝介入:允许将人类配置为一个 Agent(UserProxyAgent),在需要时提供输入或审批
  • 可定制化极强:每个 Agent 都可以配置不同的 LLM(如 GPT-4, Llama 3)、不同的工具和 System Prompt

常见用途

  1. 自动化软件工程:前端 Agent 写 UI,后端 Agent 写 API,测试 Agent 进行集成测试
  2. 复杂数据分析与可视化:Agent 编写爬虫获取数据,并生成 Python 脚本绘制图表
  3. 多角色商业研讨:模拟 CEO、CTO 和财务总监对一份商业计划书进行多角度的讨论和辩论
  4. 教育与辅导:一个 Agent 扮演苏格拉底式的导师,另一个 Agent 扮演学生,进行教学互动

示例

loading...
Loading code...

常见问题

AutoGen 和传统的 Prompt Chain 有什么区别?

传统的 Prompt Chain(如 LangChain 的早期版本)是单向、线性的:A 的输出交给 B,B 的输出交给 C。而在 AutoGen 中,A 和 B 之间是双向对话关系,它们可以针对一个错误来回沟通多次,这种涌现式的协作能力更强。

如何防止 AutoGen 中的 Agent 陷入死循环?

由于 Agent 之间可能会相互推诿或重复发送相同的错误代码,AutoGen 提供了 `max_consecutive_auto_reply` 参数来硬性限制自动回复的次数。同时,通过优化 System Prompt 明确退出条件(如让 Agent 在任务完成时输出 TERMINATE)也是关键。

AutoGen 可以在本地模型上运行吗?

完全可以。AutoGen 的 `llm_config` 可以配置兼容 OpenAI API 格式的本地服务端点(Endpoint)。结合 Ollama 或 vLLM,你可以在完全断网的环境下运行整个多智能体系统。

相关工具

相关术语

相关文章