Back to all posts

Come testare automaticamente le skill degli agenti AI contro API in rapida evoluzione

Nel repository vm0-ai/vm0-skills abbiamo sviluppato decine di skill per l'integrazione con varie piattaforme SaaS di terze parti. Queste skill permettono agli agenti Claude Code e Codex di interagire senza problemi con servizi come GitHub, Slack, Discord e molti altri.

Per quanto queste integrazioni siano estremamente preziose, presentano una sfida significativa sul fronte dei test. Senza un'adeguata infrastruttura di testing, non possiamo verificare in modo affidabile se le skill funzionano come previsto o rilevare modifiche che ne compromettono il funzionamento quando le API di terze parti evolvono.

Perché testare le skill degli agenti AI di terze parti è difficile

Testare le integrazioni di terze parti è intrinsecamente complicato. Ogni skill dipende da API esterne che possono cambiare senza preavviso, richiedendo una vigilanza costante per mantenere l'affidabilità. I test unitari tradizionali spesso non bastano, perché non riescono a riprodurre il comportamento reale delle API, i flussi di autenticazione e i casi limite che emergono soltanto in ambienti di produzione.

Senza test completi, diversi problemi critici restano irrisolti:

Tutto questo genera un notevole onere di manutenzione e potenziali problemi di affidabilità che potrebbero avere un impatto sui flussi di lavoro in produzione.

Usare gli agenti AI per testare le skill degli agenti AI in ambienti reali

Poiché queste skill sono progettate specificamente per gli agenti Claude Code e Codex, l'approccio più naturale ed efficace è usare proprio questi stessi agenti per testarle. Si crea così un ecosistema auto-validante in cui gli strumenti testano se stessi nell'ambiente per cui sono stati pensati.

VM0 fornisce l'infrastruttura cloud necessaria per eseguire in modo affidabile gli agenti Claude Code e Codex, rendendola una piattaforma ideale per implementare questa strategia di testing.

Un flusso di lavoro automatizzato end-to-end per testare le skill degli agenti AI

Di seguito è descritto il flusso di lavoro completo per il testing automatizzato delle skill. Questo agente testa sistematicamente ogni skill nel repository, genera report completi e avvisa il team attraverso più canali.

# 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

Configurare l'agente con vm0.yaml

A questo punto, ti basta pianificare l'esecuzione di questo flusso di lavoro su VM0. Crea un file vm0.yaml per descrivere la configurazione del container dell'agente. Questo file specifica quali skill servono all'agente, quali variabili d'ambiente iniettare e come eseguire il flusso di lavoro di testing.

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

Per il file di configurazione completo, consulta vm0-skills/.vm0/vm0.yaml. In questo esempio alcune variabili d'ambiente sono state omesse per brevità.

Questa configurazione dell'agente include tre skill essenziali:

Creare l'immagine Docker

Dovrai inoltre configurare un'immagine Docker che installi le dipendenze necessarie, in particolare la GitHub CLI (gh) che l'agente usa per le operazioni sul repository.

Crea un file 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

Questo Dockerfile crea un container leggero con:

Assemblare il sistema di testing delle skill AI

Questo è tutto ciò che serve! Una volta predisposti questi tre file, AGENTS.md, Dockerfile e vm0.yaml, disponi di un sistema di testing automatizzato completo. Puoi vedere l'implementazione completa su vm0-skills/.vm0.

Esegui i comandi seguenti nella directory del tuo progetto per compilare e distribuire l'agente:

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

Il primo comando compila l'immagine Docker con tutte le dipendenze necessarie. Il secondo comando registra la configurazione dell'agente sulla piattaforma VM0.

Eseguire il flusso di lavoro

Ora puoi eseguire l'intero flusso di lavoro di testing con un solo comando:

$ vm0 run skills-tester "do the job"

L'agente eseguirà in autonomia le seguenti operazioni:

  1. Clonare il repository vm0-skills
  2. Generare una checklist di testing per tutte le skill
  3. Eseguire i test per ciascuna skill in modo sistematico
  4. Compilare i risultati completi
  5. Aggiornare il README del repository
  6. Creare issue su GitHub per i fallimenti
  7. Inviare le notifiche a Slack e Discord

Debug passo dopo passo

Se vuoi eseguire il debug del flusso di lavoro in modo incrementale o testare prima una singola skill, puoi usare prompt mirati:

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

Una volta che l'agente ha completato il primo passaggio, puoi proseguire la sessione utilizzando il session ID indicato nell'output:

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

Questo approccio interattivo ti permette di:

Risultati e notifiche

Al termine del flusso di lavoro, riceverai notifiche su più canali che confermano i risultati dei test.

discord-test-notification.png Notifica alla community Discord con il riepilogo del completamento dei test

slack-test-notification.png Notifica al team su Slack con i risultati dettagliati dei test

Per qualsiasi skill che non supera i test, l'agente crea automaticamente una issue su GitHub con i dettagli completi del fallimento. Vedi Skill Test Failures - Issue #2 per un esempio del formato della issue generata.

Lezioni chiave dall'automazione del testing delle skill degli agenti AI

Implementare il testing automatizzato delle skill con gli agenti VM0 offre diversi vantaggi fondamentali:

Sfruttando l'infrastruttura cloud di VM0 e le capacità degli agenti di Claude, puoi mantenere integrazioni affidabili con i servizi esterni riducendo al minimo l'onere di manutenzione continuo. Questo approccio trasforma il testing delle skill da un processo manuale e soggetto a errori in un sistema di assicurazione qualità completamente automatizzato.

Inizia a usare VM0 oggi stesso

Pronto ad automatizzare i tuoi flussi di lavoro con gli agenti AI? VM0 rende semplice distribuire agenti pronti per la produzione in pochi minuti, non settimane.

Cosa puoi costruire con VM0

Visita vm0.ai per creare il tuo account gratuito e distribuire il tuo primo agente oggi stesso. Unisciti alla nostra community Discord per entrare in contatto con altri builder, condividere i tuoi flussi di lavoro e ricevere aiuto dal team.

Inizia a costruire il futuro dei flussi di lavoro automatizzati.

Related Articles

Stay in the loop

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

SubscribeJoin Discord