徐慧志的个人博客

2025-11-03 读 AutoGen 论文

发布于 2025年11月03日  •  1 分钟  • 88 字
Table of contents

最近微软把AutoGen和Semantic Kernel 整合到一个框架了,叫做 Agent Framework。这两个框架,之前一个负责多智能体协作,一个负责写胶水代码,提供流程框架和中间件。

最近看了看AutoGen的论文,主要为了搞清楚它的智能体是如何协作运行的。下面介绍一下原理。

1. 什么是AutoGen?

简单来说,AutoGen就是一个让多个AI智能体能够互相聊天、合作的框架。

1.1 核心需求

AutoGen的设计目标是构建一个多智能体对话框架,具有通用抽象和有效实现,同时具备满足不同应用需求的灵活性。该框架需要考虑两个关键问题:

1.在多智能体协作中,单个智能体如何实现可用、可复用、定制化和高效?

2.如何开发一个能够适应多种智能体对话模式的统一接口?

1.2 技术可行性

AutoGen的提出基于三个关键的技术可行性因素。

首先,大语言模型具备整合反馈信息的能力,这些反馈可以来源于人类或者其他智能体。

其次,智能体能够提供或者接收推理、观察、评价和验证。

最后,在对话过程中,参与者能够提供分析和评价性反馈。基于这三点可以让多智能体协作。

2. 核心概念

2.1 可定制化智能体(Customizable and conversable agents)

AutoGen的核心概念是可定制化和可对话的智能体。Customizable and conversable agents具备两个关键特性:可定制性意味着可以根据需求选择不同的能力;可对话性则指智能体能够接收、反应和响应消息。

2.2 对话编程范式(Conversation programming)

AutoGen提出了一种以智能体间对话为中心的编程范式,这种范式能够简化开发流程,提高效率。对话编程需要考虑两个核心要素:

1.定义具有特定能力和角色的可对话智能体集合

2.通过以对话为中心的计算和控制来编程智能体间的交互行为

3. 智能体能力体系

3.1 三大能力来源

AutoGen的智能体能力由三大来源驱动:大型语言模型、人类和工具。

3.1.1 大型语言模型能力

基于LLM的智能体能够利用高级大型语言模型的多种能力,包括角色扮演、隐性状态推断和在对话历史条件下取得进展的能力。在接口层面,系统还提供结果缓存、错误处理、消息模板等功能。

3.1.2 人类参与能力

AutoGen通过人类支持的智能体在智能体对话中引入人类参与。通过配置可以设置参与的程度和模式。人类支持的智能体在对话过程中根据代理配置征求人类输入。

3.1.3 工具执行能力

工具支持的智能体可以执行各种工具,例如执行代码或者函数,扩展了智能体的功能边界。

3.2 智能体分类体系

AutoGen建立了完整的智能体分类体系:

4. 对话编程机制

4.1 编程模式

对话编程范式需要考虑两个关键维度:

1.计算(Computation):多智能体对话中智能体为计算响应所采取的行动

2.控制流(Control Flow):计算发生的条件

4.2 自动回复机制

AutoGen的核心创新在于实现了统一接口和自动回复机制,使聊天自动化成为可能。该机制包括send、receive和generate_reply三个核心功能。一旦对话开始,系统可以自动运行,无需额外控制。

智能体自动回复机制是AutoGen的核心特性:

4.3 控制机制

AutoGen通过编程和自然语言的融合实现控制,支持动态对话流,既支持预定义流程,也支持动态对话流。

5. 总结

AutoGen 支持多个 AI 智能体通过对话协作完成任务。它不仅支持智能体之间的交互,还允许人类在关键环节介入,形成“人机协同”的工作流。

AutoGen的重点在于多智能体之间的交互,它最大的优势在于提供通信框架。

  1. 定义不同的具有不同能力和角色的agents
  2. 通过以对话为中心的计算和控制来编程智能体之间的交互行为
Sein heißt werden, leben heißt lernen.

Der einfache Weg is immer verkehrt.