正文 · AI 翻译
当你将智能体部署到生产环境时,最难回答的问题之一是:它真的在发挥作用吗?标准并非它能否运行,而是它能否大规模完成业务所需的工作。许多团队会告诉你,他们其实看不清这一点。他们抽查输出、监测延迟,并在能够获取时收集用户反馈。但这些都无法告诉你,智能体是否完成了用户的任务,是否在漫长的会话中始终围绕主题,是否泄露了个人身份信息(PII),或者是否悄悄跳过了本应遵循的一半步骤。图 1:团队通常关注表面信号,但业务结果取决于水面之下的智能体行为。智能体评估可以解决这个问题。难点在于,一项指标得分高,可能掩盖另一项指标上的失败。客服智能体可以解决每一张工单,却仍在回复中泄露个人信息。在这种情况下,尽管完成率很高,智能体仍然是不合格的。要做好评估,就要在恰当的细节层级衡量每个智能体真正重要的行为。本文介绍如何在 Amazon Bedrock AgentCore 上做到这一点。我们直接通过 AgentCore Evaluations 使用 AgentCore 内置评估器,以及 DeepEval 和 AutoEval 评估器。从业务结果出发,而非指标名称。最常见的错误是先看指标列表,再挑选听起来合适的名称。“有用性听起来不错,所以我们就用它。”这样做能运行并产生数字,却几乎无法提供有用的洞察。指标符合其名称,却不符合该智能体的成功标准。相反,应从 3 个步骤入手。用业务术语定义成功。对客服智能体而言,这可能是首次联系解决问题。对研究智能体而言,这可能是给出完整、来源充分且完全以检索到的文档为依据的答案。对内容审核助手而言,这意味着标记所有应标记的内容,而且只标记这些内容。将结果拆解为可观察的行为。能够在首次联系时解决问题的客服智能体,通常会完成用户明确提出的目标;当问题需要澄清时,在多轮对话中保持连贯;确保回复符合合规要求;并正确调用创建工单或查询订单等后端工具。将每种行为映射到恰当层级的评估器。追踪级指标覆盖每轮对话或每次工具调用中的行为。会话级指标覆盖只有查看整个对话才有意义的结果。图 2:将业务结果转化为可观察的行为,再转化为追踪或会话级别的具体评估器。这一 3 步流程是让评估发挥作用的思维框架。本文其余部分将介绍 AgentCore 如何帮助你执行这一流程。评估器目录。AgentCore 提供来自 3 个来源的丰富评估器:内置评估器由 AWS 编写并经过质量测试。你通过 ID(Builtin.GoalSuccessRate、Builtin.Helpfulness 以及另外 13 个)引用它们,其余工作由服务处理。它们经过可靠性基准测试,覆盖常见维度,因此是直接的起点。第三方托管评估器来自 DeepEval 和 AutoEval,这两个成熟的开源评估库。以托管模式使用时,AgentCore 会托管代码、选择评判模型,并使用自身的计算能力运行推理,与内置评估器完全相同。如果你的团队已经在开发过程中使用其中一个库,就可以在生产环境中运行相同的指标,而无需单独的评估服务。自定义评估器以内置或第三方评估器为基础,使你能够换用自己的模型并修改提示词或评分标准。图 3:评估器的 3 个层级在 AWS 质量保证与对运行推理的模型和账户的控制程度之间作出不同取舍。创建后,派生的自定义评估器与其他评估器的用法完全相同。评估器全貌。AgentCore 提供丰富的评估器,因此你很少需要从零开始。在编写自定义评判器前,先检查是否已有评估器能够衡量你关心的行为。下图展示了完整情况。图 4:AgentCore 上内置、DeepEval、AutoEval 和自定义来源的完整评估器全貌。AWS 内置评估器分为 5 组:回复质量衡量答案是否准确、有依据且表述得当,包括 Correctness、Faithfulness、Helpfulness、ResponseRelevance、Conciseness、Coherence、InstructionFollowing 和 Refusal。任务与目标完成情况包括 GoalSuccessRate,它查看整个会话,判断用户目标是否达成。工具使用包括 ToolSelectionAccuracy 和 ToolParameterAccuracy,检查智能体是否选对工具并传入正确参数。技能方面,针对加载技能的智能体,有 SkillSelectionAccuracy 和 SkillInstructionFollowing:是否调用了正确的技能,是否遵循了其中的步骤?安全方面包括 Harmfulness 和 Stereotyping。除此之外,还有 3 项基于标准答案的工具调用轨迹检查:TrajectoryExactOrderMatch、TrajectoryInOrderMatch 和 TrajectoryAnyOrderMatch。它们将智能体实际使用工具的路径与预期路径进行比较。当智能体达成结果的方式与最终产出同样重要时,就可以使用它们。DeepEval 提供 4 组托管的开源指标:任务与目标完成情况:TaskCompletion、GoalAccuracy 和 ConversationCompleteness。对话质量:TurnRelevancy、KnowledgeRetention 和 Summarization。工具使用:ToolUse。安全:Bias、Toxicity 和 PIILeakage。这些指标对多轮对话智能体尤其有用。ConversationCompleteness 能发现只回答最新消息、却悄悄遗漏先前请求的智能体。KnowledgeRetention 能发现忘记用户在 3 轮对话前说过的内容的智能体。AutoEval 提供更专门的信号:Security 标记恶意输出,例如试图注入指令或泄露系统提示词。Possible 发现过度谨慎、错误宣称有效任务不可能完成的智能体。对于以个性表现为产品组成部分的面向消费者的智能体,Humor 很重要。自定义评估器。如果目录中没有合适的评估器,你可以编写自定义的“以大语言模型为评判器”。每个评估器的准确定义、评分尺度和输入要求都在 AgentCore 文档的提示词模板库中。这包括它使用的评判提示词、运行的追踪或会话层级,以及是否需要参考答案或预期轨迹。你可以调用 ListEvaluators API,在一次响应中获取完整目录和你自己的自定义评估器。多维度评估器。到目前为止,每个评估器都针对每条追踪或每个会话返回 1 个分数。这适用于衡量单一行为。但结果映射的第 2 步很少会得出每个评估器只需衡量 1 种行为的情况。客服回复必须解决问题、遵守退款和数据政策,并保持专业。由 1 个评判器综合衡量这 3 项,只会返回 1 个数字,你无法知道是哪项标准决定了得分。多维度评估器是一种自定义的“以大语言模型为评判器”,它使用维度列表,而非单一评分尺度。每个维度都有自己的名称、说明以及数值或类别评分尺度。评判器读取追踪 1 次,并在同一次调用中为每个维度评分。AgentCore 为每个维度返回 1 个结果。图 5:多维度评估器通过一次评判调用为多个维度评分,并为每个维度返回 1 个结果,不生成综合分数。当成功标准可能彼此独立地未达标时,例如答案准确但不合规,或者问题解决了但态度粗鲁,就应使用多维度评估器。此外,每项标准都必须能够根据相同的证据来判断,这样一次评判调用才能取代多个重复读取同一条追踪、内容几乎相同的评估器。分别为各项标准评分后,你就可以针对每项设置放行门槛。如果一个版本改善了语气,却使政策合规性倒退,那么它就不合格;单一的混合分数会掩盖这一点。如果成熟的内置或第三方指标已覆盖某项标准,例如 Builtin.Correctness 或 ThirdParty.DeepEval.PIILeakage,就应将其放在单独的评估器中。如果各项标准需要不同的层级或评判模型,也应分开,因为同一评估器中的各维度共用一个层级和一个模型。当某些标准需要 {expected_response} 或 {assertions} 等标准答案时,也应如此。将无需参考答案的标准放在自己的评估器中,意味着它仍可在实时流量上运行。按智能体类型提供的评估器组合示例。以下每组组合都先选用最符合业务结果的 2 或 3 个评估器。当发现初始组合遗漏的故障模式时,再加入其他评估器。标注“需要标准答案”的评估器只能用于批量评估,因为实时流量没有参考答案或预期路径。客户支持。多步骤研究。领域内容(医疗、法律、金融)。业务结果:在一次会话中解决问题,且不产生后续风险;通过规定流程给出完整、来源充分的答案;在相应领域内给出正确、无偏见且安全的答案。主要风险:遗漏请求、不安全或不合规的回复;通过错误的工具路径得到正确答案,或者在长会话中丢失上下文;错误答案。错误答案比没有答案更糟。优先使用:客户支持使用 Builtin.GoalSuccessRate(核心指标)、ThirdParty.DeepEval.ConversationCompleteness、ThirdParty.DeepEval.PIILeakage;多步骤研究使用 Builtin.TrajectoryAnyOrderMatch(需要标准答案)、ThirdParty.DeepEval.GoalAccuracy、ThirdParty.DeepEval.KnowledgeRetention;领域内容使用 Builtin.Correctness(需要标准答案)、ThirdParty.DeepEval.PIILeakage、ThirdParty.AutoEval.Security。按需添加:客户支持使用 ThirdParty.DeepEval.Toxicity、ThirdParty.AutoEval.Security(涉及敏感账户数据时)、Builtin.Helpfulness;多步骤研究使用 Builtin.SkillInstructionFollowing、ThirdParty.AutoEval.Possible;领域内容使用 ThirdParty.DeepEval.Bias、Builtin.Helpfulness。派生评估器:可选;如果推理必须留在你的账户中,可用于轨迹和技能指标;领域内容几乎总是使用,以确保每次评判调用都处于你的数据治理之下。运行评估:3 种模式。AgentCore 支持 3 种评估模式。按需评估是最快的反馈方式。在开发或调试期间,直接将会话传给 client.evaluate()。系统中的每个评估器,包括第三方评估器,都可在此使用。import boto3 client = boto3.client('bedrock-agentcore') response = client.evaluate( evaluatorId="ThirdParty.DeepEval.TaskCompletion", evaluationInput={"sessionSpans": session_span_logs} ) for result in response["evaluationResults"]: print(f"Value: {result.get('value')}") print(f"Explanation: {result.get('explanation', '')}") 在线评估关联到正在运行的智能体,并按配置的比例对真实流量采样。这是你的生产环境健康状况信号。内置和第三方评估器可以在同一份在线评估配置中自由组合。批量评估针对一组固定会话运行指定的评估器组合:这组会话是你在发布前进行回归测试的黄金数据集。用它来确认提示词变更或模型升级在你关心的每个维度上都保持了质量。3 种模式使用相同的评估器 ID。从开发期间的按需测试切换到生产环境的在线评估,只需更改配置,无需重写代码。综合运用。如今,越来越难的是决定选择哪些评估器。先挑选最能表明是否达成业务结果的 2 或 3 种行为,并衡量它们。当发现现有组合遗漏的故障时,再添加评估器。要查看完整目录,请调用 ListEvaluators API。它会在一次响应中返回内置、DeepEval 和 AutoEval 评估器,以及你账户中的所有自定义评估器。在选择任何评估器之前,先回答 2 个问题:“对这个智能体而言,成功是什么样的?”以及“追踪中的什么行为表明它成功了?”关于作者。Bharathi Srinivasan。Bharathi 是 AWS 可信赖 AI 领域的技术市场推广专家,帮助组织安全地将前沿 AI 概念应用于现实生产环境。她热衷于 AI 可靠性和赋能开发者,经常发表有关大语言模型评估、可靠性和安全性的研究成果及代码示例。闲暇时,她喜欢探索山间步道、为野外探险做准备,以及追韩剧。Neha Thakur。Neha 是 AWS 解决方案架构师,既是熟悉各类 AWS 服务的通才,也是 AI/ML 专家。她与英国一些最大的银行和金融科技公司合作,利用 AWS AI/ML 服务帮助解决复杂的业务挑战。她对 AI 可解释性怀有深厚热情,致力于让人工智能更加透明、可解释和值得信赖。Visakh Madathil。Visakh 是 AWS 解决方案架构师,与客户和内部团队合作,提升生产环境中 AI 系统的可理解性、可信赖性和安全性。他在 AI 安全性和可靠性方面的工作曾在机器学习会议上展示。工作之余,他喜欢音乐、观鸟和体育运动。Manoj Selvakumar。Manoj 是 AWS 的 AI 专家解决方案架构师。他帮助初创企业和大型企业在 Amazon Bedrock 上构建和扩展 AI 应用及智能体。他的工作涵盖模型推理、智能体运行框架和智能体评估,研究模型与智能体在现实需求下的表现,以及如何使它们在大规模运行时保持可靠。他与 AWS 服务团队合作,将这些生产环境中的洞察转化为产品方向和服务改进。