WP-Bench: o benchmark oficial para medir IA a sério em desenvolvimento WordPress
Quem usa assistentes de código no dia a dia já percebeu o padrão: para tarefas genéricas, muitos modelos parecem excelentes; quando o assunto é WordPress (APIs do core, hooks, padrões de segurança, arquitetura de plugins), a qualidade varia bastante. O problema é que quase sempre essa percepção fica no “achismo” — faltam métricas reprodutíveis e específicas para o ecossistema.
O WP-Bench foi criado exatamente para preencher esse buraco: é o benchmark oficial de IA para WordPress, pensado para avaliar o desempenho de modelos de linguagem em tarefas que refletem o que developers realmente fazem quando desenvolvem para WordPress.
O que é o WP-Bench (e o que ele mede)
O WP-Bench avalia modelos em dois eixos complementares:
- Knowledge: questões de múltipla escolha sobre conceitos e detalhes do WordPress — APIs, hooks, padrões de segurança e coding standards — com atenção a adições mais recentes como a Abilities API e a Interactivity API.
- Execution: tarefas de geração de código avaliadas por um runtime real de WordPress, combinando análise estática e execução em sandbox com assertions (testes/validações).
Na prática, isso evita um problema comum em avaliações de IA: o modelo pode “parecer” certo ao explicar algo, mas falhar ao gerar código que roda, respeita padrões do projeto e não abre uma brecha de segurança.
Porque este benchmark é relevante para quem desenvolve em WordPress
Benchmarks tradicionais tendem a medir competências gerais (algoritmos, tarefas de programação genéricas, trivia de linguagens). Só que WordPress é um ecossistema com idiossincrasias: convenções próprias, APIs específicas, e muita superfície de segurança ligada a input do utilizador, permissões e saneamento de dados.
O WP-Bench entra como um “termómetro” do que interessa para o nosso contexto. Isto tem implicações bem práticas:
- Escolha de ferramentas com mais fundamento: se estás a construir um plugin com funcionalidades assistidas por IA ou a padronizar um modelo para a equipa, faz diferença saber qual modelo se sai melhor em tarefas WordPress.
- Pressão positiva sobre fornecedores: a ambição declarada é que o WP-Bench vire referência também para labs e providers na hora de avaliarem modelos antes do lançamento — para que WordPress não seja um caso periférico.
- Transparência via leaderboard open source: existe trabalho em direção a um ranking público, com resultados comparáveis em tarefas WordPress, para ajudar a comunidade a tomar decisões informadas.
Como o WP-Bench avalia código (o detalhe que faz a diferença)
O ponto mais interessante do WP-Bench é que o próprio WordPress atua como “avaliador”. Em vez de depender apenas de uma heurística textual, o benchmark executa o que o modelo gerou num ambiente controlado.
Pipeline de avaliação (em alto nível)
- O harness (orquestrador) envia um prompt ao modelo pedindo código WordPress.
- O código gerado é encaminhado para um runtime WordPress via WP-CLI (interface de linha de comandos do WordPress).
- O runtime aplica análise estática: sintaxe, conformidade com coding standards e sinais de problemas de segurança.
- O código é executado numa sandbox com assertions para verificar comportamento esperado.
- O WP-Bench devolve um resultado em JSON, com pontuação e feedback detalhado por teste.
Por que “executar de verdade” importa
Em WordPress, um snippet pode parecer plausível e ainda assim falhar por detalhes como contexto de hook, escaping incorreto, capability errada, uso inadequado de funções do core ou até side effects em runtime. Avaliação com execução ajuda a separar “texto convincente” de “código utilizável”.
Instalação e quick start (para correr localmente)
O WP-Bench está no GitHub e traz uma estrutura com harness em Python e um runtime baseado em WordPress para fazer a correção. Um fluxo típico de arranque envolve: criar um ambiente Python, configurar chaves de API do provider e subir o runtime.
1) Criar virtualenv e instalar o harness
python3 -m venv .venv && source .venv/bin/activate
pip install -e ./python2) Configurar chaves de API
Cria um ficheiro .env com as chaves do(s) provider(s) que vais usar:
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=...3) Subir o runtime do WordPress (grader)
cd runtime
npm install
npm start4) Executar o benchmark
cd ..
wp-bench run --config wp-bench.example.yamlOs resultados são gravados em output/results.json, com logs por teste em output/results.jsonl.
Comparar vários modelos na mesma corrida
Um caso de uso comum é comparar modelos “lado a lado” com o mesmo dataset e a mesma configuração do grader. Para isso, basta listar múltiplos modelos no ficheiro YAML:
models:
- name: gpt-4o
- name: gpt-4o-mini
- name: claude-sonnet-4-20250514
- name: claude-opus-4-5-20251101
- name: gemini/gemini-2.5-pro
- name: gemini/gemini-2.5-flashOs nomes seguem as convenções do LiteLLM (uma camada que uniformiza chamadas a vários providers), o que facilita alternar entre fornecedores sem reescrever o harness.
Configuração: o que dá para ajustar (e o que convém manter estável)
O WP-Bench usa um ficheiro de config (ex.: wp-bench.example.yaml) onde defines dataset, modelos, tipo de grader e parâmetros da corrida. Um exemplo representativo:
dataset:
source: local # 'local' or 'huggingface'
name: wp-core-v1 # suite name
models:
- name: gpt-4o
grader:
kind: docker
wp_env_dir: ./runtime # path to wp-env project
run:
suite: wp-core-v1
limit: 10 # limit tests (null = all)
concurrency: 4
output:
path: output/results.json
jsonl_path: output/results.jsonlDica para comparações justas
Se o objetivo é comparar modelos, mantém constantes o dataset/suite, o limite de testes e a concorrência. Mudanças no ambiente e no conjunto de testes distorcem a leitura do “quem está melhor”.
CLI: comandos úteis
wp-bench run --config wp-bench.yaml # run with config file
wp-bench run --model-name gpt-4o --limit 5 # quick single-model test
wp-bench dry-run --config wp-bench.yaml # validate config without calling modelsComo os datasets estão organizados
As suites de testes ficam em datasets/suites/<suite-name>/ e seguem uma separação clara por tipo de tarefa:
execution/: tarefas de geração de código com assertions (um JSON por categoria).knowledge/: perguntas de múltipla escolha (um JSON por categoria).
A suite padrão mencionada é a wp-core-v1, focada em APIs do core, hooks, operações com base de dados e padrões de segurança.
Carregar datasets a partir do Hugging Face
Além de suites locais, é possível apontar para um dataset no Hugging Face via configuração:
dataset:
source: huggingface
name: WordPress/wp-bench-v1Estado atual (early release) e limitações conhecidas
O WP-Bench foi apresentado como uma versão inicial e já assume algumas limitações importantes:
- Tamanho do dataset: a suite atual ainda é relativamente pequena. Para virar referência, precisa de mais casos cobrindo padrões e APIs do WordPress de forma mais abrangente.
- Cobertura por versões: há um viés para funcionalidades recentes (por exemplo, WordPress 6.9, incluindo Abilities API e Interactivity API). Isto é útil para expor fragilidades reais dos modelos, mas também cria assimetria — muitas dessas APIs podem não estar no treino da maioria dos LLMs.
- Saturação em conceitos antigos: testes iniciais indicaram pontuações muito altas em tópicos “clássicos”, o que reduz o sinal do benchmark. A dificuldade passa a ser encontrar questões que sejam realmente discriminatórias, e não apenas novidades de última hora.
Estrutura do repositório (para te orientares rápido)
.
├── python/ # Benchmark harness (pip installable)
├── runtime/ # WordPress grader plugin + wp-env config
├── datasets/ # Test suites (local JSON + Hugging Face builder)
├── notebooks/ # Results visualization and reporting
└── output/ # Benchmark results (gitignored)O que isto muda no dia a dia de quem faz plugins, themes e integrações
Na prática, o WP-Bench tende a virar uma peça útil em três cenários comuns:
- Avaliar assistentes de código para equipas: em vez de escolher um modelo por popularidade, dá para medir performance em tarefas WordPress e reduzir fricção (menos correções, menos regressões, menos código fora do padrão).
- Validar “prompts padrão” internos: se a tua equipa usa templates de prompt para gerar snippets (metaboxes, REST endpoints, sanitização, capabilities), a dimensão de execution ajuda a perceber se o resultado aguenta runtime.
- Dar feedback ao ecossistema: benchmarks abertos criam linguagem comum para discutir qualidade. Quando algo falha, falha num teste reproduzível — e não numa anedota de Slack.
Recursos oficiais
- Repositório do WP-Bench: https://github.com/WordPress/wp-bench
- AI Building Blocks for WordPress: https://make.wordpress.org/ai/2025/07/17/ai-building-blocks/
- #core-ai no Slack: https://wordpress.slack.com/archives/C08TJ8BPULS
Beatriz Tavares
Especialista em gestão de conteúdo e CMS headless. Strapi e Contentful são os meus favoritos. Acredito no poder do conteúdo estruturado.
Todos os postsMais de Beatriz Tavares
Checklist completa de conformidade com o GDPR para donos de sites (com passos práticos e foco em WordPress)
Falha crítica no ACF Extended permite escalada de privilégios: o que verificar e como mitigar já
Astro junta-se à Cloudflare: o que muda (e o que não muda) para quem constrói sites com conteúdo