📢 转载信息
原文链接:https://www.kdnuggets.com/ai-agents-explained-in-3-levels-of-difficulty
原文作者:Bala Priya C
Image by Author
# 引言
人工智能(AI)智能体标志着从单一响应式语言模型向能够规划、执行和适应的自主系统的转变。标准的大型语言模型(LLM)一次只回答一个问题,而智能体则将复杂目标分解为若干步骤,利用工具收集信息或执行操作,并不断迭代直到任务完成。
然而,构建可靠的智能体比构建聊天机器人要困难得多。智能体必须对下一步行动、何时使用哪个工具、如何从错误中恢复以及何时停止进行推理。如果没有仔细的设计,它们就会失败、陷入循环或产生看似合理但却不正确的结果。
本文将从三个层面解释AI智能体:它们是什么以及为何重要,如何使用实用的模式来构建它们,以及用于生产系统的高级架构。
# 第一级:从聊天机器人到智能体
聊天机器人接收您的问题并给出答案。AI智能体接收您的目标并找出实现该目标的方法。区别在于自主性。
我们来看一个例子。当您问聊天机器人“天气怎么样?”时,它会生成关于天气的文本。当您告诉智能体“天气怎么样?”时,它会决定调用天气应用程序编程接口(API),检索真实数据,然后报告回来。
当您说“下个月给我预订一张飞往东京的机票,价格低于800美元”时,智能体可能会搜索航班、比较选项、查看您的日历,甚至可能完成预订——所有这些都无需您指定具体步骤。
智能体具备使它们区别于传统聊天机器人的三大核心能力。
// 工具使用
工具使用是一种基本能力,它允许智能体调用外部函数、API、数据库或服务。工具使智能体能够超越纯文本生成,与现实世界建立联系。
// 规划
规划使智能体能够将复杂的请求分解为可操作的步骤。当您要求智能体“分析这个市场”时,它会将这个高层目标转化为一系列具体的行动:检索市场数据、识别趋势、与历史模式进行比较,并生成见解。智能体根据每一步中学到的内容动态地排列这些行动顺序,并在获取新信息时调整其方法。
// 记忆
记忆使智能体能够在其执行过程中的多个操作中保持状态。智能体记住它已经尝试过什么、哪些有效、哪些失败了,以及它仍然需要做什么。这种持续的感知可以防止重复操作,并使智能体能够在完成目标的过程中建立在先前的步骤之上。
智能体循环很简单:观察当前状态,决定下一步做什么,执行该操作,观察结果,直到完成为止。在实践中,这个循环运行在一个脚手架系统内部,该系统负责管理工具执行、跟踪状态、处理错误以及确定何时停止。
第一级:从聊天机器人到智能体 | Image by Author
# 第二级:实际构建AI智能体
实施AI智能体需要在规划、工具集成、状态管理和控制流方面做出明确的设计选择。
// 智能体架构
不同的架构模式使智能体能够以不同的方式处理任务,每种模式都有特定的权衡。以下是您最常使用的模式。
ReAct(推理+行动)以透明的方式交错进行推理和行动。模型生成关于下一步该做什么的推理,然后选择一个工具来使用。工具执行后,模型会看到结果并对下一步进行推理。这种方法使智能体的决策过程可见且可调试,使开发人员能够确切了解智能体为何选择每个操作。
规划与执行将战略思考与执行分离。智能体首先生成一个完整的计划,勾勒出所有预期的步骤,然后按顺序执行每个步骤。如果执行过程中发现问题或意外结果,智能体可以暂停并根据新信息重新规划。这种分离减少了陷入局部循环的可能性,即智能体反复尝试类似但不成功的方法。
反思使智能体能够在单次会话中从失败中学习。在尝试任务后,智能体会反思哪里出了问题,并生成关于其错误的明确经验教训。这些反思被添加到上下文供下一次尝试使用,使智能体能够避免重复相同的错误并迭代改进其方法。
阅读7个必知的智能体AI设计模式以了解更多信息。
// 工具设计
工具是智能体与能力的接口。请仔细设计它们。
为可靠的工具使用定义清晰的Schema(模式)。使用明确的名称、描述和参数Schema来定义工具,不留任何歧义。一个名为 search_customer_orders_by_email 的工具远比 search_database 有效,因为它明确告诉智能体该工具的作用以及何时使用它。包含每个工具的适当用例示例,以指导智能体的决策。
结构化输出可确保信息提取的可靠性和一致性。工具应返回JavaScript Object Notation(JSON)而不是散文,为智能体提供易于解析并在后续推理步骤中使用的结构化数据。这消除了歧义,并减少了因误解自然语言响应而导致的错误。
明确的错误可以实现从故障中恢复。返回带有代码和消息的错误对象,确切说明出现问题的原因。
第二级:实际构建AI智能体 | Image by Author
// 状态与控制流
有效的状态管理可以防止智能体迷失目标或陷入无益的模式。
任务状态跟踪维护一个清晰的记录,说明智能体试图完成什么、哪些步骤已完成、还剩什么。将其保持为结构化对象,而不是仅依赖可能变得笨重和难以解析的对话历史。明确的状态对象使得检查进度和识别智能体何时偏离其原始目标变得容易。
终止条件可防止智能体无限期运行或浪费资源。设置多个停止标准,包括任务完成信号、最大迭代次数(通常为10到50次,取决于复杂性)、用于捕获循环的重复检测,以及针对令牌、成本和执行时间等资源的限制。拥有多样化的停止条件可确保智能体在各种故障模式下都能优雅退出。
错误恢复策略使智能体能够在不完全失败的情况下处理问题。使用指数退避重试瞬时故障,以处理网络问题等临时问题。当主要方法失败时,实施回退策略,为智能体提供替代的成功路径。当无法完全完成时,返回部分结果,并清晰解释完成了什么以及哪些地方失败了。
// 评估
严格的评估可以揭示您的智能体在实践中是否真的有效。
任务成功率衡量基本问题:对于基准任务,智能体正确完成的百分比是多少?在迭代智能体设计时跟踪此指标,并将其用作改进的北极星指标。成功率的下降表明需要调查的回归。
行动效率检查智能体为完成任务采取了多少步骤。更多的动作不一定更糟;一些复杂的任务确实需要很多步骤。然而,当一个本应只需要5个步骤的任务,智能体却执行了30个步骤时,这表明规划、工具选择或陷入无益循环等方面存在问题。
失败模式分析要求将失败分类,例如选择了错误的工具、错误地调用了正确的工具、陷入循环或达到了资源限制。通过识别最常见的失败模式,您可以优先修复那些对整体可靠性影响最大的问题。
第二级:状态、控制与评估 | Image by Author
# 第三级:生产中的智能体系统
构建能够在规模上可靠运行的智能体需要复杂的编排、可观测性和安全约束。
// 高级规划
复杂的规划策略使智能体能够处理简单的顺序执行无法应对的复杂、多方面任务。
分层任务分解递归地将复杂任务分解为子任务。协调器智能体将任务委托给专门的子智能体,每个子智能体都配备了针对其专业知识量身定制的特定领域工具和提示。这种架构实现了专业化——每个子智能体都擅长其狭窄的领域——以及并行化,其中独立的子任务同时执行以减少总体完成时间。
您也可以尝试基于搜索的规划,在确定一个方法之前探索多种可能的方法。您可以为了最大的适应性而交错规划和执行。智能体不是预先生成完整计划,而是只生成接下来的2-3个动作,执行它们,观察结果,并根据所学知识重新规划。这种方法使智能体能够适应新出现的信息,避免了对静态环境做出假设的僵化计划的局限性。
// 大规模工具编排
生产系统需要在真实世界条件下保持性能和可靠性,需要复杂的工具管理。
异步执行可防止因等待长时间运行的操作而阻塞。智能体不必在等待工具执行时空闲,它可以处理其他任务或子任务。结果缓存通过存储工具输出来消除重复工作。每个工具调用都根据其函数名称和参数进行哈希处理,为该精确查询创建唯一的标识符。在执行工具之前,系统会检查该完全相同的调用最近是否被做过。缓存命中会立即返回存储的结果。这避免了浪费时间和超出速率限制配额的重复API调用。
速率限制可防止失控的智能体耗尽配额或压垮外部服务。对每个工具实施速率限制。当智能体达到速率限制时,系统可以排队请求、减慢执行速度,或者比导致级联错误更优雅地失败。
版本控制和A/B测试使无需风险即可持续改进。维护多个工具实现的版本,并将智能体请求随机分配给不同版本。跟踪每个版本的成功率和性能指标,以验证更改确实提高了可靠性,然后才将它们推广到所有流量。
// 记忆系统
先进的记忆架构使智能体能够从经验中学习并在积累的知识中进行推理。
您可以将智能体经验存储在向量数据库中,以便通过语义相似性进行检索。当智能体遇到新任务时,系统会检索过去相似的经验作为Few-Shot示例,向智能体展示它或其它智能体如何处理可比的情况。这使得跨会话学习成为可能,建立了超越单个智能体运行的组织知识。
图记忆将实体和关系建模为知识图谱,实现了复杂的关系推理。图记忆不是将信息视为孤立的事实,而是捕获概念是如何连接的。这允许进行多跳查询,例如“开发人员A正在处理的依赖于开发人员B数据库的项目有哪些?”,其中答案需要遍历多个关系边。
记忆整合可防止无界增长,同时保留学习到的知识。系统会定期将详细的执行跟踪压缩成可概括的经验教训——抽象的模式和策略,而不是具体的行动序列。这种提炼保留了经验中的宝贵见解,同时丢弃了低价值的细节,使记忆系统在积累更多数据时保持高性能。
第三级:生产级智能体系统 | Image by Author
// 安全与约束
生产智能体需要多层安全控制,以防止有害行为并确保可靠性。
护栏定义了智能体行为的明确界限。以机器可读的策略形式指定允许和禁止的操作,系统可以自动执行这些策略。在执行任何操作之前,请根据这些规则进行检查。对于高风险但有时合法的操作,需要通过中断机制进行人工批准。
沙盒化将不受信任的代码执行与关键系统隔离。在具有受限权限的容器化环境中运行工具代码,限制受损或有缺陷的代码可能造成的损害。
审计日志创建了所有智能体活动的不可变记录。记录每个操作及其完整上下文,包括时间戳、用户、工具名称、参数、结果以及导致决策的推理过程。
终止开关在智能体行为异常时提供紧急控制。实施多个级别:用于单个任务的用户取消按钮、在可疑模式(如快速重复操作)触发的自动化断路器,以及在出现更广泛问题时可以立即禁用整个智能体系统的管理覆盖。
// 可观测性
生产系统需要对智能体行为进行全面可见性,以便调试故障和优化性能。
执行跟踪捕获完整的决策路径。记录每一个推理步骤、工具调用、观察和决策,创建完整的审计跟踪。这些跟踪使得事后分析成为可能,开发人员可以确切地检查智能体的思考过程及其做出每个选择的原因。
决策出处为操作日志添加了丰富的上下文。对于每个操作,记录智能体选择它的原因、考虑过的备选方案、对决策有用的信息,以及智能体持有的置信度。
实时监控提供车队运行状况的操作可见性。跟踪指标,如活动智能体的数量、任务持续时间分布、成功和失败率、工具使用模式以及按类型的错误率。
重放和模拟支持对故障进行受控调试。捕获失败的执行跟踪并在隔离的调试环境中重放它们。在关键决策点注入不同的观察结果以测试反事实情况:如果工具返回了不同的数据,智能体会怎么做?这种受控实验揭示了故障的根本原因并验证了修复。
// 多智能体协调
复杂的系统通常需要多个智能体协同工作,这需要协调协议。
任务委派根据专业能力将工作路由给专门的智能体。协调器智能体分析传入的任务,并根据所需的技能和可用工具,确定应涉及哪些专家智能体。协调器委派子任务、监控其进度,并将多个智能体的结果综合成连贯的最终输出。通信协议支持结构化的智能体间交互。
// 优化
生产系统需要在规模上满足延迟和成本目标,需要仔细优化。
提示压缩解决了上下文大小不断增长的挑战。随着工具Schema、示例、对话历史和检索到的记忆的积累,智能体提示会变得很大。应用压缩技术来减少令牌数,同时保留基本信息——消除冗余、一致地使用缩写以及修剪低价值的细节。
选择性工具暴露根据任务上下文动态过滤智能体可以看到的工具。模型路由通过对不同决策使用不同模型来优化成本与性能的权衡。将常规决策路由到可以处理简单情况的更小、更快、更便宜的模型。仅在需要复杂推理(需要精密的规划或领域知识)时才升级到更大的模型。这种动态路由可以在保持困难任务质量的同时,将成本降低60%到80%。
第三级:安全、可观测性和优化 | Image by Author
# 总结
AI智能体代表了语言模型可能性的根本转变——从生成文本转向自主实现目标。构建可靠的智能体需要将它们视为具有编排、状态管理、错误处理、可观测性和安全约束的分布式系统。
以下是一些提升您的智能体AI工具箱的资源:
学习愉快!
🚀 想要体验更好更全面的AI调用?
欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。
评论区