Back to all posts

Como testar automaticamente skills de agentes de IA em APIs que mudam rápido

No repositório vm0-ai/vm0-skills, desenvolvemos dezenas de skills para integração com diversas plataformas SaaS de terceiros. Essas skills permitem que agentes Claude Code e Codex interajam de forma fluida com serviços como GitHub, Slack, Discord e muitos outros.

Embora essas integrações sejam extremamente valiosas, elas representam um desafio significativo de testes. Sem uma infraestrutura de testes adequada, não conseguimos verificar de forma confiável se as skills funcionam como esperado nem detectar mudanças que quebram a compatibilidade quando as APIs de terceiros evoluem.

Por que testar skills de agentes de IA de terceiros é difícil

Testar integrações com terceiros é, por natureza, complicado. Cada skill depende de APIs externas que podem mudar sem aviso prévio, exigindo vigilância constante para manter a confiabilidade. Testes unitários tradicionais muitas vezes ficam aquém, porque não conseguem reproduzir o comportamento real das APIs, os fluxos de autenticação e os casos extremos que só aparecem em ambientes de produção.

Sem testes abrangentes, vários problemas críticos permanecem sem solução:

Isso cria uma carga significativa de manutenção e potenciais problemas de confiabilidade que podem impactar os fluxos de trabalho em produção.

Usando agentes de IA para testar skills de agentes de IA em ambientes reais

Como essas skills são projetadas especificamente para agentes Claude Code e Codex, a abordagem mais natural e eficaz é usar esses mesmos agentes para testá-las. Isso cria um ecossistema autovalidável, em que as ferramentas testam a si mesmas no ambiente para o qual foram concebidas.

A VM0 oferece a infraestrutura em nuvem necessária para executar agentes Claude Code e Codex de forma confiável, o que a torna uma plataforma ideal para implementar essa estratégia de testes.

Um fluxo de trabalho automatizado de ponta a ponta para testar skills de agentes de IA

O fluxo de trabalho completo para o teste automatizado de skills está descrito a seguir. Esse agente testa sistematicamente cada skill do repositório, gera relatórios abrangentes e notifica a equipe por meio de múltiplos canais.

# 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

Configurando o agente com vm0.yaml

Em seguida, basta agendar a VM0 para executar esse fluxo de trabalho. Crie um arquivo vm0.yaml para descrever a configuração do contêiner do agente. Esse arquivo especifica de quais skills o agente precisa, quais variáveis de ambiente injetar e como executar o fluxo de trabalho de testes.

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

Para o arquivo de configuração completo, consulte vm0-skills/.vm0/vm0.yaml. Algumas variáveis de ambiente foram omitidas neste exemplo para fins de brevidade.

Essa configuração do agente inclui três skills essenciais:

Criando a imagem Docker

Você também precisará configurar uma imagem Docker que instale as dependências necessárias, em particular a CLI do GitHub (gh), que o agente usa para as operações no repositório.

Crie um 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

Esse Dockerfile cria um contêiner leve com:

Montando o sistema de testes de skills de IA

É só isso de que você precisa! Com esses três arquivos no lugar — AGENTS.md, Dockerfile e vm0.yaml —, você tem um sistema completo de testes automatizados. Você pode ver a implementação completa em vm0-skills/.vm0.

Execute os seguintes comandos no diretório do seu projeto para construir e implantar o agente:

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

O primeiro comando constrói a imagem Docker com todas as dependências necessárias. O segundo comando registra a configuração do agente na plataforma da VM0.

Executando o fluxo de trabalho

Agora você pode executar todo o fluxo de trabalho de testes com um único comando:

$ vm0 run skills-tester "do the job"

O agente irá, de forma autônoma:

  1. Clonar o repositório vm0-skills
  2. Gerar uma lista de verificação de testes para todas as skills
  3. Executar os testes de cada skill de forma sistemática
  4. Compilar resultados abrangentes
  5. Atualizar o README do repositório
  6. Criar issues no GitHub para as falhas
  7. Enviar notificações para o Slack e o Discord

Depurando passo a passo

Se você quiser depurar o fluxo de trabalho de forma incremental ou testar primeiro uma única skill, pode usar prompts direcionados:

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

Depois que o agente concluir o primeiro passo, você pode continuar a sessão com base no ID de sessão fornecido na saída:

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

Essa abordagem interativa permite que você:

Resultados e notificações

Depois que o fluxo de trabalho é concluído, você recebe notificações em múltiplos canais confirmando os resultados dos testes.

discord-test-notification.png Notificação à comunidade no Discord exibindo o resumo da conclusão dos testes

slack-test-notification.png Notificação à equipe no Slack com os resultados detalhados dos testes

Para quaisquer skills que falhem nos testes, o agente cria automaticamente uma issue no GitHub com detalhes completos da falha. Consulte Skill Test Failures - Issue #2 para ver um exemplo do formato de issue gerado.

Principais lições da automação de testes de skills de agentes de IA

Implementar testes automatizados de skills com agentes da VM0 oferece vários benefícios essenciais:

Ao aproveitar a infraestrutura em nuvem da VM0 e as capacidades de agente do Claude, você pode manter integrações confiáveis com serviços externos enquanto minimiza a carga contínua de manutenção. Essa abordagem transforma o teste de skills de um processo manual e propenso a erros em um sistema de garantia de qualidade totalmente automatizado.

Comece a usar a VM0 hoje

Pronto para automatizar seus próprios fluxos de trabalho com agentes de IA? A VM0 facilita a implantação de agentes prontos para produção em minutos, não em semanas.

O que você pode construir com a VM0

Acesse vm0.ai para criar sua conta gratuita e implantar seu primeiro agente hoje mesmo. Junte-se à nossa comunidade no Discord para se conectar com outros builders, compartilhar seus fluxos de trabalho e obter ajuda da equipe.

Comece a construir o futuro dos fluxos de trabalho automatizados.

Related Articles

Stay in the loop

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

SubscribeJoin Discord