预备知识
英文缩写&术语
英语 | 简中 | 补充 |
---|---|---|
Large Language Model (LLM) | 大语言模型 | |
Artificial General Intelligence (AGI) | 通用人工智能 | 一个远大的目标 |
Agent | 智能体/代理 | |
Embody | 具身 | |
Multi-Agent System (MAS) | 多智能体系统 | |
Token | 文本分割后得到的最小语义单位 | |
Prompt | 提示词 | 我们向AI提出的问题或指令 |
Reason | 推理 | 模型根据已有的知识,通过逻辑的推导得出结论 |
align | 对齐 | 确保大语言模型的行为与用户的意图或期望一致 |
Chain-of-Thought (CoT) | 让LLM通过(intermediate step)解决问题的技术 | |
decode | 解码 | 将模型生成的内部表示转化为人类可读的文本的过程 |
Universal Self-Consistency (USC) | 通用自一致性 | |
Retrieval-Augmented Generation (RAG) | 检索增强生成 | 在生成模型中引入检索机制,使得模型能够在生成文本之前从外部知识库中检索相关信息 |
Reinforcement Learning (RL) | 强化学习 | 智能体通过与环境进行交互,根据得到的奖励或惩罚来调整自己的行为,最终目标是最大化累计奖励 |
Human-computer interface (HCI) | 人机界面 | |
Agent-computer interface (ACI) |
Lecture 3, Chi Wang and Jerry Liu
提到的项目:
项目 | ||
---|---|---|
AutoGen | ||
OpenAI Assistant | ||
LlamaIndex | ||
LangChain | ||
Langraph | ||
CrewAI | ||
SciAgents | ||
Agent-E | ||
MemGPT | ||
AutoBuild | ||
LlamaParse |
Agent AI Frameworks & AutoGen
智能体人工智能框架与自动生成
Agenda
-
Agentic AI Frameworks
-
AutoGen
What are future AI applications like? 未来的AI应用是什么样的?
How da we empower every developer to build them? 如何赋予每个开发人员构建它们的能力?
What are future AI applications like?
Genertive -> Agentic
Generate content like text & image -> Execute complex tasks on behalf of human
生成内容如文本和图像 -> 代表人类执行复杂任务
Examples of Agentic AI
Personal assistants
Autonomous robots
Gameing agents
Science agents
Web agents
Software agents
Key Benefits of Agentic AI
Use Interface
Natural interaction with human agency
Strong Capability
Operate with minimal human intervention
Useful Architecture
Intuitive programming paradigm
使用界面
与人类机构的自然互动
强大的能力
以最少的人为干预进行操作
有用的架构
直观的编程范式
-
User -> Commander: User Quesion
-
Commander -> Writer: Question
-
Writer -> Commander: Code
-
Commander -> Safeguard: Code
-
Safeguard -> Commander: Clearance
-
Commander -> Writer: Log
-
Writer -> Commander: Answer
-
Commander -> User
4~6: Repeat until answering the user’s question or timeout
流程分析
-
用户提问(User Question)
-
描述:用户向系统提交一个问题。这个问题是交互的起点,系统需要对此作出反应。
-
作用:这是整个交互流程的第一步,决定了接下来的处理步骤。
-
-
指挥者(Commander)
-
描述:指挥者是整个流程的核心,负责协调各个组件之间的交互。
-
作用:它接收用户问题并管理后续的信息流动。
-
-
将问题传递给编写者(Question)
-
描述:指挥者把用户提出的问题传递给编写者。
-
作用:此步骤确保编写者能够获得问题的上下文,以便进行适当的处理。
-
-
编写者生成代码(Code)
-
描述:编写者根据接收到的问题生成相应的代码。
-
作用:这一步是关键,因为生成的代码将影响后续的安全性和准确性。
-
-
指挥者审查代码(Code)
-
描述:指挥者将生成的代码传递给安全保障系统进行审查。
-
作用:这一步确保代码在执行之前经过安全性检查,避免潜在风险。
-
-
安全保障确认(Clearance)
-
描述:安全保障系统检查代码,确保其无误并安全后,向指挥者发出许可。
-
作用:这一环节提供了一个安全网,以防止不安全或有害的代码被执行。
-
-
记录日志(Log)
-
描述:指挥者将信息记录在日志中,以便后续审查或调试。
-
作用:日志记录有助于追踪问题的来源,并为未来的优化提供参考。
-
-
编写者返回答案(Answer)
-
描述:编写者根据用户的问题和生成的代码,形成最终的答案。
-
作用:这是响应用户的关键环节,确保用户得到所需的信息。
-
-
指挥者返回最终答案给用户(Final Answer)
-
描述:指挥者将编写者生成的最终答案传回给用户。
-
作用:这是整个流程的结束,用户得到了他们所询问的信息。
-
这个流程通过多个组件的协作,确保用户的提问能够被准确、安全地处理和回答。指挥者在其中起到了协调者的角色,而编写者和安全保障系统则分别负责内容生成和安全审查。这样的设计不仅提高了系统的准确性,还增强了其安全性,避免了可能的风险。
Agentic Programming
-
Handle more complex tasks / Improve response quality
-
Improve over natural iteration
-
Divide & conquer
-
Grounding & validation
-
-
Easy to understand, maintain, extend
-
Modular composition
-
Natural human participion
-
Fast & creative experimentation
-
处理更复杂的任务 / 提升响应质量
-
通过自然迭代进行改进
-
分而治之
-
以实际情况为基础进行验证
易于理解、维护和扩展
-
模块化组合
-
自然的人为参与
-
快速且具有创意的实验
Agentic AI Framework Desiderata
-
Agentic AI Framework Desiderata
-
Intuitive unified agentic abstraction
-
Flexible multi-agent orchestration
-
Effective implementation of agentic design patterns
-
Support diverse application needs
-
代理型AI框架的必要条件
-
直观统一的代理抽象
-
灵活的多代理编排
-
有效实现代理设计模式
-
支持多样化的应用需求
这张图表描述了设计代理型AI框架时的关键需求(Desiderata),即满足该框架的一系列理想特性:
-
直观统一的代理抽象(Intuitive unified agentic abstraction):
-
该框架应该提供简洁、统一的抽象模型,便于开发者理解和使用代理系统。
-
-
灵活的多代理编排(Flexible multi-agent orchestration):
-
框架需能够协调多个代理的交互,具有高度的灵活性,以适应复杂的场景和任务。
-
-
有效实现代理设计模式(Effective implementation of agentic design patterns):
-
框架应能够有效地实现常见的代理设计模式,帮助开发者以模块化和结构化的方式构建系统。
-
-
支持多样化的应用需求(Support diverse application needs):
-
该框架应具备通用性,能够支持不同领域的应用需求,包括不同规模和复杂度的代理系统。
-
这几项需求确保代理型AI系统既能满足开发的灵活性和扩展性,又能提供适合不同场景的解决方案。
Multi-Agent Orchestration
多智能体编排是一种在人工智能领域,尤其是分布式系统中,协调多个智能体(Agent)共同完成复杂任务的技术。这些智能体可以是软件程序、机器人、虚拟角色等,它们具有自主性,能够感知环境、做出决策并执行行动。
智能体(Agent):系统中的基本单位,具有感知、决策和行动能力。
编排:对多个智能体的行为进行协调和控制,以实现共同目标。
-
Multi-Agent Orchestration
-
Static/dynamic
-
NL/PL
-
Context sharing/isolation
-
Cooperation/competition
-
Centralized/decentralized
-
Intervention/automation
-
-
多智能体编排
-
静态/动态
-
自然语言/编程语言
-
上下文共享/隔离
-
协作/竞争
-
集中化/去中心化
-
干预/自动化
-
这张图表描述了多代理系统的各种编排方式,阐述了在设计多代理系统时可能遇到的不同选择和设计模式:
-
静态/动态 (Static/dynamic):
-
静态代理系统指的是角色和交互模式预先确定的系统,而动态系统可以根据环境或输入进行调整和改变。
-
-
自然语言/编程语言 (NL/PL):
-
多智能体系统可以使用自然语言(NL)与用户或其他代理进行交互,或者使用编程语言(PL)进行更结构化的通信。
-
-
上下文共享/隔离 (Context sharing/isolation):
-
智能体之间可以共享上下文信息(例如共享环境状态或任务信息),也可以保持隔离以确保任务独立性或信息隐私。
-
-
协作/竞争 (Cooperation/competition):
-
代理可以通过合作方式共同完成任务,或者通过竞争方式争夺资源或达成目标。
-
-
集中化/去中心化 (Centralized/decentralized):
-
集中化系统中存在一个中心控制代理来协调其他代理的行为,而去中心化系统则依赖于各代理的独立决策和行动。
-
-
干预/自动化 (Intervention/automation):
-
系统可以设计成允许人工干预,在必要时进行手动调整,也可以完全自动化,代理自主完成所有任务。
-
图解部分:
-
上半部分:
-
显示了一个具有指挥者(Commander)的多代理系统,指挥者与多个代理互动,协调他们的任务和行为。
-
-
下半部分:
-
描绘了一个带有“经理(Manager)”的场景,经理通过广播与多个代理互动,并选择其中一个代理进行更直接的“对话(Speak)”。
-
Agent Design Patterns
Conversation
Prompting & reasoning
Tool use
Planing
Integrating multiple models, modalities and memories
Agent 设计模式
对话
提示与推理
工具使用
规划
整合多种模型、模式和记忆
Agent 设计模式是一套用于设计和实现智能体的可复用解决方案。这些模式基于人工智能领域的最佳实践和既定原则,提供了一种结构化的方式来构建能够有效感知环境、推理并从经验中学习的智能体。
第一性原理,简单来说,就是从最基本的、不可再分的原理出发,通过逻辑推理和数学计算,来理解和预测复杂系统的行为。这种方法不依赖于经验公式或模型,而是直接从系统的基本构成要素和物理定律出发,逐层推导。
Example of Agentic AI Frameworks
-
AutoGen
-
Multi-agent conversation programming
-
Comprehensive & flexible
-
Integrable with other frameworks like OpenAI Assistant, LlamaIndex, LangChain
-
-
-
Langchain-based
-
Langraph
-
Graph-based control flow
-
-
CrewAI
-
High-level static agent-task workflow
-
-
-
AutoGen
-
多代理对话编程
-
全面且灵活
-
可与其他框架集成,如OpenAI Assistant、LlamaIndex、LangChain
-
-
-
基于LangChain
-
Langraph
-
基于图的控制流
-
-
CrewAI
-
高级静态代理任务工作流程
-
-
-
AutoGen
-
多代理对话编程:AutoGen提供了一种全面且灵活的方法来实现多代理系统中的对话编程。通过这种编程方法,多个代理可以通过对话协作来完成复杂任务,适用于需要多方合作或互动的应用场景。
-
与其他框架集成:AutoGen的一个显著特点是它能够与其他流行的AI框架集成,如OpenAI Assistant、LlamaIndex和LangChain。这种兼容性意味着开发者可以将AutoGen纳入现有系统中,实现更强大的多代理对话系统。
-
-
基于LangChain
-
Langraph:Langraph是一种基于图的控制流模型。这意味着任务或操作可以通过图结构来管理和控制,允许开发者定义任务的依赖关系和执行顺序。这种图结构的设计通常用于处理复杂的工作流或任务编排,尤其是在多步骤和多路径的任务处理中。
-
CrewAI:CrewAI提供了一个高级的静态代理任务工作流系统。这种工作流是静态的,意味着代理的任务分配和执行顺序是在开发时就预先设定好的,不会根据动态变化进行调整。CrewAI特别适合需要明确任务分配和执行次序的场景,确保代理在系统中的任务是有序且可控的。
-
以下是对 AutoGen、OpenAI Assistant、LlamaIndex、LangChain、Langraph 和 CrewAI 的解释:
1. AutoGen
AutoGen 是一种多代理对话编程框架,专注于通过协调多个人工智能代理来完成复杂任务。它支持多代理系统的构建,使多个代理可以协作、共享信息,并基于上下文来做出智能决策。AutoGen 特点是灵活性和广泛的兼容性,能够与其他 AI 框架(如 OpenAI Assistant、LlamaIndex 和 LangChain)集成,从而增强多代理的交互能力。
2. OpenAI Assistant
OpenAI Assistant 是 OpenAI 提供的智能对话系统,基于其强大的自然语言处理模型(如 GPT 系列)。它支持与人类进行自然对话,并且可以执行任务、回答问题、生成文本内容等。OpenAI Assistant 可以用于广泛的应用场景,如虚拟助手、客服、教育等。
3. LlamaIndex
LlamaIndex 是一个工具,旨在从大规模数据集(如文档、数据库或知识库)中构建索引,便于快速检索信息。它结合了自然语言处理和搜索技术,允许用户在庞大信息库中高效查询。LlamaIndex 的核心在于将结构化和非结构化数据转化为易于检索的格式,提升搜索速度和准确度。
4. LangChain
LangChain 是一个用于构建和管理语言模型的框架。它的主要目标是简化与大型语言模型(如 GPT)集成的开发过程,帮助开发者轻松创建支持复杂任务的语言应用。LangChain 特别侧重于语言模型与外部系统(如数据库、API)的交互,通过提供工具来控制任务流,处理多步骤工作流程。
5. Langraph
Langraph 是基于 LangChain 的扩展,采用图结构来管理任务流和控制流。在多步骤的复杂任务中,Langraph 使用图形化的方式表示不同任务节点之间的依赖关系,使开发者可以直观地设计任务的执行顺序和路径。它适用于需要并行执行和分支控制的复杂应用场景。
6. CrewAI
CrewAI 是一种专注于静态任务工作流程的高层次代理任务管理框架。它为代理任务提供了一个预定义的静态工作流,确定了任务分配和执行的固定路径。CrewAI 在任务管理和执行时更注重确定性,适用于那些不需要动态调整的多代理系统。通过这种框架,开发者可以确保任务执行的顺序和分配是可预测且稳定的。
simply two steps
1、Define agents: Conversable & Customizable (Conversable agent)
2、Get them to talk: Conversation Programming
-
Evaluation (评估)
-
Agent-based evaluation tools (基于代理的评估工具)
-
Examples: AgentEval, AutoDefense, Observability
-
中文翻译: 基于代理的评估工具
-
示例:AgentEval、AutoDefense、Observability
-
-
解释:此部分描述了用于评估多代理系统的工具。这些工具主要用于衡量和评估不同代理的性能、安全性和可观察性。例如,AgentEval 可能是一个用于评估代理执行效果的系统,而 AutoDefense 则专注于自动化的防御策略,Observability 提供对系统行为的可见性和监控能力。
-
-
Interface (界面)
-
Lower the barrier of programming (降低编程的门槛)
-
Examples: AutoBuild, Composable Actor Platform
-
中文翻译: 降低编程的门槛
-
示例:AutoBuild、Composable Actor Platform
-
-
解释:这部分强调了如何降低开发人员使用和创建多代理系统的难度。AutoBuild 可能是一个自动化构建工具,使用户能够快速开发和部署多代理系统,而 Composable Actor Platform 则可能是一种模块化平台,允许用户通过简单的组件组合来创建代理,极大地降低了编程和开发的复杂性。
-
-
Learning/Teaching/Optimization (学习/教学/优化)
-
Agents made smarter (使代理更智能)
-
Examples: AgentOptimizer, EcoAssistant, Learn to Cooperate
-
中文翻译: 使代理更智能
-
示例:AgentOptimizer、EcoAssistant、Learn to Cooperate
-
-
解释:这一部分集中在如何通过学习、教学和优化来提升代理的智能水平。例如,AgentOptimizer 可能是用于优化代理策略的工具,而 EcoAssistant 则可能用于帮助代理优化在复杂环境中的资源使用。Learn to Cooperate 可能涉及多个代理之间的协作学习,使它们在合作任务中表现得更好。
-
这个图片展示了多代理系统的三个重要方面:评估、界面 和 学习/教学/优化。每个方面都列出了相关的工具示例,帮助开发者和研究人员更好地创建、评估和优化多代理系统。这些工具和平台共同作用,可以降低开发复杂性、提升系统性能,并使代理能够更智能地适应复杂的任务和环境。
1. How to design optimal multi-agent topology? (如何设计最优的多代理拓扑结构?)
-
Quality (质量)
-
Monetary Cost (货币成本)
-
Latency (延迟)
-
Manual Effort (人工投入)
-
中文翻译:如何设计最优的多代理拓扑结构?
-
质量、货币成本、延迟、人工投入
-
-
解释:这一部分提到了在设计多代理系统时需要考虑的几个关键因素。要设计一个最优的多代理拓扑结构,需要平衡系统的质量、经济成本、延迟(即代理之间的通信或执行任务的时间延迟)以及需要的人力投入。这些因素是评估系统效率和可行性的关键。
2. How to create highly capable agents? (如何创建高能力的代理?)
-
Reasoning (推理能力)
-
Planning (规划能力)
-
Modality (多模态处理)
-
Learning (学习能力)
-
中文翻译:如何创建高能力的代理?
-
推理、规划、多模态处理、学习
-
-
解释:为了打造强大的智能代理,系统需要具备一些核心能力。推理能力意味着代理能够理解和处理复杂的信息。规划能力是指代理能有效规划其任务和行动。多模态处理则意味着代理能够处理不同类型的数据和信息源(如图像、文本等)。学习能力意味着代理可以通过过去的经验或数据不断自我提升。
3. How to enable scale, safety and human agency? (如何实现规模化、安全性以及人类代理?)
-
Parallelization (并行化)
-
Resilience (弹性)
-
Intent (意图识别)
-
Teaching (教学能力)
-
中文翻译:如何实现规模化、安全性和人类代理?
-
并行化、弹性、意图识别、教学能力
-
-
解释:当涉及大规模多代理系统时,如何扩展并保持系统的安全性至关重要。并行化允许多个代理同时执行任务,从而提升系统的效率。弹性是系统在面对错误或故障时依然能够正常运行的能力。意图识别是系统能够理解和识别人类或其他代理意图的能力。而教学能力则指系统能够与人类或其他代理互动并传授其知识或技能的能力,这对于人机协作至关重要。
Jerry Liu: Building an Multimodal Knowledge Assistant
LlamaIndex:
Build Production LLM APPsover Enterprise Data
LlamaIndex helps any developer build context-augmented LLM apps from prototype to production.
基于企业数据构建生产LLM应用程序
LlamaIdex帮助任何开发人员构建从原型到生产的上下文增强LLM应用程序。
Build a Knowledge Assistant
Goal: Build an interface that can take in any tasks as input and give back an output.
Input forms: simple questions, complex questions, research tasks
Output forms: short answer, structured output, research report
目标:构建一个可以接收任何任务作为输入并返回输出的界面。
输入形式:简单问题、复杂问题、研究任务
输出形式:简答题、结构化输出、研究报告
Knowledge Assistant with Basic RAG
Can we do more?
除了基本的RAG流程管道外,还能做什么?
There's many questions/tasks that naive RAG cant't give an answer to
-
huallucinations
-
Limited time savings
-
Limited decision-making enhancement
A Better Knowledge Assistant
-
High-quality Multimodel RAG
-
Complex output generation
-
Agentic reasoning over complex inputs
-
Towards a scalable, full-stack application
成为更好的知识助理的四个重要要素
-
高质量多模态RAG
-
可生成复杂输出
-
能对复杂输入进行智能体推理
-
能够成为可扩展的全栈APP
1 High-quality Multimodel RAG:
Advanced Data and Retrieval 高级数据和检索
Data -> Data Processing -> Index -> Agent -> Response 数据 -> 数据处理 -> 索引 -> 代理 -> 响应
2 Complex output generation:
Report Generation, Data Analysis, Action-Taking 报告生成、数据分析、行动采取。
3 Agentic reasoning over complex inputs:
Other Tools
Advanced RAG and Retrieval Tool -> Agent (Tool Use, Memory, Query Planning, Reflection) -> Response
高级RAG和检索工具 -> 代理(工具使用、记忆、查询规划、反思) -> 响应
在多模态RAG pipeline中加入Agent推理层
4 Towards a scalable, full-stack application
不重要
~未完待续
详见:https://github.com/R10836/UCB-CS194_294-196-LLM-Agents-zh