Bước tiến không ngừng của trí tuệ nhân tạo đang định hình lại các ngành công nghiệp, và kỹ thuật phần mềm đang đi đầu trong sự chuyển đổi này. Các công cụ hỗ trợ bởi AI không còn là khái niệm tương lai mà là những trợ lý thực tế, tăng cường khả năng của nhà phát triển và hợp lý hóa các quy trình làm việc phức tạp. OpenAI, một tên tuổi nổi bật trong nghiên cứu AI, gần đây đã công bố đóng góp mới nhất của mình cho bối cảnh đang phát triển này: ChatGPT Codex, một tác nhân kỹ thuật phần mềm dựa trên đám mây được thiết kế để xử lý vô số tác vụ mã hóa song song. Sản phẩm mới này, ban đầu có sẵn cho người dùng ChatGPT Pro, Team và Enterprise, với các phiên bản Plus và Edu sắp ra mắt, hứa hẹn sẽ định nghĩa lại cách các nhà phát triển tương tác với cơ sở mã của họ và xây dựng phần mềm. 💡 Bạn muốn một công cụ Kiểm thử API tuyệt vời có thể tạo ra Tài liệu API đẹp mắt? Bạn muốn một nền tảng tích hợp, Tất cả trong Một cho Đội ngũ Nhà phát triển của bạn để làm việc cùng nhau với năng suất tối đa? Apidog đáp ứng mọi nhu cầu của bạn, và thay thế Postman với mức giá hợp lý hơn nhiều! [Video] button Bình minh của Kỹ thuật Phần mềm Hỗ trợ bởi AI: Giới thiệu Codex Hình ảnh Hãy tưởng tượng một bảng điều khiển hỏi, "Chúng ta nên mã hóa gì tiếp theo?" hoàn chỉnh với hộp nhắc lệnh, bộ chọn kho lưu trữ và nhánh, cùng danh sách tác vụ, tất cả nằm trên nền màu pastel theo chủ đề mã. Đây là cánh cổng dẫn đến Codex, một tác nhân sẵn sàng trở thành một phần không thể thiếu trong bộ công cụ của nhà phát triển. Codex được thiết kế để xử lý nhiều loại tác vụ khác nhau – từ viết các tính năng mới và trả lời các câu hỏi phức tạp về cơ sở mã đến sửa lỗi và đề xuất pull request để xem xét. Mỗi tác vụ được xử lý tỉ mỉ trong môi trường sandbox đám mây riêng, được tải trước với kho lưu trữ cụ thể, đảm bảo sự cô lập và tập trung. Về cốt lõi, Codex được cung cấp năng lượng bởi `codex-1`, một phiên bản chuyên biệt của mô hình `o3` của OpenAI, được tinh chỉnh cho các sắc thái của kỹ thuật phần mềm. Sức mạnh của mô hình này bắt nguồn từ quá trình học tăng cường nghiêm ngặt, nơi nó được huấn luyện trên các tác vụ mã hóa trong thế giới thực trên nhiều môi trường khác nhau. Mục tiêu rõ ràng: tạo ra mã không chỉ hoạt động hoàn hảo mà còn phản ánh sở thích phong cách của con người, tuân thủ chính xác hướng dẫn và có thể chạy thử nghiệm lặp đi lặp lại cho đến khi đạt được kết quả thành công. Việc ra mắt Codex đánh dấu một bước tiến lớn hướng tới sự hỗ trợ mã hóa thông minh và tự động hơn. Bên trong: Cách Codex Hoạt động [Video] Việc truy cập Codex khá đơn giản đối với người dùng ChatGPT đủ điều kiện, với một mục dành riêng trong thanh bên. Các nhà phát triển có thể giao các tác vụ mã hóa mới bằng cách nhập lời nhắc và khởi tạo lệnh "Code", hoặc đặt câu hỏi về cơ sở mã của họ bằng chức năng "Ask". Sức mạnh thực sự của Codex nằm ở khả năng xử lý song song của nó. Mỗi tác vụ được xử lý độc lập trong một môi trường sandbox đám mây riêng biệt, cô lập. Môi trường này được tải trước với cơ sở mã liên quan, cho phép Codex đọc và chỉnh sửa tệp, thực thi lệnh (bao gồm cả test harnesses, linters, và type checkers), và hoạt động mà không bị can thiệp bởi các tác vụ đang chạy khác. Thời gian hoàn thành tác vụ thay đổi, thường từ một đến ba mươi phút tùy thuộc vào độ phức tạp, và người dùng có thể theo dõi tiến trình theo thời gian thực. Một khía cạnh quan trọng của Codex là cam kết về công việc có thể kiểm chứng. Khi một tác vụ hoàn thành, Codex sẽ commit các thay đổi của nó trong môi trường của nó. Nó không chỉ hiển thị mã cuối cùng; nó cung cấp bằng chứng có thể kiểm chứng về hành động của nó thông qua trích dẫn nhật ký terminal và kết quả thử nghiệm. Sự minh bạch này cho phép các nhà phát triển theo dõi từng bước được thực hiện trong quá trình hoàn thành tác vụ, xây dựng lòng tin và cho phép xem xét kỹ lưỡng. Người dùng sau đó có thể quyết định yêu cầu chỉnh sửa thêm, mở một GitHub pull request, hoặc tích hợp trực tiếp các thay đổi vào môi trường phát triển cục bộ của họ. Hơn nữa, môi trường Codex có thể được cấu hình để phản ánh chặt chẽ thiết lập phát triển thực tế của người dùng, đảm bảo tính tương thích và liên quan. Hướng dẫn Tác nhân: Vai trò của AGENTS.md và Chỉ thị Hệ thống Để tăng cường hiệu quả và điều chỉnh hành vi của nó theo nhu cầu dự án cụ thể, Codex có thể được hướng dẫn bởi các tệp `AGENTS.md` được đặt trong kho lưu trữ. Các tệp văn bản này, giống như tệp `README.md` quen thuộc, đóng vai trò là kênh liên lạc giữa các nhà phát triển con người và tác nhân AI. Thông qua `AGENTS.md`, các nhà phát triển có thể thông báo cho Codex về cách điều hướng cơ sở mã, các lệnh cần chạy để kiểm thử, và cách tốt nhất để tuân thủ các tiêu chuẩn và thực hành mã hóa đã được thiết lập của dự án. Giống như các nhà phát triển con người, các tác nhân Codex hoạt động tối ưu khi được cung cấp môi trường phát triển được cấu hình tốt, thiết lập kiểm thử đáng tin cậy và tài liệu rõ ràng. Thông điệp hệ thống cơ bản cho `codex-1` cũng tiết lộ một bộ hướng dẫn rõ ràng chi phối hành vi của nó. Ví dụ, khi sửa đổi tệp, Codex được hướng dẫn không tạo nhánh mới, sử dụng `git` để commit thay đổi (thử lại khi gặp lỗi pre-commit), và đảm bảo worktree được giữ ở trạng thái sạch. Nó nhấn mạnh rằng chỉ mã đã commit mới được đánh giá và các commit hiện có không được sửa đổi. Đặc tả `AGENTS.md` khá chi tiết. Phạm vi của nó là toàn bộ cây thư mục bắt nguồn từ vị trí của nó, và các hướng dẫn của nó được ưu tiên dựa trên độ sâu lồng nhau, mặc dù lời nhắc trực tiếp của người dùng có thể ghi đè lên chúng. Một chỉ thị chính là nếu `AGENTS.md` bao gồm các kiểm tra lập trình, Codex *phải* chạy tất cả chúng và cố gắng xác thực sự thành công của chúng sau tất cả các thay đổi mã, ngay cả đối với các sửa đổi tưởng chừng đơn giản như cập nhật tài liệu. Hướng dẫn trích dẫn cũng rất nghiêm ngặt, yêu cầu tham chiếu chính xác đường dẫn tệp và kết quả terminal cho bất kỳ tệp nào đã duyệt hoặc lệnh đã thực thi, đảm bảo một dấu vết kiểm toán rõ ràng. Hình ảnh Đưa Codex vào Thử nghiệm: Hiệu suất và Điểm chuẩn OpenAI báo cáo rằng `codex-1` thể hiện hiệu suất mạnh mẽ trên các đánh giá mã hóa và điểm chuẩn nội bộ, ngay cả khi không có tùy chỉnh sâu rộng thông qua các tệp `AGENTS.md` hoặc scaffolding cụ thể. Trên điểm chuẩn SWE-Bench Verified, `codex-1` cho thấy sự tiến triển về độ chính xác pass@k từ 67% tại k=1 lên 75% tại k=8, vượt trội hơn `o3-high` (đạt 70% tại k=8 trên một tập con hơi khác). Trên các tác vụ Kỹ thuật Phần mềm (SWE) nội bộ của OpenAI, một tập hợp các thử thách nội bộ trong thế giới thực, `codex-1` đạt độ chính xác 70%, cao hơn đáng kể so với `o1-high` (25%), `o4-mini-high` (40%), và `o3-high` (61%). Các thử nghiệm này được tiến hành với `codex-1` ở độ dài ngữ cảnh tối đa 192k tokens và mức 'nỗ lực suy luận' trung bình, phản ánh các cài đặt có sẵn trong sản phẩm. Xây dựng với Sự Tự tin: An toàn, Tin cậy và Các Cân nhắc Đạo đức Hình ảnh Hình ảnh Codex đang được phát hành dưới dạng bản xem trước nghiên cứu, phù hợp với chiến lược triển khai lặp đi lặp lại của OpenAI. Cách tiếp cận này cho phép học hỏi và tinh chỉnh dựa trên việc sử dụng trong thế giới thực. An ninh và minh bạch là tối quan trọng trong thiết kế của Codex. Khả năng người dùng xác minh kết quả thông qua trích dẫn, nhật ký terminal và kết quả thử nghiệm là nền tảng của triết lý này—một biện pháp bảo vệ ngày càng trở nên quan trọng khi các mô hình AI xử lý các tác vụ mã hóa phức tạp hơn một cách độc lập. Khi đối mặt với sự không chắc chắn hoặc lỗi kiểm thử, tác nhân Codex được thiết kế để truyền đạt rõ ràng các vấn đề này, cho phép người dùng đưa ra quyết định sáng suốt. Tuy nhiên, OpenAI nhấn mạnh rằng việc người dùng tự xem xét và xác thực tất cả mã do tác nhân tạo ra trước khi tích hợp và thực thi vẫn là điều cần thiết. Giải quyết khả năng lạm dụng, đặc biệt trong các lĩnh vực như phát triển phần mềm độc hại, là một mối quan tâm quan trọng. Codex đã được huấn luyện để nhận diện và từ chối chính xác các yêu cầu nhằm tạo ra phần mềm độc hại, đồng thời vẫn phân biệt và hỗ trợ các tác vụ nâng cao, hợp pháp có thể liên quan đến các kỹ thuật tương tự (ví dụ: kỹ thuật kernel cấp thấp). Các khung chính sách nâng cao và đánh giá an toàn nghiêm ngặt, được trình bày chi tiết trong phụ lục của `o3` System Card, củng cố các ranh giới này. Tác nhân hoạt động hoàn toàn trong một vùng chứa an toàn, cô lập trên đám mây. Trong quá trình thực thi tác vụ, quyền truy cập internet bị vô hiệu hóa, chỉ giới hạn tương tác với mã được cung cấp rõ ràng qua các kho lưu trữ GitHub và các phụ thuộc được cài đặt sẵn do người dùng cấu hình. Điều này có nghĩa là tác nhân không thể truy cập các trang web bên ngoài, API, hoặc các dịch vụ khác, giảm thiểu đáng kể rủi ro bảo mật. Chạm Con người: Điều chỉnh theo Sở thích và Quy trình Làm việc của Nhà phát triển Mục tiêu chính trong quá trình huấn luyện `codex-1` là điều chỉnh đầu ra của nó sao cho gần gũi với sở thích và tiêu chuẩn mã hóa của con người. So với `OpenAI o3` đa năng, `codex-1` liên tục tạo ra các bản vá sạch hơn, dễ dàng được con người xem xét hơn và dễ tích hợp vào các quy trình làm việc tiêu chuẩn hơn. Điều này được chứng minh qua một số ví dụ về các bản sửa lỗi được áp dụng cho các dự án mã nguồn mở phổ biến: **Dự án: Astropy (Thư viện Thiên văn học Python)** * **Lỗi:** Chức năng `separability_matrix` tính toán độ tách sai cho các phiên bản `CompoundModel` lồng nhau. Ví dụ, nếu một mô hình phức hợp như `m.Linear1D(10) & m.Linear1D(5)` được lồng trong một mô hình khác, ma trận kết quả đã chỉ ra sự phụ thuộc một cách sai lầm ở những nơi không tồn tại. * **Giải pháp của Codex:** * Một sửa đổi có mục tiêu đã được thực hiện cho chức năng `_cstack` trong `astropy/modeling/separable.py`. * Thay đổi này đã xử lý đúng kích thước và giá trị của ma trận bên phải khi nó đại diện cho một mảng được tính toán trước (tức là một mô hình lồng nhau). * **Kiểm thử:** Một kiểm thử hồi quy chính xác đã được thêm vào `test_separable.py` để xác nhận bản sửa lỗi, đảm bảo đầu ra là ma trận độ tách block-diagonal như mong đợi cho các mô hình lồng nhau. * **So sánh:** Bản sửa lỗi này được ghi nhận là trực tiếp hơn và ít dài dòng hơn so với một giải pháp thay thế tiềm năng từ `o3`, vốn bao gồm nhiều chú thích giải thích chi tiết. **Dự án: Matplotlib (Thư viện Vẽ biểu đồ Python)** * **Lỗi:** Một vấn đề trong `mlab._spectral_helper` gây ra hiệu chỉnh cửa sổ sai do một lệnh gọi `np.abs()` không cần thiết. Điều này dẫn đến kết quả không chính xác cho các cửa sổ có giá trị âm (ví dụ: cửa sổ `flattop`). * **Giải pháp của Codex:** * Các lệnh gọi `np.abs()` đã bị loại bỏ khỏi `(np.abs(window)**2).sum()` và `np.abs(window).sum()**2`. * Chúng đã được thay đổi thành `(window.conjugate() * window).sum()` và `window.sum()**2` tương ứng. * Sửa đổi này đảm bảo rằng việc chia tỷ lệ sử dụng các giá trị thực của cửa sổ, bảo toàn năng lượng một cách chính xác. * **Kiểm thử:** Một kiểm thử mới, `test_psd_windowarray_negative`, đã được thêm vào `lib/matplotlib/tests/test_mlab.py` để xác minh cụ thể bản sửa lỗi này bằng cách sử dụng một cửa sổ chứa giá trị âm. **Dự án: Django (Framework Web Python)** * **Lỗi:** Các biểu thức chỉ có thời lượng (ví dụ: `F('estimated_time') + datetime.timedelta(1)`) bị lỗi trên SQLite và MySQL, gây ra lỗi `decimal.InvalidOperation`. Điều này là do các vấn đề trong cách chuyển đổi giá trị thời lượng. * **Giải pháp của Codex:** * Phương thức `convert_durationfield_value` trong `django/db/backends/base/operations.py` đã được tinh chỉnh để xử lý mạnh mẽ các loại đầu vào khác nhau cho thời lượng (như `None`, `timedelta`, `string`, và `int`). * Việc biên dịch các vế cho `DurationExpression` trong `django/db/models/expressions.py` đã được điều chỉnh, đảm bảo `format_for_duration_arithmetic` được áp dụng có chọn lọc hơn, chủ yếu khi kết hợp với các kiểu ngày/giờ. * **Kiểm thử:** Một kiểm thử mới, `test_durationfield_only_expression`, đã được thêm vào `tests/expressions/tests.py` để xác thực bản sửa lỗi này. * **So sánh:** Giải pháp của `o3` cho vấn đề Django này được mô tả là mở rộng hơn trong logic kiểm tra kiểu và phân tích cú pháp trong `convert_durationfield_value`, đưa ra một cách tiếp cận rất chi tiết để xử lý các biểu diễn chuỗi và số khác nhau của thời lượng. **Dự án: Expensify (ReportUtils.ts - TypeScript)** * **Vấn đề:** Tên phòng của thành viên không cập nhật trong Left Hand Navigator (LHN) sau khi xóa bộ nhớ cache. * **Giải pháp được đề xuất của Codex (dựa trên các diff được cung cấp liên quan đến bộ nhớ cache tên báo cáo):** * Diff "Codex" đã sửa đổi chức năng `getCacheKey` để bao gồm `policyName`. Thay đổi này có thể làm cho khóa bộ nhớ cache cụ thể hơn, có khả năng ngăn chặn dữ liệu cũ nếu tên chính sách ảnh hưởng đến tiêu đề phòng. * **Đề xuất thay thế của OpenAI o3:** * Diff "OpenAI o3" đã đề xuất một giải pháp cấu trúc hơn để vô hiệu hóa bộ nhớ cache: đảm bảo `reportNameCache` được xóa bất cứ khi nào `ONYXKEYS.COLLECTION.POLICY` cập nhật. Điều này trực tiếp giải quyết dữ liệu cũ bằng cách chủ động làm mới bộ nhớ cache khi thông tin chính sách cơ bản (có thể ảnh hưởng đến tên phòng) thay đổi. * **Thông tin chi tiết:** Ví dụ này làm nổi bật cách AI có thể đề xuất các chiến lược khác nhau—từ tinh chỉnh khóa bộ nhớ cache đến triển khai các cơ chế vô hiệu hóa rộng hơn—để giải quyết các vấn đề như vậy. Những ví dụ này cùng nhau minh họa khả năng của Codex trong việc hiểu các vấn đề phức tạp và triển khai các giải pháp có mục tiêu, hiệu quả, thường bao gồm cả các trường hợp kiểm thử cần thiết để đảm bảo tính đúng đắn. Mở rộng Phạm vi: Cập nhật cho Codex CLI Bổ sung cho tác nhân dựa trên đám mây, OpenAI cũng đã cập nhật Codex CLI, một tác nhân mã hóa nhẹ, mã nguồn mở chạy trực tiếp trong terminal. Một phiên bản mới, nhỏ hơn của `codex-1`, được đặt tên là `codex-mini-latest` (một phiên bản chuyên biệt của `o4-mini`), hiện là mô hình mặc định trong Codex CLI. Nó được tối ưu hóa cho Q&A và chỉnh sửa mã có độ trễ thấp, giữ lại khả năng tuân thủ hướng dẫn và phong cách mạnh mẽ. Việc kết nối tài khoản nhà phát triển với Codex CLI cũng đã được đơn giản hóa. Thay vì tạo API token thủ công, người dùng giờ đây có thể đăng nhập bằng tài khoản ChatGPT của họ và chọn tổ chức API của họ, với CLI xử lý cấu hình khóa API tự động. Người dùng Plus và Pro đăng nhập theo cách này cũng có thể đổi các khoản tín dụng API miễn phí. Truy cập, Khả năng Chi trả và Khát vọng: Khả dụng, Giá cả và Hạn chế Codex hiện đang được triển khai cho người dùng ChatGPT Pro, Enterprise và Team trên toàn cầu, với sự hỗ trợ cho Plus và Edu dự kiến sẽ sớm ra mắt. Quyền truy cập ban đầu sẽ hào phóng và không mất thêm chi phí trong vài tuần, cho phép người dùng khám phá các khả năng của nó. Sau đó, OpenAI sẽ giới thiệu quyền truy cập giới hạn tốc độ và các tùy chọn giá linh hoạt cho việc sử dụng theo yêu cầu. Đối với các nhà phát triển sử dụng `codex-mini-latest` qua API, nó có giá 1,50 USD cho mỗi 1 triệu token đầu vào và 6 USD cho mỗi 1 triệu token đầu ra, với chiết khấu 75% cho bộ nhớ cache lời nhắc. Là một bản xem trước nghiên cứu, Codex có những hạn chế. Hiện tại, nó thiếu các tính năng như nhập hình ảnh cho phát triển frontend và khả năng điều chỉnh tác nhân giữa tác vụ. Việc giao tác vụ cho một tác nhân từ xa cũng tạo ra độ trễ so với chỉnh sửa tương tác, điều này có thể yêu cầu một số điều chỉnh trong quy trình làm việc. OpenAI hình dung rằng việc tương tác với các tác nhân Codex sẽ ngày càng giống với sự cộng tác không đồng bộ với các đồng nghiệp con người. Con đường Phía trước: Tương lai của AI trong Kỹ thuật Phần mềm với Codex OpenAI hình dung một tương lai nơi các nhà phát triển điều khiển công việc họ muốn sở hữu và giao phần còn lại cho các tác nhân AI có khả năng cao, dẫn đến tăng tốc độ và năng suất. Để hiện thực hóa điều này, họ đang xây dựng một bộ công cụ Codex hỗ trợ cả cộng tác thời gian thực và giao phó không đồng bộ. Trong khi các công cụ ghép đôi AI như Codex CLI đang trở thành tiêu chuẩn ngành, quy trình làm việc không đồng bộ, đa tác nhân được giới thiệu bởi Codex trong ChatGPT được xem là tiêu chuẩn thực tế trong tương lai để tạo ra mã chất lượng cao. Cuối cùng, hai chế độ tương tác này—ghép đôi thời gian thực và giao phó tác vụ—được kỳ vọng sẽ hội tụ. Các nhà phát triển sẽ cộng tác với các tác nhân AI trên các IDE và các công cụ hàng ngày của họ để hỏi đáp, đưa ra gợi ý và giao phó các tác vụ dài hơn trong một quy trình làm việc thống nhất. Các kế hoạch trong tương lai bao gồm các quy trình làm việc của tác nhân tương tác và linh hoạt hơn, cho phép các nhà phát triển cung cấp hướng dẫn giữa tác vụ, cộng tác về các chiến lược triển khai và nhận các cập nhật tiến độ chủ động. Các tích hợp sâu hơn cũng được lên kế hoạch trên các công cụ như GitHub, Codex CLI, ChatGPT Desktop, issue trackers, và hệ thống CI. Kỹ thuật phần mềm là một trong những ngành công nghiệp đầu tiên chứng kiến sự gia tăng năng suất đáng kể nhờ AI, mở ra những khả năng mới cho cá nhân và các nhóm nhỏ. Trong khi lạc quan về những tiến bộ này, OpenAI cũng đang hợp tác với các đối tác để hiểu rõ hơn về những tác động rộng lớn hơn của việc áp dụng tác nhân rộng rãi đối với quy trình làm việc của nhà phát triển và phát triển kỹ năng trên các nhóm dân số đa dạng. Việc ra mắt ChatGPT Codex không chỉ là một công cụ mới; đó là cái nhìn thoáng qua về một tương lai nơi sự khéo léo của con người và trí tuệ nhân tạo cộng tác liền mạch hơn bao giờ hết để xây dựng thế hệ phần mềm tiếp theo. Đây chỉ là khởi đầu, và tiềm năng về những gì các nhà phát triển có thể xây dựng với Codex là rất lớn và thú vị.