Bỏ qua đến nội dung chính

OpenAI Codex Masterclass — Vaibhav Srivastav & Katia Gil Guzman

TL;DR

  • Codex là tác nhân AI kỹ thuật phần mềm của OpenAI, có khả năng thực hiện nhiều tác vụ như kỹ sư phần mềm chuyên nghiệp, bao gồm chạy lệnh, kiểm thử, khám phá cơ sở mã, không chỉ giới hạn ở việc viết mã.
  • Nền tảng của Codex được xây dựng trên các mô hình AI tiên tiến của OpenAI (như GPT 5.3, Spark, GPT 5.4, Mini/Nano) và được quản lý bởi một "hệ thống khung tác nhân hợp nhất" (unified agent harness) giúp quản lý hành vi và thực thi công cụ an toàn.
  • Nền tảng này đã phát triển nhanh chóng, tích hợp nhiều tính năng mới như plugins (đóng gói kỹ năng, ứng dụng), automations (tác vụ tự động chạy ngầm), hỗ trợ work trees và có sẵn trên nhiều giao diện (ứng dụng Codex, IDE, CLI), đạt hơn 3 triệu người dùng hoạt động hàng tuần.

Điểm chính

  • Codex là Tác nhân AI Kỹ sư Phần mềm Toàn diện: Nó có thể thực hiện nhiều vai trò của kỹ sư phần mềm hơn là chỉ viết mã, bao gồm chạy lệnh, thực hiện kiểm thử, và khám phá cơ sở mã.
  • Hệ thống Mô hình AI Luôn Được Cập nhật: Codex được hỗ trợ bởi các mô hình GPT liên tục phát triển của OpenAI (ví dụ: GPT 5.2, 5.3 Codex, Spark, 5.4, Mini, Nano), với các phiên bản Mini/Nano được tối ưu cho các tác vụ ngắn hạn và sub-agents.
  • Kiến trúc "Unified Agent Harness": Một hệ thống khung thống nhất quản lý và đánh giá hành vi của tác nhân, cung cấp các chức năng cốt lõi như thực thi công cụ, thiết lập môi trường và tích hợp an toàn.
  • Đa dạng Giao diện Tương tác và Tích hợp: Người dùng có thể tương tác với Codex qua ứng dụng Codex chuyên dụng, tiện ích mở rộng IDE, CLI, và các công cụ bên thứ ba như Slack, GitHub, Figma, Linear, Notion.
  • Ứng dụng Codex cải tiến Trải nghiệm Phát triển: Ứng dụng này hỗ trợ "work trees" để làm việc trên nhiều dự án và tính năng cùng lúc mà không cần chuyển đổi ngữ cảnh, tích hợp Git gốc, và có sẵn trên macOS và Windows (với sandbox gốc).
  • Tính năng Mới Nổi bật: Plugins và Automations:
    • Plugins: Đóng gói các "kỹ năng" (hướng dẫn/script tái sử dụng), ứng dụng và máy chủ MCP thành các quy trình làm việc có thể tái sử dụng, giúp đơn giản hóa việc thiết lập và mở rộng khả năng của Codex.
    • Automations: Cho phép thiết lập các tác vụ tự động chạy ngầm theo lịch trình (ví dụ: tóm tắt Slack/Gmail hàng ngày, tạo báo cáo), giảm thiểu công việc thủ công.
  • Kỹ Năng Chuyên biệt cho Phát triển Web và Game: Các plugin cụ thể (như Games Studio plugin) bao gồm các công cụ mạnh mẽ như Playwright Interactive (trình duyệt không giao diện để gỡ lỗi và tương tác trực quan) và ImageGen (tạo tài nguyên hình ảnh như sprites).
  • Cải tiến Hiệu suất: Các bản cập nhật bao gồm Web Sockets để cung cấp mã thông báo nhanh hơn 1.75 lần và một "chế độ nhanh" (fast mode) để tăng gấp đôi tốc độ xử lý mã thông báo.

Từ vựng

  • Codex — tác nhân AI kỹ thuật phần mềm
  • AI agent — tác nhân AI
  • Models — mô hình
  • Unified agent harness — hệ thống khung tác nhân hợp nhất
  • Plugins — plugins
  • Automations — tự động hóa
  • Skills — kỹ năng
  • Work trees — work trees
  • Headless browser — trình duyệt không giao diện
  • Visual assets — tài nguyên hình ảnh

Nội dung chi tiết

Chào mọi người, cảm ơn vì đã có mặt tại đây. Hôm nay chúng ta sẽ nói về Codex. Tên tôi là Katja, Katja Gupluzman, và tôi đến từ VB. Chúng tôi cùng làm việc trong nhóm trải nghiệm nhà phát triển tại OpenAI, có trụ sở tại London. Vai trò của chúng tôi là giúp các nhà phát triển xây dựng và tận dụng tối đa các sản phẩm của chúng tôi, bao gồm cả Codex.

Giới thiệu về Codex

Để bắt đầu, chúng ta sẽ có một cái nhìn tổng quan nhanh về Codex. Bao nhiêu người trong số các bạn ở đây đang sử dụng Codex? Xin hãy giơ tay lên. Vâng. Được rồi, tốt. Vậy nên chúng ta sẽ không dành quá nhiều thời gian cho phần tổng quan đó. Sau đó, chúng ta sẽ thực hiện một số bản demo, chúng tôi sẽ cho các bạn thấy pluginsautomations. VB sẽ nói về sub agents và sau đó là về những công nghệ tiên tiến nhất (bleeding edge). Hy vọng rằng đối với những người đã biết và sử dụng Codex, các bạn sẽ học được điều gì đó mới mẻ. Cuối cùng, chúng ta sẽ dành thời gian cho phần hỏi đáp. Vì đây là một buổi hội thảo, nếu bạn có câu hỏi cấp bách, đừng ngần ngại hỏi. Tôi thấy tất cả các bạn đều mang theo máy tính xách tay, vì vậy các bạn cũng có thể thực hành cùng chúng tôi. Chúng tôi sẽ hướng dẫn cách thực hiện một số việc và bạn có thể thử cùng lúc. Trong phần hỏi đáp, đó cũng là thời điểm hoàn hảo để các bạn thử nghiệm mọi thứ trên máy của mình.

Đối với những ai chưa biết Codex hoặc chưa biết rõ, Codextác nhân AI kỹ thuật phần mềm của OpenAI. Nó không chỉ là một tác nhân viết mã, mà có thể làm được nhiều hơn thế. Nó có thể chạy lệnh, chạy thử nghiệm, khám phá cơ sở mã, nó thực sự có thể làm mọi thứ mà một kỹ sư phần mềm sẽ làm.

Codex được xây dựng dựa trên các mô hình của chúng tôi làm nền tảng. Ví dụ, GPT 5.3 Codex là phiên bản trước đó của chúng tôi. Chúng tôi cũng có phiên bản Spark, là mô hình siêu nhanh. Mô hình hiện đại nhất hiện nay là GPT 5.4. Chúng tôi cũng đã ra mắt phiên bản mini vào tuần trước. Mỗi khi chúng tôi cải tiến, mỗi khi có mô hình tốt hơn, Codex đều được hưởng lợi.

Nhưng không chỉ có các mô hình. Trên nền tảng đó, chúng tôi có thứ mà chúng tôi gọi là "hệ thống khung tác nhân hợp nhất" (unified agent harness), có chức năng quản lý và đánh giá hành vi của tác nhân. Đó là một wrapper để thực thi công cụ (tool execution), thiết lập môi trường (environment setup), và mọi thứ khác cho phép tác nhân thực hiện công việc của mình một cách trôi chảy. An toàn cũng được tích hợp vào hệ thống khung này. Tất cả những điều đó tạo nên Codex.

Bạn có thể tương tác với Codex thông qua các giao diện khác nhau. Chúng ta sẽ nói về ứng dụng Codex trong vài phút. Bạn cũng có thể tương tác với nó thông qua các IDE của mình bằng tiện ích mở rộng, thông qua CLI. Và thông qua các giao diện khác như Slack, ví dụ, tại OpenAI, chúng tôi thường xuyên ping Codex trong Slack và yêu cầu nó sửa lỗi hoặc trong GitHub nữa. Trên tất cả, bạn cũng có thể tích hợp Codex với các công cụ yêu thích của mình để nó có thể thực sự hoạt động với mọi thứ bạn đang sử dụng. Vì vậy, bạn có thể tích hợp nó với Figma, với Linear, với Notion. Tất cả những điều đó kết hợp lại có thể cho phép bạn thực hiện mọi thứ, có thể cho phép Codex làm mọi thứ mà một đồng nghiệp kỹ sư phần mềm sẽ làm. Và như tôi đã đề cập, điều này dựa trên các mô hình của chúng tôi. Và vì vậy, tôi sẽ để VB nói thêm một chút về điều đó.

Sự tiến hóa của Mô hình và Ứng dụng Codex

Chào buổi sáng mọi người. Như chúng ta đã nói về ứng dụng Codex, tiện ích mở rộng IDE, CLI và nhiều thứ khác, tất cả các hệ thống khung này, cũng như tất cả các giao diện này, sẽ không thể tốt như vậy nếu không có các mô hình hỗ trợ chúng. Chỉ để lùi lại một bước, khi tôi gia nhập OpenAI, điều đó không quá xa, là vào tháng 12, mô hình hàng đầu của chúng tôi vào thời điểm đó là GPD 5.2.

Từ đó, chúng tôi tiếp tục phát hành GPD 5.2 Codex, một biến thể Codex chuyên biệt của GPD 5.2, nơi chúng tôi đã đẩy giới hạn xem mô hình có thể thực hiện các tác vụ kéo dài trong bao lâu, có thể tiếp tục hoạt động liên tục trong bao lâu. Và ngay sau đó, chúng tôi đã tiếp tục với GPD 5.3 Codex. Ngay sau đó, hợp tác với Cerebrus, chúng tôi đã tiếp tục với GPD 5.3 Codex Park. Và gần đây nhất, chúng tôi đã phát hành GPD 5.4. Và bạn có thể thấy cách chúng tôi đang thúc đẩy toàn bộ mô hìnhhệ thống khung này nhanh nhất có thể, cố gắng mang đến những bước tiến mới nhất nhanh nhất có thể cho tất cả các bạn.

Một điều cần lưu ý, và một điều không có trên màn hình, là cùng lúc đó, trong khi chúng tôi đang nỗ lực phát triển các mô hình lớn hơn, vốn rất tốt cho các tác vụ kéo dài, cũng như các tác vụ thực sự phức tạp, v.v., chúng tôi cũng đã phát hành GPD 5.4 MiniGPD 5.4 Nano, mà bạn có thể sử dụng cho các tác vụ ngắn hạnsubagents, mà chúng ta sẽ nói đến sau.

Và một điều mà chúng tôi chưa thực sự nhấn mạnh ở đây là hai điều. Thứ nhất, khi chúng tôi nỗ lực làm cho các mô hình này tốt hơn, chúng tôi cũng đã làm việc khá nhiều để đảm bảo rằng các mô hình này có thể được phục vụ cho bạn nhanh nhất có thể. Điều đó có nghĩa là về nguyên tắc, chúng tôi đã giới thiệu một thứ gọi là Web Sockets, cho phép chúng tôi tạo một kết nối giữa thiết bị của bạn và nơi API đặt để có thể cung cấp cho bạn các mã thông báo nhanh hơn khoảng 1,75 lần mà không thực sự phải trả thêm chi phí cho bạn. Đồng thời, chúng tôi cũng đã phát hành một chế độ nhanh (fast mode), cho phép bạn tăng gấp đôi tốc độ mã thông báo nhanh hơn trên nền tảng 1,75 lần. Và đây là điều mà nhóm đang liên tục cải tiến. Có rất nhiều cải thiện tốc độ sắp tới.

Để tổng hợp tất cả lại, vào đầu năm nay, chúng tôi đã ra mắt ứng dụng Codex. Bao nhiêu người trong số các bạn đã sử dụng ứng dụng Codex? Được rồi, đó là một số lượng người khá lớn. Thành thật mà nói, vào tháng 12, và thậm chí trước đó, tôi là một người dùng CLI cứng. Và tại một thời điểm nào đó, trong quá trình ra mắt ứng dụng, khi Sub đang thử nghiệm và dog-fooding nó, ứng dụng Codex đã trở thành một phần rất, rất quan trọng trong quy trình làm việc của tôi.

Lý do cho điều đó là nó mang lại một cách thực sự tốt để làm việc trên nhiều dự án, thứ nhất. Và thứ hai, trong cùng một dự án, làm việc trên nhiều tính năng cùng một lúc. Cách bạn có thể làm điều đó là bạn có thể có các dự án riêng lẻ, bạn có thể thấy ở phía bên trái, bạn có thể có dự án Codex, chat GPD, Sora, v.v. Nhưng ngoài ra, bạn có thể sử dụng work trees để làm việc trên các yêu cầu tính năng riêng lẻ, sửa lỗi, hoặc chỉ là Q&A, tất cả cùng một lúc, mà không thực sự can thiệp vào các tác vụ riêng lẻ. Đây là điều mà chúng tôi khá tự hào. Và việc cung cấp hỗ trợ work tree gốc giúp bạn thực hiện cùng một tác vụ và thực hiện nhiều tác vụ cùng lúc, mà không thực sự phải chuyển đổi ngữ cảnh nhiều.

Đồng thời, thông qua việc ra mắt, chúng tôi đã cố gắng tăng lợi ích ròng mà bạn có thể nhận được từ ứng dụng Codex. Và một số tính năng này đã hỗ trợ automations tốt hơn. Automations cũng là điều chúng ta sẽ nói đến ngay sau đây. Nhưng tóm tắt ngắn gọn về automations là bạn về cơ bản có thể có một quy trình thô mà bạn muốn Codex chạy. Ví dụ, mỗi ngày vào 9 giờ sáng, hoặc mỗi tối, hoặc bạn muốn Codex xem qua lịch của bạn và tạo một bản tóm tắt cho bạn. Và tất cả điều đó đều có thể thực hiện được trong thiết lập ứng dụng Codex gốc với automations. Và tất nhiên, với work trees và hỗ trợ Git gốc hơn, bạn có thể làm việc trên các dự án và chỉ cần đẩy các thay đổi bạn muốn với bất kỳ persona Git nào bạn muốn thực hiện.

Cuối cùng nhưng không kém phần quan trọng, tùy thuộc vào giao diện bạn sử dụng ứng dụng Codex, vào đầu năm, chúng tôi đã phát hành nó chỉ trên macOS. Nhưng bây giờ chúng tôi có hỗ trợ Windows gốc, đi kèm với sandbox Windows gốc. Có ai ở đây đang sử dụng Windows hôm nay không? Tôi đang chia sẻ với bạn. Và vì vậy, đối với quý ông duy nhất ở đó, chúng tôi có hỗ trợ sandbox gốc. Trong Windows, chúng tôi là người tiên phong. Không có hệ thống khung cạnh tranh nào khác hỗ trợ sandbox gốc cho Windows.

Các tính năng mới của Codex

Tôi đã nói mãi về ứng dụng Codex, đã nói về tất cả các mô hình mà chúng tôi đã phát hành, nhưng điều gì mới về tất cả các tính năng mà chúng tôi đã ra mắt? Đây là, tôi nghĩ nếu tôi không nhầm, theo thứ tự giảm dần. Gần đây nhất, chúng tôi đã ra mắt plugins. Plugins là một cách để bạn tập hợp các skills, MCPs cũng như lời nhắc (prompts). Và bất kỳ thứ gì khác thực sự được đóng gói thành một bundle và cho phép mô hình thực hiện việc ghép nối tinh tế hơn trong khi nó đang xây dựng. Chúng tôi cũng gần đây đã phát hành các mô hình mini (mini models), kết hợp khá tốt với các sub agents, cho phép bạn song song hóa một tính năng cụ thể, hoặc yêu cầu sửa lỗi, hoặc Q&A, bất kể đó là gì, với tốc độ nhanh hơn, tất cả trong khi đảm bảo rằng bạn không phải trả nhiều chi phí cho các mô hình cụ thể của mình. Và sau đó chúng tôi có rất nhiều thứ khác, mà chúng ta sẽ nói đến khi đi qua một số điều này là cách Codex rất giỏi trong code review, cách Codex thực sự giỏi về bảo mật, v.v. Tất cả điều này, trong khi chúng ta nói về tất cả điều này, tôi muốn nhấn mạnh thực tế rằng chúng tôi ở OpenAI khá may mắn khi cộng đồng đã thực sự đón nhận Codex. Trên thực tế, chỉ đêm qua chúng tôi đã vượt qua cột mốc 3 triệu người dùng hoạt động hàng tuần. Và đây là một điều khá lớn đối với chúng tôi. Và chúng tôi muốn tiếp tục hỗ trợ cộng đồng nhà phát triển, các doanh nghiệp, các công ty khởi nghiệp xây dựng trên Codex. Vì vậy, trong suốt phiên này, nếu bạn có bất kỳ câu hỏi nào, vui lòng hỏi cả Kaki và tôi, hoặc thậm chí sau đó, hoặc chỉ cần nhắn tin cho chúng tôi. Với điều này, tôi sẽ chuyển lại cho Kakiya. Cảm ơn bạn.

Vâng, 3 triệu người dùng hoạt động hàng tuần thực sự rất tuyệt vời khi thấy, và thật điên rồ khi nghĩ rằng con số này đã tăng hơn gấp ba lần kể từ tháng Giêng. Vì vậy, chỉ trong vài tháng, chúng tôi đã thấy sự chấp nhận rất lớn, và vâng, điều đó thực sự, thực sự rất tuyệt.

Plugin và Tự động hóa trong Codex

Plugins, tôi không biết các bạn đã nghe về nó chưa, nó khá mới trên Codex, hỗ trợ gốc cho plugins. Ý tưởng của plugins, tôi sẽ cho các bạn thấy nó hoạt động như thế nào trong thực tế và cách bạn có thể sử dụng chúng, là chúng đóng gói một loạt thứ lại với nhau. Như skills, apps, integrations, MCP servers, và chúng đóng gói những thứ đó thành các quy trình làm việc có thể tái sử dụng.

Vậy skills, appsMCP servers là gì, tôi sẽ trình bày, nhưng để giới thiệu một chút về điều đó, skills về cơ bản là các hướng dẫn có thể tái sử dụng được đóng gói cho các quy trình cụ thể. Vì vậy, nếu bạn có điều gì đó bạn thường xuyên làm, bạn thực sự có thể tạo một skill cho nó để Codex biết về nó, bạn có thể cung cấp các hướng dẫn, bạn cũng có thể cung cấp các script, tài nguyên, và tất cả những điều đó sẽ giúp bạn không phải lặp lại chính mình liên tục. Vì vậy, mỗi khi bạn có một quy trình làm việc gọn gàng luôn giống nhau, bạn có thể đóng gói nó thành một skill, bạn thậm chí có thể yêu cầu Codex tạo skill đó cho bạn.

Và sau đó apps là kết nối đến các dịch vụ khác. Vì vậy, các bạn biết đấy, chúng ta sẽ xem một bản demo nhanh, nhưng các công cụ mà bạn sử dụng hàng ngày, như Notion, Linear, tất cả những điều đó, bạn có thể để Codex kết nối với chúng. Và MCP servers, bạn có thể đã quen thuộc với điều này rồi, nhưng chúng về cơ bản cung cấp các công cụ để Codex mở rộng khả năng của nó hơn nữa, và đó là các công cụ từ các hệ thống bên ngoài. Và tất cả ba điều này đã rất hữu ích riêng lẻ, và những gì plugins làm là chúng đóng gói chúng lại để bạn không phải thiết lập mọi thứ thủ công, bạn không phải cài đặt nhiều skills, bạn không phải kết nối nhiều apps, bạn không phải kết nối nhiều MCP servers, bạn chỉ cần thêm một plugin.

Một điều khác tôi muốn nói về trong ứng dụng Codex, mà chúng tôi sẽ trình bày một bản demo nhanh, là automations. Cá nhân tôi, đây là một trong những điều yêu thích của tôi khi làm việc với Codex, bởi vì bạn có thể thiết lập các automations chạy ngầm, giống như một corn job, và bạn có thể kết nối apps, bạn biết đấy, bạn cũng có thể sử dụng plugins ở đó, và chỉ cần đặt nó để chạy vào một thời gian đã định. Ví dụ, bạn có thể thiết lập một automation để chạy mỗi ngày vào một thời gian nhất định, và đó chỉ là một hướng dẫn mà Codex sẽ chạy ngầm.

Kỹ năng phát triển ứng dụng và trò chơi

Và điều cuối cùng tôi muốn trình bày ngay sau đây qua bản demo là các kỹ năng chuyên biệt dành cho phát triển ứng dụng web và trò chơi. Chúng tôi nhận thấy nhiều nhà phát triển muốn sử dụng Codex để xây dựng các ứng dụng và trò chơi này, và mỗi lần họ thường lặp lại các thao tác, sử dụng cùng một bộ kỹ năng. Vì vậy, chúng tôi đã đóng gói những kỹ năng này vào các plugin cụ thể. Có hai kỹ năng tôi muốn nhấn mạnh là cực kỳ hữu ích và thực sự thay đổi cuộc chơi khi bạn phát triển thứ gì đó trực quan. Đó là Playwright Interactive. Nếu bạn chưa biết, Playwright về cơ bản là một headless browser (trình duyệt không giao diện), giống như một sandbox browser mà Codex có thể chạy và sử dụng để xem nó đang làm gì. Bạn có thể mở ứng dụng của mình trong trình duyệt, và với phiên bản tương tác, bạn có thể nhấp vào các thành phần, điều hướng trong ứng dụng, chụp ảnh màn hình, sau đó xem xét và phân tích các ảnh chụp đó. Tiếp theo là ImageGen, một cách tuyệt vời để tạo ra các visual assets (tài nguyên hình ảnh) cho các ứng dụng và trò chơi của bạn.

Demo: Tạo tài nguyên trò chơi và cập nhật bảng tính

Thôi không nói nhiều nữa, tôi sẽ cho bạn xem một bản demo. Tôi sẽ bắt đầu bằng cách chạy bản này, vì nó khá dài. Khi tôi chạy nó hôm qua, phải mất khoảng một giờ để xây dựng, vì vậy tôi cũng có phiên bản cuối cùng, nhưng tôi muốn cho bạn thấy lời nhắc này, cách Codex xử lý nó. Ở đây, tôi đang sử dụng Games Studio plugin, đây là một gói các kỹ năng hữu ích cho phát triển trò chơi. Tôi yêu cầu nó sử dụng ImageGen để tạo visual assets (tài nguyên hình ảnh) – cụ thể là sprites cho trò chơi, và sử dụng Playwright Interactive để debug trò chơi và đảm bảo nó hoạt động tốt. Chúng ta sẽ để nó chạy một lát, sau đó sẽ nói thêm về plugin.

Để tôi chuyển sang một dự án khác, dự án trang web dành cho nhà phát triển của chúng tôi. Đây là repo cho trang web dành cho nhà phát triển của chúng tôi, tôi sẽ đưa nó lên toàn màn hình. Trên trang web này, chúng tôi có một trang với tất cả các buổi gặp mặt (meetup) của Codex, có rất nhiều buổi. Tất cả thông tin đó thực chất nằm trong repo của chúng tôi, trong codebase, dưới dạng các tệp YAML. Tôi đã thêm Google Drive plugin vào đây. Chúng tôi có rất nhiều plugin được xây dựng sẵn mà bạn có thể lựa chọn, tất nhiên bạn cũng có thể tự thêm plugin của riêng mình. Tôi đã kết nối Google Drive plugin này để cho phép Codex truy cập Google Drive của tôi. Tôi đã chuẩn bị một bảng tính gọi là "Codex Events" với tên sự kiện, ngày và thành phố, và tôi sẽ yêu cầu Codex cập nhật bảng tính này với các buổi Codex meetup hiện có được liệt kê trong codebase.

Tự động hóa công việc hàng ngày

Tôi sẽ bắt đầu công việc này, một lần nữa, nó sẽ mất một chút thời gian. Chúng ta hãy kiểm tra, à, đối với các tác vụ trò chơi thì nó vẫn đang chạy. Tôi sẽ cho bạn xem khi nó thực hiện những điều thú vị hơn một chút. Nhưng điều cuối cùng tôi muốn đề cập là các automation (tự động hóa). Automation cũng là thứ bạn có thể thiết lập bằng cách sử dụng các ứng dụng; bạn có thể yêu cầu Codex bất cứ điều gì, nhưng thay vì tương tác trực tiếp như khi bạn đang sử dụng ứng dụng Codex, bạn có thể thiết lập để nó chạy ngầm. Ví dụ, một trong những automation tôi thiết lập giúp ích rất nhiều trong cuộc sống hàng ngày của tôi là cho tin nhắn Slack. Tôi đã kết nối Codex với Slack và yêu cầu: "Này Codex, bạn có thể kiểm tra mỗi ngày lúc 9 giờ sáng các tin nhắn mà tôi cần trả lời và gắn cờ nếu chúng khẩn cấp hoặc cần phản hồi ngay lập tức không? Bạn cũng có thể tóm tắt tất cả những gì đã xảy ra kể từ hôm qua trên Slack không?" Và tôi yêu cầu nó phân loại theo chủ đề, sau đó là thông tin quan trọng cần lưu ý. Chúng tôi có các kênh quan trọng nơi thông tin công ty thường được chia sẻ, những thứ có thể bị bỏ lỡ trong một ngày. Vì vậy, thông tin công ty quan trọng nằm ở đó, và tôi chỉ muốn đảm bảo rằng mình không bỏ lỡ bất cứ điều gì. Đó là loại công việc tôi yêu cầu Codex tóm tắt cho tôi.

Một automation khá hay khác là kết nối với Gmail. Tương tự, tôi thực sự nhận được một lượng email khổng lồ mỗi ngày, vì vậy tôi chỉ yêu cầu Codex kiểm tra xem có email nào tôi thực sự cần trả lời không, và kiểm tra xem chúng có khẩn cấp hay có vẻ hợp pháp không. Bởi vì tôi nhận được rất nhiều yêu cầu mà tôi không nhất thiết phải trả lời, nhưng việc này giúp tôi tiết kiệm hàng giờ mỗi ngày.

Quy trình tạo tự động hóa và kết quả tác vụ

Cách bạn có thể tạo các automation là từ đây, hoặc bạn cũng có thể nói: "Này Codex, bạn có thể tạo một automation sẽ xem xét Slack và tìm bất cứ điều gì đề cập đến các trường hợp sử dụng của Codex, sau đó liệt kê tất cả các trường hợp sử dụng quan trọng mà tôi nên đưa lên trang web của chúng ta không?" Tôi sẽ để Codex suy nghĩ về điều này một chút. Lẽ ra tôi nên dùng Spark. Và nó sẽ đưa ra, bạn biết đấy, nó sẽ tạo automation cho tôi. Tôi không chỉ định khi nào tôi muốn nó chạy, nhưng tôi thực sự có thể... ồ, thú vị, nó đang làm điều gì đó khác biệt, bởi vì đây là một... nên rõ ràng nó sẽ không... OK, thông thường, nó sẽ hiển thị một cửa sổ pop-up nhỏ để tôi có thể nhấp vào. Ồ, nó đang làm đó, hoàn hảo. Sáng nay nó hơi "chậm". OK, thú vị. OK, vậy hãy tạo automation. Nó sẽ hiển thị một cửa sổ pop-up nhỏ nếu mọi việc suôn sẻ, nhưng nếu không, bạn vẫn có thể tạo thủ công. Hãy xem nó có hoạt động không. OK, tôi không biết chuyện gì đang xảy ra, nhưng OK, hãy làm thủ công. Bạn cũng có thể tạo nó từ đây, và về cơ bản tất cả những gì bạn phải làm là gọi các plugin bạn muốn sử dụng, như sử dụng Slack, sau đó chọn tần suất automation nên chạy, dự án nào nó đang chạy, v.v.

Được rồi, hãy kiểm tra các tác vụ khác của chúng ta. Tác vụ này vẫn đang chạy. OK, đã tạo ra một số sprite khá tuyệt. Chúng ta sẽ xem sau. Và hãy kiểm tra tác vụ cập nhật bảng tính của chúng ta. Ở đây, Codex mất hai phút để phân tích codebase. Nó tìm thấy nguồn cho tất cả các sự kiện của Codex nơi chúng tôi có các tệp YAML, sau đó nó đã ghi 57 hàng sự kiện. Hiện tại chúng tôi có 57 sự kiện được liệt kê trên trang web, và chúng ta hãy kiểm tra, xem bảng tính của chúng ta, và vâng, chúng ta có thể thấy nó đã được cập nhật. Tuyệt vời. Đây là một ví dụ đơn giản, nhưng bất cứ khi nào bạn có một việc gì đó rất tốn thời gian, và bất cứ điều gì liên quan đến dữ liệu, chẳng hạn như data review (xem xét dữ liệu), bạn thực sự có thể yêu cầu Codex thực hiện nó cho bạn. Nó có quyền truy cập vào mọi thứ trong codebase của bạn, và bạn cũng có thể cung cấp cho nó các đầu vào khác, như các tệp CSV khác, và sau đó bạn chỉ cần yêu cầu Codex thực hiện loại công việc đó cho bạn.

Kết quả demo trò chơi hoàn chỉnh

Được rồi, bây giờ điều cuối cùng, hãy kiểm tra trò chơi của chúng ta. Như bạn có thể thấy, Codex thực sự đang sử dụng ImageGen để tạo ra... tôi sẽ thu nhỏ một chút... ồ, tuyệt vời. Nó đang tạo tất cả các sprites, tất cả các game assets (tài nguyên trò chơi) mà tôi yêu cầu, và trông khá đẹp. Nó cũng sẽ mất một thời gian. Tôi sẽ cho bạn xem kết quả cuối cùng, nhưng như bạn thấy, Codex đang đọc, à xin lỗi, nó đang tạo ra tất cả các tài nguyên này, và sau đó nó sẽ sử dụng kỹ năng Playwright để xem nó trông như thế nào trong ứng dụng. Rất tiếc, chúng ta không có một giờ để chờ kết quả cuối cùng này. Vì vậy, tôi sẽ chỉ cho bạn xem kết quả mà nó đã làm ngày hôm qua. Đây là phiên bản chưa chỉnh sửa, tôi hoàn toàn không động vào nó. Hoàn toàn là Codex đã xây dựng nó, và tất cả những gì tôi đã làm là không đưa bất kỳ đầu vào nào, tôi chỉ nói: "Hãy làm một trò chơi platformer với các nền tảng làm bằng gạch", thế thôi. Và vâng, nó đã tạo ra mọi thứ. Dù UI tổng thể không được như ý, tôi có thể sẽ phải lặp lại để cải thiện, nhưng tôi nghĩ bản thân trò chơi platformer khá thú vị. Và điều thực sự tuyệt vời ở đây là tất cả các sprites, như ở đây, tôi chỉ di chuyển khắp nơi, và bạn thấy đấy, đó là ít nhất năm sprite khác nhau của nhân vật nhỏ, và tôi không phải làm bất kỳ điều gì trong số đó. Bạn cũng có thể tạo một trò chơi tùy chỉnh với khuôn mặt của bạn làm đầu vào và yêu cầu ImageGen tạo ra phiên bản 2D của bạn. Đó là một cách bạn có thể tận dụng kỹ năng ImageGen, các kỹ năng tương tác của Playwright, và Game Studio plugin. Và để cho bạn thấy bên trong có gì, chúng tôi cũng có điều tương tự cho các ứng dụng web, nhưng đó là một gói gồm tất cả các kỹ năng này.

Tóm tắt hệ sinh thái Codex

Vâng, đó là tất cả từ phía tôi. Tôi sẽ chuyển lại cho VB. Cảm ơn. Cảm ơn, Katya. Được rồi. Hoàn hảo. Để tóm tắt nhanh những gì chúng ta đã thảo luận cho đến nay: Chúng ta đã đi qua tất cả các mô hình cung cấp năng lượng cho hệ sinh thái Codex, sau đó là tất cả các giao diện mà bạn có thể sử dụng Codex. Và tiếp theo, chúng ta đã xem xét các plugin, cách sử dụng chúng, và một số plugin bạn có thể dùng. Bạn cũng có thể tự tạo plugin của riêng mình bằng cách sử dụng plugin creator, và sau đó chúng ta đã nói về automation, ImageGen, v.v.

Tính năng Code Review hàng đầu của Codex

Bây giờ, một điều cần lưu ý là khi chúng ta tiếp tục giao phó ngày càng nhiều công việc cho các Tác nhân này – có thể là bất kỳ Tác nhân yêu thích nào của bạn, dù là Codex hay không – một điều bạn muốn đảm bảo là bất cứ thứ gì Tác nhân của bạn tạo ra đều phải có chất lượng cao nhất. Điều này có nghĩa là khi chúng ta bắt đầu làm việc trên nhiều tính năng cùng lúc, nhiều quy trình cùng lúc, rất có thể bạn không thể xem xét từng dòng mã. Điều đó có nghĩa là, ít nhất trong lần duyệt đầu tiên, bạn muốn có một cách đáng tin cậy để code review (kiểm tra mã) của mình. Và đây là lúc code review phát huy tác dụng. Tôi không hề khoe khoang về điều này, nhưng theo cách nhìn chủ quan của tôi, tính năng code review của Codex hiện là một trong những tính năng tốt nhất trong ngành. Đây là điều mà mọi người trên Twitter, LinkedIn, trên các nền tảng của chúng tôi như Discord, v.v., không ngừng ca ngợi về việc code review của Codex tốt đến mức nào. Vì vậy, tôi muốn dành một chút thời gian để nói về những gì nó làm được.

Triển khai Code Review trên các nền tảng

Đầu tiên, nó có sẵn trên các giao diện bạn đang làm việc. Điều này có nghĩa là, thứ nhất, bạn có thể sử dụng tính năng code review của Codex trên GitHub. Bạn có thể kết nối tài khoản ChatGPT của mình với GitHub và đối với mỗi pull request bạn tạo, bạn có thể thiết lập để Codex tự động review từng pull request. Nó thường sẽ đưa ra một loại thông báo, giống như thế này trên chính pull request đó, nói rằng: "Này, đây là thứ còn thiếu", "Này, có thể P0 sửa lỗi này, P1 sửa lỗi kia, P2, đây là điều nên có", v.v. Đồng thời, bạn có thể sử dụng lệnh /review trên Codex CLI hoặc ứng dụng Codex, và Codex sẽ khởi động một quy trình review lớn, v.v. Và rất gần đây, tuần trước, cùng với đồng nghiệp Dom của tôi, chúng tôi đã ra mắt CloudTour plugin cho Codex, cho phép bạn về cơ bản gọi Codex trong các phiên làm việc của Codex để có được cùng một tính năng code review hiện đại nhưng ngay trong các phiên mã hóa của bạn.

Thực hành Code Review với nhánh phát triển

Vì vậy, một điều cần lưu ý ở đây là, giả sử tôi đang làm việc trên một dự án như thế này. Tiện thể, đây là thiết lập làm việc thực tế của tôi tại công ty. Đây là tất cả những gì tôi làm việc. Mọi thứ bạn thấy ở đây, tất cả các luồng, tất cả các dự án này là những gì tôi làm việc hàng ngày. Vì vậy, nếu bạn thấy điều gì đó không nên, hãy nhắm mắt lại. Thông thường, tôi sẽ xem xét một yêu cầu tính năng (feature request) hoặc một yêu cầu nào đó từ ai đó, và giả sử ở đây, tôi hỏi về những gì tôi làm một số việc. Vì vậy, tôi sẽ chỉ yêu cầu nó review các thay đổi của nó. Và sau đó bạn sẽ có tùy chọn để chọn từ một base branch (nhánh cơ sở), nếu bạn có nhiều branch (nhánh) trong Git repo, bạn có thể chọn review nó so với một feature branch (nhánh tính năng), so với một e-val branch (nhánh đánh giá), hoặc bất cứ nhánh nào khác.

Đánh giá mã nguồn tự động với Codex

Trong trường hợp này, tôi sẽ yêu cầu Codex xem xét các thay đổi chưa được commit. Nếu bạn để ý, nó sẽ khởi tạo một luồng hoàn toàn mới. Luồng đó về cơ bản sẽ khởi động một quy trình Codex hoàn toàn mới, bao gồm prompt hệ thống đánh giá riêng của chúng tôi. Nó sẽ tiếp tục xem xét không chỉ diff hay danh sách tất cả các thay đổi, mà còn đặt chúng vào ngữ cảnh với mọi thứ có sẵn trong chính repo hiện tại, đúng không?

Vì vậy, rất nhiều lần, tính năng đánh giá mã của Codex sẽ phát hiện những thay đổi có thể gây ra hiệu ứng cấp hai, không chỉ giới hạn ở diff hay bất kỳ thay đổi nào bạn đã thực hiện, mà còn ảnh hưởng đến một số module khác mà bạn thậm chí chưa chạm vào trong pull request hoặc trong chính các thay đổi đó. Điều này hiệu quả đến mức 100% các pull request trên tất cả các repo của OpenAI do tất cả nhân viên, bao gồm cả Greg, thực hiện đều được Codex code review đánh giá theo mặc định. Và đó là lần kiểm tra đầu tiên mà bạn thực hiện. Tuyệt vời.

Và như bạn có thể thấy ở đây, Codex đã làm việc trong một phút và đưa ra những cập nhật như P1, bạn biết đấy, "localize whatever revenue detail", P2, "translate this to this" và cứ thế. Và điều bạn có thể làm sau đó là về cơ bản yêu cầu Codex thực hiện việc sửa lỗi hoặc mở một PR khác trên bất kỳ nhánh nào bạn đang làm việc và sau đó tiếp tục từ đó.

Giới thiệu về Subagents

Bây giờ chúng ta sẽ đến với subagents (tác nhân con), điều mà cá nhân tôi khá hào hứng. Vậy, trước hết, subagents là gì? Subagents về cơ bản là khả năng bạn có thể phân chia một tác vụ chính (master task) thành các tác vụ nhỏ hơn, song song và độc lập, có thể giao cho các tác nhân để chúng làm việc độc lập. Sau khi hoàn thành, chúng sẽ trả lại kết quả cho bạn. Với subagents, giới hạn thực sự là bầu trời, bạn có thể tạo ra bao nhiêu tác nhân tùy thích, miễn là API Key của bạn hoặc gói đăng ký chargeability pro plus go của bạn có thể đáp ứng được.

Bạn có thể làm rất nhiều điều thú vị với subagents. Ví dụ, điều tôi đang thực hiện trên ảnh chụp màn hình bên trái là tôi có một Codex agent repo mà chúng ta sẽ xem xét trong giây lát. Nó chưa được công khai nhưng tôi hy vọng chúng ta sẽ có thể công khai nó rất sớm, nơi có rất nhiều personas (nhân cách) cho subagents mà bạn có thể sử dụng. Điều này khá meta. Về cơ bản, đó là các personas của subagent như người đánh giá tài liệu, hoặc người tạo test case (trường hợp kiểm thử), hoặc người chạy test case, v.v.

Và tôi cứ thỉnh thoảng chúng tôi lại thay đổi spec. Điều này là từ trước khi chúng tôi muốn thay đổi spec về cách subagents hoạt động. Vì vậy, điều tôi muốn nó làm là duyệt qua tất cả 40-50 personas subagent khác nhau này, đánh giá chúng và đảm bảo rằng chúng đáp ứng spec. Và tất nhiên, làm điều đó mà không có subagents sẽ có nghĩa là Codex sẽ mở từng tệp một và sau đó xem xét nó, rồi đưa cho tôi một bản tóm tắt và tiếp tục làm như vậy cho khoảng 50 subagents khác nhau.

Trong trường hợp này, về cơ bản nó đã tạo ra các "lát cắt" đánh giá, nghĩa là nó đã tạo ra, ví dụ, "đây là hai tệp mà subagent Poly hoặc subagent Plato nên xem xét." Và sau đó, chúng sẽ khởi động một môi trường Codex mới, chúng sẽ xem xét những tệp đó và cuối cùng, Codex sẽ tổng hợp tất cả và đưa ra phản hồi cho tôi. Vì vậy, hãy thử điều này.

Thực hành với Subagents: Ví dụ đánh giá Codebase

Repo đang được đề cập là đây. Đó chỉ là Codex agents repo có một loạt các personas. Bạn có thể thấy chúng tôi có khá nhiều personas ở đây. Chúng tôi có một người đánh giá khả năng tiếp cận, kiến trúc sư, v.v. Và đây thực sự là điều bạn có thể tự tạo và chúng ta sẽ đề cập đến điều đó trong giây lát, đó là bạn có thể tự định nghĩa các subagents tùy chỉnh của riêng mình, đúng không? Nhưng hãy nghĩ về repo này như một bộ sưu tập các subagents này. Và đây là những gì bạn thường có cho mỗi subagent. Bạn sẽ có một tên, một mô tả, một chế độ sandbox khác nhau, cho dù bạn muốn nó chỉ ghi, chỉ đọc. Và sau đó bạn sẽ có một số hướng dẫn, v.v.

Bây giờ tôi sẽ yêu cầu Codex... Tôi sẽ chuyển đến Codex agents của mình. Tôi sẽ chuyển sang, hãy để chế độ medium ở đây. Hãy đóng cái này lại. Tôi có thể làm cho cái này toàn màn hình không? Được rồi. Vậy, hãy giao cho nó một nhiệm vụ: "khởi tạo 20 subagents để xem xét tất cả các subagents." Đây là một nhiệm vụ rất đơn giản. Tất cả những gì tôi yêu cầu Codex làm là thực hiện cùng một nhiệm vụ mà tôi đã trình bày trước đó, trong đó tôi muốn nó xem xét tất cả các personas subagent khác nhau trong repo này.

Và bạn có thể thấy rằng, nó đã nhận ra rằng có các agentsskills (kỹ năng) và nó đang xem xét chúng. Có 45 tệp persona được tuyển chọn và nó sẽ tạo ra 20 người đánh giá và nó sẽ cung cấp cho họ tất cả các tệp terminal đó và sau đó nó sẽ xem xét chúng. Và bạn có thể thấy có hai điều khá thú vị ở đây. Thứ nhất, Codex tự động quyết định rằng đây có khả năng là một tác vụ phức tạp. Vì vậy, nó tự động khởi động chế độ lập kế hoạch (plan mode), đang hoạt động ở đây. Vì vậy, bạn có thể thấy rằng nó về cơ bản đã đưa ra năm tác vụ để giải quyết vấn đề cụ thể này. Bạn cũng có thể gọi chế độ lập kế hoạch một cách rõ ràng. Nhưng trong trường hợp này, nó đã tự quyết định làm điều đó. Sau đó, nó sẽ phân chia tất cả các tệp persona này và sau đó nó sẽ sớm khởi tạo 20 subagents. Tôi thề là nó nhanh hơn.

Nhưng bây giờ điều nó đang làm là, ồ, vì một lý do nào đó trên thiết lập cụ thể của tôi, tôi có giới hạn sáu luồng tác nhân chạy đồng thời. Chúng ta có thể khắc phục điều đó. Nhưng để quay lại, điều chúng ta có thể thấy ở đây là nó thực sự đã khởi tạo sáu tác nhân, là giới hạn của tôi hiện tại. Và tôi có thể thấy tất cả các tác nhân đó đang làm việc ở đây. Tôi có thể nhanh chóng xem Jason, tác nhân ở đây, đang làm gì hoặc Hume, v.v.

Và bạn có thể thấy rằng một điều đáng lưu ý ở đây là mô hình Codex chính ở đây, về cơ bản đã tạo ra một persona. Và không chỉ vậy, nó còn tập trung vào và cung cấp chính xác các tệp mà subagent cụ thể này nên xem xét. Ngoài ra, nó cũng cung cấp một số thông tin chi tiết về hướng dẫn repo trong Repo.MD, trong contributing.MD, trong skills, v.v. Và nó sẽ tiếp tục đi theo lộ trình này cho tất cả các subagents khác nhau. Và điều nó làm ở giai đoạn cuối là nó sẽ tắt tất cả các subagents này khi chúng đã trải qua toàn bộ quá trình xem xét tất cả các tệp terminal và v.v. Và nếu tôi quay lại luồng chính của mình, bạn có thể thấy rằng hai trong số các tác nhân vẫn đang làm việc. Nhưng cuối cùng, nó sẽ tổng hợp tất cả phản hồi mà nó đã nhận được từ tất cả các subagents riêng lẻ này và tiếp tục.

Các trường hợp sử dụng nâng cao của Subagents

Bạn có thể nghĩ về điều này. Đây giống như một trường hợp sử dụng khám phá rất đơn giản, đúng không? Nhưng bạn có thể nghĩ về điều này từ, ví dụ, một góc độ an ninh mạng, trong đó bạn có một git commit hoặc bạn có một git repo cụ thể và bạn muốn Codex khởi tạo và chạy nhiều phân tích lỗ hổng. Bạn muốn nó tạo ra nhiều loại phân tích lỗ hổng từ các quan điểm khác nhau hoặc từ các giả thuyết khác nhau và bạn muốn nó giải quyết cùng một diff hoặc cùng một GitHub repo và cố gắng đưa ra một bản đồ lỗ hổng, đúng không? Và đây là điều chúng tôi thực sự sử dụng khá nhiều, hoặc cá nhân tôi sử dụng khá nhiều khi tôi động não một tính năng cụ thể. Tôi sẽ chỉ khởi tạo nhiều subagents Codex để xem xét cách tôi sẽ tiếp cận một vấn đề, đúng không?

Ví dụ, tôi muốn thêm một tính năng, tôi sẽ yêu cầu Codex tạo một kế hoạch cho, ví dụ, năm hoặc sáu hoặc 10 cách khác nhau mà một mô hình hoặc một tính năng cụ thể có thể được triển khai. Và sau đó tôi sẽ nhanh chóng tập trung vào và yêu cầu Codex tạo nhiều subagents để cho tôi hiểu rõ hơn về các tác vụ này. Xin lỗi, đồng hồ của tôi liên tục rung. Và đó là một cái nhìn tổng quan nhanh chóng về cách subagents hoạt động.

Tùy chỉnh và cấu hình Subagents

Theo mặc định, chúng tôi cung cấp ba personas subagent. Hãy để tôi mở. Vì vậy, theo mặc định, chúng tôi cung cấp ba personas. Một là tác nhân dự phòng đa năng mặc định. Một tác nhân khác là worker, tập trung vào việc thực thi. Vì vậy, đây là thứ bạn sẽ sử dụng khi bạn muốn Codex viết một yêu cầu tính năng cụ thể hoặc làm việc trên một tính năng cụ thể. Sau đó là Explorer, đó là cái mà chúng tôi đã sử dụng trước đó. Và sau đó, đối với mỗi persona này, bạn có thể tập trung vào và tạo ra các personas subagent Codex của riêng mình, như chúng ta đã thấy trước đây, và chúng ta sẽ tạo một cái ngay bây giờ.

Một điều cần lưu ý là các subagents cụ thể này, đối với mỗi subagent, bạn có thể định nghĩa mô hình nào bạn muốn sử dụng. Bạn có thể định nghĩa mức độ nỗ lực suy luận (reasoning effort) bạn muốn sử dụng. Bạn có thể định nghĩa chế độ sandbox nào bạn muốn sử dụng, v.v. Lý do tại sao điều này quan trọng là đối với một tác nhân đánh giá, bạn sẽ gần như luôn luôn muốn sử dụng tác nhân đánh giá ở chế độ chỉ đọc (read-only mode). Bạn sẽ không bao giờ muốn tác nhân đánh giá của mình thực thi bất cứ điều gì. Vì lý do tương tự, đối với một nhiệm vụ lỗ hổng an ninh mạng, bạn sẽ muốn subagent của mình luôn ở chế độ chỉ đọc. Nhưng đối với một người viết tài liệu, hoặc đối với một thứ gì đó như, bạn biết đấy, tạo tài liệu cho một tính năng cụ thể mà bạn đã tạo hoặc một báo cáo lỗi, v.v., bạn muốn cấp cho nó quyền ghi (write access) để nó có thể thực thi mọi thứ và cũng tạo báo cáo lỗi cho nó.

Một điều cần lưu ý là bạn cũng có thể tập trung vào và cấp cho các subagents này nhiều khả năng hơn bằng cách cấp cho chúng quyền truy cập MCP. Vì vậy, bạn có thể chỉ cần cấp, bạn biết đấy, bạn có thể cấp cho một subagent quyền truy cập MCP vào Sentry để nó có thể xem xét tất cả các báo cáo của bạn ở đó hoặc một subagent có quyền truy cập vào backlog tuyến tính của bạn để nó có thể tương tác với Linear, nó có thể đọc tất cả các vấn đề được thêm vào bạn, phân loại chúng, v.v. Bạn cũng có thể cấp cho chúng skills. Vì vậy, thực sự, nếu bạn thực sự muốn, bạn có thể tùy chỉnh khá nhiều toàn bộ thiết lập này cho trường hợp sử dụng của riêng mình.

Tạo Subagents tùy chỉnh

Hãy mở lại ứng dụng Codex của chúng ta. Bạn có thể thấy rằng nó đã duyệt qua tất cả các subagents này, nó đã tạo ra một loạt các subagents khác chỉ để duyệt qua tất cả những điều này và nó đã đưa ra những phát hiện này. Nó giống như dựa trên readme, dựa trên contributing, performance, investigator bị lạm dụng quyền hạn (overprivileged), P1 có sự không khớp sandbox, xin lỗi, verify có sự không khớp sandbox, tương tự đối với writer và v.v. Và vì vậy, bạn có thể thấy rằng điều này đã khá hữu ích và nó giúp bạn tiết kiệm khá nhiều thời gian để có thể duyệt qua tất cả những điều này một cách riêng lẻ hoặc tuần tự, v.v.

Bây giờ hãy quay lại và xem thêm một chút về subagents tùy chỉnh. Như tôi đã đề cập rằng chúng tôi cung cấp ba personas subagent, nhưng đồng thời bạn có thể tạo các subagents tùy chỉnh của riêng mình. Trên thực tế, chúng tôi khuyên bạn nên tạo các subagents của riêng mình hoặc chỉ yêu cầu Codex xem xét các phiên làm việc trước đây của bạn và tạo subagents cho bạn. Cả hai kịch bản này đều hoạt động và hoạt động khá tốt.

Trong trường hợp cụ thể này, bạn có thể thấy rằng chúng tôi có một subagent PR explorer đọc codebase của bạn, sử dụng GPD5.3 Codex Park, là mô hình xem trước nghiên cứu của chúng tôi, chỉ dựa trên văn bản được triển khai trên Cerebras và cực kỳ nhanh. Nó khá phù hợp cho trường hợp sử dụng cụ thể này và chúng tôi đặt sandbox thành chỉ đọc để chúng tôi không muốn mô hình thực thi và chúng tôi cung cấp cho nó một số hướng dẫn. Trong trường hợp này, chúng tôi nói "hãy ở chế độ khám phá, theo dõi đường dẫn thực thi, đừng đề xuất bất kỳ bản sửa lỗi nào và chỉ cần tìm kiếm và tìm hiểu chính xác những gì bạn muốn chúng tôi làm." Bây giờ, hãy thử tạo một subagent. Giả sử chúng ta muốn tạo một docs researcher (nhà nghiên cứu tài liệu).

Tạo và Tận dụng Tác nhân phụ

Trong trường hợp này, điều tôi thường làm là hỏi Codex: "Này Codex, bạn có thể tạo subagent này cho tôi không? Đây là persona của nó." Và sau đó, hãy xem. Codex sẽ làm gì, bởi vì Codex nhận thức được cách thức hoạt động của nó, nó biết mình phải làm gì và đặt tất cả những thứ này ở đâu, đó là nó sẽ tạo một tệp Toml cho docs reviewer này. Trong trường hợp cụ thể này, nó sử dụng doccmscp server mà chúng tôi đã tạo từ DX theme, gói tất cả các tài liệu tham khảo API, docs, guides, toolkits, v.v. Nó sẽ thêm đó làm một MCP server để mỗi khi chúng ta hỏi nó một câu hỏi như: "Này, cách tốt nhất để sử dụng GPD 5.4 với WebSockets là gì?" hoặc "Cách tốt nhất để sử dụng GPD real-time là gì, tôi không biết, hãy chọn cách yêu thích của bạn để sử dụng GPD real-time, và bạn có thể tạo một React plugin cho cái này không?" v.v., nó sẽ có thể tham chiếu tất cả những thứ này.

Vì vậy, tôi sẽ để nó tự hoạt động và trong thời gian chờ đợi, quay lại các slide. Nhắc lại, để kích hoạt một subagent cụ thể, bạn có thể nói: "Này, bạn có thể xem xét một subagent và xem xét dựa trên..." Trong trường hợp này, bạn có thể tận dụng cùng một subagent cụ thể đó một lần nữa và sau đó yêu cầu nó thực hiện tác vụ cụ thể mà bạn muốn làm.

Vậy, một số cách thú vị để bạn có thể sử dụng điều này là gì? Hãy tưởng tượng bạn có một build process dài hoặc một test process. Bạn có thể có một subagent có thể chạy test case của bạn cục bộ. Bạn có thể có một subagent luôn đảm bảo... (Tôi được báo là không còn nhiều thời gian.) Bạn có thể có một subagent có thể kéo phiên bản mới nhất từ GitHub ngay khi bạn thực hiện pull. Bạn có thể có một subagent có thể nhanh chóng kéo tất cả context từ một linear issue, v.v. Vì vậy, thực sự, bạn có thể tận dụng điều này cho rất nhiều việc. Và điều tốt nhất tôi thích làm là chỉ cần yêu cầu Dexter xem xét các session trước đây của tôi và đề xuất cho tôi một số automation, một số tác nhân phụ, v.v. mà tôi có thể sử dụng.

Tính năng Thử nghiệm và Bảo mật Nâng cao

Tuyệt vời. Giờ đây, chúng ta đang ở những tính năng tiên tiến nhất. Đây là một loạt các thứ mà chúng tôi đã phát hành trong quá khứ nhưng chưa thực sự công bố rộng rãi. Vì vậy, chúng ta sẽ nhanh chóng xem xét từng tính năng này làm gì và cách bạn có thể tận dụng chúng.

Đầu tiên và quan trọng nhất là tính năng Guard-Gene approvals. Đây là một experimental feature. Bạn có thể kích hoạt nó ngay hôm nay bằng cách truy cập /experimental. Vì vậy, nó sẽ trông giống như Codex (hy vọng nó hoạt động), và sau đó bạn có thể xem phần experimental. Trong trường hợp của tôi, tôi đã sử dụng Guard-Gene approvals, và bạn có thể kích hoạt nó theo cách này.

Guard-Gene approval làm gì? Tất cả chúng ta, bao gồm cả tôi, tại một thời điểm nào đó đã "phạm tội" khi luôn sử dụng logo của bạn, điều này có nghĩa là bạn theo mặc định cấp quyền access không hạn chế cho coding agent của mình để làm bất cứ điều gì nó muốn, và điều này bằng mọi cách đo lường đều không an toàn. Do đó, chúng tôi đã đưa ra một thứ gọi là Guard-Gene approval, mà mỗi khi Codex cần một đặc quyền, cần chạy một privileged task (ví dụ: "Tôi có thể xóa thư mục cụ thể này không?", "Tôi có thể chạy một server không?", "Tôi có thể hiển thị một tệp cụ thể ra internet không?"), bất cứ khi nào tất cả những điều này xuất hiện, Codex sẽ tạo một subagent mới, dựa trên một lời nhắc cụ thể, sẽ cố gắng xác minh xem liệu đây có phải là điều cần sự can thiệp của con người hay không. Và trong hầu hết các trường hợp, nó không cần sự can thiệp của con người, vì vậy nó sẽ chỉ nói: "Này, cứ tiếp tục chạy privileged tool hoặc privileged task cụ thể này," v.v. Và bằng cách này, điều chúng tôi hy vọng là giảm bớt sự mệt mỏi của con người khi luôn phải phê duyệt: "Hãy làm nhiệm vụ này," "Chạy nhiệm vụ cụ thể này," hoặc "Chạy cái này," v.v.

Về nguyên tắc, điều đó sẽ trông như thế nào? (Đang cố gắng xem liệu có... Được rồi, nó không hiển thị cho tôi ngay bây giờ.) Nhưng vì lý do thời gian, tôi sẽ hỏi: "Này, bạn có thể chạy dev server không?" Và tôi sẽ, thay vì access đầy đủ mà vì lý do nào đó tôi lại không thể nhấp vào... Hãy thử xem liệu nó có kích hoạt Guard-Gene rules hay không. Trong khi điều này hoạt động, tôi sẽ chuyển sang bước tiếp theo là hooks.

Tích hợp Hooks và Cá nhân hóa

Hooks cũng là một tính năng experimental hiện tại. Chúng tôi đang cố gắng 24/7 để làm cho trải nghiệm này tốt hơn. Hiện tại, Codex hỗ trợ ba loại hook: một là sau mỗi lần tool use, một là khi bắt đầu một session, và thứ ba là khi bạn dừng một session. Hooks cho phép bạn yêu cầu Codex thực hiện một hành động X một cách programmatically dựa trên một event cụ thể. Chẳng hạn, khi bạn bắt đầu Codex session, bạn muốn Codex kéo bản cập nhật mới nhất từ GitHub repo của mình. Trong trường hợp cụ thể đó, bạn sẽ muốn thiết lập một start hook. Nếu bạn muốn Codex làm gì đó sau mỗi lần tool use (ví dụ, đối với nhiều nhà nghiên cứu muốn ghi lại từng lần tool use), họ có thể có một per-tool use hook để ghi lại những gì Codex đã làm trong mỗi session, v.v. Bạn có thể làm điều đó. Và cuối cùng nhưng không kém phần quan trọng, một thứ mà cá nhân tôi sử dụng là stop hook, đó là khi tôi đang chạy các tác vụ dài. Vào cuối mỗi lượt của Codex, tôi sẽ yêu cầu nó tiếp tục để nó liên tục chạy một tác vụ cụ thể.

Và về lý thuyết, điều này sẽ trông như thế nào là bạn có một loại Python script nào đó và bạn định nghĩa một hooks.json. Vì vậy, trong trường hợp cụ thể này, bạn có thể thấy ở đây rằng bạn có một pre-tool use. Bạn có một loại, bạn biết đấy, đã trưởng thành, bạn nói rằng, "Khi startup hoặc resume, chạy session.session_start.py cụ thể này," v.v. Và bạn có thể định nghĩa cách bạn muốn trong trường hợp cụ thể này. Ví dụ, đối với ví dụ sales dashboard mà tôi đã trình bày cho đến nay, tôi đã tạo một hook cho stop chạy Python script này, đó là keep_going.py, nghĩa là mỗi khi nó gặp stop hook, nó sẽ yêu cầu Codex tiếp tục, thực hiện thêm một pass, chạy một validating command vững chắc, siết chặt thêm một thứ nữa, và sau đó dừng lại và đưa ra kết quả. Và đối với các tác vụ thực sự dài, bạn chỉ cần thiết lập nó và yêu cầu nó tiếp tục làm việc của mình.

Cuối cùng nhưng không kém phần quan trọng, chúng tôi có các tùy chỉnh personality changes, có nghĩa là bạn có thể vào Codex và yêu cầu nó nhanh chóng xem xét personalization. Bạn có thể thiết lập các personalities khác nhau. Bạn có thể thiết lập một friendly personality hoặc một pragmatic personality dựa trên những gì bạn muốn làm. Bạn cũng có thể thêm custom instructions để yêu cầu nó luôn cite những gì nó đang làm, v.v., đúng không?

Bảo mật và Tích hợp Đám mây

Và hai điều cuối cùng: chúng tôi đã phát hành một thứ gọi là Codex Security. Đây là model tiên tiến của chúng tôi cho phép bạn tìm và sửa lỗi vulnerabilities trong các GitHub project của bạn. Và về cơ bản, nó sẽ đi qua từng commit và tạo một vulnerability patch, sau đó sử dụng Codex để vá các changes đó.

Cuối cùng, như tôi đã đề cập trước đây, chúng tôi đã phát hành một Claude Code plugin cho phép bạn sử dụng Codex trong Claude Code. Đây là một thứ bất ngờ được cộng đồng sử dụng khá nhiều. Và đây là một thứ cho phép bạn yêu cầu Codex xem xét những gì bạn đã làm cho đến nay, thực hiện một adversarial review, hoặc chỉ cần yêu cầu Codex khôi phục bất kỳ changes nào bạn đã thực hiện cho đến nay.

Hỏi & Đáp

[transcript bị gián đoạn]

Chào các bạn. Chúng ta không có nhiều thời gian cho phần Q&A (Hỏi & Đáp). Cụ thể, lẽ ra chúng ta nên bắt đầu sớm hơn một chút. Nhưng tôi rất sẵn lòng trả lời một vài câu hỏi tại đây, và dù sao chúng tôi cũng sẽ ở lại. Vì vậy, nếu bạn có câu hỏi và không cần phải nói, bạn có thể đến gặp chúng tôi. Vâng, vâng. Vậy, điều bạn thường làm là tất cả các session trong Codex đều được đặt trong .sessions bên trong một thư mục .codex cụ thể, cùng một thư mục. Và Codex có khả năng quét qua tất cả các session của bạn và sau đó, bạn biết đấy, thực hiện các việc. Vâng, bạn có thể sử dụng nó. Bạn có thể sử dụng Codex app, bạn có thể sử dụng Codex CLI, bất cứ thứ gì. Bạn chỉ cần yêu cầu nó xem xét các session và, vâng, làm bất cứ điều gì bạn muốn. Cảm ơn. Cảm ơn. Còn câu hỏi nào khác không? Ồ, được rồi, có thể thêm vài câu nữa. Vâng, ở phía sau này.

Khán giả: Chào bạn, chào bạn. Có cách nào để chuyển giao một task cho một Claude agent không? Ví dụ, tôi đang làm việc trên một task ở đây và tôi phải đóng laptop.

Diễn giả: Vâng, vâng, vâng, chắc chắn rồi. Chúng tôi chưa đề cập đến điều đó, nhưng thực ra, bạn có thể làm điều đó trực tiếp từ Codex app. Có lẽ bạn có thể chiếu screen của mình. Nhưng bạn có thể làm việc cục bộ, và như bạn đã đề cập, bạn có thể làm như vậy, chúng tôi cũng hỗ trợ Git worktrees. Nhưng bạn cũng có thể chỉ cần chọn Claude ở đây, và bạn có thể chọn số lần task này nên chạy song song. Chúng tôi gọi đó là best of N, vì vậy bạn có thể chạy nó bốn lần trong Claude và sau đó chỉ chọn best output. Vì vậy, đó là một thứ được tích hợp sẵn trong Codex app, trong ID extension. Và bạn cũng có thể truy cập trực tiếp từ web interface. Và sẽ có nhiều điều thú vị hơn về điều đó rất sớm. Điều gì nữa? Sẽ có nhiều điều thú vị hơn về điều đó rất, rất sớm. Tôi nghĩ có một câu hỏi ở đây.

Khán giả: Vâng, cảm ơn rất nhiều. Câu hỏi của tôi thực ra cũng về Claude UI, bởi vì hôm nay subagents không được hỗ trợ, nếu tôi không nhầm. Và đặc biệt là điều làm tôi bận tâm là nó không sử dụng các skills có trong repo. Điều đó có sắp có không?

Diễn giả: Vậy thì, có lẽ là, mạo hiểm khi nói về toàn bộ roadmap, chúng tôi chắc chắn có nhiều changes hơn sắp tới về mặt đó. Tôi không chắc liệu skills trong Claude sẽ có sớm như tôi nói hay không, nhưng chắc chắn nó nằm trong top of mind. Và chúng tôi thực sự muốn thêm, bạn biết đấy, cung cấp cho bạn khả năng có trusted MCP servers của riêng bạn để có thể chạy ở đó, hoặc CLI's và v.v. Và cả khả năng có các SSR agents mà bạn có thể ponoff một task cụ thể cho trên một VM và v.v. Vì vậy, có rất nhiều việc phải làm về điều đó. Chẳng hạn, nó có thể sử dụng skills trong repo, đúng không? Điều đó đã được checked in. Nó không nằm trong Claude tasks. Vâng, nhưng nếu bạn thích, nó đọc instructions và v.v., và bạn có thể tìm thấy nó và vẫn thấy nó vì nó nằm trong codebase. Nó giống như các skills bạn có cục bộ. Lý do chúng tôi không cho phép nó trên Claude là vì không có cách nào để sandbox biết liệu một skill có đáng tin cậy hay không, đúng không? Và đó là lý do tại sao chúng tôi không làm vậy. Và skill có thể đóng gói như một Python script hoặc, vâng, hoặc một execute. Nó sẽ không execute things, nhưng nếu bạn có, bạn biết đấy, những thứ như resources, nó có thể truy cập nó về mặt kỹ thuật vì nó giống như trong repo, chỉ là, vâng, nó không tốt lắm. Vì vậy, tôi phải yêu cầu nó.

Khán giả: Vâng, cảm ơn, cảm ơn.

Diễn giả: Còn câu hỏi nào khác không? Tuyệt vời. Chúc một ngày tốt lành, tận hưởng một ngày, và nếu bạn có bất kỳ câu hỏi nào khác, chúng tôi sẽ ở đây hôm nay, ngày mai và có thể cả thứ Sáu. Đừng ngần ngại liên hệ hoặc chỉ cần gửi DM và tận hưởng. Cảm ơn.

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?