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`ファイルを基本に定義される。その名前と説明はエージェントが使用場面を判断する手掛かりとなり、指示本文は有効化された後に読み込まれる。この違いにより、読み込みの成功、適切な選択、実行はそれぞれ別に確認する必要がある。

| 確認項目 | 証拠と結果 | 限界 |
| --- | --- | --- |
| Strandsの`SkillInvoked` | 指定スキルの読み込み成功を記録し、決定的に合否を判定する。 | 適切さや実行内容は評価しない。 |
| AgentCoreの選択精度 | 呼び出されたスキル、依頼、直前の文脈、利用可能な場合はスキル一覧を用い、モデルが「はい」か「いいえ」を判定する。 | 何も呼び出さない判断は評価しない。 |
| AgentCoreの指示遵守 | 読み込まれた指示とセッション全体を用い、完全に遵守から未遵守までの5段階で判定する。 | 記録された手順への従い方を評価するもので、作業自体の正しさは評価しない。 |

固定版の[`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)は非該当（N/A）の行を返し、仮のスコアは`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を返す。

両評価器の[集約関数](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と合格フラグを保持する。
