Transcript
00:00:00Codex mungkin mengalahkan Claude Code di sini dengan perilisan fitur “Goals” eksperimental baru
00:00:05Codex kini menjadi cara termudah untuk menjalankan tugas pengodean otonom yang berjalan lama tanpa
00:00:10perlu menyertakan lapisan orkestrasi tambahan. Goals bertindak seperti loop Ralph
00:00:15terintegrasi yang lebih canggih. Anda memberinya semacam tujuan dan ia akan bekerja
00:00:19selama berjam-jam untuk menyelesaikan masalah itu tanpa Anda perlu campur tangan sama sekali.
00:00:25Dan hari ini saya akan menunjukkan cara kerjanya, cara menyiapkannya, dan kita akan melakukan
00:00:29demo nyata agar Anda bisa melihatnya beraksi. Hari ini kita akan membuat Rift Salvage, video game
00:00:35pertempuran 2D yang menggunakan aset asli sepenuhnya dan kita bangun sepenuhnya melalui fitur Goals.
00:00:42Fitur Goals adalah salah satu pembeda nyata dengan Codex saat ini dan sangat mudah digunakan.
00:00:47kita bicara soal perintah 'slash' tunggal, jadi ada banyak nilai di sini. Jadi, baik
00:00:51Anda menggunakan aplikasi desktop Codex atau Codex CLI, Anda harus mengaktifkan Goals karena ini adalah
00:00:56fitur eksperimental. Sekarang Anda bisa meminta Codex melakukannya atau Anda bisa melakukannya sendiri dengan cepat.
00:01:01Di dalam aplikasi Codex, saya akan pergi ke Settings lalu saya akan pergi ke Configuration.
00:01:07Tepat di sini yang bertuliskan “open config.toml”, saya akan mengkliknya. Saya akan membukanya di VS Code.
00:01:15Dan di bagian bawah sini Anda perlu menambahkan dua baris jika belum ada: features dan goals sama dengan true.
00:01:22Itu saja. Hanya butuh dua detik. Jika itu terlalu rumit, Anda juga bisa memberi tahu Codex,
00:01:27“hei, bisakah aktifkan Goals untukku?” Jadi features goals = true, itu saja. Sekarang untuk menggunakan Goals,
00:01:35di dalam aplikasi desktop dan CLI, Anda cukup mengetikkan /goal. Sekarang karena alasan tertentu,
00:01:40saya rasa karena ini baru dan eksperimental, saat Anda melakukan /goal, Anda tidak akan
00:01:43mendapatkan notifikasi apa pun bahwa ini sedang bekerja, namun Anda akan melihat setelah kita memberi prompt yang tepat
00:01:48bahwa kita akan mendapatkan lencana kecil sehingga kita tahu Goal sedang bekerja. Jadi jika Anda mengaktifkannya,
00:01:53pastikan Anda mereset Claude Code setelah itu untuk memastikan perubahannya diterapkan. Tapi saat Anda mengetik
00:01:58/goal, Anda tidak akan melihat apa pun seperti yang biasanya Anda lihat, misalnya jika Anda melakukan skill atau
00:02:02sesuatu di mana Anda mendapatkan umpan balik yang semestinya bahwa itu bekerja. Tapi ini bagus.
00:02:08Sebelum kita mendemokan Goal di dalam aplikasi, izinkan saya menjelaskan cara kerjanya di balik layar.
00:02:13Tapi pertama-tama, sepatah kata dari sponsor hari ini: saya sendiri. Jadi, seperti yang Anda tahu di Chase AI Plus,
00:02:18saya punya Claude Code Master Class, tapi saya juga baru saja merilis Codex Master Class. Jadi sekarang Anda punya dua alat
00:02:24yang bisa membantu Anda dari nol menjadi pengembang AI. Dan ini adalah tempat terbaik untuk belajar
00:02:29karena saya berasumsi Anda tidak punya pengetahuan teknis dan kita fokus pada kasus penggunaan nyata. Jadi jika Anda ingin mencobanya
00:02:34atau ingin mendengarkan webinar gratis saya dalam beberapa hari ke depan, tautannya akan ada di
00:02:40komentar yang disematkan. Sampai jumpa di sana. Jadi seperti yang saya katakan, Codex Goals pada dasarnya
00:02:46adalah loop Ralph terintegrasi yang lebih canggih. Apa itu loop Ralph? Mari kita
00:02:51tinjau sejenak bagi Anda yang lupa. Pada intinya, loop Ralph jika kita menggunakannya di
00:02:57sesuatu seperti Claude Code hanyalah satu baris kode. Itu hanya loop bash, persis seperti yang Anda lihat
00:03:03tepat di sini. Idenya adalah saya menjalankan baris kode ini dan apa yang akan terjadi adalah ia akan menjalankan
00:03:09Claude Code atau Codex atau sistem AI apa pun, dan ia akan melihat file prompt.md.
00:03:16Prompt ini akan mengatakan, “hei, inilah yang ingin kita lakukan, inilah cara saya ingin melakukannya, ngomong-ngomong
00:03:21inilah kriteria yang akan menganggapnya selesai”. Dalam contoh ini kita ingin meningkatkan cakupan pada
00:03:28file autentikasi, yang berarti kita perlu membuat lebih banyak pengujian dan kita akan berhenti saat cakupan
00:03:33mencapai 75%. Jadi itulah tujuan akhirnya. Cara kerjanya adalah Anda memulai loop ini dan kemudian
00:03:41loop tersebut melihat prompt-nya lalu menyuntikkannya ke sesi AI. Sesi tersebut berjalan satu
00:03:48putaran; ia membaca prompt-nya dan juga membaca file state.md. File state pada dasarnya adalah
00:03:56ia lihat untuk mengatakan, “oke, jika kita punya tugas satu, dua, dan tiga, apa yang sudah kita lakukan sejauh ini dan apakah
00:04:03itu berhasil?” Katakanlah beberapa putaran pertama ia menyelesaikan tugas satu, lalu putaran berikutnya ia akan
00:04:10melihat file state dan berkata, “tugas dua belum selesai, tebak apa yang akan kita lakukan di
00:04:14sesi ini atau kita akan melakukan sesi dua”. Mungkin itu tidak berhasil di putaran pertama, ia berkata
00:04:18“ini yang saya coba selanjutnya”, dan seterusnya, sampai semua tugas selesai. Jadi setelah agen itu
00:04:25menjalankan gilirannya, ia memperbarui file, putaran berakhir, dan loop berlanjut. Jadi Anda mendapatkan semacam
00:04:30loop berkelanjutan di mana ia terus-menerus memeriksa beberapa file berbeda untuk melihat apa yang sudah dilakukan,
00:04:35apa yang perlu dilakukan, apa kondisi akhirnya, dan akhirnya setelah mencapai kriteria penyelesaian,
00:04:41ia berkata, “hei, kita sudah selesai”. Semuanya otonom, itulah ide dari loop Ralph. Sekarang jika Anda ingin loop Ralph
00:04:48melakukan lebih banyak hal, diperlukan scaffolding tambahan, hal-hal seperti penagihan,
00:04:53apa yang Anda lakukan, apakah ada penggunaan token yang cerdas? Tidak tentu. Apa yang terjadi jika sistem mati,
00:04:58agennya macet, atau Anda menekan control C? Bagaimana ia tahu itu benar-benar selesai? Apakah ada
00:05:02pihak ketiga bawaan yang memverifikasi semuanya sudah beres? Tidak juga, karena pada intinya ia hanya
00:05:08satu baris kode. Sekarang bandingkan dengan Goals. Goals secara garis besar bekerja dengan cara yang sama. Kita memintanya
00:05:15melakukan sesuatu, ia punya gambaran tentang cara melakukannya, dan ia terus memperbarui file internal yang mengatakan
00:05:19“inilah yang sudah saya lakukan, inilah yang masih perlu kita lakukan”, dan mencoba mencapai kondisi akhir itu. Jadi secara
00:05:23garis besar hampir sama. Namun ada beberapa perbedaan. Pertama-tama, kita punya dua
00:05:29file markdown yang pada dasarnya tidak terlihat oleh Anda: continuation dan budget limit. Apa
00:05:35fungsi kedua hal ini? Hal-hal ini memungkinkan Codex bertindak dengan cara berbeda jika Anda
00:05:40hampir melampaui batas penggunaan, yang mana ini penting. Jadi sebenarnya ada semacam
00:05:46penghentian yang mulus untuk cara sistem Anda menangani tugas dalam loop Goals dibandingkan loop Ralph. Loop Ralph,
00:05:52begitu anggaran habis, selesai. Codex tidak harus begitu. Ia akan memikirkan cara yang baik untuk
00:05:57membawa Anda ke titik yang bisa Anda kerjakan nanti. Kenyataannya adalah Codex menjalankan
00:06:03gilirannya dalam loop Goals atau loop Ralph, bagaimana pun Anda ingin memikirkannya. Dan saat mencapai akhir
00:06:08putaran, ia memiliki empat jalur yang bisa diambil: satu, jika masih ada pekerjaan dan anggaran masih cukup,
00:06:13kita akan terus lanjut. Dua, jika kita mendekati batas token, apa yang akan dilakukan adalah
00:06:19ia akan memasukkan file budget limit.md dan pada dasarnya mengakhiri putaran dengan mulus
00:06:25dan memberi Anda laporan akhir tentang apa yang sudah dilakukan dan apa yang perlu dilakukan selanjutnya jika Anda
00:06:29memperbarui limit Anda. Jika kita sudah menyelesaikan proyek, ia akan melakukan panggilan alat update goal.
00:06:34Ia akan mengubah statusnya, memastikan semua hasil kerja diaudit, dan jika
00:06:39semuanya oke, maka goal selesai. Terakhir, kita punya cara untuk menjeda goal,
00:06:45mengedit goal, menangani kegagalan. Jadi jika ada yang salah saat kita melakukan loop,
00:06:49ini tidak seperti loop Ralph tradisional di mana kita akan pasrah. Jadi sedikit lebih
00:06:54canggih dari loop Ralph, sangat mirip secara garis besar, dan kita tidak perlu melakukan
00:06:59orkestrasi tambahan. Seluruh hal ini harusnya terdengar familiar bagi Anda jika pernah bekerja dengan
00:07:05sesuatu seperti GSD atau GSD Superpowers. Semua alat ini adalah lapisan orkestrasi yang berada di atas Claude Code untuk
00:07:11melakukan apa yang kita lakukan dengan satu perintah slash di dalam Codex dengan Goals. Dan karena ini
00:07:18benar-benar hanya satu perintah slash, itu membuatnya sangat mudah dijalankan. Anda tidak perlu menonton
00:07:24demo 40 menit tentang semua seluk-beluk GSD, Anda cukup melakukan /goal dan Codex akan
00:07:30mulai bekerja. Dengan pemikiran itu, mari kita uji. Pertama-tama, kita
00:07:35akan menempatkannya dalam mode perencanaan karena kita bisa beralih dari mode perencanaan ke Goals dengan sangat mudah.
00:07:39Dan kita akan memintanya membuat game survival arcade top-down untuk kita, dan kita
00:07:44akan memintanya membuat semua asetnya sendiri. Hal keren tentang Codex dibandingkan sesuatu seperti
00:07:49Claude Code misalnya adalah karena ini produk OpenAI, kita punya akses ke gambar GPT
00:07:56juga. Jadi ia akan membuat semua asetnya sendiri untuk game ini. Saya ingin sprite drone pemain,
00:08:01saya ingin tiga musuh, saya ingin makhluk bos, inti energi, ranjau bahaya, latar belakang, lencana ke UI,
00:08:07aset dekorasi. Jadi saya memintanya membuat cukup banyak. Oke, jadi promptnya relatif canggih
00:08:15karena ini bisa berlangsung lama, saya seharusnya sudah menunjukkan tangkapan layarnya,
00:08:18orang yang bilang, “saya menjalankannya selama 50 jam berturut-turut”. Entah apakah 50 jam
00:08:23berturut-turut benar-benar cara terbaik, tapi idenya adalah kita punya gagasan awal, kita masuk ke mode rencana,
00:08:31kita mendapatkan sesuatu yang sangat ketat. Dan yang sangat penting dengan sesuatu seperti ini adalah Anda
00:08:36perlu sangat spesifik tentang hasil akhirnya. Karena jika kita tidak punya
00:08:43hasil akhir yang sangat spesifik untuk dibidik sebagai serangkaian hal yang dapat diukur yang harus dipenuhi agar
00:08:50ia menyelesaikan loop, Anda akan mendapatkan hasil yang biasa-biasa saja atau mungkin
00:08:55setengah matang. Jadi saya sangat menyarankan Anda melalui mode rencana dan meluangkan waktu untuk benar-benar menyusun
00:09:02rencana tersebut dan jangan cuma bilang “/goal buatkan saya produk SaaS yang menghasilkan satu miliar dolar”. Dan inilah
00:09:07rencana untuk game kita. Dan terkait verifikasi, inilah yang akan ia
00:09:12lihat. Inilah yang sebenarnya akan ia uji sebelum ia mengatakan bahwa semuanya selesai. Jelas ia harus
00:09:17menjalankan npm run build dan memperbaiki semua error, memulai server dev dan memberikan URL lokal, menambahkan dan
00:09:24menjalankan skrip verifikasi Playwright otomatis yang membuka aplikasi, mengonfirmasi semuanya dimuat,
00:09:29memeriksa kanvas tidak kosong, mensimulasikan gerakan keyboard, mensimulasikan kejadian koleksi, memaksa kerusakan,
00:09:34mengonfirmasi perubahan kesehatan, kondisi menang bos, UI, dan seterusnya. Jadi inilah yang benar-benar Anda ingin
00:09:39perhatikan. Jika Anda melihat verifikasinya dan berkata, “hei, jika semua itu
00:09:44selesai saya akan senang”, maka Anda siap untuk melangkah maju. Sekarang saat ia mengatakan implementasikan rencana,
00:09:49Anda akan ingin pergi ke - tidak, saya akan memberitahu Anda apa yang harus dilakukan. Anda bisa lakukan /goal, gunakan goal
00:09:54untuk mengimplementasikan rencana ini dan kita akan mengirimkannya. Dan tepat di atas sini apa yang Anda lihat? Anda punya
00:10:02lencana kecil ini yang bertuliskan “goal”. Jadi sekarang saya tahu kita sedang menjalankan goal dan itu tertulis di sini juga.
00:10:09Seperti yang saya katakan sebelumnya, saat Anda melakukan /goal, Anda tidak akan mendapatkan perintah apa pun tetapi ini
00:10:12berfungsi. Saya rasa itu hanya semacam bug UI karena ini adalah fitur eksperimental. Jadi tertulis ini
00:10:17masih dalam mode rencana. Jadi kita akan batalkan goal itu. Gunakan goal untuk mengimplementasikan rencana ini. Sedikit kurang
00:10:28rapi di beberapa bagian tetapi mari kita lihat apa yang sebenarnya ia lakukan untuk kita. Idenya adalah sekarang saya benar-benar lepas tangan,
00:10:34ia akan menjalankan loop Ralph kecilnya, hal goal kecilnya, dan pada akhirnya kita
00:10:39akan mendapatkan produk akhir. Ini sudah berjalan sekitar 12 menit sekarang dan Anda bisa melihat ia
00:10:43sudah dalam proses pembuatan semua aset yang berbeda menggunakan model pembuat gambar gen 2
00:10:49yang mana cukup keren. Dan lagi, hal menyenangkan lainnya adalah saat Anda menggunakan aplikasi desktop dibandingkan
00:10:54sekadar mengetik di terminal mentah, semua ini disajikan kepada Anda secara langsung yang mana sangat bagus.
00:11:00Saya pribadi sangat terkesan dengan aplikasi desktop Codex. Bukan berarti saya tidak
00:11:06lagi menyukai Claude Code. Saya rasa saya menggunakan kedua alat ini secara bergantian. Anda bisa menonton video terakhir saya
00:11:11untuk seluruh pendapat saya tentang itu di mana saya pikir gagasan bahwa kita perlu memilih di antara dua alat ini agak konyol.
00:11:15Kenapa kita tidak menggunakan keduanya dan bahkan keduanya secara bersamaan? Namun dengan Claude Code saya
00:11:20benar-benar murni terminal, tetapi dengan Codex saya sangat menikmati aplikasi desktopnya, dan sebagian dari itu mungkin
00:11:26karena itu perubahan suasana yang menyenangkan terkadang daripada selalu berada di terminal sepanjang
00:11:32waktu. Sejauh ini saya sangat menyukainya. Jadi setelah sekitar 30 menit ia bilang sudah selesai dan sebenarnya ia
00:11:38menyelesaikannya lebih cepat dari yang saya duga. Jadi mari kita lihat bagaimana hasilnya pada percobaan pertama dan karena
00:11:44ia melakukannya begitu cepat saya mungkin akan memintanya melakukan beberapa hal di akhir. Dikatakan ia mengimplementasikan
00:11:49Rift Salvage. Server dev lokal berjalan di sini. Ini game kanvas dengan kontrol keyboard sentuh, memunculkan
00:11:56musuh, ranjau, skor, perisai, bos, menang, kalah, jeda, dan mulai ulang. 11 aset bitmap buatan
00:12:03gambar dengan potongan alfa, verifikasi Playwright otomatis, lalu menunjukkan kepada kita semua hal yang ia bangun
00:12:10yang mana cukup keren. Mari kita lihat apakah ini berfungsi dan apa yang bisa kita tambahkan untuk sedikit mendorongnya
00:12:17lebih jauh lagi. Oh mari kita coba di browser sungguhan. Oke, jadi saya punya layar pemuatan
00:12:27dan kontrasnya agak rendah, agak sulit dilihat, mungkin agak sulit bagi Anda untuk melihatnya tetapi
00:12:32saya punya kapal ruang angkasa kecil saya. Itu ranjau, saya rasa saya seharusnya mengambil hal-hal ini
00:12:39saat ia memunculkan musuh yang mengejar saya. Jadi ini berfungsi, terlihat cukup keren, saya rasa kita
00:12:49mungkin bisa memperbaiki grafisnya sedikit tetapi cukup rapi bahwa semua yang ada di sini dibuat
00:12:56sebagai gambar unik. Saya rasa apa yang bisa kita lakukan adalah kita bisa menambahkan - pertama-tama saya ingin melihat seperti apa
00:13:00pertarungan bosnya jika kita bisa mempercepatnya dan juga menambahkan semacam
00:13:04sistem penembakan baik dengan laser atau sesuatu yang keren seperti itu. Jadi mari kita lakukan
00:13:11itu. Mari kita minta ia melakukannya sebelum kita menunggu lebih lama lagi. Jadi saya akan memasukkannya ke mode bermain
00:13:15dan melihat apakah kita bisa membuatnya bekerja lebih keras lagi. Oke, saya rasa itu tadi percobaan pertama yang cukup bagus,
00:13:19semuanya berfungsi tetapi saya ingin membuatnya sedikit lebih rumit. Bisakah kita tambahkan semacam
00:13:24sistem tempur baik itu seperti laser yang menembak ke musuh yang berbeda dan mereka
00:13:31menembak balik ke kita. Bisakah kita juga membuat fase bos datang sedikit lebih cepat atau menyertakan semacam
00:13:37tombol yang bisa saya tekan untuk memulai fase bos? Bisakah kita juga mengubah kontrasnya sedikit
00:13:42karena saat ini semuanya menyatu dengan latar belakang dan jika Anda punya ide lain
00:13:49untuk sekadar membuat ini sedikit lebih rumit dan mendorong Anda ke batas kemampuan Anda,
00:13:53tunjukkan ide-ide itu kepada saya. Jadi inilah rencana yang ia hasilkan. Sekarang satu hal yang perlu Anda ketahui saat
00:13:58menggunakan sistem Goals, setiap eksekusi goal terikat pada utas atau sesi yang sedang Anda gunakan pada saat
00:14:07itu. Kita sudah berada di chat yang sama yang berarti kita berada di utas goal yang sama. Jika saya ingin melakukannya
00:14:12lagi, saya ingin melakukan eksekusi goal kedua pada proyek yang sama, kita bisa melakukannya tetapi kita harus melakukannya di
00:14:18utas kedua atau chat kedua, seperti membuka terminal lain. Jadi yang akan saya lakukan adalah menyalin
00:14:24rencana ini, saya akan membuka chat lain dan kita akan melakukan /goal dan kita akan
00:14:33menempelkannya di sana. Jadi setelah 15 menit kita menyelesaikan eksekusi goal kedua. Jadi ia mengimplementasikan
00:14:40peningkatan tempur. Mari kita lihat seperti apa game ini sekarang. Jadi inilah layar pemuatannya lagi, sangat mirip
00:14:44dengan apa yang kita lihat pertama kali kecuali ia menambahkan beberapa semacam widget di atas sini. Jadi kita punya target
00:14:50kombo serta sinyal bos sekarang. Jadi jika kita meluncurkannya, saya bisa langsung menembakkan
00:14:56senjata saya, musuh-musuhnya bisa menembak balik dan mereka punya semacam poin nyawa. Saya juga bisa
00:15:01menekan sinyal bos. Jadi itulah bosnya. Terlihat sangat keren sebenarnya. Saya rasa hal paling keren
00:15:09tentang game ini dan apa yang ia lakukan adalah semua aset uniknya. Fakta bahwa semuanya adalah
00:15:13aset asli dan ia melakukan semua ini menggunakan gambar gen 2 yang menurut saya
00:15:19keren sekali. Dan saya tahu jelas ini hanya memakan waktu sekitar 45 menit total di antara dua eksekusi dan kita melihat
00:15:24beberapa orang melakukan eksekusi selama tiga hari dari tangkapan layar mereka, tetapi saya rasa bagian terbaik
00:15:30dari ini adalah betapa sederhananya menjalankan goal tersebut. Anda cukup memberinya sebuah goal
00:15:36dan ia akan bekerja keras asalkan Anda punya kriteria yang pasti. Apakah kita menang? Saya tidak tahu apakah kita
00:15:43mati atau tidak. Tetapi seperti yang saya katakan, hal keren tentang ini dan tentang Goals secara umum adalah
00:15:48ide bahwa jika Anda punya tujuan utama yang jelas dan kriteria yang jelas tentang seperti apa keberhasilan itu,
00:15:54Anda bisa mendapatkan banyak manfaat dari ini dan ini bisa berjalan selamanya. Jadi alih-alih harus mengatur
00:15:59loop Ralph sendiri dan scaffolding sendiri atau menggunakan sesuatu di luar sebagai lapisan
00:16:05orkestrasi seperti GSD atau Superpowers, ini sudah tertanam untuk Anda. Dan seperti yang kita lakukan di sini,
00:16:10Anda bisa menambahkan banyak hal rapi yang lebih sulit diimplementasikan, tetapi Anda bisa di dalam Claude Code seperti
00:16:15jika kita menggunakan Claude Code untuk ini kita pasti bisa melakukannya, kita hanya perlu
00:16:18mengimplementasikan sesuatu seperti Higgsfield CLI atau Higgsfield MCP untuk melakukan semua pembuatan gambar itu
00:16:24untuk kita daripada ini menjadi satu sistem holistik yang terintegrasi. Jadi saya harap Anda bisa
00:16:31mendapatkan sesuatu dari video ini dan saya sangat menyarankan Anda mencoba Codex. Saya sangat menikmati
00:16:35aplikasi desktopnya seperti yang saya bicarakan sebelumnya. Saya rasa fitur Goals ini benar-benar keren dan lagi,
00:16:40kita juga bisa melakukan ini bersamaan dengan Claude Code. Kita bisa membuat rencananya di
00:16:44Claude Code lalu memasukkannya ke Codex untuk Goals, meminta Claude Code melihat pekerjaan apa yang
00:16:49telah dilakukan dan melakukan komunikasi timbal balik, yang menurut saya di situlah Anda mendapatkan nilai maksimal.
00:16:53Ini seperti keseluruhan yang lebih besar daripada jumlah bagian-bagiannya. Jadi seperti biasa, beri tahu saya
00:17:02apa pendapat Anda, pastikan untuk memeriksa Chase AI Plus, ada tautan untuk itu di bawah di
00:17:07komentar yang disematkan. Saya juga mengadakan webinar dalam beberapa hari ke depan, akan ada tautannya juga di sana. Sampai jumpa.
00:17:12Dan selain itu, sampai bertemu lagi.