WP-Bench: officiell AI-benchmark för WordPress – så funkar den och så kör du igång
Kodassistenter och LLM:er (large language models, alltså språkmodeller) har snabbt blivit en del av vardagen för många WordPress-utvecklare. Problemet är att de flesta modeller i praktiken utvärderas på generella programmeringsuppgifter – medan WordPress har sin egen verklighet: hooks, core-API:er, kodstandarder, plugin-arkitektur, säkerhetsmönster och en massa historik.
För att få ett mer verklighetsnära svar på frågan hur bra en modell faktiskt förstår WordPress har WordPress nu släppt WP-Bench: ett officiellt, open source-benchmark för WordPress-AI. Projektet finns här: WP-Bench på GitHub.
Varför WP-Bench är relevant (även om du inte bygger “AI-grejer”)
WordPress driver en enorm del av webben, men när man jämför modeller pratar man ofta om “bra på kod” i bred bemärkelse. WP-Bench fyller glappet genom att mäta WordPress-specifik kompetens – inte bara om modellen kan skriva PHP, utan om den kan skriva WordPress-kod som är korrekt, säker och följer etablerade mönster.
- Bättre beslutsunderlag idag: Om du använder en kodassistent eller bygger ett AI-flöde i ett plugin vill du veta vilka modeller som faktiskt klarar WordPress-kontexten (hooks, capability-checks, nonces, WP_Query, REST API osv).
- Tryck på modell-leverantörer: Ambitionen är att WP-Bench ska bli ett standardmått som även AI-labb kör i sina interna utvärderingar. Då hamnar WordPress-prestanda på radarn tidigt, inte som en eftertanke.
- Öppen jämförbarhet: Teamet jobbar mot en publik leaderboard där resultat blir transparenta och lättare att jämföra mellan modeller och versioner.
Två dimensioner: Knowledge och Execution
WP-Bench delar upp utvärderingen i två huvudspår:
- Knowledge: flervalsfrågor som testar förståelse för WordPress-koncept, API:er, hooks, säkerhetsmönster och kodstandarder. Här finns extra fokus på modernare tillskott som Abilities API och Interactivity API (där många modeller typiskt är svagare).
- Execution: kodgenereringsuppgifter som bedöms genom att koden faktiskt körs i en riktig WordPress-runtime, kompletterat med statisk analys och runtime-assertions.
Det intressanta: WordPress fungerar som domare
Det som gör WP-Bench mer praktiskt än många “kod-benchmarks” är att det inte stannar vid att någon jämför text mot ett facit. I stället körs genererad kod i en sandboxad miljö, och WordPress själv (via verktygskedjan runt runtime) agerar graderare.
Så går rättningen till i praktiken
- Harnessen skickar en prompt till modellen och ber om WordPress-kod.
- Den genererade koden skickas vidare till WordPress-runtime via WP-CLI.
- Runtimen gör statisk analys (t.ex. syntax, kodstandarder, säkerhetsaspekter).
- Koden körs i en sandbox med assertions/testkontroller.
- Resultat kommer tillbaka som JSON med poäng och mer detaljerad feedback.
Kom igång lokalt: snabbstart
WP-Bench är upplagt som ett repo med en Python-baserad “harness” (körningen/orchestreringen) och en runtime-del som står för WordPress-miljön och graderingen.
1) Installera harnessen
python3 -m venv .venv && source .venv/bin/activate
pip install -e ./python2) Lägg in API-nycklar i en .env
Skapa en .env och fyll på med nycklar för de leverantörer du vill köra mot (exempelvis OpenAI, Anthropic eller Google):
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=...3) Starta WordPress-runtimen
cd runtime
npm install
npm start4) Kör benchmarken
cd ..
wp-bench run --config wp-bench.example.yamlResultaten hamnar i output/results.json och mer granular loggning per test i output/results.jsonl.
Kör flera modeller i samma svep
En praktisk detalj är att WP-Bench kan jämföra flera modeller i en och samma körning genom att lista dem i konfigurationen. Modellnamnen följer LiteLLM conventions, vilket förenklar när du växlar mellan leverantörer.
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-flashHarnessen kör modellerna sekventiellt och skriver ut en jämförelsetabell baserat på resultaten.
Konfiguration: vad du faktiskt vill titta på
Du utgår från wp-bench.example.yaml och justerar framför allt dataset-källa, suite, grader och körparametrar.
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.jsonlBra CLI-kommandon när du itererar
wp-bench run --config wp-bench.yaml # kör med configfil
wp-bench run --model-name gpt-4o --limit 5 # snabbtest med en modell
wp-bench dry-run --config wp-bench.yaml # validera config utan att anropa modellerDatasets och suites: så är testfallen uppbyggda
Testsviterna ligger i datasets/suites/<suite-name>/ och består av två mappar per suite: en för flervalsfrågor och en för exekveringstester.
execution/– kodgenereringsuppgifter med assertions (en JSON-fil per kategori).knowledge/– flervalsfrågor om WordPress-koncept (en JSON-fil per kategori).
Den förvalda sviten wp-core-v1 täcker bland annat WordPress core-API:er, hooks, databasoperationer och vanliga säkerhetsmönster.
Hämta dataset via Hugging Face
Om du vill ladda dataset externt kan du peka WP-Bench mot Hugging Face i konfigurationen:
dataset:
source: huggingface
name: WordPress/wp-bench-v1Repo-strukturen (för dig som vill bidra)
.
├── 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)Nuvarande läge och kända begränsningar
WP-Bench är en tidig release, och det märks på ett sätt som är bra att känna till innan man drar för stora slutsatser av en enskild körning:
- Relativt liten dataset just nu: Fler testfall behövs för att täcka bredden i WordPress-utveckling och göra benchmarken mer robust.
- Bias mot nyare WordPress-funktioner: Benchmarken lutar just nu åt WordPress 6.9-nära API:er som Abilities API och Interactivity API. Enligt projektets beskrivning är det delvis medvetet (nya API:er är svårare för modeller), men det innebär också att vissa modeller kan missgynnas eftersom det ligger efter deras träningsdata.
- “Saturation” på äldre koncept: Tidiga tester visar att modeller kan få väldigt höga poäng på äldre WordPress-kunskap, vilket gör att de frågorna ger sämre signal. Utmaningen blir att hitta testfall som är genuint svåra – inte bara nya.
När WP-Bench blir praktiskt användbart för dig som utvecklare
Det mest intressanta med WP-Bench är att det kan bli ett gemensamt språk för att prata om kvalitet i WordPress-assisterad utveckling. Om du t.ex. jämför modeller för intern användning i ett team, eller ska välja leverantör för AI-funktioner i ett plugin, ger en WordPress-nära benchmark ofta mer värde än generella “coding leaderboards”.
Resurser
- WP-Bench GitHub Repository: https://github.com/WordPress/wp-bench
- AI Building Blocks for WordPress: https://make.wordpress.org/ai/2025/07/17/ai-building-blocks/
- #core-ai Slack channel: https://wordpress.slack.com/archives/C08TJ8BPULS
Referenser / Källor
Erik Johansson
Förespråkare för Spotify-stil ingenjörskultur. Squad- och chapter-modeller, agil organisationsdesign är mitt område. Teamens prestation är nyckeln.
Alla inlägg