Contract-First als bescherming tegen LLM-agents: API-First keert terug om frontend en backend op één lijn te houden
Moonshot AI
De auteur beschrijft het probleem van projectdegradatie bij het gebruik van LLM-agents voor ontwikkeling: agents negeren vaak de daadwerkelijke contracten tussen frontend en backend, maken dummy-data aan en leiden tot runtimefouten. De oplossing is om terug te keren naar de contract-first-benadering, waarbij de OpenAPI-specificatie het primaire artefact is waaruit serverinterfaces en clients worden gegenereerd, waardoor elke afwijking van het contract een compilatiefout wordt.
De auteur kwam bij twee zijprojecten tegen dat LLM-agenten vaak afwijken van contracten bij het ontwikkelen van frontend en backend: de frontend-agent typeert antwoorden als Record<string, unknown>, gebruikt losse objecten of JSON-knooppunten, dupliceert DTO's met verschillende veldnamen en simuleert soms zelfs een niet-bestaande backend met lokale gegevens en toastmeldingen. Geen van deze fouten wordt opgevangen door de compiler, linter of architectuurtests, omdat analyzers geen HTTP-verzoeken tussen codebases zien. De oplossing is contract-first: de enige bron van waarheid is de OpenAPI-specificatie (YAML), waaruit serverinterfaces (met opties interfaceOnly en skipDefaultInterface) en een client worden gegenereerd bij de build. De controller implementeert de gegenereerde interface, waardoor handtekeningen overeenkomen—elke afwijking van het contract wordt een compilatiefout. De auteur merkt op dat deze aanpak al wordt gebruikt in gRPC en GraphQL en terugkeert naar REST, omdat de contractlezer nu geen mens is maar een LLM-agent, die intenties niet herstelt en de goedkope weg van gokken kiest.
Bron: Habr — хаб ИИ —
origineel
