Vibe mã hóa hype đang chấm dứt, bởi vì có những hạn chế rất lớn đối với những gì các mô hình ngôn ngữ lớn có thể đạt được. Mặc dù các đại lý mã hóa này đang trở nên khá tốt. Họ có thể quay lên các trang frontend mới, dây lên API, và thậm chí xây dựng cấu hình CI / CD. Nhưng bất cứ ai biết họ không nhất quán như thế nào. cùng một lời nhắc có thể làm việc một lần và phá vỡ tiếp theo. Họ quên các phần của cơ sở mã của bạn, trộn các SDK bị mất giá, hoặc chỉ đơn giản là tạo ra những thứ. Vấn đề không phải là mô hình xấu - đó là nó không Đây là bằng chứng - Ai đó đã viết một ngôn ngữ lập trình chỉ bằng cách sử dụng đại lý mã hóa.Nếu điều này là có thể, bất cứ điều gì là. Biết ngữ cảnh của bạn https://cursed-lang.org/ Để có được đầu ra đáng tin cậy, bạn không thể chỉ cần thúc đẩy tốt hơn. Các đại lý làm việc trong - định hình đầu vào của nó, cung cấp cho nó cấu trúc, và thiết lập các ranh giới đúng. . engineer the environment context engineering LLM không nghĩ như kỹ sư LLM không “phát hiện” mã theo cách chúng ta làm.Họ dự đoán mã thông báo dựa trên các mô hình trong đầu vào trước đó, không phải trên các ứng dụng xây dựng hoặc cấu trúc.Vì vậy, ngay cả những thay đổi nhỏ trong các tập tin nhắc hoặc xung quanh có thể thay đổi đầu ra.Đó là lý do tại sao một chạy vượt qua các bài kiểm tra và một người khác phá vỡ nhập khẩu hoặc quên một nửa cột. Không có cấu trúc, họ giống như thực tập sinh đoán đống của bạn từ bộ nhớ. Bạn không thể sửa chữa điều này bằng cách hét lên với người mẫu. (Tôi có thể nói, tôi đã cố gắng) Bạn sửa chữa nó bằng cách cho nó đúng - các hạn chế và môi trường hướng dẫn nó hướng tới mã hợp lệ mỗi lần. scaffolding Hạn chế làm cho mã có thể dự đoán được Nếu bạn muốn người đại diện cư xử một cách nhất quán, Họ thu hẹp không gian của các đầu ra có thể, và buộc mô hình để duy trì phù hợp với thiết lập của bạn. constraints are your friend Một số hạn chế hữu ích: Loại – Nếu bạn đang sử dụng sơ đồ TypeScript hoặc JSON, đại lý có thể thấy chính xác những hình dạng mà nó cần phải làm theo. Lint + định dạng quy tắc - Prettier, ESLint, hoặc codegen quy tắc làm cho đầu ra nhất quán mà không cần thêm lời nhắc. Nhiệm vụ nhỏ hơn – Thay vì “tạo cho tôi một backend”, hãy hỏi “thêm tuyến đường này vào src/api/user.ts.” Cấu hình và mẫu – Các công cụ như Typeconf và Varlock có thể xác định trước các biến môi trường, SDK hoặc bất kỳ mô hình cấu hình nào mà đại lý phải tuân theo. Bí quyết là đảm bảo rằng bạn luôn viết mã với các kiểu mạnh. bạn không mất linh hoạt - bạn chỉ bắt lỗi sớm hơn và làm cho hành vi lặp đi lặp lại. Xây dựng hệ thống như nền tảng của sự thật Ngay cả khi mã trông tốt, nó thường phá vỡ thời gian xây dựng vì đại lý đoán sai về cách mọi thứ được dây. Ví dụ: Bạn yêu cầu nó chạy thử nghiệm, nó viết thử nghiệm npm - nhưng repo của bạn sử dụng pnpm hoặc nx. Nó cố gắng xây dựng một Dockerfile mà thậm chí không tồn tại môi trường thực tế của bạn. Nó nhập một gói thậm chí không được cài đặt. Fix là để - Cung cấp cho đại lý một hình ảnh rõ ràng về cách mã được xây dựng, thử nghiệm và triển khai. Hãy nghĩ về nó như một công cụ đại lý bổ sung cho môi trường dự án của bạn. abstract the build system Một khi đại lý biết “tạo” có nghĩa là gì trong thế giới của bạn, anh ta có thể sử dụng kiến thức đó thay vì đoán. Bazel, Buck, Nx, hoặc thậm chí một package.json có cấu trúc tốt đã là nền tảng tốt. Bạn càng hiển thị thông tin này, bạn sẽ đối phó với ít ảo giác. Nếu bạn muốn đi xa hơn, bạn có thể viết các công cụ của riêng bạn để ngăn chặn các đại lý gọi hệ thống xây dựng không chính xác, hãy kiểm tra hướng dẫn Claude Code: . https://docs.claude.com/en/docs/claude-code/hooks-guide Vấn đề với việc đào tạo lỗi thời Hầu hết các đại lý mã hóa được đào tạo về dữ liệu đã lỗi thời trong một hoặc hai năm. họ sẽ sử dụng API không còn tồn tại, hoặc các mô hình mã mà mọi người đã bỏ qua từ nhiều thế kỷ trước. Bạn có thể đã thấy những thứ như: Phương pháp React Lifecycle Các chức năng thư viện không tồn tại Cấu hình Next.js API Lệnh NPM cho các thư viện đã chuyển sang các phiên bản mới Bạn không thể dựa vào đào tạo một mình. bạn cần mang lại bối cảnh của riêng bạn - tài liệu thực, mã thực, cấu hình thực. Một số cách để thu hẹp khoảng cách: Lưu trữ trong thư viện tài liệu, ví dụ, thông qua MCP như Context7. Hãy để đại lý đọc các tập tin mã và phụ thuộc thực tế - chỉ cho nó đọc node_modules, bạn sẽ ngạc nhiên khi nó sẽ giúp khắc phục API thường xuyên như thế nào. Thêm hướng dẫn tùy chỉnh vào AGENTS.md cho biết mô hình để tránh các mô hình có vấn đề lặp đi lặp lại mà nó đang cố gắng sử dụng. Khi mô hình biết những gì thực sự ở đó, nó ngừng ảo giác. 5.Các khía cạnh của context Một đại lý mã hóa tốt không chỉ đọc lời nhắc của bạn - nó đọc toàn bộ tình huống. Bạn có thể nghĩ về bối cảnh trong ba lớp: Static context Cấu trúc dự án, bố trí tệp, kiểu, cấu hình, lệnh xây dựng, phụ thuộc. Dynamic context Nhiệm vụ hiện tại, tệp mở, thông báo lỗi, kết quả kiểm tra, nhật ký thời gian chạy. External context Docs, SDK tham chiếu, changelogs, hoặc snippets từ web khi cần thiết. Kết hợp cả ba, và đại lý bắt đầu hành động như một người thực sự tham gia vào cơ sở mã của bạn - không phải là một người tự do ngẫu nhiên đoán từ bộ nhớ. 6.Những ví dụ từ thế giới thực Khi tôi bắt đầu tự động hóa tích hợp WorkOS AuthKit, đây là danh sách không đầy đủ các vấn đề mà mô hình tạo ra cho tôi: Bắt đầu sử dụng các API withAuth và getUser; Logic frontend và backend hỗn hợp; (chẳng hạn như sử dụng useState trên các thành phần bên máy chủ) Tạo ra các biến môi trường không chính xác; cài đặt sai gói; Chắc chắn rằng mô hình cũng lắc qua tất cả các trình quản lý gói, đôi khi npm, đôi khi pnpm, bất cứ điều gì thú vị nhất cho mô hình tại một thời điểm. Sau khi tôi đã thêm các hạn chế, xác định trực tiếp những gì đại lý nên sử dụng, được cung cấp với API mới nhất mô hình bắt đầu tạo ra mã tích hợp . consistently Sự khác biệt không nằm ở mô hình - nó nằm ở những gì nó nhìn thấy. Context Is the New Interface (Bản ngữ là giao diện mới) Hầu hết mọi người vẫn nghĩ về các đại lý mã hóa như chatbots: cho một lời nhắc, nhận được một câu trả lời. Sự kỳ diệu thực sự xảy ra trong bối cảnh - các tệp, loại, lệnh và vòng phản hồi mà đại lý có thể truy cập. Trong tương lai, chúng tôi sẽ không chỉ "nói chuyện" với các đại lý mã hóa - chúng tôi sẽ kết nối chúng vào các hệ thống xây dựng của chúng tôi. Kết luận Các đại lý mã hóa thất bại không phải vì họ ngu ngốc, mà bởi vì họ đang làm việc mù quáng. Nếu bạn muốn họ trở thành đồng đội đáng tin cậy, hãy cung cấp cho họ cấu trúc: Các hạn chế xác định cách họ nên mã hóa; Xây dựng trừu tượng cho thấy dự án của bạn thực sự chạy như thế nào; Cập nhật bối cảnh để họ ngừng sử dụng các mô hình cũ; Bối cảnh càng tốt, mã càng tốt. Bạn không chỉ thả một kỹ sư mới vào repo của bạn và nói “tìm ra nó.”