[LLM Agents F24] Agentic AI Frameworks & AutoGen + Building a Multimodal Knowledge Assistant
| 字段 | 内容 |
|---|---|
| 作者/整理 | 基于公开课程资料整理 |
| 来源 | Berkeley RDI |
| 日期 | 2024年9月23日 |
![[LLM Agents F24] Agentic AI Frameworks & AutoGen + Building a Multimodal Knowledge Assistant](cover.jpg)
引言:Agentic AI 的未来
本讲由两位嘉宾联合呈现:Chi Wang(Microsoft Research,AutoGen 框架核心开发者)介绍 Agentic AI 框架与 AutoGen;Jerry Liu(LlamaIndex 创始人兼 CEO)介绍多模态知识助手的构建。
什么是 Agentic AI?
Agentic AI 的核心价值
- 自然语言接口:用户用自然语言描述需求,Agent 自动理解并执行
- 自主执行复杂任务:通过多步推理和工具调用,在最少人类监督下完成任务
- 新型软件架构:多个 Agent 协作构成模块化、可递归组合的系统
示例展示了 Magentic-One(基于 AutoGen)自动构建网站的全过程:分析任务、安装依赖、多 Agent 协作编写代码、编译运行,甚至在关键代码被删除后能自我修复。
本章小结
Agentic AI 不仅是 LLM 的应用层,更代表了一种全新的软件开发范式——从“编写代码”到“编排 Agent”。
AutoGen:多 Agent 对话编程框架
核心设计理念
AutoGen 的设计基于一个核心洞察:对话(conversation)是最基础的 Agent 交互原语。
为什么选择对话作为基础原语
对话是人类推进学习和证明定理的基本方式。从 ChatGPT 的成功可以看出,多轮对话天然适合迭代改进和协作求解。以对话为中心的设计可以自然地派生出所有其他 Agent 交互模式。
构建 Agent 应用只需两步:
- 定义 Agent:每个 Agent 可以使用 LLM、工具或人类输入作为后端
- 让 Agent 对话:通过对话模式(两人对话、嵌套对话、群聊等)编排协作
Conversable Agent 抽象
AutoGen 的统一抽象——Conversable Agent——将不同类型的实体(LLM、工具、人类)统一为可对话的 Agent:
- 可以选择 LLM 作为后端(如 GPT-4、Claude)
- 可以使用工具(Python 代码执行、API 调用等)
- 可以接入人类输入
- 可以混合多种后端
- 支持嵌套——Agent 内部可以包含其他 Agent 的对话
对话模式
- 两人对话:最简单的模式,已支持 Reflection(写作 Agent + 评审 Agent 迭代改进)
- Sequential Chat:多个两人对话串联,如嵌套的多角度评审(SEO 评审 → 法律评审 → 伦理评审 → 元评审)
- Nested Chat:Agent 内部发起子对话,如 Commander Agent 先与 Writer 对话获取代码,再与 Safeguard 对话验证安全性
- Group Chat:多个不同角色的 Agent 在群组中动态选择发言者,支持约束条件和状态转移逻辑
Multi-Agent 的优势
为什么多 Agent 比单 Agent 好?
实验表明,将任务分解给专门的 Agent(如 Writer + Safeguard)比让单个 Agent 同时处理所有指令效果更好:GPT-4 多 Agent 方案比单 Agent 方案在安全检查上高出 20%,GPT-3.5 差距更大。任务越复杂、模型越弱,多 Agent 的优势越明显。
从编程角度看,多 Agent 架构还具有:
- 更好的模块化和可维护性
- 支持自然的人类参与(人类接管任一 Agent 角色)
- 易于扩展(替换单个 Agent 不影响整体)
AutoBuild:自动构建 Agent 团队
AutoBuild 解决“为特定任务设计什么 Agent 团队”的问题:
- 用户描述高层需求
- 系统自动建议不同角色的 Agent
- Agent 组成 Group Chat 协作完成任务
- Adaptive Build 进一步支持动态分步构建 Agent 团队
本章小结
AutoGen 以对话为核心原语,提供了灵活且强大的多 Agent 编程框架。其设计哲学是“定义 Agent + 让它们对话”,通过嵌套和组合,可以递归地构建任意复杂的 Agent 系统。
LlamaIndex:构建多模态知识助手
从 Basic RAG 到 Advanced RAG
Jerry Liu 指出 Basic RAG 的四大局限:
- 数据处理粗糙:简单的文本分块无法处理表格、图片、复杂布局
- LLM 仅用于合成:没有利用推理和规划能力
- 无状态:每次查询独立,无个性化记忆
- 输出单一:只能生成简单文本回答
Garbage In Garbage Out
RAG 应用的质量取决于数据处理管线的质量。如果 PDF 解析器无法正确提取表格和图片,后续的 LLM 推理无论多强大都无法弥补。数据质量是生产级 LLM 应用的必要条件。
多模态 RAG 管线
构建多模态 RAG 的关键步骤:
- 高质量文档解析:将 PDF 中的文本、表格、图表、图片分别提取为结构化元素
- 层次化索引:为每个元素生成多种文本表示(摘要、子块等),指向源元素
- 多模态检索:给定查询,检索文本和图片 chunk,利用多模态 LLM 同时处理文字和视觉信息
多模态模型的新机遇
当前主流模型(GPT-4o、Claude 3.5 Sonnet、Gemini)都支持同时输入文字和图片。这意味着即使使用文本嵌入模型建立索引,在最终推理阶段仍可以将原始图片喂入 LLM,实现真正的视觉理解。
Agentic RAG:在 RAG 之上添加推理层
Agentic RAG 的核心思想
将 RAG 检索视为一种工具(tool),在其上层添加 Agent 推理层。Agent 可以决定如何分解问题、调用哪些检索工具、何时进行反思验证,从而处理基础 RAG 无法回答的复杂问题(摘要、多文档比较、多步骤分析等)。
两种架构选择:
- 约束型流程:开发者手动定义 if-else 逻辑和路由规则,更可靠但灵活性低
- 通用 Agent 架构(如 ReAct):Agent 自主选择工具和推理路径,更灵活但可靠性较低、成本较高
经验法则:通用 Agent 架构中,工具数量尽量控制在 4--5 个,不超过 10 个。
生产部署
LlamaIndex 提供事件驱动的编排系统,支持:
- 将每个 Agent 工作流封装为微服务 API
- 通过中央消息队列实现 Agent 间通信
- Human-in-the-loop:Agent 可暂停等待人类输入后继续执行
- 支持本地开发和 Kubernetes 部署
本章小结
LlamaIndex 从数据处理质量出发,构建了从文档解析到多模态检索再到 Agentic 推理的完整管线。其核心理念是:好的数据质量是基础,Agent 推理是上层建筑,两者缺一不可。
总结与延伸
核心要点
- AutoGen 以对话为核心抽象,支持多 Agent 递归组合,适合构建复杂的 Agent 协作系统。
- LlamaIndex 从数据质量出发,通过多模态 RAG + Agentic 推理构建生产级知识助手。
- 多 Agent 架构相比单 Agent 在任务分解、安全保障和可维护性方面具有显著优势。
- 约束型 vs. 通用型 Agent 架构存在可靠性-灵活性权衡。
- 生产部署需要考虑微服务化、消息队列和 human-in-the-loop。
拓展阅读
- Wu et al., “AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation,” 2023.
- Liu, “LlamaIndex: A Data Framework for LLM Applications,” 2022--2024.
- Lewis et al., “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks,” NeurIPS 2020.