1. 简介
概览
在此 Codelab 中,您将学习如何使用开源框架 Inspect 针对一组智能体技能执行评估。您将使用 Docker 容器在自己的机器上运行此评估。Gemini CLI 将用作软件工程智能体,通过 Inspect SWE 执行评估
您将执行的操作
使用自定义提示评估针对一组智能体技能运行评估。
学习内容
- 如何使用开源框架针对技能运行评估。
- 如何编写提示,以便在问答评分器中用作评估问题。
2. 准备工作
设置 Gemini API
如需使用 Gemini API,请在 Google AI Studio 中创建 API 密钥。
可选:测试密钥
如果您有权访问带有 curl 的命令行,请将您的密钥添加到以下代码块的第一行,然后在终端中高效运转该代码块以测试 API 密钥。
export GEMINI_API_KEY=Paste_your_API_key_here
curl "https://generativelanguage.googleapis.com/v1beta/models?key=${GEMINI_API_KEY}"
您应该会看到 JSON 格式的模型列表,例如 models/gemini-3.6-flash。这意味着它已正常运行。
安装系统依赖项
您需要在机器上安装以下软件才能完成本教程:
- Docker
- 此软件将用于在沙盒环境中运行评估
- Python
- 这是编写 Inspect 所用的编程语言
- Node.js 和 NPM
- 这是编写 Gemini CLI 所用的编程语言。
- git
- 此软件将用于获取正在评估的技能代码库的副本
3. 确定要评估的技能
智能体技能是一种标准化方式,可为 AI 智能体提供新功能和专业知识。
此 Codelab 将使用 Google 智能体技能代码库 (https://github.com/google/skills) 作为示例,但您可以将其更改为包含智能体技能的任何 GitHub 代码库。
根据代码库的内容,我们将使用一系列提示问题和答案,这些问题和答案已知包含在技能集中。软件工程智能体将使用这些问题和答案来检查提供的技能是否可以回答给定的问题。
Google 智能体技能代码库包含一项特定于 Cloud Run 的技能,因此我们可以提出以下问题:
“如果我的本地机器上有代码,如何将服务部署到 Cloud Run?”
此问题的答案是 “gcloud run deploy”。我们将向评估者提供此问题和答案以及技能的 GitHub 代码库,然后评估者将确认所提供的问题是否可以通过智能体技能回答。
4. 运行评估
在此步骤中,您将运行示例评估。
安装 Python 依赖项
在本地机器上,运行以下命令以安装 Python 依赖项。
pip install inspect-ai inspect-swe google-genai
创建技能代码库的副本
在名为 google-skills 的文件夹中创建 Google 智能体技能代码库的本地副本。
git clone https://github.com/google/skills.git --depth 1 google-skills
查看 Python 应用
您将运行的评估如下所示:
from pathlib import Path
import os
from inspect_ai import Task, task
from inspect_ai.dataset import Sample
from inspect_ai.scorer import model_graded_qa
from inspect_swe import gemini_cli
if "GEMINI_API_KEY" not in os.environ:
raise ValueError("Missing GEMINI_API_KEY. Please set GEMINI_API_KEY environment variable.")
@task
def skills_eval(agent_skills_folder, model="google/gemini-3.6-flash"):
# For the provided folder, find all folders containing skills
skill_files = (Path.cwd() / agent_skills_folder).rglob("SKILL.md")
all_skills = [str(s.parent) for s in skill_files]
# Example question and answers
questions = [
Sample(
input="How do I deploy a Cloud Run service?",
target="gcloud run deploy"
),
Sample(
input="How can I connect to a Cloud SQL instance",
target="cloud sql proxy"
),
Sample(
input="How can I list the roles available in IAM?",
target="fortune | cowsay",
),
]
return Task(
dataset=questions,
solver=gemini_cli(skills=all_skills),
scorer=model_graded_qa(),
sandbox="docker",
model=model,
)
将此文件另存为 skills-eval.py 。
此代码包含一个带装饰器的函数 skills_eval,该函数使用以下逻辑:
- 获取提供的目录,并创建该代码库中所有技能文件的列表。
- 使用一组静态问题和答案作为数据集
- 注意:其中一个问题包含一个故意错误的答案。
- 使用以下项运行评估:
- Gemini CLI 作为求解器
- Model Grader QA 作为评分器
- Docker 作为沙盒
- Gemini 3.6 Flash 作为模型。
在下一步中,您将使用 Inspect 运行此评估。
运行评估
如需运行评估,请使用以下命令:
inspect eval skills-eval.py -T agent_skills_folder=google-skills
首次运行此评估时,它会下载 Docker 容器,安装 Node.JS 和 Python 依赖项,这需要一些时间才能完成,具体取决于您的网络连接。如果您再次运行评估,此设置将被缓存。
下载完成后,Inspect 将执行评估。您的终端中将显示一个交互式界面,让您可以在评估过程中进行互动。

在评估期间,您可以点击“Running Samples”(正在运行的示例)查看当前进度,或取消该过程。

在下一步中,您将查看结果。
5. 查看和解读结果
评估完成后,您可以查看评估结果。
查看结果
评估将 .eval 文件写入 logs/ 文件夹。这是一个二进制文件,无法直接查看。
如需查看评估结果,请使用 Inspect 查看器:
inspect view
这将在 http://127.0.0.1:7575 上创建一个 Web 服务器。打开此网址即可查看结果。

解读结果
此评估使用了 Model Grader,其中给出了以下等级:
- “C”:完整
- 答案完全正确
- “P”:部分
- 答案大部分正确
- “I”:不完整
- 答案不正确。
在此 Codelab 中,有一个故意错误的答案,显示为“I”(不完整),并将总体准确率降至 0.667(三个答案中有两个正确)。
您可以点击任意标签页,查看有关所用方法、所用令牌以及评估的其他信息。
6. 扩展评估
您可以对此评估进行多项更改,以扩大评估范围。
提供更多问题
对于具有多项技能的代码库,请尝试根据技能代码库的内容添加更多问题和答案。Inspect 支持使用文件作为这些数据集,包括 内置数据集读取器,支持 CSV、JSON 和 JSON Line 格式。
更新正在测试的智能体技能
随着智能体技能代码库的更新,您可以更新代码的本地副本,并根据新信息重新运行评估。这有助于您跟踪技能随时间推移的表现。如果智能体技能已更新,请在本地副本中运行 git pull 以更新代码,然后重新运行评估以查看更改。
使用不同的评分器
在此 Codelab 中,我们使用了 Model Graded 评分器。Inspect 提供了多个 内置评分器,并且还提供了创建自己的 自定义评分器 的选项。
使用不同的求解器模型
在此 Codelab 中,我们使用了 Gemini 3.6 Flash 作为求解器模型。您可以通过将模型名称作为命令行参数提供来更改此设置,而无需更改代码。您可以使用以下命令,使用不同的 Gemini 模型重新运行评估:
inspect eval skills-eval -T agent_skills_folder=google-skills \
-T model=google/gemini-pro-latest
此“任务参数”将显示在 Inspect 查看器中,让您可以跟踪用于运行评估的参数。
评估不同的技能
在此 Codelab 中,我们使用了 Google 智能体技能代码库作为正在评估的技能。
您可以评估不同的技能代码库,但问题和答案也必须更新以匹配。例如,Flutter 智能体技能不会给出 Cloud Run 特定问题的答案。
7. 恭喜
您已学习如何使用开源框架针对技能运行评估,以及如何编写提示,以便在问答评分器中用作评估问题。