

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

# 技能评估员
<a name="skill-evaluators"></a>

*技能*是一种可重复使用的`SKILL.md`指令文件，代理在运行时加载该文件以帮助完成任务。技能遵循开放[的特工技能](https://agentskills.io)标准的技能文件结构。有关术语，请参阅[技能](evaluations-terminology.md#skill)。

AgentCore 评估为使用技能的代理提供了两个内置评估器。两者都是工具级的赋值器。 AgentCore 评估每次技能调用都会发出一个结果，并将每个结果固定在加载技能的工具调用跨度上。具有三次技能调用的会话会为每个评估者生成三个结果。

您可以将这些评估器用于按需、批量和在线评估。有关确切的提示体，请参阅 “[提示模板](prompt-templates-builtin.md)” 页面[后面的[技能选择精度和](prompt-templates-builtin.md#skill-selection-accuracy)技能说明](prompt-templates-builtin.md#skill-instruction-following)。

## Builtin.SkillSelectionAccuracy
<a name="skill-evaluators-ssa"></a>

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

赋值器使用以下占位符：
+  `invoked_skill`— 代理在此工具调用中加载的技能的名称。
+  `available_skills`— 代理在运行时可以选择的技能目录。并非每个框架都公开目录。当目录不在跟踪中时，此占位符为空，评估者仅根据用户请求和对话上下文来判断调用的技能。
+  `user_message`— 回合中触发技能调用的用户请求。
+  `context`— “上一步” 显示正在评估的工具调用。

每当评估检测到技能调用时， AgentCore 评估器就会运行。它侧重于选择决定，而不是特工随后执行技能的程度。

## Builtin.SkillInstructionFollowing
<a name="skill-evaluators-sif"></a>

评估者 (`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`身体都存在于轨迹中时，赋值器才会运行。评委确定技能主体中规定的步骤，然后，针对每个步骤，从对话记录中确定该步骤是完全执行、部分执行还是跳过，并得出与每步细分一致的总体评分。

## 框架支持
<a name="skill-evaluators-framework-support"></a>

AgentCore 评估通过两种跟踪信号检测技能调用：文件系统读取`SKILL.md`文件，以及框架的本机技能加载工具。文件系统读取信号适用于任何框架。本机工具信号适用于下表第二行中的特定框架。


|  |  | 
| --- |--- |
| 检测方法 | 框架 | 
|  `SKILL.md`文件读取（通用） | LlamaIndex、OpenAI 代理以及任何`SKILL.md`通过通用文件读取工具读取的代理。 | 
| 原生技能加载工具（除文件读取外） | Strands Agents、D LangGraph eep Agent、Google ADK、Claude | 

对于文件读取路径，当工具调用的参数包含以结尾的路径并且工具结果主体是格式良好的`SKILL.md`文件（带`/SKILL.md`和`description`字段的 frontmatter，后面是指令正文）时， AgentCore 评估会将工具调用`name`作为技能加载进行匹配。

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

有关常规工具设置和每个框架的作用域名称，请参阅[支持的代理框架](supported-frameworks.md)。

## 跳过行为
<a name="skill-evaluators-skipping-behavior"></a>

AgentCore 评估将工具调用归类为跟踪暴露时的技能调用`invoked_skill`或`skill_content`针对该调用的技能调用。如果两个信号都不存在，则 AgentCore 评估会跳过该呼叫的两个技能评估器，并且不会发出任何结果。如果您的代理未加载任何技能，则两个评估者在会话中得出的结果为零——这是预料之中的，而不是错误。

如果您的代理确实加载了技能，但评估者仍然没有返回任何结果，请运行诊断[技能源中的诊断技能](diagnose-evaluation-skill-source.md)，以确认跟踪带有预期信号。

## 自定义评估者的技能占位符
<a name="skill-evaluators-custom"></a>

你可以编写一个自定义 TOOL\_CALL 评估器来推断代理加载的技能。上述技能占位符（`invoked_skill`、、`skill_content`、`user_message`）与标准工具级占位符（`available_skills`、、）一起可供任何自定义 TOOL\_CALL 评估者使用。`context` `available_tools` `tool_turn` Session-level 并且跟踪级别的自定义赋值器不能使用这些占位符。

 AgentCore 评估的行为方式取决于自定义评估者引用的技能占位符：
+ 引用的评估器的`invoked_skill`行为类似于`Builtin.SkillSelectionAccuracy`：它仅在调用技能调用工具时运行，并`{context}`呈现标准的调用前快照。
+ 引用的评估器的`skill_content`行为类似于`Builtin.SkillInstructionFollowing`：它仅在`SKILL.md`主体可用的技能调用工具调用上运行，并`{context}`呈现**完整的会话上下文——从会话开始到会话**结束的每一个回合。这不同于标准的工具级别`context`。

无论哪种情况，每次技能调用都会发出一个 AgentCore 评估结果。[有关自定义评估器的创作，请参阅创建赋值器。](create-evaluator.md)