AI-translated from English; not yet reviewed by a fluent editor.

# AI 智能体可能跳过必需技能，而且不留下评分痕迹

> 新的技能评估器分别检查技能加载、选择和指令执行。缺少评估结果时的处理方式各不相同，这说明团队为何必须将评估覆盖率本身视为证据。

By BIG CHANGE Editorial

Published: 2026-09-23T04:51:32.802Z
Updated: 2026-09-23T09:28:46.768Z
Canonical: https://bigchange.ai/blog/ai-agent-skill-evaluation-no-score-blind-spot

![Precision tools hang on a steel workshop board around one empty orange-rimmed shaped holder.](https://bigchange.ai/api/media/file/agent-skill-toolboard-evidence-hero-v4-1.png)
AI-generated conceptual illustration by BIG CHANGE. Conceptual illustration of a workshop tool board with an empty holder.

回答流畅，并不能证明 AI 智能体使用了规定的流程。[AWS 9 月 22 日发布的指南](https://aws.amazon.com/blogs/machine-learning/evaluate-skill-equipped-agents-with-strands-evals-and-amazon-bedrock-agentcore/)介绍了如何根据已记录的运行过程，使用 Strands Evals 和 Amazon Bedrock AgentCore 评估技能选择和指令执行。两套系统对缺少评估的情况处理不同，这会影响人们如何解读它们的通过标记。

## 重大变化

- **变化内容：**这些工具会区分一个流程是否已加载、是否适合当前任务，以及其中步骤是否得到遵循。
- **为何重要：**经检查的 Strands 代码可能会将未评判的案例标记为通过。如果仅依据这一标记作出发布决策，可能忽略从未加载的必需技能。
- **关注事项：**除了评分，还要检查评估覆盖情况：观察到了哪些预期加载行为？哪些调用记录了足够证据，因而可以作出判断？

## 三种检查回答不同问题

《[Agent Skills 规范](https://agentskills.io/specification)》将技能定义为围绕一个`SKILL.md`SKILL.md 文件。其名称和描述帮助智能体判断何时使用该技能；激活后才会加载指令正文。这种分离意味着，成功加载、恰当选择和正确执行是三个不同的问题。

| 检查项 | 证据与结果 | 局限 |
| --- | --- | --- |
| Strands`SkillInvoked` | 有记录的指定技能成功加载事件；以确定性方式判定通过或失败 | 不评估技能是否适用，也不评估执行情况 |
| AgentCore 技能选择准确度 | 被调用的技能、请求、先前上下文和可用时的技能目录；由模型判断“是”或“否” | 不评判不调用任何技能的决定 |
| AgentCore 指令遵循度 | 已加载的指令和完整会话；按五个等级评估，从完全遵循到未遵循 | 评估记录到的步骤遵循情况，不评估底层工作的正确性 |

锁定版本的[`SkillInvoked`实现](https://github.com/strands-agents/evals/blob/9ea55c96d461d70b0d742f547a95389e4c7fe18d/src/strands_evals/evaluators/deterministic/skill_invoked.py)要求存在状态为`loaded`的匹配加载事件。如果没有成功加载，缺失、失败或尚未解决的尝试都会导致此断言失败。该检查不会调用评判模型。若测试案例要求使用特定技能，这便提供了直接核验方式。

## AgentCore 可能不返回任何结果

根据[AgentCore 文档](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/skill-evaluators.html)，如果没有检测到技能调用或技能正文信号，两个评判器都会跳过该工具调用。未检测到技能调用的会话会得到零项结果。

缺少技能目录不会阻止技能选择评估：评估器仍会使用请求和对话上下文。指令遵循评估则需要同时提供被调用的技能及其已加载正文；完整会话提供后续步骤的证据。

## Strands 可能返回一个标记为通过的 N/A 行

对 Strands Evals 提交版本`9ea55c9`源码的检查时间为 9 月 23 日。以下内容描述的是该版本的实现，并不代表每个已安装 SDK 版本的行为。

如果存在运行轨迹，但没有技能调用，[技能选择评估器](https://github.com/strands-agents/evals/blob/9ea55c96d461d70b0d742f547a95389e4c7fe18d/src/strands_evals/evaluators/skill_selection_accuracy_evaluator.py)会返回一个不适用行：分数为占位值`0.0`，通过标记为`test_pass=true`。该评判器的范围不包括判断不使用某项技能是否正确。

该[指令遵循评估器](https://github.com/strands-agents/evals/blob/9ea55c96d461d70b0d742f547a95389e4c7fe18d/src/strands_evals/evaluators/skill_instruction_following_evaluator.py)对于没有技能调用、加载被拒绝或正文不可用的情况，也会返回标记为通过的 N/A 行。如果缺少运行轨迹，两个评估器都会返回 N/A，但通过标记为 false。

它们的[聚合函数](https://github.com/strands-agents/evals/blob/9ea55c96d461d70b0d742f547a95389e4c7fe18d/src/strands_evals/evaluators/evaluator.py)不会将 N/A 行计入平均分。若所有行均为 N/A，函数会保留占位分数 0，并合并各行的通过标记。因此，数字和标记必须结合标签与原因才能正确解读。

若路由要求必须使用某项技能，应将评判器与指定技能加载断言配合使用。若要评估遵循程度，应先检查是否记录了指令和执行证据，再将通过标记视为评判结果。BIG CHANGE 审查了文档和源代码，但未实际运行这些评估器。

## Sources

- [AWS：使用 Strands Evals 和 Amazon Bedrock AgentCore 评估配备技能的智能体](https://aws.amazon.com/blogs/machine-learning/evaluate-skill-equipped-agents-with-strands-evals-and-amazon-bedrock-agentcore/) — 9 月 22 日发布的指南介绍了评估器的分工以及基于已记录运行过程的工作流程。指南中的示例是构造的教程案例，不是实际事件报告。
- [Amazon Bedrock AgentCore：技能评估器](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/skill-evaluators.html) — 说明 AgentCore 对信号的要求、技能目录缺失时的回退方式、指令遵循评估所需的完整会话证据，以及零结果行为。
- [Strands Evals：技能选择准确度评估器（所检查的提交版本）](https://github.com/strands-agents/evals/blob/9ea55c96d461d70b0d742f547a95389e4c7fe18d/src/strands_evals/evaluators/skill_selection_accuracy_evaluator.py) — 锁定版本代码：没有技能调用时会产生标记为通过的 N/A 占位结果，而不是经评判的技能选择。结论仅适用于检查的提交版本。
- [Strands Evals：技能指令遵循评估器（所检查的提交版本）](https://github.com/strands-agents/evals/blob/9ea55c96d461d70b0d742f547a95389e4c7fe18d/src/strands_evals/evaluators/skill_instruction_following_evaluator.py) — 锁定版本代码：没有技能调用、加载失败或正文缺失时，会产生标记为通过的 N/A 行；缺少运行轨迹则判定为失败。这些标记不能证明指令得到了遵循。
- [Strands Evals：确定性 SkillInvoked 评估器（所检查的提交版本）](https://github.com/strands-agents/evals/blob/9ea55c96d461d70b0d742f547a95389e4c7fe18d/src/strands_evals/evaluators/deterministic/skill_invoked.py) — 锁定版本源码表明，指定技能断言要求有记录的成功加载事件；无需模型评判，即可区分缺失、失败和未解决的尝试。
- [Agent Skills 规范](https://agentskills.io/specification) — 关于 SKILL.md 文件结构和渐进式披露的开放规范：路由时可读取元数据，激活后再加载指令正文。
- [Strands Evals：N/A 聚合（所检查的提交版本）](https://github.com/strands-agents/evals/blob/9ea55c96d461d70b0d742f547a95389e4c7fe18d/src/strands_evals/evaluators/evaluator.py) — 聚合实现不会将 N/A 计入评分平均值；如果所有行均为 N/A，则保留占位分数 0，并合并通过标记。
