Công cụ Codex AI mới nhất của OpenAI giới thiệu một cách tiếp cận mới cho việc viết code – một môi trường "vibe-coding" được hỗ trợ bởi giao diện giống ChatGPT. Mặc dù khái niệm này ban đầu có vẻ phù phiếm, nhưng khả năng của Codex mới rất ấn tượng.
OpenAI đã gắn nhãn Codex là bản xem trước nghiên cứu, cho thấy nó vẫn đang trong quá trình phát triển tích cực. Hiện tại, nó có thể truy cập được cho người đăng ký ChatGPT Pro, Enterprise và Team, với kế hoạch mở rộng khả năng tiếp cận cho người dùng Plus và Edu trong tương lai gần.
Theo thông báo của OpenAI, tên Codex đã được liên kết với một công cụ mã hóa đang phát triển từ năm 2021. Trong cuộc thảo luận này, "Codex" đề cập đến phiên bản mới được công bố.
Codex nằm trên máy chủ của OpenAI và tích hợp với các kho lưu trữ GitHub. Các bản trình diễn cho thấy Codex hoạt động như một lập trình viên bổ sung trong một nhóm.
Nó có thể được hướng dẫn để giải quyết một loạt các lỗi và thực hiện nhiệm vụ cho phù hợp. Nó cũng tìm kiếm sự chấp thuận cho các sửa đổi mã, mặc dù nó dường như có khả năng tự động sửa đổi mã.
Codex có thể phân tích và sửa đổi code, xác định các vấn đề cụ thể, xác định các lĩnh vực cần cải thiện và thực hiện các tác vụ mã hóa và bảo trì khác. Mỗi tác vụ bắt đầu một môi trường ảo mới, cho phép AI xử lý mọi thứ từ khái niệm và thiết kế đến kiểm tra đơn vị.
Một sự thay đổi mô hình trong mã hóa
Điều này biểu thị một sự thay đổi thực sự trong mô hình mã hóa. Các hỗ trợ mã hóa AI trước đây chủ yếu bao gồm các tính năng tự động hoàn thành, tự động tạo các dòng hoặc khối mã dựa trên mã hiện có.
Công nghệ đã tiến triển đến mức AI có thể viết hoặc gỡ lỗi các đoạn mã nhỏ. Đây là khía cạnh mà tôi đặc biệt quan tâm liên quan đến các bài kiểm tra lập trình của ZDNET.
Một vai trò khác của AI là phân tích toàn bộ hệ thống. Gần đây, tôi đã khám phá một công cụ Deep Research mới có thể phân tích toàn bộ cơ sở mã và cung cấp các đánh giá và đề xuất mã.
Codex hiện đạt đến một điểm mà toàn bộ các nhiệm vụ lập trình có thể được giao cho AI trên đám mây, tương tự như việc ủy thác các nhiệm vụ cho các lập trình viên khác trong một nhóm hoặc các lập trình viên cấp dưới học bảo trì mã.
OpenAI mô tả điều này là "Phát triển phần mềm gốc Agent, nơi AI không chỉ hỗ trợ bạn khi bạn làm việc mà còn đảm nhận công việc một cách độc lập."
Video ra mắt đã chứng minh khả năng của Codex trong việc quản lý đồng thời nhiều tác vụ, mỗi tác vụ hoạt động trong một môi trường ảo riêng biệt, biệt lập.
Các lập trình viên giao nhiệm vụ cho agent, sau đó agent thực hiện công việc một cách độc lập. Sau khi hoàn thành, agent cung cấp kết quả kiểm tra và đề xuất các thay đổi mã.
Bản demo có Codex thực hiện sửa lỗi, quét lỗi chính tả, đưa ra các đề xuất tác vụ và thực hiện tái cấu trúc trên toàn dự án (sửa đổi mã để cải thiện cấu trúc mà không thay đổi hành vi).
Các nhà phát triển và nhà thiết kế cấp cao quen thuộc với việc diễn đạt các yêu cầu và xem xét công việc của người khác. Sử dụng Codex sẽ không giới thiệu những thay đổi đáng kể cho họ. Tuy nhiên, các nhà phát triển thiếu kỹ năng trình bày và đánh giá yêu cầu mạnh mẽ có thể thấy việc quản lý Codex hơi khó khăn.
Mặc dù vậy, nếu công cụ hoạt động như đã chứng minh, Codex sẽ trao quyền cho các nhóm nhỏ hơn và các nhà phát triển riêng lẻ để đạt được nhiều hơn, giảm các tác vụ lặp đi lặp lại và ứng phó hiệu quả hơn với các báo cáo sự cố.
Các cạm bẫy tiềm ẩn và chiến lược giảm thiểu
Những kinh nghiệm ban đầu với khả năng mã hóa của ChatGPT đã tiết lộ xu hướng mất tập trung hoặc đi lệch hướng so với hướng dự định. Mặc dù điều này không phải là thảm họa đối với các khối mã riêng lẻ, nhưng nó có thể dẫn đến những hậu quả không lường trước được và có vấn đề nếu một agent viết code được phép hoạt động với sự giám sát hạn chế.
Để giải quyết vấn đề này, OpenAI đã đào tạo Codex tuân thủ các hướng dẫn được nêu trong tệp AGENTS.md. Tệp này, nằm trong kho lưu trữ, cho phép các lập trình viên và nhóm hướng dẫn hành vi của Codex. Nó có thể bao gồm các hướng dẫn về quy ước đặt tên, quy tắc định dạng và bất kỳ hướng dẫn nhất quán nào khác mong muốn trong suốt quá trình viết code. Về cơ bản, nó mở rộng cài đặt cá nhân hóa của ChatGPT sang môi trường nhóm tập trung vào kho lưu trữ.
Ngoài ra, OpenAI đã giới thiệu một phiên bản Codex có tên là Codex CLI chạy cục bộ trên máy của nhà phát triển. Không giống như Codex dựa trên đám mây, hoạt động không đồng bộ và cung cấp báo cáo sau khi hoàn thành, phiên bản cục bộ hoạt động thông qua dòng lệnh của lập trình viên và hoạt động đồng bộ.
Về bản chất, lập trình viên nhập một hướng dẫn và đợi quy trình Codex CLI trả về kết quả. Điều này cho phép các lập trình viên làm việc ngoại tuyến, tận dụng ngữ cảnh cục bộ của máy phát triển đang hoạt động của họ.
Nguyên mẫu nghiên cứu với tiềm năng hứa hẹn
Bản demo rất ấn tượng, nhưng các nhà phát triển nhấn mạnh rằng những gì họ đang trình chiếu và phát hành là một nguyên mẫu nghiên cứu. Mặc dù nó cung cấp những gì họ gọi là "khoảnh khắc kỳ diệu", nhưng nó vẫn đòi hỏi sự phát triển đáng kể.
Tôi đã cố gắng hiểu những tác động cụ thể của công nghệ này đối với tương lai của sự phát triển và quy trình phát triển của riêng tôi. Sản phẩm chính của tôi là một plugin WordPress mã nguồn mở, với các plugin tiện ích bổ sung độc quyền. Codex có khả năng phân tích kho lưu trữ công khai cho plugin lõi mã nguồn mở.
Tuy nhiên, Codex có thể quản lý mối quan hệ giữa kho lưu trữ công khai và nhiều kho lưu trữ riêng tư như một phần của một dự án tổng thể duy nhất không? Và nó sẽ hoạt động như thế nào khi kiểm tra không chỉ liên quan đến code của tôi mà còn xoay vòng toàn bộ hệ sinh thái bổ sung – WordPress – để đánh giá hiệu suất?
Là một lập trình viên solo, tôi nhận ra những lợi ích tiềm năng của một công cụ như Codex. Ngay cả gói đăng ký Pro $200 mỗi tháng cũng có thể xứng đáng. Thuê một lập trình viên con người sẽ tốn kém hơn đáng kể, giả sử tôi có thể thu được giá trị hữu hình, có thể kiếm tiền từ nó.
Là một người quản lý nhóm và giao tiếp có kinh nghiệm, tôi cảm thấy thoải mái khi giao nhiệm vụ cho một thứ như Codex. Nó không khác biệt đáng kể so với giao tiếp với một thành viên trong nhóm qua Slack.
Thực tế là Codex cung cấp các đề xuất, các phiên bản nháp và chờ tôi phê duyệt mang lại cảm giác an toàn so với việc chỉ đơn giản cho phép nó hoạt động tự do trong code của tôi. Điều này mở ra những khả năng hấp dẫn cho một vòng đời phát triển mới, nơi con người xác định mục tiêu, AI phác thảo các triển khai tiềm năng và con người sau đó phê duyệt hoặc chuyển hướng AI cho một lần lặp khác.
Các câu hỏi chưa được trả lời và ý nghĩa tương lai
Dựa trên kinh nghiệm trước đây của tôi khi sử dụng AI để viết code, Codex có khả năng giảm thời gian bảo trì và đẩy nhanh việc cung cấp các bản sửa lỗi cho người dùng. Tuy nhiên, hiệu quả của nó trong việc thêm các tính năng mới dựa trên tài liệu đặc tả vẫn chưa rõ ràng. Tương tự, mức độ khó khăn của việc sửa đổi chức năng và hiệu suất sau khi triển khai Codex vẫn chưa được xác định.
Điều đáng chú ý là việc viết code bằng AI đang phát triển trên nhiều công ty với tốc độ tương tự nhau. Tôi sẽ sớm xuất bản một bài viết khác về Coding Agent của GitHub Copilot, có một số chức năng tương tự với Codex.
Trong bài viết đó, tôi bày tỏ lo ngại rằng các agent viết code này có thể thay thế các lập trình viên cấp dưới và mới vào nghề. Ngoài những ý nghĩa đối với công việc của con người, còn có câu hỏi về các cơ hội đào tạo quan trọng có thể bị mất nếu chúng ta ủy thác giai đoạn giữa của sự nghiệp của một nhà phát triển cho AI.
"Vào vùng đất xa lạ" của ngành phần mềm
Có một bài hát trong bộ phim Frozen II của Disney có tên là "Into the Unknown", do Idina Menzel trình bày. Bài hát phản ánh xung đột nội tâm của nhân vật chính giữa việc duy trì nguyên trạng và mạo hiểm "vào vùng đất xa lạ".
Với sự phát triển phần mềm đại lý, vượt ra ngoài chỉ là viết code bằng AI, toàn bộ ngành công nghiệp phần mềm đang bắt đầu một cuộc hành trình "vào vùng đất xa lạ". Khi chúng ta ngày càng dựa vào các hệ thống 기반 có AI để phát triển phần mềm của mình, số lượng người bảo trì lành nghề có thể sẽ giảm. Điều này là chấp nhận được miễn là các AI tiếp tục hoạt động hiệu quả và vẫn có thể truy cập được. Tuy nhiên, chúng ta có đang cho phép các kỹ năng thiết yếu bị teo đi và hy sinh những công việc được trả lương cao vì sự tiện lợi của việc ủy thác cho một cơ sở hạ tầng dựaบน đám mây chưa hoàn toàn có tri giác không?
Thời gian sẽ tiết lộ câu trả lời và hy vọng sự mặc khải này sẽ không xảy ra khi chúng ta hết thời gian.
Bạn có cân nhắc việc ủy thác các nhiệm vụ phát triển thực tế cho một công cụ như thế này không? Bạn nghĩ tác động lâu dài sẽ là gì đối với các nhóm phần mềm hoặc các nhà phát triển riêng lẻ? Và bạn có lo lắng về việc mất các kỹ năng hoặc vai trò quan trọng khi ngày càng có nhiều vòng đời mã được giao cho AI không?