Back to all posts

Jak automatycznie testować umiejętności agentów AI wobec szybko zmieniających się API

Jak automatycznie testować umiejętności agentów AI wobec szybko zmieniających się API

W repozytorium vm0-ai/vm0-skills opracowaliśmy dziesiątki umiejętności do integracji z różnymi zewnętrznymi platformami SaaS. Te umiejętności umożliwiają agentom Claude Code i Codex płynną współpracę z usługami takimi jak GitHub, Slack, Discord i wieloma innymi.

Choć te integracje są niezwykle wartościowe, stanowią poważne wyzwanie testowe. Bez odpowiedniej infrastruktury testowej nie możemy wiarygodnie sprawdzić, czy umiejętności działają zgodnie z oczekiwaniami ani wykryć krytycznych zmian, gdy API stron trzecich ewoluują.

Dlaczego testowanie umiejętności agentów AI wobec zewnętrznych API jest trudne

Testowanie integracji zewnętrznych jest z natury trudne. Każda umiejętność zależy od zewnętrznych API, które mogą się zmieniać bez ostrzeżenia, co wymaga stałej czujności, by utrzymać niezawodność. Tradycyjne testy jednostkowe często zawodzą, ponieważ nie są w stanie odtworzyć rzeczywistego zachowania API, przepływów uwierzytelniania i przypadków brzegowych, które pojawiają się dopiero w środowisku produkcyjnym.

Bez kompleksowych testów pozostają nierozwiązane kluczowe problemy:

  • Weryfikacja funkcjonalności: Nie możemy potwierdzić, że umiejętności działają zgodnie z zamierzeniem w rzeczywistych scenariuszach
  • Wykrywanie zmian krytycznych: Gdy API SaaS ewoluują, nie mamy automatycznego sposobu identyfikacji problemów ze zgodnością
  • Weryfikacja uwierzytelniania: Przepływy OAuth, mechanizmy odświeżania tokenów i zakresy uprawnień wymagają ciągłej kontroli
  • Obsługa błędów: Musimy zapewnić łagodne przechodzenie w tryb awaryjny, gdy usługi zewnętrzne są niedostępne

To generuje znaczne obciążenie utrzymaniowe i potencjalne problemy z niezawodnością, które mogą wpłynąć na procesy produkcyjne.

Testowanie umiejętności agentów AI przez agentów AI w rzeczywistych środowiskach

Ponieważ te umiejętności są zaprojektowane specjalnie dla agentów Claude Code i Codex, najbardziej naturalnym i skutecznym podejściem jest użycie tych samych agentów do ich testowania. Tworzy to samowalidujący się ekosystem, w którym narzędzia testują się w swoim docelowym środowisku.

VM0 zapewnia infrastrukturę chmurową niezbędną do niezawodnego uruchamiania agentów Claude Code i Codex, co czyni ją idealną platformą do wdrożenia tej strategii testowania.

Zautomatyzowany, kompleksowy workflow testowania umiejętności agentów AI

Kompletny workflow automatycznego testowania umiejętności opisano poniżej. Ten agent systematycznie testuje każdą umiejętność w repozytorium, generuje szczegółowe raporty i powiadamia zespół wieloma kanałami.

# Skills Tester Agent

## Overview

This agent performs automated testing of all skills in the vm0-skills repository.

## Critical Requirements

**MANDATORY: Complete All Tests Without Exception**

- No matter how long the task takes, it MUST be completed in full
- Continue until ALL items in `TODO.md` are tested - no early termination
- **NO skipping tasks** - every skill must be tested
- **NO selective testing** - do not cherry-pick which skills to test
- **Every example MUST have a result** - each example command in every skill's SKILL.md must be executed and recorded
- If a test fails, record the failure and continue to the next test
- Do not stop or pause until the entire test suite is complete

## Instructions

1. **Clone and Initialize**
   - Clone the repo `vm0-ai/vm0-skills`
   - Create a `TODO.md` file to track testing progress

2. **Generate Todo List**
   - For each skill folder in the repo, add a todo item to `TODO.md`

3. **Test Each Skill**
   - Create a sub-agent for each skill to test
   - Each sub-agent should:
     - Verify all required environment variables exist
     - Test each example command in the skill's SKILL.md
     - Write a temporary test result markdown file
     - Record whether the test passed, and specifically note any shell command failures or jq parsing errors

4. **Summarize Results**
   - Aggregate all test results into `result.md`

5. **Update README**
   - Based on `result.md`, update the `README.md`
   - Update or insert a skill list section with:
     - Brief description of each skill's capabilities
     - Test status (passed/failed)

6. **Commit and Push**
   - Only commit `README.md`
   - Push to the repository using `GITHUB_TOKEN` for authentication

7. **Report Issues**
   - For skills with test failures, create a GitHub issue summarizing all problems

8. **Notify Slack**
   - Post a message to Slack channel `#dev` with:
     - Total number of skills
     - Number of passed tests
     - Number of failed tests
     - Brief summary of issues
     - Link to the GitHub issue (if created)

9. **Notify Discord**
   - Post a message to the Discord `skills` channel with:
     - Confirmation that routine testing is complete
     - Number of skills that passed
     - Total number of skills tested

Konfiguracja agenta przez vm0.yaml

Następnie wystarczy zaplanować uruchamianie tego workflow przez VM0. Utwórz plik vm0.yaml, aby opisać konfigurację kontenera agenta. Plik określa, jakich umiejętności agent potrzebuje, jakie zmienne środowiskowe wstrzyknąć i jak uruchomić workflow testowy.

version: "1.0"

agents:
  skills-tester:
    image: skills-tester:latest
    provider: claude-code
    instructions: AGENTS.md
    skills:
      - https://github.com/vm0-ai/vm0-skills/tree/main/github
      - https://github.com/vm0-ai/vm0-skills/tree/main/slack
      - https://github.com/vm0-ai/vm0-skills/tree/main/discord
    environment:
      CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
      DISCORD_BOT_TOKEN: ${{ secrets.DISCORD_BOT_TOKEN }}
      # ... additional environment variables as needed

Pełny plik konfiguracyjny znajdziesz w vm0-skills/.vm0/vm0.yaml. W tym przykładzie pominięto niektóre zmienne środowiskowe dla przejrzystości.

Ta konfiguracja agenta obejmuje trzy kluczowe umiejętności:

  • Umiejętność GitHub: Do operacji na repozytorium, tworzenia zgłoszeń i aktualizacji README
  • Umiejętność Slack: Do publikowania wyników testów na kanałach zespołu
  • Umiejętność Discord: Do powiadomień społeczności o zakończeniu testów

Tworzenie obrazu Docker

Musisz także skonfigurować obraz Docker instalujący niezbędne zależności, w szczególności GitHub CLI (gh), którego agent używa do operacji na repozytorium.

Utwórz Dockerfile:

FROM node:20-slim

RUN apt-get update && apt-get install -y \\
    git \\
    curl \\
    python3 \\
    python3-pip \\
    python3-venv \\
    jq \\
    && rm -rf /var/lib/apt/lists/*

RUN curl -fsSL <https://cli.github.com/packages/githubcli-archive-keyring.gpg> | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \\
    && chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \\
    && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] <https://cli.github.com/packages> stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \\
    && apt-get update \\
    && apt-get install -y gh \\
    && rm -rf /var/lib/apt/lists/*

RUN npm install -g @anthropic-ai/claude-code

Ten Dockerfile tworzy lekki kontener z:

  • Node.js 20: Środowisko uruchomieniowe dla Claude Code
  • Git: Operacje kontroli wersji
  • GitHub CLI: Uproszczona obsługa API GitHub
  • Python 3: Do uruchamiania skryptów testujących umiejętności
  • jq: Parsowanie JSON w poleceniach powłoki

Składanie systemu testowania umiejętności AI

To wszystko! Mając te trzy pliki: AGENTS.md, Dockerfile i vm0.yaml, masz kompletny, zautomatyzowany system testowania. Pełną implementację znajdziesz w vm0-skills/.vm0.

Wykonaj poniższe polecenia w katalogu projektu, aby zbudować i wdrożyć agenta:

$ vm0 image build -f Dockerfile --name skills-tester
$ vm0 compose vm0.yaml

Pierwsze polecenie buduje obraz Docker ze wszystkimi wymaganymi zależnościami. Drugie rejestruje konfigurację agenta na platformie VM0.

Uruchamianie workflow

Teraz możesz uruchomić cały workflow testowy jednym poleceniem:

$ vm0 run skills-tester "do the job"

Agent automatycznie wykona:

  1. Sklonowanie repozytorium vm0-skills
  2. Wygenerowanie listy kontrolnej testów dla wszystkich umiejętności
  3. Systematyczne wykonanie testów każdej umiejętności
  4. Zebranie pełnych wyników
  5. Aktualizację README repozytorium
  6. Utworzenie zgłoszeń GitHub dla niepowodzeń
  7. Wysłanie powiadomień na Slack i Discord

Debugowanie krok po kroku

Jeśli chcesz debugować workflow etapami lub najpierw przetestować pojedynczą umiejętność, możesz użyć ukierunkowanych promptów:

$ vm0 run skills-tester "Only do the first step, using a single skill."

Po zakończeniu pierwszego kroku przez agenta możesz kontynuować sesję na podstawie identyfikatora sesji podanego w wyniku:

$ vm0 run continue SESSION_ID "Do the next step."

To interaktywne podejście pozwala:

  • Zweryfikować każdy krok przed przejściem dalej
  • Przejrzeć wyniki pośrednie
  • Dostosować workflow w razie potrzeby
  • Skuteczniej debugować problemy

Wyniki i powiadomienia

Po zakończeniu workflow otrzymasz powiadomienia w wielu kanałach z potwierdzeniem wyników testów.

Powiadomienie Discord z podsumowaniem zakończenia testów

Powiadomienie Slack z szczegółowymi wynikami testów

Dla każdej umiejętności, która nie przejdzie testów, agent automatycznie tworzy zgłoszenie GitHub z pełnymi szczegółami niepowodzenia. Zobacz Skill Test Failures - Issue #2 jako przykład wygenerowanego zgłoszenia.

Kluczowe wnioski z automatyzacji testowania umiejętności agentów AI

Automatyzacja testowania umiejętności agentów VM0 przynosi wiele kluczowych korzyści:

  • Ciągła weryfikacja: Natychmiastowe wykrywanie zmian krytycznych w API stron trzecich, zanim wpłyną na produkcję
  • Realistyczne środowisko testowe: Agenci testują umiejętności dokładnie tam, gdzie są używane, eliminując lukę między testami a produkcją
  • Zero ręcznej pracy: Po konfiguracji workflow testowy działa automatycznie według harmonogramu, bez udziału człowieka
  • Pełne pokrycie: Każda umiejętność jest testowana systematycznie, nic nie umyka uwadze
  • Świadomość zespołu: Powiadomienia wielokanałowe informują wszystkich o wynikach testów i problemach

Wykorzystując infrastrukturę chmurową VM0 i możliwości agentów Claude, możesz utrzymać niezawodne integracje z usługami zewnętrznymi przy minimalnym nakładzie pracy utrzymaniowej. To podejście przekształca testowanie umiejętności z ręcznego, podatnego na błędy procesu we w pełni zautomatyzowany system zapewnienia jakości.

Zacznij z VM0 już dziś

Chcesz zautomatyzować własne workflow z agentami AI? VM0 umożliwia wdrożenie gotowych do produkcji agentów w kilka minut, nie tygodni.

Co możesz zbudować z VM0

  • Zautomatyzowane pipeline'y testowe

    Uruchamiaj zaplanowane zadania testowe, takie jak ten tester umiejętności, by wcześnie wykrywać zmiany w API stron trzecich.

  • Workflow generowania treści

    Zamieniaj badania, notatki lub surowe dane w wpisy na bloga, dokumentację czy notatki o wydaniu bez ręcznego kopiowania.

  • Agenci do przetwarzania danych

    Pobieraj dane z wielu źródeł, oczyszczaj je i przekazuj dalej, obsługując błędy i ponowienia.

  • Automatyzacja wsparcia klienta

    Segreguj zgłoszenia, przygotowuj odpowiedzi i przekazuj nietypowe przypadki ludziom, gdy to konieczne.

  • Przegląd i analiza kodu

    Przeglądaj pull requesty, oznaczaj potencjalne problemy i egzekwuj podstawowe zasady przed przeglądem przez człowieka.

Odwiedź vm0.ai, aby założyć darmowe konto i wdrożyć pierwszego agenta już dziś.

Zacznij budować przyszłość zautomatyzowanych workflow.

Stay in the loop

// Get the latest insights on AI teammates and collaboration.