Évaluer les compétences de l'agent à l'aide de frameworks Open Source

1. Introduction

Présentation

Dans cet atelier de programmation, vous apprendrez à utiliser le framework Open Source Inspect pour effectuer des évaluations par rapport à un ensemble de compétences d'agent. Vous exécuterez cette évaluation sur votre propre machine à l'aide de conteneurs Docker. Gemini CLI sera utilisé comme agent d'ingénierie logicielle pour effectuer l'évaluation via Inspect SWE.

Objectifs de l'atelier

Exécuter une évaluation par rapport à un ensemble de compétences d'agent à l'aide d'évaluations d'invites personnalisées.

Objectifs

  • Exécuter une évaluation par rapport à des compétences à l'aide de frameworks Open Source.
  • Rédiger des invites à utiliser comme questions d'évaluation dans les correcteurs de questions-réponses.

2. Avant de commencer

Configurer l'API Gemini

Pour utiliser l'API Gemini, créez une clé API dans Google AI Studio.

Facultatif : Tester votre clé

Si vous avez accès à une ligne de commande avec curl, ajoutez votre clé à la première ligne du bloc suivant, puis exécutez-la dans votre terminal pour tester la clé API.

export GEMINI_API_KEY=Paste_your_API_key_here
curl "https://generativelanguage.googleapis.com/v1beta/models?key=${GEMINI_API_KEY}"

Vous devriez voir une liste de modèles au format JSON, tels que models/gemini-3.1-pro-preview. Cela signifie que l'opération a fonctionné.

Installer les dépendances système.

Vous devrez installer les logiciels suivants sur votre machine pour suivre ce tutoriel :

  • Docker
    • Il sera utilisé pour exécuter l'évaluation dans un environnement bac à sable.
  • Python
    • Il s'agit du langage de programmation dans lequel Inspect est écrit.
  • Node.js et npm
    • Il s'agit du langage de programmation dans lequel Gemini CLI est écrit.
  • git
    • Il sera utilisé pour obtenir une copie du dépôt de compétences en cours d'évaluation.

3. Identifier les compétences à évaluer

Les compétences d'agent sont un moyen standardisé de doter les agents d'IA de nouvelles capacités et d'une nouvelle expertise.

Cet atelier de programmation utilisera le dépôt de compétences d'agent Google (https://github.com/google/skills) comme exemple, mais vous pouvez le remplacer par n'importe quel dépôt GitHub contenant des compétences d'agent.

En fonction du contenu du dépôt, nous utiliserons une série de questions et réponses d'invite que nous savons contenues dans l'ensemble des compétences. Ces questions et réponses seront utilisées par l'agent d'ingénierie logicielle pour vérifier si les compétences fournies peuvent répondre à la question posée.

Le dépôt de compétences d'agent Google contient une compétence spécifique à Cloud Run. Nous pouvons donc poser la question suivante :

"Comment déployer un service sur Cloud Run à partir du code de ma machine locale ?"

La réponse à cette question est "gcloud run deploy". Nous fournirons cette question et cette réponse, ainsi que le dépôt GitHub de compétences, à l'évaluateur, qui confirmera ensuite si la question peut être résolue par les compétences d'agent fournies.

4. Exécuter l'évaluation

Dans cette étape, vous allez exécuter un exemple d'évaluation.

Installer des dépendances Python

Sur votre machine locale, exécutez la commande suivante pour installer les dépendances Python.

pip install inspect-ai inspect-swe google-genai

Créer une copie du dépôt de compétences

Créez une copie locale du dépôt de compétences d'agent Google dans un dossier appelé google-skills.

git clone https://github.com/google/skills.git --depth 1 google-skills

Examiner l'application Python

L'évaluation que vous allez exécuter est la suivante :

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.1-pro-preview"):

    # 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,
    )

Enregistrez ce fichier sous le nom skills-eval.py.

Ce code contient une fonction décorée skills_eval, qui utilise la logique suivante :

  • Prenez le répertoire fourni et créez une liste de tous les fichiers de compétences de ce dépôt.
  • Utilisez un ensemble de questions et réponses statiques comme ensemble de données.
    • Remarque : L'une des questions contient une réponse intentionnellement incorrecte.
  • Exécutez l'évaluation à l'aide des éléments suivants :
    • Gemini CLI comme solveur
    • Model Grader QA comme évaluateur
    • Docker comme bac à sable
    • Gemini Pro 3.1 comme modèle.

À l'étape suivante, vous utiliserez Inspect pour exécuter cette évaluation.

Exécuter l'évaluation

Pour exécuter l'évaluation, utilisez la commande suivante :

inspect eval skills-eval.py -T agent_skills_folder=google-skills

La première fois que cette évaluation est exécutée, elle télécharge les conteneurs Docker et installe les dépendances Node.js et Python. Cette opération prendra un certain temps, en fonction de votre connexion réseau. Si vous exécutez à nouveau l'évaluation, cette configuration sera mise en cache.

Une fois le téléchargement terminé, Inspect effectue l'évaluation. Une interface interactive s'affiche dans votre terminal, ce qui vous permet d'interagir au fur et à mesure de l'évaluation.

Tâches en cours d'exécution

Pendant l'évaluation, vous pouvez cliquer sur "Running Samples" (Exécution d'exemples) pour afficher la progression actuelle ou annuler le processus.

Exécuter des exemples

À l'étape suivante, vous examinerez les résultats.

5. Afficher et interpréter les résultats

Une fois l'évaluation terminée, vous pouvez afficher ses résultats.

Afficher les résultats

L'évaluation a écrit un fichier .eval dans le dossier logs/. Il s'agit d'un fichier binaire qui n'est pas directement visible.

Pour afficher les résultats de l'évaluation, utilisez Inspect Viewer :

inspect view

Un serveur Web sera créé à l'adresse http://127.0.0.1:7575. Ouvrez cette URL pour afficher les résultats.

Vue "Inspecter"

Interprétation des résultats

Cette évaluation a utilisé un correcteur de modèle, qui attribue les notes suivantes :

  • "C" : Complète
    • La réponse était entièrement correcte.
  • "P" : Partielle
    • La réponse était principalement correcte.
  • "I" : Incomplète
    • La réponse n'était pas correcte.

Dans cet atelier de programmation, une réponse est intentionnellement incorrecte.Elle apparaît comme "I" (Incomplète) et réduit la justesse générale à 0,667 (deux réponses correctes sur trois).

Pour afficher des informations supplémentaires sur la méthode utilisée, les jetons utilisés et d'autres informations sur l'évaluation, cliquez sur l'un des onglets.

6. Étendre l'évaluation

Vous pouvez apporter un certain nombre de modifications à cette évaluation pour en étendre la portée.

Fournir plus de questions

Pour les dépôts comportant plusieurs compétences, essayez d'ajouter d'autres questions et réponses en fonction du contenu du dépôt de compétences. Inspect prend en charge l'utilisation de fichiers comme ensembles de données, y compris les lecteurs d'ensembles de données intégrés pour les formats CSV, JSON et JSON Line.

Mettre à jour les compétences d'agent testées

À mesure que les dépôts de compétences d'agent sont mis à jour, vous pouvez mettre à jour votre copie locale du code et réexécuter l'évaluation par rapport aux nouvelles informations. Cela peut vous aider à suivre les performances des compétences au fil du temps. Si une compétence d'agent est mise à jour, exécutez git pull dans votre copie locale pour mettre à jour le code, puis réexécutez l'évaluation pour voir les modifications.

Utiliser différents évaluateurs

Dans cet atelier de programmation, nous avons utilisé l'évaluateur Model Graded. Inspect propose plusieurs évaluateurs intégrés, ainsi que la possibilité de créer votre propre évaluateur personnalisé.

Utiliser différents modèles de solveur

Dans cet atelier de programmation, nous avons utilisé Gemini 3.1 Pro comme modèle de solveur. Vous pouvez modifier ce paramètre en fournissant le nom du modèle comme paramètre de ligne de commande, sans avoir à modifier le code. Vous pouvez réexécuter l'évaluation avec un autre modèle Gemini à l'aide de la commande suivante :

inspect eval skills-eval -T agent_skills_folder=google-skills \
  -T model=google/gemini-3.1-flash-live-preview

Cet "argument de tâche" s'affichera dans Inspect Viewer, ce qui vous permettra de suivre les arguments utilisés pour exécuter l'évaluation.

Évaluer différentes compétences

Dans cet atelier de programmation, nous avons utilisé le dépôt de compétences d'agent Google comme compétences évaluées.

Vous pouvez évaluer différents dépôts de compétences, mais les questions et les réponses devront également être mises à jour pour correspondre. Par exemple, les compétences d'agent Flutter ne fourniront pas les réponses aux questions spécifiques à Cloud Run.

7. Félicitations

Vous avez appris à exécuter une évaluation par rapport à des compétences à l'aide de frameworks Open Source, et à rédiger des invites à utiliser comme questions d'évaluation dans les correcteurs de questions-réponses.