Ocena umiejętności agenta za pomocą platform open source

1. Wprowadzenie

Przegląd

Z tego ćwiczenia dowiesz się, jak za pomocą platformy open source Inspect przeprowadzać oceny na podstawie zestawu umiejętności agenta. Ocenę przeprowadzisz na własnym komputerze za pomocą kontenerów Dockera. Do przeprowadzenia oceny użyjemy interfejsu wiersza poleceń Gemini jako agenta inżynierii oprogramowania za pomocą Inspect SWE.

Jakie zadania wykonasz

Przeprowadź ocenę na podstawie zestawu umiejętności agenta za pomocą niestandardowych ocen promptów.

Czego się nauczysz

  • Jak przeprowadzić ocenę umiejętności za pomocą platform open source.
  • Jak pisać prompty, które będą używane jako pytania oceniające w oceniających pytania i odpowiedzi.

2. Zanim zaczniesz

Konfigurowanie Gemini API

Aby korzystać z Gemini API, utwórz klucz interfejsu API w Google AI Studio.

Opcjonalnie: przetestuj klucz

Jeśli masz dostęp do wiersza poleceń z curl, dodaj klucz do pierwszego wiersza tego bloku, a następnie uruchom go w terminalu, aby przetestować klucz interfejsu API.

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

Powinna się wyświetlić lista modeli w formacie JSON, np. models/gemini-3.6-flash. Oznacza to, że wszystko działa.

Instalowanie zależności systemowych

Aby ukończyć ten samouczek, musisz zainstalować na komputerze te programy:

  • Docker
    • Będzie on używany do przeprowadzania oceny w środowisku piaskownicy.
  • Python
    • Jest to język programowania, w którym napisano Inspect.
  • Node.js i NPM
    • Jest to język programowania, w którym napisano interfejs wiersza poleceń Gemini.
  • git
    • Będzie on używany do pobierania kopii ocenianego repozytorium umiejętności.

3. Określanie umiejętności do oceny

Umiejętności agenta to standardowy sposób na dodawanie nowych możliwości i wiedzy specjalistycznej do agentów AI.

W tym ćwiczeniu użyjemy jako przykładu repozytorium umiejętności agenta Google (https://github.com/google/skills), ale możesz je zmienić na dowolne repozytorium GitHub, które zawiera umiejętności agenta.

Na podstawie zawartości repozytorium użyjemy serii pytań i odpowiedzi, które znajdują się w zestawie umiejętności. Te pytania i odpowiedzi będą używane przez agenta inżynierii oprogramowania do sprawdzania, czy podane umiejętności mogą odpowiedzieć na zadane pytanie.

Repozytorium umiejętności agenta Google zawiera umiejętność dotyczącą Cloud Run, więc możemy zadać to pytanie:

„Jak wdrożyć usługę w Cloud Run, mając kod na komputerze lokalnym?”

Odpowiedź na to pytanie brzmi „gcloud run deploy”. Przekażemy to pytanie i odpowiedź, a także repozytorium umiejętności na GitHubie, osobie oceniającej, która potwierdzi, czy na to pytanie można odpowiedzieć za pomocą podanych umiejętności agenta.

4. Przeprowadź ocenę

W tym kroku przeprowadzisz przykładową ocenę.

Instalowanie zależności Pythona

Aby zainstalować zależności Pythona, uruchom na komputerze lokalnym to polecenie.

pip install inspect-ai inspect-swe google-genai

Utwórz kopię repozytorium umiejętności

Utwórz lokalną kopię repozytorium umiejętności agenta Google w folderze o nazwie google-skills.

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

Sprawdź aplikację w Pythonie

Przeprowadzisz tę ocenę:

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

Zapisz ten plik jako skills-eval.py.

Ten kod zawiera udekorowaną funkcję skills_eval, która używa tej logiki:

  • Pobierz podany katalog i utwórz listę wszystkich plików umiejętności w tym repozytorium.
  • Użyj zestawu statycznych pytań i odpowiedzi jako zbioru danych.
    • Uwaga: jedno z pytań zawiera celowo błędną odpowiedź.
  • Przeprowadź ocenę za pomocą:
    • interfejsu wiersza poleceń Gemini jako narzędzia do rozwiązywania problemów,
    • Model Grader QA jako narzędzia do oceniania,
    • Dockera jako piaskownicy,
    • Gemini 3.6 Flash jako modelu.

W następnym kroku użyjesz Inspect do przeprowadzenia tej oceny.

Przeprowadź ocenę

Aby przeprowadzić ocenę, użyj tego polecenia:

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

Przy pierwszym uruchomieniu tej oceny zostaną pobrane kontenery Dockera i zainstalowane zależności Node.JS i Pythona. W zależności od połączenia sieciowego może to potrwać. Jeśli ponownie uruchomisz ocenę, ta konfiguracja zostanie zapisana w pamięci podręcznej.

Po pobraniu Inspect przeprowadzi ocenę. W terminalu pojawi się interaktywny interfejs, który umożliwi Ci interakcję w trakcie oceny.

Uruchomione zadania

Podczas oceny możesz kliknąć „Running Samples” (Uruchamianie próbek), aby zobaczyć bieżący postęp lub anulować proces.

Przykłady uruchomień

W następnym kroku sprawdzisz wyniki.

5. Wyświetlanie i interpretowanie wyników

Po zakończeniu oceny możesz wyświetlić jej wyniki.

Wyświetl wyniki

Ocena zapisała plik .eval w folderze logs/. Jest to plik binarny, którego nie można bezpośrednio wyświetlić.

Aby wyświetlić wyniki oceny, użyj Inspect Viewer:

inspect view

Spowoduje to utworzenie serwera WWW pod adresem http://127.0.0.1:7575. Otwórz ten adres URL, aby wyświetlić wyniki.

Widok inspekcji

Interpretowanie wyników

Ta ocena użyła Model Grader, w którym przyznawane są te oceny:

  • „C”: Complete (Pełna)
    • Odpowiedź była całkowicie prawidłowa.
  • „P”: Partial (Częściowa)
    • Odpowiedź była w większości prawidłowa.
  • „I”: Incomplete (Niepełna)
    • Odpowiedź była nieprawidłowa.

W tym ćwiczeniu jest jedna celowo nieprawidłowa odpowiedź, która jest oznaczona jako „I” (Niepełna) i obniża ogólną dokładność do 0,667 (2 prawidłowe odpowiedzi na 3).

Aby wyświetlić dodatkowe informacje o zastosowanej metodzie, użytych tokenach i inne informacje o ocenie, kliknij dowolną kartę.

6. Rozszerzanie oceny

Aby rozszerzyć zakres tej oceny, możesz wprowadzić w niej kilka zmian.

Podaj więcej pytań

W przypadku repozytoriów z wieloma umiejętnościami spróbuj dodać więcej pytań i odpowiedzi na podstawie zawartości repozytorium umiejętności. Inspect obsługuje używanie plików jako tych zbiorów danych, w tym wbudowanych czytników zbiorów danych w formatach CSV, JSON i JSON Line.

Aktualizowanie testowanych umiejętności agenta

W miarę aktualizowania repozytoriów umiejętności agenta możesz aktualizować lokalną kopię kodu i ponownie przeprowadzać ocenę na podstawie nowych informacji. Pomoże Ci to śledzić skuteczność umiejętności na przestrzeni czasu. Jeśli umiejętność agenta zostanie zaktualizowana, uruchom w lokalnej kopii polecenie git pull, aby zaktualizować kod, a następnie ponownie przeprowadź ocenę, aby zobaczyć zmiany.

Używaj różnych narzędzi do oceniania

W tym ćwiczeniu użyliśmy narzędzia do oceniania Model Graded. Inspect oferuje kilka wbudowanych narzędzi do oceniania, a także możliwość utworzenia własnego narzędzia niestandardowego.

Używaj różnych modeli narzędzi do rozwiązywania problemów

W tym ćwiczeniu użyliśmy Gemini 3.6 Flash jako modelu narzędzia do rozwiązywania problemów. Możesz to zmienić, podając nazwę modelu jako parametr wiersza poleceń, bez konieczności zmiany kodu. Aby ponownie przeprowadzić ocenę za pomocą innego modelu Gemini, użyj tego polecenia:

inspect eval skills-eval -T agent_skills_folder=google-skills \
  -T model=google/gemini-pro-latest

Ten „argument zadania” pojawi się w Inspect Viewer, co pozwoli Ci śledzić argumenty użyte do przeprowadzenia oceny.

Oceniaj różne umiejętności

W tym ćwiczeniu użyliśmy jako ocenianych umiejętności repozytorium umiejętności agenta Google.

Możesz oceniać różne repozytoria umiejętności, ale pytania i odpowiedzi też trzeba będzie zaktualizować. Na przykład umiejętności agenta Flutter nie będą zawierać odpowiedzi na pytania dotyczące Cloud Run.

7. Gratulacje

Dowiedziałeś się, jak przeprowadzić ocenę umiejętności za pomocą platform open source oraz jak pisać prompty, które będą używane jako pytania oceniające w oceniających pytania i odpowiedzi.