Back to all posts

Comment tester automatiquement les skills d'agents IA face à des API en évolution rapide

Dans le dépôt vm0-ai/vm0-skills, nous avons développé des dizaines de skills pour l'intégration avec diverses plateformes SaaS tierces. Ces skills permettent aux agents Claude Code et Codex d'interagir de façon fluide avec des services comme GitHub, Slack, Discord et bien d'autres.

Bien que ces intégrations soient extrêmement précieuses, elles présentent un défi de test important. Sans une infrastructure de test adéquate, nous ne pouvons pas vérifier de manière fiable si les skills fonctionnent comme prévu ni détecter les changements cassants lorsque les API tierces évoluent.

Pourquoi tester les skills d'agents IA tiers est difficile

Tester des intégrations tierces est intrinsèquement difficile. Chaque skill dépend d'API externes susceptibles de changer sans préavis, ce qui exige une vigilance constante pour maintenir la fiabilité. Les tests unitaires traditionnels sont souvent insuffisants, car ils ne peuvent pas reproduire le comportement réel des API, les flux d'authentification et les cas limites qui n'émergent qu'en production.

Sans tests complets, plusieurs problèmes critiques restent sans réponse :

Cela engendre une charge de maintenance importante et de potentiels problèmes de fiabilité susceptibles d'affecter les flux de travail en production.

Utiliser des agents IA pour tester les skills d'agents IA dans des environnements réels

Puisque ces skills sont spécifiquement conçus pour les agents Claude Code et Codex, l'approche la plus naturelle et la plus efficace consiste à utiliser ces mêmes agents pour les tester. Cela crée un écosystème auto-validant dans lequel les outils se testent eux-mêmes dans leur environnement prévu.

VM0 fournit l'infrastructure cloud nécessaire pour exécuter les agents Claude Code et Codex de manière fiable, ce qui en fait une plateforme idéale pour mettre en œuvre cette stratégie de test.

Un flux de travail automatisé de bout en bout pour tester les skills d'agents IA

Le flux de travail complet pour le test automatisé des skills est décrit ci-dessous. Cet agent teste systématiquement chaque skill du dépôt, génère des rapports complets et avertit l'équipe via plusieurs canaux.

# 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

Configurer l'agent avec vm0.yaml

Ensuite, il vous suffit de planifier VM0 pour exécuter ce flux de travail. Créez un fichier vm0.yaml pour décrire la configuration du conteneur de l'agent. Ce fichier précise quels skills l'agent nécessite, quelles variables d'environnement injecter et comment exécuter le flux de travail de test.

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

Pour le fichier de configuration complet, consultez vm0-skills/.vm0/vm0.yaml. Certaines variables d'environnement sont omises dans cet exemple par souci de concision.

Cette configuration d'agent inclut trois skills essentiels :

Créer l'image Docker

Vous devrez également configurer une image Docker qui installe les dépendances nécessaires, notamment la CLI GitHub (gh) que l'agent utilise pour les opérations sur le dépôt.

Créez un 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

Ce Dockerfile crée un conteneur léger avec :

Assembler le système de test des skills IA

C'est tout ce dont vous avez besoin ! Avec ces trois fichiers en place : AGENTS.md, Dockerfile et vm0.yaml, vous disposez d'un système de test automatisé complet. Vous pouvez consulter l'implémentation complète sur vm0-skills/.vm0.

Exécutez les commandes suivantes dans le répertoire de votre projet pour construire et déployer l'agent :

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

La première commande construit l'image Docker avec toutes les dépendances nécessaires. La seconde commande enregistre la configuration de l'agent auprès de la plateforme VM0.

Exécuter le flux de travail

Vous pouvez désormais exécuter l'ensemble du flux de travail de test avec une seule commande :

$ vm0 run skills-tester "do the job"

L'agent va, de manière autonome :

  1. Cloner le dépôt vm0-skills
  2. Générer une liste de contrôle de test pour tous les skills
  3. Exécuter les tests pour chaque skill de manière systématique
  4. Compiler des résultats complets
  5. Mettre à jour le README du dépôt
  6. Créer des issues GitHub pour les échecs
  7. Envoyer des notifications à Slack et Discord

Déboguer étape par étape

Si vous souhaitez déboguer le flux de travail de manière incrémentale ou tester d'abord un seul skill, vous pouvez utiliser des invites ciblées :

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

Une fois que l'agent a terminé la première étape, vous pouvez poursuivre la session à partir de l'identifiant de session fourni dans la sortie :

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

Cette approche interactive vous permet de :

Résultats et notifications

Une fois le flux de travail terminé, vous recevrez des notifications sur plusieurs canaux confirmant les résultats des tests.

discord-test-notification.png Notification à la communauté Discord montrant le récapitulatif de l'achèvement des tests

slack-test-notification.png Notification à l'équipe Slack avec les résultats détaillés des tests

Pour tout skill qui échoue aux tests, l'agent crée automatiquement une issue GitHub avec des détails complets sur l'échec. Voir Skill Test Failures - Issue #2 pour un exemple du format d'issue généré.

Principaux enseignements de l'automatisation du test des skills d'agents IA

La mise en œuvre de tests automatisés des skills avec les agents VM0 offre plusieurs avantages essentiels :

En tirant parti de l'infrastructure cloud de VM0 et des capacités d'agent de Claude, vous pouvez maintenir des intégrations fiables avec des services externes tout en minimisant la charge de maintenance continue. Cette approche transforme le test des skills, d'un processus manuel et sujet aux erreurs, en un système d'assurance qualité entièrement automatisé.

Démarrez avec VM0 dès aujourd'hui

Prêt à automatiser vos propres flux de travail avec des agents IA ? VM0 facilite le déploiement d'agents prêts pour la production en quelques minutes, et non en quelques semaines.

Ce que vous pouvez construire avec VM0

Rendez-vous sur vm0.ai pour créer votre compte gratuit et déployer votre premier agent dès aujourd'hui. Rejoignez notre communauté Discord pour échanger avec d'autres créateurs, partager vos flux de travail et obtenir l'aide de l'équipe.

Commencez à construire l'avenir des flux de travail automatisés.

Related Articles

Stay in the loop

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

SubscribeJoin Discord