View a markdown version of this page

技能评估员 - 亚马逊基岩 AgentCore

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

技能评估员

技能是一种可重复使用的SKILL.md指令文件,代理在运行时加载该文件以帮助完成任务。技能遵循开放的代理技能标准的技能文件结构。有关术语,请参阅技能。

AgentCore 评估为使用技能的代理提供了两个内置评估器。两者都是工具级评估器。 AgentCore 每次技能调用评估都会发出一个结果,并将每个结果锚定到加载技能的工具调用跨度上。一个包含三次技能调用的会话会为每位评估者产生三个结果。

您可以将这些评估器用于按需、批量和在线评估。有关确切的提示正文,请参阅提示模板页面上的技能选择精度(Tool-level 评估者)技能选择准确性和技能说明。

Builtin.SkillSelectionAccuracy

根据可用技能目录,技能选择精度评估器 (Builtin.SkillSelectionAccuracy) 判断代理加载的技能是否符合任务。它返回 Yes (1.0) 或 No (0.0)。

评估者使用的占位符:

  • invoked_skill— 代理在此工具调用中加载的技能的名称。

  • available_skills— 代理在运行时可以选择的技能目录。并非每个框架都公开一个目录。当目录不在追踪中时,此占位符为空,评估人员仅根据用户请求和对话上下文来判断所调用的技能。

  • user_message— 回合中触发技能调用的用户请求。

  • context— 之前的结果是工具调用正在评估。

每当评估检测到技能调用时, AgentCore 评估器就会运行。它侧重于选择决策,而不是代理人随后执行该技能的表现。

Builtin.SkillInstructionFollowing

技能指令跟随评估者 (Builtin.SkillInstructionFollowing) 会判断代理对加载技能的规定步骤的全面遵循程度。它返回 Fully Followed (1.0)、Mostly Followed (0.75)、Partially Followed (0.5)、Minimally Followed (0.25) 或 Not Followed (0.0)。

评估者使用的占位符:

  • invoked_skill— 代理在此工具调用中加载的技能的名称。

  • skill_content— 装填技能SKILL.md指令的全文。

  • context— 完整的会话上下文 — 从会话开始到会话结束的每一回合。由于代理可以在加载技能后的任何时候执行规定的步骤,因此法官需要整个会话,而不仅仅是工具调用。

只有当被调用的技能及其SKILL.md身体都存在于追踪中时,评估器才会运行。法官确定技能主体中的规定步骤,然后根据对话记录确定该步骤是完全执行、部分执行还是跳过,并得出与每步细分一致的总体评级。

框架支持

AgentCore 评估可以检测来自两种跟踪信号的技能调用:文件系统读取SKILL.md文件和框架的原生技能加载工具。文件系统读取信号适用于任何框架。本机工具信号适用于下表第二行中的特定框架。

检测方法

框架

SKILL.md文件读取(通用)

LlamaIndex、OpenAI 代理以及任何SKILL.md通过通用文件读取工具进行读取的代理。

原生技能加载工具(除文件读取外)

Strands Agents、D LangGraph eep Agent、谷歌 ADK、Claude Agent SDK。

对于文件读取路径,当工具调用参数包含以结尾的路径且工具结果正文是格式正确的SKILL.md文件(前端带有/SKILL.mdname和description字段,然后是指令正文)时, AgentCore 评估将该工具调用作为技能负荷进行匹配。

可用技能目录由 Strands Agents、Dee LangGraph p Agents 和 Google ADK 原生发布。Claude Agent SDK 和文件读取代理不发出目录。Builtin.SkillSelectionAccuracy仍在这些代理上运行,available_skills占位符为空。

有关常规仪器设置和每个框架的作用域名称,请参阅支持的代理框架。

跳过行为

AgentCore 评估将工具调用归类为跟踪信息暴露时的技能调用invoked_skill或该调用的技能调用skill_content。如果两个信号都不存在,则 AgentCore 评估会跳过该呼叫的两个技能评估器,并且不会发出任何结果。如果您的代理没有加载任何技能,则两位评估人员对会话的结果均为零——这是预期的,不是错误。

如果您的代理确实加载了技能,但评估人员仍未返回任何结果,请在诊断技能源中运行诊断技能以确认跟踪带有预期信号。

自定义评估者的技能占位符

你可以编写一个自定义 TOOL_CALL 评估器,对代理加载的技能进行推理。除标准工具级别占位符(invoked_skill、skill_contentavailable_skills、user_message)外,任何自定义 TOOL_CALL 评估器均可使用上述技能占位符(、、、)。context available_tools tool_turn Session-level 并且跟踪级别的自定义评估器不能使用这些占位符。

AgentCore 评估的行为方式取决于自定义评估者引用的技能占位符:

  • 引用的评估器的invoked_skill行为类似于Builtin.SkillSelectionAccuracy:它仅在调用技能调用工具时运行,并{context}呈现标准的通话前快照。

  • 引用的评估器的skill_content行为就像Builtin.SkillInstructionFollowing:它仅在SKILL.md正文可用的技能调用工具调用上运行,并{context}呈现完整的会话上下文 ——从会话开始到会话结束的每一回合。这与标准工具级别context不同。

无论哪种情况, AgentCore 评估都会在每次技能调用时发出一个结果。有关自定义评估器创作,请参见创建评估器。