Contract-First như một biện pháp bảo vệ chống lại LLM Agents: API-First trở lại để giữ Frontend và Backend đồng bộ
Moonshot AI
Tác giả mô tả vấn đề suy thoái dự án khi sử dụng LLM agents để phát triển: các agent thường bỏ qua các hợp đồng thực tế giữa frontend và backend, tạo ra dữ liệu giả và dẫn đến lỗi runtime. Giải pháp là quay lại phương pháp contract-first, nơi đặc tả OpenAPI là tạo phẩm chính từ đó các giao diện máy chủ và máy khách được tạo ra, làm cho bất kỳ sai lệch nào so với hợp đồng trở thành lỗi biên dịch.
Tác giả đã gặp phải ở hai dự án phụ rằng các tác tử LLM thường đi lệch hợp đồng khi phát triển frontend và backend: tác tử frontend khai báo kiểu trả về là Record<string, unknown>, sử dụng các đối tượng lỏng lẻo hoặc nút JSON, trùng lặp các DTO với tên trường khác nhau, và đôi khi còn mô phỏng một backend không tồn tại bằng dữ liệu cục bộ và các thông báo toast. Không có lỗi nào trong số này bị trình biên dịch, trình lint, hoặc các bài kiểm tra kiến trúc phát hiện, vì các công cụ phân tích không thấy được các yêu cầu HTTP giữa các codebase. Giải pháp là hợp đồng trước (contract-first): nguồn sự thật duy nhất là đặc tả OpenAPI (YAML), từ đó tạo ra các interface phía máy chủ (với các tùy chọn interfaceOnly và skipDefaultInterface) và một client tại thời điểm xây dựng. Controller triển khai interface đã tạo, đảm bảo khớp chữ ký—bất kỳ sai lệch nào so với hợp đồng đều trở thành lỗi biên dịch. Tác giả lưu ý rằng cách tiếp cận này đã được sử dụng trong gRPC và GraphQL và đang quay trở lại REST, vì người đọc hợp đồng bây giờ không phải là con người mà là tác tử LLM, thứ không thể khôi phục ý định và chọn con đường dễ dàng là đoán.
Nguồn: Habr — хаб ИИ —
bản gốc
