▲ Sesi Komunitas: Plugin Vercel untuk Claude Code

VVercel
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00Halo, semuanya. Selamat datang di Vercel Community Livestream minggu ini. Saya Amy, dan ini
00:00:26Jacob. Kami adalah tim komunitas di Vercel. Sekadar pengingat, kami menyiarkan
00:00:31ini di X dan YouTube, tetapi jika Anda ingin memastikan kami melihat pertanyaan dan komentar Anda
00:00:36di obrolan, silakan ke komunitas dan masuk. Alamatnya di [community.vercel.com/live](https://community.vercel.com/live) dan Anda akan
00:00:43melihatnya sebagai acara pertama.
00:00:44Ya, di akhir sesi, kita akan punya sedikit waktu untuk tanya jawab. Jika Anda
00:00:49ingin berpartisipasi dalam obrolan sambil menonton sesi ini, ingatlah untuk mengikuti
00:00:55kode etik kami dan ya, Anda bisa mengajukan pertanyaan apa pun di sepanjang acara dan
00:00:59kami akan memastikannya ditanyakan. Saya ingin memperkenalkan tamu kita. Kita kedatangan Jon Lindquist di sini untuk menunjukkan
00:01:05kepada kita plugin Vercel baru untuk Claude Code. Hai, Jon.
00:01:09Hai, Jacob. Hai, Amy. Terima kasih sudah mengundang saya. Baiklah. Mari kita langsung mulai berbagi
00:01:16layar saya sekarang agar kita bisa menunjukkan apa yang terjadi di sini. Jadi, untuk beberapa waktu sekarang, "skills" telah
00:01:23menjadi tren dan semua orang membicarakan skill mana yang harus digunakan untuk meningkatkan proyek Anda
00:01:29dan untuk memungkinkan agen Anda melakukan hal-hal yang biasanya tidak bisa mereka lakukan. Sekarang, muncul dari
00:01:37skills, evolusi berikutnya dari itu adalah apa yang kami sebut sebagai plugin. Dan ini adalah sesuatu
00:01:43yang masih dalam tahap awal. Belum banyak plugin di luar sana dan orang-orang masih
00:01:48mengeksplorasi bagaimana cara membangunnya. Saya membangun draf pertama plugin Vercel dan apa
00:01:56yang ingin saya bicarakan adalah mengapa membangun plugin, kapan Anda harus membangun plugin, mengapa plugin
00:02:03alih-alih skills dan bagaimana mereka saling melengkapi dan segala macam pertanyaan semacam itu. Jadi
00:02:09jika Anda memiliki pertanyaan tentang apa itu, saya akan membicarakannya, tetapi apa yang bisa dimungkinkan oleh sebuah plugin
00:02:16untuk Anda, apakah Anda harus membangunnya secara internal atau pribadi, saya ingin mendiskusikan itu
00:02:22dan kita akan membicarakannya selama sesi hari ini. Jadi pertama-tama, plugin awalnya
00:02:32dimulai oleh Claude Code dan Gemini juga, tetapi mengambil pendekatan yang sangat berbeda. Dan
00:02:39standardisasi plugin adalah upaya yang sedang berlangsung. Dan itu adalah sesuatu yang kami harap akan ada,
00:02:44saya bisa membicarakannya lebih lanjut segera di mana satu plugin dapat bekerja di semua editor. Jadi
00:02:49saat ini kita sedang membicarakan Claude Code dan dukungan Cursor juga. CodeX akan segera hadir,
00:02:54mungkin hari ini dan banyak yang lainnya juga. Ada standar plugin
00:03:01yang sedang dikerjakan. Jadi kita bisa mengharapkan plugin menjadi sesuatu yang bisa Anda kemas dan bagikan
00:03:08di perangkat apa pun yang Anda gunakan. Karena itu, Anda mungkin sudah akrab dengan skills
00:03:15karena itu adalah berkas markdown, yang dapat dimuat oleh agen Anda untuk memberinya instruksi tambahan.
00:03:23Jika satu, Anda memanggilnya secara manual, seperti Anda melakukan garis miring dan memanggil skill Anda atau agen
00:03:29mendeteksi berdasarkan deskripsi bahwa skill tersebut harus dimuat. Jadi itu sangat bergantung pada panggilan pengguna atau
00:03:36keputusan agen berdasarkan kondisi dalam deskripsi. Sekarang, peningkatan level dari sebuah plugin
00:03:44adalah mereka memiliki sesuatu yang disebut "hooks". Dan jika Anda membayangkan sebuah plugin, atau Anda membayangkan sebuah sesi
00:03:53yang Anda lakukan dengan Claude Code atau dengan alat bantu agen mana pun, Anda bisa menganggap mereka memiliki siklus hidup.
00:03:59Jadi sekarang saya berada di direktori plugin Vercel, jika saya menjalankan Claude Code di sini, saya akan
00:04:07bertanya kepadanya apa saja hooks yang digunakannya. Dan ini akan mencantumkan hooks tersebut
00:04:18seolah-olah mendefinisikan siklus hidup. Dan siklus hidup adalah saat sesi dimulai, saat alat bantu
00:04:27seperti sebelum alat bantu dipanggil, setelah dipanggil, saat pengguna memasukkan teks ke dalamnya, dan
00:04:33saat sesi berakhir. Ada banyak hooks lainnya di sana. Tapi untuk tujuan kita
00:04:39dalam plugin Vercel, ini adalah yang saat ini kami gunakan berdasarkan tujuan awal kami.
00:04:44Jadi untuk memperjelas, tujuan awal dari plugin Vercel adalah untuk membantu orang-orang meluncurkan
00:04:51agen di Vercel. Jadi idenya adalah bagaimana kita akan membuat agen sadar akan ekosistem Vercel,
00:05:02seperti semua yang ada di platform yang berkaitan dengan AI SDK, gateway.
00:05:11Dan alur kerja kami hampir semuanya ada di sini. Jadi segala hal seputar alur kerja, dan pada dasarnya, Vercel CLI telah banyak diperbarui.
00:05:19Dan semua hal seputar agent SDK, atau maaf, seputar pengiriman
00:05:26agen di Vercel. Itu semua adalah hal-hal yang telah dirilis dalam beberapa hari, minggu,
00:05:33atau bulan terakhir. Dan semua alat bantu agen ini seperti Claude Code, mereka memiliki batas pengetahuan
00:05:39mungkin dari sekitar enam bulan hingga setahun yang lalu. Jadi itu tergantung pada modelnya, tergantung pada
00:05:46banyak variabel. Namun semuanya adalah hal-hal yang tidak diketahui oleh semua agen ini
00:05:52tentang semua hal terbaru dan luar biasa yang kami luncurkan. Jadi tujuan dari plugin Vercel
00:05:57adalah untuk menghentikan agen menulis kode yang usang, praktik yang usang, dan membawanya
00:06:06ke tingkat yang benar-benar terbaru di platform Vercel. Jadi itu adalah keuntungan besar di sana karena
00:06:11model memang cerdas, tetapi mereka tidak mengetahui semua hal ini.
00:06:19Dan alih-alih meminta mereka melakukan riset setiap saat, atau meminta, memiliki kumpulan besar
00:06:25skills untuk setiap hal, jika kita bisa menemukan cara untuk memaksa
00:06:32sebuah agen memuat hal-hal terbaik tentang platform Vercel, maka itu adalah kemenangan besar bagi
00:06:38kami. Jadi jika Anda melihat hooks ini dalam siklus hidup seorang agen, dan sekali lagi, ada banyak sekali
00:06:45hooks lain yang dapat kita manfaatkan di masa depan atau yang dapat Anda manfaatkan. Tetapi yang utama
00:06:49untuk saat ini adalah session start. Dan kita menggunakannya dalam beberapa cara berbeda. Pre-tool use, user prompt
00:06:56submit, post-tool use, dan session end. Jadi session start dan session end adalah, Anda tahu, awal
00:07:03dan akhir percakapan dengan seorang agen. Dan Anda bisa menganggap berkas agent.md atau claude.md Anda
00:07:12biasanya adalah hal yang Anda lakukan saat session start. Jadi apa yang bisa kita lakukan saat session start untuk
00:07:19platform Vercel. Dan yang bisa kita lakukan adalah memuat berkas platform Vercel, yang berarti
00:07:27jika kita melihat, saya akan katakan deskripsikan vercel.md. Berkas ini adalah sesuatu yang bisa kita sertakan
00:07:40saat session start bersama dengan claude.md. Pada dasarnya, Anda bisa memiliki plugin yang jika Anda hanya
00:07:48ingin ia berbagi berkas claude.md dan memberi seseorang cara mudah untuk
00:07:52memasangnya. Anda bisa membangun plugin yang fungsinya hanya untuk menyuntikkan ini adalah grafik pengetahuan
00:07:59dari Vercel. Dan ini adalah sesuatu yang terus-menerus kami sempurnakan. Kami sedang mencari
00:08:04cara untuk mengompresnya dan membuatnya sekecil mungkin tetapi tetap memiliki performa yang baik
00:08:08dan keseimbangan tentang apa yang harus ada di dalamnya dan apa yang tidak. Sangat sulit
00:08:15untuk menjalankan evaluasi terhadap semua model dan semua alat bantu yang berbeda. Namun kami perlahan
00:08:21menemukan hal-hal tersebut. Jadi apa yang ada di dalamnya pada dasarnya adalah hubungan dalam ekosistem Vercel
00:08:28seputar AI, kapan harus menggunakan produk mana, kapan harus memanggil hal-hal tertentu
00:08:35seperti pemahaman terstruktur tentang seluruh ekosistem Vercel. Jadi konsep tentang, saya suka
00:08:44bagaimana ini disebut sebagai daftar isi. Ini seperti awal dari sebuah buku saat Anda memulai percakapan.
00:08:50Dan cara kami menyusun ini dan memikirkannya adalah jika Anda berpikir tentang bagaimana saya berbicara
00:08:56dengan agen tentang berbagai hal, saya memiliki kosakata tertentu, mereka memiliki kosakata tertentu.
00:09:02Dan jika Anda bisa memberinya glosarium istilah, memetakan hal tersebut ke dokumentasi, memetakan hal tersebut ke
00:09:07skills, memetakan hal-hal yang harus dimuatnya. Begitu Anda mencapai hal-hal tersebut, Anda bisa
00:09:12berpikir tentang apa hal-hal yang akan saya katakan dan apa hal-hal yang harus dimuat
00:09:19dan dipanggil oleh agen dan mencoba mengembangkan semacam peta pikiran itu di awal sehingga saya bisa
00:09:24berbicara secara alami dengannya dan tidak perlu khawatir tentang pembicaraan seperti, bahkan menyebut
00:09:30AI SDK sama sekali. Dan bahkan menyebutkan fitur apa pun sama sekali. Dan jika saya bisa menemukan
00:09:38cara untuk hanya mengatakan "buatkan saya aplikasi ini dan luncurkan". Dan kemudian ia menangani semuanya di
00:09:45dalam plugin. Maaf, menangani semuanya di dalam plugin sehingga ia mendapatkan sebuah aplikasi yang indah
00:09:52diluncurkan di Vercel dan mereka bisa melakukan iterasi dari sana. Mirip seperti bagaimana v0 dan
00:09:57beberapa proyek lainnya bekerja untuk kami. Jika kami bisa membuatnya agar Anda bisa mendapatkan
00:10:02pengalaman yang luar biasa, tetapi Anda tidak perlu memikirkan ekosistemnya. Dan itu adalah kemenangan besar. Apakah
00:10:09itu masuk akal? Jacob, Amy, ada pertanyaan awal tentang itu atau apa pun di obrolan?
00:10:16Jacob, saya rasa Anda punya pertanyaan untuk pertemuan Anda. Maaf, maaf sekali. Saya punya pertanyaan
00:10:24untukmu, John. Ya. Karena plugin ini beroperasi sebagai daftar isi, apakah itu sebabnya ia tidak
00:10:30perlu, mengapa plugin tidak perlu terus diperbarui setiap kali ada dokumentasi baru yang keluar?
00:10:38Karena pada dasarnya ia adalah kumpulan URL yang kemudian bisa diikuti oleh agen untuk menemukan
00:10:43dokumentasi terbaru? Atau apakah plugin memiliki semacam sistem pembaruan instan? Bagaimana
00:10:49pendekatan itu bekerja? Ya. Jadi pada dasarnya, jika Anda memikirkan grafik pengetahuan di awal,
00:10:58banyak hal yang bisa dilakukannya adalah hanya menunjuk ke dokumentasi terbaru. Jadi jika Anda memikirkan
00:11:07ini adalah pertanyaan yang sering muncul terkait skills dan bagaimana kami mengelola skills per perpustakaan.
00:11:14Dan jika Anda memiliki seseorang yang menggunakan versi lima dari SDK apa pun dan orang lain di versi
00:11:18enam SDK tersebut, dan Anda mencoba memengaruhi mereka dengan skills dari versi berbeda yang
00:11:22bertentangan, bagaimana Anda melakukannya? Dan banyak dari itu seperti, berdasarkan apa yang seseorang
00:11:31pasang, Anda bisa memeriksa berkas package.json mereka, Anda bisa memeriksa versinya. Dan berdasarkan
00:11:36itu muncullah cara cerdas untuk melihat URL dokumentasi mana yang harus dilihat dan
00:11:44skills mana yang harus dimuat dan segala hal semacam itu. Dan itu adalah bagian lain dari fase
00:11:51preload di mana session start hanya seperti memeriksa proyek orang tersebut.
00:11:58Dan sekali lagi, ini semua bersifat lokal. Ia hanya melihat proyek, melihat perpustakaan apa yang
00:12:02Anda gunakan? Pengaturan apa yang Anda gunakan sehingga ia tahu untuk mengarahkan Anda ke arah yang benar.
00:12:07Salah satu kesalahan paling umum adalah seperti mencoba menggunakan, Anda tahu, generate object pada versi terbaru
00:12:12sebuah SDK padahal Anda tahu API tersebut telah berubah. Jadi, ya, plugin
00:12:21menangani hal itu, Anda tidak perlu khawatir jika menggunakan ini pada proyek lama
00:12:27atau jika Anda menggunakannya pada proyek terbaru yang benar-benar baru, plugin tersebut harus
00:12:32bisa menanganinya. Anda tidak perlu khawatir tentang nomor versi, Anda tidak
00:12:34perlu khawatir tentang nama paket, Anda tidak perlu khawatir tentang apa pun karena biarkan saja
00:12:41Vercel yang melakukannya untuk Anda. Benar. Dan kami terus mengerjakan cara, kami punya
00:12:49banyak ide lain tentang cara melakukan ini dengan lebih baik. Dan plugin ini akan terus diperbarui dan mendorong
00:12:54ini ke depan. Jadi, ada pertanyaan lain?
00:12:58Ya, jadi berapa total lingkup dari plugin ini? Apakah ini hanya menangani layanan Vercel?
00:13:04Apa pun yang mungkin saya temukan di dasbor? Atau apakah ini juga seperti perpustakaan sumber terbuka
00:13:11yang kami dukung seperti Next.js, AI SDK, workflows, dan sebagainya?
00:13:16Ya, jadi lingkup awalnya, apa yang kami putuskan pada awalnya adalah untuk mencakup sebanyak mungkin,
00:13:25dan seperti memiliki setiap perpustakaan, semuanya di platform, seperti semuanya ada di sana,
00:13:32melihat apa yang paling sering digunakan, seperti secara internal, kami meminta semua orang menyalakan telemetri mereka, dan
00:13:36Anda bisa memilih untuk membagikan telemetri. Dan kami akan menemukan skills mana yang sebenarnya sedang
00:13:40digunakan dan mana yang tidak. Dengan begitu kita bisa menghapus beberapa hal di sana yang mungkin
00:13:48tidak terlalu kita butuhkan informasinya atau menambahkan lebih banyak berdasarkan apa yang tampaknya paling banyak digunakan, jelas
00:13:53Next.js, AI SDK, dan Anda tahu, hal-hal populer yang paling banyak diunduh harus memiliki informasi paling banyak.
00:13:59Jadi itu adalah sebuah keseimbangan di awal, di mana kami sengaja melangkah cukup besar dengan
00:14:08rilis awal, dan kami akan memangkasnya menjadi sesuatu yang jauh lebih ramping, saya rasa, untuk ke depannya.
00:14:15Jadi, ya.
00:14:16Ya, itu sangat masuk akal. Terima kasih. Ya. Baiklah. Jadi, jika Anda
00:14:24membangun sebuah plugin, dan salah satu alasan saya membicarakan hal ini dalam istilah umum yang longgar
00:14:29adalah karena saya sangat menyukai pengembangan yang digerakkan oleh agen (agentic driven development). Dan daripada menunjukkan
00:14:36kepada Anda persis bagaimana semuanya bekerja, saya pikir jauh lebih penting untuk belajar bagaimana membicarakan
00:14:40tentang hal itu, dan mengambil beberapa terminologi darinya. Jadi Anda bisa meminta asisten AI Anda
00:14:45untuk melakukan hal serupa. Jika Anda memberi tahu Claude Code untuk membangun plugin untuk Claude Code,
00:14:52dan Anda memberinya dokumentasinya, ia bisa melakukannya. Jadi jauh lebih penting
00:14:58untuk mendiskusikan konsep dan ide seputar ini daripada menggali kodenya terlalu dalam. Dengan
00:15:05demikian, session start adalah tempat yang bagus untuk menyuntikkan daftar isi
00:15:11platform seperti ini adalah semua hal yang sudah usang berdasarkan hal-hal yang
00:15:19penting bagi saya yang sudah usang, berdasarkan model pada umumnya. Jadi itulah
00:15:24yang membawa segalanya ke tingkat seperti inilah tampilan Vercel saat ini. Dan meskipun
00:15:31itu adalah satu-satunya hal yang terjadi di plugin, ia tahu bahwa ia harus pergi dan
00:15:37memeriksa berbagai hal ke depannya. Tetapi apa yang juga bisa kita lakukan dan ini hanya sekadar
00:15:44catatan sampingan, alasan Anda melakukannya seperti setiap sesi di Claude Code memiliki ID uniknya sendiri, yang memungkinkan
00:15:52Anda untuk memastikan saat sesi ini berlangsung, ia memiliki anggaran skills,
00:16:01dan memiliki skills yang sudah dimuat dan hal-hal semacam itu. Jadi kita bisa
00:16:07menaruh, Anda bisa menulis hal-hal ke lingkungan sesi, atau ke tempat penyimpanan sesi
00:16:15di mana sepanjang sesi itu, saat Anda menjalani sesi tersebut, kami memastikan kami tidak
00:16:20memuat hal-hal yang sudah pernah dimuat, atau seperti menduplikasi upaya apa pun, karena kami bisa tetap
00:16:26melacak hal-hal yang sudah terjadi. Jadi itu adalah hal hebat lainnya. Bagian hebat tentang
00:16:30sesi ini adalah ia memberi Anda kesempatan untuk mengambil ID sesi sehingga melalui
00:16:35hooks apa pun di masa depan, apa pun yang dijalankan di dalam sesi, Anda memiliki
00:16:40sebuah ID untuk dikaitkan dan menyimpan hal-hal tentang sesi untuk plugin individu Anda.
00:16:47Claude Code juga melakukan itu jika Anda melihat di direktori .claude mereka dengan proyek yang
00:16:50bisa Anda lihat sesi dan hal-hal di dalamnya. Jadi Anda mengambil konsep yang sama untuk plugin Anda sendiri
00:16:56dan alat bantu Anda sendiri. Baiklah, dengan semua itu, apa itu pre-tool use dan kita akan bicara
00:17:05tentang pre-tool dan post-tool pada saat yang sama, apa yang diberikan oleh hal ini adalah, mereka memberi Anda kesempatan
00:17:11untuk melihat perubahan berkas. Jadi di pre-tool, Anda bisa mendapatkan konten dari berkas seperti yang akan
00:17:20berubah. Dan ini seputar membaca berkas, menulis berkas, atau maaf, membaca berkas,
00:17:29mengedit berkas, membuat berkas. Dan pre-tool juga mencakup banyak alat bantu lainnya yang digunakan,
00:17:34seperti menjalankan berbagai hal di bash. Jadi Anda mendapatkan kesempatan seperti, sebelum
00:17:40hal ini terjadi, apakah ada hal yang ingin saya lakukan? Dan katakanlah, sebagai contoh, jika kita melihat seseorang
00:17:47berjalan, mencoba melakukan perintah Vercel CLI tertentu, dan kita menyadari bahwa ada cara
00:17:55yang lebih baik untuk melakukannya sekarang di Vercel CLI, seperti Vercel CLI sekarang memiliki opsi API di mana
00:18:00kita bisa melakukan kueri yang jauh lebih canggih. Dan Vercel CLI telah diperbarui. Jika Anda belum
00:18:05memperbaruinya baru-baru ini, ia memiliki banyak fitur baru yang hebat. Kita bisa memberikan petunjuk pada hal-hal tersebut dan
00:18:11mengatakan bahwa Anda sedang mencoba melakukan ini atau bahkan memeriksa seperti, apakah Vercel CLI Anda sudah usang? Akan
00:18:17sangat bagus untuk memperbaruinya. Jadi Anda punya lebih banyak opsi di sini. Jadi itu memberi Anda kesempatan untuk seperti,
00:18:21memeriksa apakah ia akan melakukan semacam panggilan alat bantu, baik itu panggilan CLI.
00:18:27Ini sangat penting untuk sandbox CLI, untuk workflow CLI, untuk semua CLI
00:18:34baru yang belum diketahui oleh model sama sekali, karena mereka baru saja dirilis setelah
00:18:39batas pengetahuan untuk memastikan bahwa mereka melakukan berbagai hal dengan benar. Jadi itulah mengapa untuk
00:18:47panggilan alat bantu, seperti panggilan bash, ini untuk pengeditan berkas, ini menjadi sangat menarik dengan pengeditan
00:18:52berkas. Sesuatu yang sedang kami jelajahi lebih lanjut adalah membandingkan berkas (diffing) seperti berkas ini dulu terlihat seperti ini,
00:18:59agen mencoba membuatnya terlihat seperti ini. Apakah itu sudah benar, berdasarkan perpustakaan kita,
00:19:06apakah itu perubahan yang benar? Atau apakah ada sesuatu yang aneh di sana? Dan itu masuk ke dalam, saya akan
00:19:11bersandar kembali pada contoh katakanlah Anda memiliki v6 SDK yang terpasang dan ia mencoba menggunakan generate
00:19:18object sebagai API, yang merupakan hal umum. Dan jika Anda melihat itu pada saat itu, seperti saya melihat
00:19:25Anda mencoba menggunakan generate object, mari kita berhenti dan mengingatkan mereka tentang seperti apa AI SDK sebenarnya
00:19:32sehingga sebelum Anda sampai ke tahap pengujian atau penerapan atau apa pun, Anda sudah menangkapnya
00:19:36pada momen yang tepat saat agen mencoba mengubah berkas tersebut. Dan ini adalah salah satu
00:19:46hal di mana jika Anda mencoba mengandalkan sebuah skill di mana skill adalah petunjuk tekstual,
00:19:54jika Anda pernah mencoba menulis ke dalam claude.md atau ke dalam sebuah skill, seperti jangan pernah memasukkan berkas apa pun
00:20:03atau jangan pernah push tanpa, jangan pernah push kecuali saya berada di sebuah branch atau semacamnya. Anda mungkin
00:20:13pernah mengalaminya seperti hal-hal itu tidak selalu melindungi Anda. Pre-tool use memberi
00:20:21Anda kesempatan untuk benar-benar menghentikan hal-hal itu terjadi secara terprogram
00:20:28dan teknis. Dan Anda bisa memberinya instruksi yang berbeda dan contoh cara yang berbeda
00:20:32untuk melakukannya. Jadi itulah perbedaan besar di sini antara skills, antara
00:20:41berkas claude.md atau agent.md Anda, yaitu bahwa Anda sebenarnya bisa mengontrol apa yang berubah dan
00:20:47jika, atau apa yang sedang terjadi. Dan jika Anda ingin itu terjadi atau apa yang berubah, jika
00:20:51Anda ingin itu berubah, itulah poin yang memberikannya kehebatan. Jadi dari sana
00:21:01Anda mendapatkan kemampuan serupa di post-tool. Kesempatan untuk memeriksa apa sebenarnya yang telah berubah
00:21:07setelah berkas bash, perintah bash dijalankan, apa hal-hal yang berbeda sekarang setelah
00:21:13sebuah alat bantu dipanggil? Jadi ini tidak memungkinkan Anda untuk mencegah sesuatu terjadi,
00:21:19tetapi memungkinkan Anda untuk melihat hasil dari sesuatu yang telah terjadi. Dan jika itu,
00:21:25jika ia mengubah sesuatu atau melakukan sesuatu yang tidak terduga, itu adalah kesempatan lain untuk mendapatkan
00:21:31perbandingan perubahan (diff) dan mengatakan ini terlihat agak aneh. Mari beri tahu agen bahwa ini terasa aneh bagi kita.
00:21:38Jadi itu adalah dua hooks siklus hidup besar yang perlu diketahui saat membangun. Dan bagi kami, itu
00:21:43sekali lagi, ini semua tentang batas pengetahuan itu. Itulah
00:21:49hal yang harus dilawan oleh Vercel karena kami meluncurkan dengan cepat, kami sering merilis sesuatu dan
00:21:55dan kami terus mendorong semua teknologi baru ini dengan sangat cepat. Dan ini adalah hal luar biasa
00:22:00yang ingin kami tunjukkan kepada orang-orang. Dan di situlah sebuah plugin bisa sangat berguna.
00:22:09Ada pertanyaan tentang itu?
00:22:11Ya. Jadi jika ia menggunakan jalur file untuk menentukan skill mana yang akan dimasukkan, apakah itu berarti kita
00:22:21bisa mendapat keuntungan besar dengan mempersempit cakupan file di proyek kita agar lebih spesifik
00:22:27sehingga ia dapat menentukan lebih akurat skill mana yang ia butuhkan untuk ditambahkan.
00:22:34Misalnya, jika saya punya file besar dan mungkin menggunakan lima atau enam library kita,
00:22:39dan sekarang ia hanya bisa menambahkan hingga tiga skill di sana, atau ia mungkin tidak tahu
00:22:47berdasarkan jalur filenya. Jadi, apakah menurut Anda itu harus menjadi pertimbangan sekarang
00:22:51saat membangun perangkat lunak dengan alat-alat ini?
00:22:54Saya akan katakan bahwa Anda tidak perlu peduli dengan kode yang ditulis oleh agen tersebut dan bahwa
00:23:02itu adalah tugas pembuat plugin. Tugas pembuat harness-lah untuk membuat hal-hal itu bekerja
00:23:12dengan baik. Seperti orang-orang yang benar-benar menjalankan evaluasi dan melihat apakah
00:23:17itu memberikan perbedaan atau tidak. Sedangkan menurut saya, sangat mudah untuk kembali ke mode insinyur
00:23:27dan berpikir "Saya akan menyelesaikan ini karena inilah yang akan dilakukan manusia."
00:23:33Dan itulah yang pasti diinginkan oleh seorang agen. Itulah salah satu godaan terbesar pengembang saat ini,
00:23:39yaitu pemecahan masalah, seperti mencari masalah yang sebenarnya bukan masalah. Karena ya,
00:23:50jika Anda mencoba memperbaiki sesuatu dan Anda tidak tahu cara mengetesnya, seperti jika
00:23:53Anda tahu cara mengetesnya terhadap agen, maka silakan saja. Jika Anda tidak memiliki keinginan
00:24:00untuk melakukan itu, biarkan saja orang-orang yang membangun plugin dan harness
00:24:05yang mengurusnya karena pengujian dan evaluasi itu mahal. Seperti, biayanya
00:24:12sangat besar untuk menjalankan semua model ini terhadap perubahan tersebut. Itu memakan waktu lama dan
00:24:17sangat merepotkan. Jadi, ini salah satu hal itu. Saya harap tidak ada yang perlu mempedulikan hal itu.
00:24:23Dan menurut saya, saya akan menghabiskan upaya saya untuk hal-hal lain untuk saat ini. Ya.
00:24:33Begitu ya, saya mengerti. Jadi tidak ada gunanya mengubah cara saya membangun sesuatu. Jika versi berikutnya
00:24:40dari model tersebut akan dibangun dengan cara yang akan membuat semua perubahan itu tidak perlu lagi
00:24:47pada dasarnya.
00:24:48Ya. Dan menurut saya, maksud saya, tujuan akhir untuk semua harness dan untuk Vercel adalah
00:24:56agar Anda benar-benar tidak perlu terlalu banyak berpikir atau melihat kode. Saya tidak mengatakan bahwa itu
00:25:01terjadi saat ini. Saya mengatakan bahwa itu adalah tujuan akhirnya. Itulah yang
00:25:07sedang kami upayakan, yaitu Anda ingin merilis perangkat lunak yang indah. Anda ingin bisa
00:25:11berpikir, ingin bisa menuangkan ide secara bebas dan mendapatkan variasi dan melihat mana yang benar-benar beresonansi
00:25:19dengan Anda dan kemudian menyederhanakannya menjadi sesuatu yang indah bagi Anda atau
00:25:25keluarga Anda atau untuk pelanggan Anda. Kami hanya menginginkan pengalaman yang indah di mana
00:25:33Anda tidak terlalu memikirkan seberapa besar file Anda. Jika Anda menulis,
00:25:39Anda tahu, pola desain yang tepat, library mana yang Anda pilih. Dan saya sangat setuju.
00:25:48Seperti godaan untuk mengatakan "mari gunakan semua pola ini karena agen bekerja
00:25:53lebih baik dengannya. Mari lakukan semua hal ini." Dan itu pasti sesuatu yang sedang kami
00:25:58eksperimenkan dengan plugin dan pengujian. Tapi sekali lagi, jika Anda tidak bisa mengetesnya, maka
00:26:07sangat menggoda untuk mengatakan "Saya melakukan perubahan ini dan jelas-jelas sekarang bekerja lebih baik."
00:26:18Dan itu adalah salah satu jebakan di mana, setelah Anda melakukan perubahan ini, Anda
00:26:23tidak melihat bagaimana cara kerjanya sebelumnya dan apa dampaknya di tempat lain. Dan ya,
00:26:28mungkin itu bekerja dengan baik untuk satu sesi itu saja—jadi rekayasa sudah berbeda sekarang. Maaf,
00:26:35saya jadi filosofis, saya rasa. Ya. Saya rasa kami mengerti. Ya. Baiklah.
00:26:44Jadi hook lainnya adalah user prompt submit. Ini sangat penting karena memungkinkan
00:26:50Anda mengambil teks yang diketik pengguna. Dan jika mereka menyebutkan sebuah library, jika mereka menyebutkan
00:26:55sebuah konsep, jika mereka menyebutkan, Anda tahu, kata "schedule", mari kita
00:27:00masukkan skill cron. Ini sangat mirip dengan cara kerja skill, seperti jika pengguna atau
00:27:07jika ada sesuatu dalam percakapan yang terdeteksi cocok dengan deskripsi, tapi ini sebenarnya
00:27:12memberi Anda kesempatan untuk menjalankan regex terhadap prompt pengguna. Dan jika Anda mendeteksi kata kunci tertentu
00:27:20atau pola atau apa pun, muat skill tersebut, lakukan hal-hal ini, berikan petunjuk balik ke agen,
00:27:26seperti mungkin Anda harus mengajukan lebih banyak pertanyaan tindak lanjut. Ini adalah bagian interaktifnya di mana
00:27:33ini adalah kesempatan Anda untuk mengatakan "pengguna mengatakan ini, mungkin kita harus meminta klarifikasi lebih lanjut"
00:27:38atau kita harus memuat semua hal ini dan mendorongnya maju. Anda bisa melakukan
00:27:44beberapa hal yang sangat menyenangkan dengan user prompt submit di mana jika Anda ingin memiliki
00:27:48glosarium khusus atau bahasa perintah Anda sendiri, dan Anda ingin
00:27:56memberi awalan pada sesuatu dengan tanda dolar. Dan jika sesuatu dimulai dengan tanda dolar, maka lakukan ini. Atau
00:28:00jika sesuatu memiliki, Anda tahu itu seperti menulis skrip bash kecil atau sesuatu
00:28:07di dalam user prompt submit yang jika Anda mendeteksi ini, maka Anda bisa menjalankan alat segera dan
00:28:13itu tidak—ia bisa menjalankannya di dalam—Anda bisa menjalankan skrip bash apa pun, skrip node,
00:28:20apa pun di dalam hook itu yang berada di luar konteks sesi. Jadi Anda bisa melakukan
00:28:28segala macam hal cepat yang luar biasa di sana. Jika Anda ingin mendeteksi kata "commit"
00:28:37dan kemudian menghindari agen mengambil beberapa langkah untuk melakukan commit terhadap sesuatu.
00:28:47Sebaliknya, Anda hanya punya skrip yang melakukan commit berdasarkan apa pun yang bisa dilakukan. Seperti tepat setelah prompt
00:28:53commit, Anda bisa memberi tahu agen, "Saya sudah menjalankan perintah commit ini, Anda tidak perlu
00:28:59khawatir tentang itu." Dan Anda bisa menghemat beberapa giliran bagi agen. Dan ada beberapa trik kecil
00:29:03yang sangat menarik yang bisa Anda lakukan di sana untuk benar-benar mempercepat jika ada banyak hal yang
00:29:09Anda lakukan secara berulang, daripada meminta agen melakukannya setiap saat. Ini
00:29:15semacam proyek yang menyenangkan jika Anda ingin membangun user prompt submit kecil untuk diri sendiri dan
00:29:19membuat bahasa Anda sendiri tentang bagaimana Anda ingin berbicara dengan agen. Tapi bagi kami,
00:29:25ini lebih seperti, jika mereka mengatakan ini, ini membicarakan konsep ini, apa artinya itu dalam
00:29:30terminologi Vercel, jadi itu seperti mencocokkan kata-kata terhadap, khususnya seperti
00:29:37penjadwalan adalah cron dan alur kerja. Dan, Anda tahu, kata-kata seperti "paralel" atau "performa" atau apa pun,
00:29:45Anda dapat menemukan dan mengarahkan agen ke hal-hal spesifik yang Anda ketahui tentang Vercel. Sangat, sangat
00:29:53menyenangkan untuk dimainkan dengan user prompt submit jika Anda punya waktu luang di akhir pekan.
00:29:58Dan sekali lagi, saya akan tegaskan, sangat mungkin untuk datang ke sini dan berkata, "bantu saya
00:30:03membangun plugin Claude code dengan user prompt submit yang akan mendeteksi, tanda dolar"
00:30:09dan jika muncul tanda dolar, maka jalankan commit di dalam user prompt submit agar saya—
00:30:14seperti dengan prompt itu, saya bisa saja membangun ini jadi jangan terlalu khawatir tentang
00:30:19kodenya, Anda bisa mulai mencobanya saja. Baiklah, jadi setelah Anda memiliki semua
00:30:26ini tertata rapi, session end adalah kesempatan untuk membersihkan file apa pun yang Anda tulis
00:30:32selama sesi tersebut. Jadi jika Anda mulai mengumpulkan skill mana yang telah dijalankan, jika Anda mulai
00:30:39mengumpulkan informasi apa pun tentang hasil dari alat yang dipanggil, atau semacam
00:30:48anggaran atau hal yang Anda lacak sepanjang sesi, itu adalah kesempatan untuk masuk ke sana dan
00:30:51membersihkannya. Ada beberapa hal menarik yang bisa Anda lakukan di session end. Karena itu berjalan
00:30:57pada dasarnya seperti Ctrl C, seperti saat keluar dari sesi. Anda dapat menjalankan agen lain
00:31:05untuk mengatakan, "oke, lihat semua file yang telah berubah dalam sesi ini. Apakah mereka cocok dengan
00:31:09semuanya?"—kami tidak melakukan itu. Hanya saja ada hal-hal yang sangat menarik yang bisa Anda
00:31:13lakukan dengan session end di mana sesi saya sudah selesai. Apakah sesi itu mewakili kemajuan dalam
00:31:20proyek ini? Apakah itu mewakili sampah? Seperti, periksa semua file yang diubah.
00:31:26Apakah ini duplikasi dari hal-hal yang sudah ada di proyek? Dan jika iya, lakukanlah
00:31:30pembersihan dan berikan peringatan, Anda harus memperingatkan pengguna dengan cara tertentu seperti melalui notifikasi sistem
00:31:37atau melalui sarana lain karena sesi Anda sudah berakhir. Tapi hal-hal yang sangat, sangat menarik
00:31:43bisa Anda lakukan di sana. Baiklah. Jadi dengan semua yang telah dikatakan, saya akan
00:31:50menulis demo kecil yang cepat di sini. Jadi saya akan menjalankan versi Claude code yang menjalankan
00:31:56plugin Vercel dibandingkan dengan saat tidak menjalankan plugin Vercel. Saya akan menggunakan Claude
00:32:04"dangerously skip permissions", saya akan membiarkan debug menyala, saya akan tunjukkan itu sebentar lagi.
00:32:08Dan model ini akan diatur ke Haiku. Jadi itu adalah model tercepat dan paling dasar
00:32:13untuk Claude code. Dan saya akan mengatakan seperti, "tulis saja tutorial tentang AI SDK."
00:32:26Dan kita lihat apa yang terjadi di sana. Dan akan saya bandingkan secara berdampingan,
00:32:30Anda bisa melihat ia sudah mulai memuat skill. Dan ini sudah memuat plugin-nya.
00:32:37Jika saya ingin memulai sesi tanpa memuat plugin apa pun, ada pengaturan bendera sources
00:32:46yang memberi Anda kesempatan untuk menonaktifkan seperti pengaturan tingkat pengguna atau
00:32:53pengaturan tingkat proyek, pada dasarnya, abaikan pengaturan apa pun. Dengan cara ini saya bisa memuatnya tanpa
00:32:59plugin. Fitur no flicker—waduh. Fitur no flicker ini baru per kemarin, ini cara yang bagus
00:33:05untuk melakukan scroll yang mulus di dalam Claude code. Jadi saya mengaktifkan itu juga. Dan kemudian saya
00:33:12akan mengatur modelnya ke Opus, yang merupakan model terpintar. Dan jika saya memberikan prompt yang sama
00:33:20tentang tutorial SDK. Dan ini adalah versi standarnya di sebelah sini. Dan kita akan
00:33:28membandingkan hasilnya. Oh, waduh, saya perlu—saya belum menghapus yang sebelumnya. Mari
00:33:36kita mulai lagi. Biarkan saya menyalakan ini dan menjalankannya. Tadi pagi saya menjalankan ini
00:33:50dan melakukan pembersihan sebelum ini dimulai. Jadi biarkan saya menjalankannya lagi.
00:33:56Sambil membuat perbandingan. Ya.
00:34:01Baiklah. Jadi
00:34:04perbedaan besarnya di sini adalah ini Haiku 4.5 melawan Opus 4.6, kan? Model ini
00:34:15jutaan kali lebih murah, dan jauh lebih cepat. Dan ini sudah dimuat dengan lebih banyak
00:34:22informasi Vercel. Jadi meskipun Anda membandingkan biaya anggaran dari token tambahan
00:34:32yang kami sertakan, dibandingkan dengan, Haiku versus Opus. Selagi ini berjalan ke arah—
00:34:38seharusnya saya katakan buat saja file markdown. Saya rasa ini sedang benar-benar menulis kode,
00:34:45tapi itu akan cukup menarik. Mari kita lihat. Jadi ini satu hal yang perlu diperhatikan tentang salah satu
00:34:59pendekatan yang kami ambil untuk banyak skill kami adalah, seperti yang disebutkan sebelumnya, karena
00:35:05nomor versi, karena paket skill yang berbeda mungkin berubah untuk—kami melakukan penguncian nomor versi
00:35:13pada skill-skill tersebut. Izinkan saya mengulanginya. Versi library yang berbeda akan membutuhkan
00:35:21skill yang berbeda. Banyak skill kami mengatakan, silakan lihat node modules, di mana kami akan menyatukan
00:35:28banyak dokumentasi sehingga dokumentasi tersebut juga terkunci versinya. Jadi melihat ke sini,
00:35:34Anda bisa melihat ia sebenarnya sedang membaca dokumentasi lokal. Dan ia menelusuri di sini
00:35:40dan menyusun tutorial ini. Baiklah. Sekarang, mari kita lihat ini. Ini benar-benar tidak melakukan
00:35:53penelitian apa pun. Jadi ini akan menarik. Terakhir kali saya melakukan lebih banyak penelitian. Dan saya
00:36:01sudah bisa melihat seperti—ia menggunakan model Sonnet 4 yang sudah usang, bukan
00:36:07versi 4.6. Itu sudah usang. Ia menyebutkan generate object, yang bukan itu yang ingin kita gunakan. Kita
00:36:15menggunakan V6. Dan sudah ada banyak hal yang sudah ketinggalan zaman. Saya tidak akan mengatakan itu
00:36:23salah, tapi itu sangat, sangat usang jika Anda menginginkan performa terbaik
00:36:28dan praktik terbaik dari SDK tersebut. Baiklah. Apakah ini menangkap sesuatu di
00:36:37sini? Ya, sepertinya iya, skill SDK menangkap—sepertinya ia menulis tutorial pada awalnya
00:36:51di sini. Dan kemudian skill-nya menangkap bahwa itu tidak diperbarui ke V6, tanpa saya mengatakan
00:36:58apa pun sama sekali. Dan sekarang ia pergi dan memperbaruinya. Ia beralih dari generate object ke generate text.
00:37:03Dan ia sedang memperbarui semuanya untuk memastikan bahwa itu ada di versi terbaru. Baiklah,
00:37:10jadi kita—saya bisa membandingkan keduanya. Saya akan mulai sesi baru saja. Mari kita masuk ke sini dan bandingkan
00:37:23tutorial dari tanpa plugin versus tutorial dengan plugin Vercel untuk akurasinya. Dan ini
00:37:44akan menarik untuk dilihat seperti setiap kali saya menjalankan ini sebelumnya, Opus menulis file markdown,
00:37:48kali ini ia membuat cuplikan kode. Akan menyenangkan melihat perbedaannya.
00:37:54Saat Anda melakukan ini, ya, terutama jika Anda memiliki skill lain, mungkin bekerja bersamaan dengan
00:38:03plugin ini, apakah ada risiko terjadinya konflik dan mengakibatkan hal-hal lama
00:38:10lebih diutamakan atau apakah plugin akan memiliki semacam prioritas yang lebih tinggi?
00:38:16Plugin ini pada dasarnya, saya akan katakan secara paksa memasukkan skill berdasarkan polanya. Jadi jika
00:38:27ada—selalu ada risiko seperti itu, seperti semuanya hanya semacam konteks,
00:38:34seperti semua itu hanyalah file teks yang dimasukkan ke dalam sebuah sesi. Jadi saya akan selalu katakan
00:38:41hanya gunakan hal-hal yang Anda inginkan untuk proyek yang sedang Anda kerjakan, maaf, sangat jarang
00:38:49menginstal skill di tingkat pengguna kecuali Anda tahu Anda menginginkannya di setiap proyek.
00:38:58Dan bahkan untuk plugin Vercel, kami sedang mencari cara terbaik yang memungkinkan untuk hanya
00:39:06memuat apa yang Anda butuhkan untuk proyek yang sedang Anda kerjakan. Dan kami punya banyak ide seputar
00:39:11hal itu. Tapi salah satu ide yang mungkin paling kontroversial adalah di mana, kapan
00:39:23seorang pengguna mengatakan mereka menginstal plugin Vercel? Jadi asumsi apa yang bisa Anda buat tentang itu?
00:39:30Jika mereka menginstal plugin Vercel, dan mereka ada di platform pesaing, dan mereka membuka
00:39:35proyek di platform pesaing? Haruskah kita memberi tahu mereka tentang produk kita? Seperti, itu
00:39:42hal yang sangat kontroversial, kan? Dan jika satu orang melihat itu, dan
00:39:47mereka tidak menginginkannya, dan mereka tidak benar-benar tertarik untuk bermigrasi ke Vercel,
00:39:53mereka akan sangat kesal. Jika orang lain tertarik, mereka akan sangat senang. Jadi ada
00:39:59beberapa hal yang sangat menarik. Jika Anda memegang teori bahwa setiap orang
00:40:05hanya akan berinteraksi dengan agen. Seperti, apa etika dalam sebuah plugin atau dalam menginformasikan
00:40:15agen tentang hal baru yang hebat di platform Anda tanpa menginjak kaki
00:40:24platform lain. Dan jadi ada banyak hal. Ini sangat relevan dengan
00:40:31apa yang sedang saya lakukan sekarang, kami akan segera meluncurkan workflow secara resmi (GA). Jadi saya sedang menulis
00:40:37panduan migrasi. Jika seseorang ingin bermigrasi dari salah satu pesaing workflow, itu,
00:40:43bisa langsung menggunakan skill untuk mengatakan bermigrasi dari ini ke workflow. Ini caranya,
00:40:49begini cara Anda melakukannya. Jika Anda ingin melakukan itu, pada titik mana dalam sebuah agen saya harus memberi tahu
00:40:55seseorang tentang hal itu? Dan hal-hal itu sangat, sangat menarik bagi saya. Terutama itu
00:41:00sangat mendesak bagi saya karena itulah yang sedang saya kerjakan saat ini. Tapi ya, seperti konflik
00:41:07konteks, itu akan menjadi masalah ke depannya. Saya tidak tahu bagaimana mencoba
00:41:14menyimpulkan apa yang diinginkan pengguna berdasarkan konteks proyek mereka dari apa yang telah mereka tanyakan sejauh ini.
00:41:19Akan sangat bagus. Seperti kita secara teknis bisa melihat percakapan masa lalu dan melihat apa yang telah
00:41:27mereka lakukan. Kita bisa melihat riwayat commit. Kita bisa memberitahu GitHub CLI untuk melihat
00:41:35apa pun di dalam proyek. Ada banyak hal yang bisa Anda lakukan untuk mengumpulkan konteks,
00:41:40tapi itu juga melintasi beberapa batasan, seperti memanggil alat yang tidak mereka perlukan untuk Anda panggil—
00:41:46banyak sekali hal yang sangat menarik yang jika itu—jauh lebih mudah untuk melakukan semuanya
00:41:53di Vercel dan hanya memiliki—lebih baik menyediakan satu agen dengan set aturan spesifik
00:42:00dan plugin yang mengirimkan semuanya dengan indah di sana dan tidak perlu
00:42:05khawatir tentang semua konflik itu. Ngomong-ngomong. Saya harap bisa menyebutkannya, ya.
00:42:14Dalam konteks plugin, untuk skill kita, pada titik mana dalam proses ini skill
00:42:19biasanya berada? Misalnya, jika saya punya skill migrasi Create React App ke Next.js, dan skill itu
00:42:26hanya ada di folder skill saya, apakah itu lebih mungkin untuk langsung dipanggil secara otomatis kapan pun
00:42:32saya berada di proyek Create React App? Dibandingkan misalnya, jika saya punya plugin Vercel di sini, saya bisa
00:42:39menentukan kapan itu akan dipanggil dan saya bisa, jika saya membangun migrasi yang sama sebagai sebuah plugin,
00:42:47saya bisa membuatnya hanya terjadi jika pengguna memintanya secara eksplisit. Apakah model mental itu benar?
00:42:52Saya rasa begitu. Seperti, kami telah membicarakan
00:42:59konsep skill satu kali pakai (one-shot) atau skill sekali pakai yang lebih seperti, "saya ingin
00:43:06melakukan sesuatu seperti migrasi," yang mana itu adalah tugas yang Anda miliki, atau
00:43:12seperti skill terkait tugas yang tidak ingin Anda muat di waktu lain, kecuali untuk tugas itu.
00:43:17Seperti Anda ingin itu dibatasi pada tugasnya. Anda tidak ingin itu dibatasi pada proyeknya.
00:43:22Anda tidak ingin itu dibatasi pada pengguna, Anda ingin itu dibatasi pada tugasnya. Dan itulah diskusi
00:43:27yang sedang kami lakukan. Dan saya rasa itu—saya tidak punya jawaban yang bagus karena saat ini, jika Anda punya
00:43:33skill seperti itu yang dimuat, maka itu akan mempengaruhi harness dan model-model tersebut berdasarkan
00:43:41pada model tersebut dan berdasarkan skill lainnya. Sangat sulit untuk mengatakannya tanpa mengetahui secara pasti
00:43:47apa lagi yang ada di proyek tersebut. Tapi ya, itu juga menjadi prioritas utama seperti
00:43:55skill yang dibatasi pada cakupan tugas. Pertanyaan lain yang ada di pikiran saya di sini adalah seberapa
00:44:04banyak dari arsitektur plugin ini yang spesifik untuk Claude code. Jadi jika saya ingin mendapatkan perilaku serupa
00:44:12di Cursor atau Codex atau yang lainnya, apakah mereka punya format plugin sendiri? Apakah saya butuh
00:44:18sebuah plugin untuk masing-masing alat tersebut? Bagaimana cara kerjanya? Ya. Jadi kami akan segera memberikan beberapa pengumuman
00:44:25tentang spesifikasi seputar plugin dan semua pihak akhirnya menyepakati untuk memiliki
00:44:33plugin yang akan bekerja secara universal dan memiliki kompatibilitas silang. Hampir semuanya
00:44:39setuju dengan itu. Saya tidak akan mengatakannya hari ini, tapi jika Anda membangun plugin dalam format Claude code,
00:44:45Anda bisa berharap plugin tersebut akan berfungsi dengan yang lain dalam waktu singkat.
00:44:54Tapi ya, itu luar biasa. Sudah terlalu banyak folder skill. Saya sangat senang kita akhirnya
00:45:00mulai menstandarisasi sesuatu di sini. Ya. Begitu idenya, seperti saya senang saat
00:45:07saya berbicara dengan Anthropic tentang plugin dan alasan mereka memilih kata plugin daripada
00:45:13kata ekstensi adalah karena plugin menyiratkan sesuatu yang bisa dipasang dan sesuatu
00:45:18yang bisa dilepas. Jadi, jika Anda membuat plugin dengan sekumpulan skill, dan Anda hanya ingin
00:45:24menggunakannya lagi untuk satu tugas saja, itu hal yang seharusnya sangat mungkin dilakukan.
00:45:33Jika saya sedang mengerjakan proyek saya, dan saya seorang desainer, saya tidak ingin semua skill desain saya
00:45:40mengganggu semua skill pengembang atau apa pun. Seperti, Anda ingin bisa memasang
00:45:46bagian-bagian itu saja. Dan saya pikir, saya sangat setuju dengan konsep-konsep tersebut bahwa
00:45:52setiap orang akan memiliki tugas, peran, dan proyek masing-masing. Dan
00:45:59mereka akan menginginkan plugin lebih dari sekadar skill, karena mereka bisa, dan mereka mungkin ingin
00:46:05mengkurasi plugin mereka sendiri juga, seperti membangun set skill dan hook mereka sendiri
00:46:10yang sepenuhnya disesuaikan dengan cara mereka bekerja.
00:46:16Apakah ini berarti saya harus mempertimbangkan untuk mencabut plugin Vercel jika
00:46:21saya sedang mengerjakan proyek non-Vercel?
00:46:25Saya akan katakan seperti, untuk saat ini, ya, karena betapa agresifnya plugin ini
00:46:34ke depannya. Dan semoga, saya tidak ditegur oleh siapa pun karena mengatakan itu. Tapi
00:46:39niat penuh dari plugin Vercel adalah seperti, ini adalah sesuatu jika Anda ingin memuat
00:46:46agen Anda dan berkata, buatkan saya hal ini. Dan kemudian hal itu muncul begitu saja secara ajaib
00:46:53di Vercel. Seperti itulah tujuan awalnya. Dan kami melihat bagaimana cara kerjanya. Dan jika itu berdasarkan
00:46:59umpan balik yang kami terima, kami sedikit menariknya kembali dan melihat bahwa kami benar-benar perlu
00:47:04melakukan lebih banyak deteksi seperti apa yang ada di proyek untuk dinonaktifkan dan segala macam hal ini.
00:47:09Dan itu akan hadir segera. Jadi, Anda tahu, mungkin sebaiknya
00:47:15biarkan saja terpasang dan aktif karena kami sedang aktif mengerjakannya,
00:47:18seperti yang baru saja kami bicarakan pagi ini. Jadi
00:47:23Begitu. Jadi ini semacam trade-off di mana mungkin di masa depan, ia akan mengerti sedikit
00:47:29lebih baik kapan ia harus aktif sendiri. Tapi saat ini, cara pengguna mengontrol apakah
00:47:36plugin ini aktif atau tidak adalah dengan memasang atau mencabutnya untuk sesi yang berbeda.
00:47:42Ya. Dan sekarang, jika Anda mengetik slash plugin, Anda bisa membuka plugin yang terpasang,
00:47:48cukup tekan tab, Anda bisa memilih plugin apa pun yang ingin Anda nonaktifkan. Dan Anda bisa memperbarui,
00:47:54menghapus instalan, melakukan apa saja. Jadi Anda bisa menonaktifkannya dengan cara itu. Dan ada
00:48:03trik tingkat lanjut lainnya seperti menyiapkan fungsi ZSH khusus atau apa pun
00:48:10yang memuat set pengaturan spesifik untuk pengguna mana pun... ini semua sangat aneh tentang
00:48:17konsep profil orang yang duduk di depan komputer. Dan seperti,
00:48:23apa saja plugin yang mereka inginkan berdasarkan apa yang mereka lihat? Dan belum ada
00:48:29solusi sempurna untuk itu. Tapi kami berharap bisa menemukannya.
00:48:34Ini seperti saat mobil Waymo datang dan menyesuaikan semua kursi untuk Anda saat
00:48:39Anda masuk.
00:48:40Ya, ya. Dan saya pikir, pada titik tertentu, saya membayangkan kita akan melihat agen bertanya
00:48:49lebih banyak tentang diri Anda. Saya merasa itu hal besar seperti konsep profil, identitas, peran,
00:48:57yang menurut saya terasa seperti bagian yang hilang. Kecuali jika Anda ingin mengasumsikan bahwa setiap orang sekarang adalah
00:49:05manajer proyek penuh untuk semuanya. Saya tidak melihat hal itu terjadi dalam waktu dekat.
00:49:12Saya merasa beberapa orang hanya punya ide yang lebih baik tentang beberapa hal dibanding yang lain.
00:49:19Jadi
00:49:20Ya, mari kita tinjau ini. Jadi, apa yang menarik? Mari kita lihat, ini ya,
00:49:33menarik bahwa saya meminta Opus meninjau Opus dan hasilnya tetap salah, kan? Seperti masih
00:49:37merekomendasikan generate object dan v6. Mari kita verifikasi dengan dokumentasi. Jadi ia mencoba
00:49:50memverifikasi dan mengatakan bahwa, Anda tahu, yang saya tulis itu salah. Ini
00:49:56masih menunjukkan valid tapi usang. Jadi seperti, Haiku merekomendasikan model yang paling baru,
00:50:05dan bagi saya, itu sangat penting. Saya tidak tahu berapa kali Anda mencoba
00:50:08menggunakan agen untuk menulisnya. Menulis sesuatu dengan AI. Dan ia berkata, mari gunakan GPT-4-O, tapi
00:50:14tidak, itu sudah sangat lama sekarang. Dan kualitasnya jauh dari yang kita butuhkan. Yang
00:50:20mana itu salah satu hal yang bisa Anda deteksi, tangkap, dan katakan, periksa model terbaru
00:50:25di AI gateway. Dan Anda bisa bilang deteksi model terbaru dan tanya pengguna mana
00:50:31yang mereka inginkan dan jelaskan setiap model dan segala macam hal itu. Padahal saat ini,
00:50:36agen-agen ini selalu saja seperti GPT-4... ini menarik, hanya sebagai catatan sampingan
00:50:43melihat Claude Code semakin sering merekomendasikan SDK Anthropic akhir-akhir ini padahal sebelumnya
00:50:49tidak. Dan Anda seperti, saya pikir ada yang mengubah beberapa system prompt di balik layar
00:50:55seperti, rekomendasikan SDK kami sendiri. Yang mana saya tidak menyalahkan mereka. Namanya juga bisnis, kan? Baiklah.
00:51:03Ya, jadi generate object masih ada di sana. Dan ya, itu bagus. Setelah memeriksa
00:51:13dokumentasi, tutorialnya lebih akurat. Beberapa hal yang saya anggap buatan sebenarnya ada.
00:51:19Jadi ya, ini Opus menyadari bahwa ini adalah hal-hal nyata... ini adalah Haiku
00:51:25dengan plugin. Dan Opus, seperti menulis tutorial, mencoba memvalidasi tutorial tersebut, seperti saya
00:51:32harus menyuruhnya melihat tepat ke dokumentasi untuk menemukan sesuatu yang Haiku dengan
00:51:39plugin selesaikan dalam sekali coba, kan. Dan jika Anda tahu perbedaan antara Opus
00:51:44dan Haiku, itu masalah besar. Jadi ini adalah perbedaan dari semua yang ia dapatkan dengan benar
00:51:53untuk tantangan atau perubahannya. Pokoknya, semoga itu bisa mendemonstrasikan dengan cara sederhana.
00:52:04Seperti salah satu skenario, AI SDK, ini jauh lebih banyak. Ini untuk hal-hal seperti alur kerja
00:52:15dan sandbox dengan teknologi Vercel yang jauh lebih baru yang luar biasa, tapi tidak ada dalam
00:52:21batas pengetahuan model. Perbedaan ini menjadi lebih besar karena model
00:52:28bahkan tidak mengetahuinya, kan. Jadi itulah gunanya plugin Vercel. Jika ada yang punya
00:52:35pertanyaan, silakan hubungi saya di X atau di mana pun Anda bisa menemukan saya. Saya senang mengobrol tentang
00:52:41hal ini, senang menjawab kekhawatiran apa pun atau ini jelas merupakan pekerjaan yang sedang berjalan dan
00:52:48sesuatu yang akan kami ulangi, ulangi, ulangi terus sampai menjadi pengalaman ajaib yang luar biasa.
00:52:52Dan semoga Anda bisa melihat awalnya hari ini. Jika ada yang punya
00:52:59pertanyaan, saya senang menjawabnya. Jika ada yang punya ide plugin yang ingin didiskusikan,
00:53:04saya juga senang membicarakannya. Jadi itu saja, kecuali jika ada yang ingin saya mendalami
00:53:14hal lain. Itulah yang saya sampaikan untuk hari ini.
00:53:20Sangat menghargai Anda meluangkan waktu. Banyak hal yang harus dipahami. Ini perubahan besar. Kita telah
00:53:25bergerak begitu cepat dengan semua alat AI ini.
00:53:28Ya, sayangnya ini tidak akan melambat.
00:53:33Satu pertanyaan saya adalah jika orang ingin berkontribusi dengan cara apa pun, atau jika mereka menemukan bug dan ingin
00:53:38melaporkannya, apa cara terbaik untuk menyampaikannya kepada Anda?
00:53:41Oh, ya, repo untuk itu. Vercel slash, Vercel slash plugin atau apakah itu Vercel slash
00:53:49Vercel plugin?
00:53:51Ya, Vercel slash Vercel slash Vercel dash plugin.
00:53:58Baiklah. Saya akan menaruhnya di chat juga agar orang-orang mengetahuinya.
00:54:03Terima kasih. Ya, masalah (issues) di sana sangat membantu. Ini akan berubah dengan cepat. Saya tahu saya menyetujui
00:54:10PR besar tepat sebelum panggilan ini.
00:54:14Luar biasa. Baiklah, Jacob, ada pertanyaan lain darimu?
00:54:20Tidak, saya rasa kita sudah membahas semuanya di siaran ini. Ya, terima kasih telah memberikan
00:54:24demo yang mendalam dan luar biasa. Saya merasa siap untuk membangun plugin Claude saya sendiri
00:54:30di sini sekarang. Dan daripada hanya memarahi agen ketika ia memutuskan untuk melakukan force push ke main
00:54:37pada saya, sekarang saya tahu hook mana yang harus saya perintahkan untuk digunakan agar ia tidak melakukan
00:54:42itu lagi. Jadi itu sangat membantu.
00:54:45Pre-tools adalah teman Anda, pertahanan terbaik Anda terhadap hal-hal yang tidak Anda inginkan terjadi.
00:54:51Bagus. Terima kasih banyak, John. Tentu. Terima kasih, semuanya.
00:54:56Dan terima kasih semua telah bergabung. Anda dapat menemukan sesi mendatang di community.vercel.com slash
00:55:01events. Dan sampai jumpa lain waktu.
00:55:05Ya. Sampai jumpa di komunitas. Semoga hari kalian menyenangkan, semuanya.

Key Takeaway

Plugin Vercel untuk Claude Code meningkatkan akurasi agen AI secara signifikan dengan menyuntikkan grafik pengetahuan ekosistem terbaru dan mengontrol siklus hidup eksekusi melalui hook terprogram.

Highlights

Plugin Vercel mengatasi batas pengetahuan model AI yang biasanya tertinggal 6 hingga 12 bulan dengan menyuntikkan dokumentasi terbaru secara terprogram.

Siklus hidup plugin terdiri dari lima hook utama: session start, pre-tool use, user prompt submit, post-tool use, dan session end.

Hook pre-tool use memungkinkan pencegahan tindakan berbahaya seperti perintah bash yang salah atau penulisan kode usang sebelum dieksekusi oleh agen.

Penggunaan model Haiku yang dikombinasikan dengan plugin Vercel menghasilkan kode SDK AI versi 6 yang lebih akurat dibandingkan model Opus tanpa plugin.

Standarisasi plugin sedang dikembangkan agar satu format plugin dapat bekerja secara universal di berbagai editor seperti Claude Code, Cursor, dan Codex.

Timeline

Evolusi dari Skill ke Plugin

  • Plugin merupakan evolusi dari fitur skill yang memungkinkan agen melakukan tugas di luar kemampuan dasarnya.
  • Upaya standarisasi sedang berjalan agar satu plugin dapat berfungsi di semua editor kode berbasis AI.
  • Plugin menawarkan kontrol yang lebih dalam dibandingkan skill yang hanya berbasis instruksi teks dalam file markdown.

Skill biasanya bergantung pada pemanggilan manual oleh pengguna atau deteksi otomatis oleh agen berdasarkan deskripsi file. Plugin melangkah lebih jauh dengan mengintegrasikan diri ke dalam fungsionalitas editor secara lebih teknis. Fokus saat ini adalah menciptakan standar universal sehingga pengembang tidak perlu membangun plugin berbeda untuk setiap alat bantu seperti Cursor atau Claude Code.

Mekanisme Hook dalam Siklus Hidup Plugin

  • Siklus hidup sesi agen AI didefinisikan melalui hook yang menangkap momen sebelum, selama, dan setelah interaksi.
  • Hook session start digunakan untuk memuat daftar isi platform dan glosarium istilah ke dalam konteks agen.
  • Setiap sesi memiliki ID unik yang memungkinkan pelacakan anggaran skill dan penyimpanan data sesi secara spesifik.

Hook memberikan struktur pada percakapan dengan agen AI. Saat sesi dimulai, plugin menyuntikkan file vercel.md yang berfungsi sebagai peta pikiran bagi agen untuk memahami ekosistem terbaru. Ini memastikan agen memiliki kosakata yang sama dengan pengguna sejak awal interaksi tanpa perlu instruksi tambahan di setiap perintah.

Mengatasi Batas Pengetahuan Model AI

  • Agen AI sering menulis kode usang karena data pelatihannya memiliki batas waktu 6 hingga 12 bulan yang lalu.
  • Plugin Vercel menyertakan referensi URL dokumentasi terbaru yang dapat diikuti oleh agen secara dinamis.
  • Sistem deteksi versi dalam plugin secara otomatis menyesuaikan instruksi berdasarkan file package.json milik pengguna.

Vercel merilis fitur baru dengan frekuensi tinggi, sehingga model AI bawaan sering kali tidak mengetahui keberadaan AI SDK terbaru atau fitur gateway. Plugin bertindak sebagai jembatan yang membawa pengetahuan agen ke tingkat paling mutakhir. Dengan memeriksa dependensi lokal, plugin memastikan agen tidak menyarankan API yang sudah tidak berlaku untuk versi library yang sedang digunakan.

Kontrol Teknis melalui Pre-tool dan Post-tool

  • Pre-tool use memberikan kesempatan untuk memvalidasi perubahan file atau perintah bash sebelum dijalankan.
  • Hook ini mampu menghentikan tindakan agen secara terprogram jika terdeteksi pola yang tidak diinginkan.
  • Post-tool use memungkinkan pemeriksaan hasil eksekusi untuk memastikan tidak ada perubahan file yang aneh atau tidak terduga.

Berbeda dengan instruksi teks dalam file claude.md yang sering diabaikan, hook pre-tool bekerja pada tingkat sistem. Jika agen mencoba melakukan perintah push ke branch utama secara tidak sengaja, plugin dapat mencegatnya. Ini adalah pertahanan teknis yang memastikan integritas kode dan alur kerja pengembang tetap terjaga.

Kustomisasi Interaksi dengan User Prompt Submit

  • Hook user prompt submit memungkinkan penggunaan regex untuk mendeteksi kata kunci tertentu dalam perintah pengguna.
  • Pengembang dapat membuat bahasa perintah sendiri, seperti menggunakan simbol tertentu untuk memicu skrip otomatis.
  • Deteksi kata kunci seperti 'jadwal' dapat secara otomatis memicu pemuatan skill terkait cron atau alur kerja.

Fitur ini memungkinkan pembuatan glosarium khusus yang memetakan bahasa alami ke fungsionalitas teknis Vercel. Pengguna dapat menghemat waktu dengan membuat otomatisasi pendek, seperti menjalankan proses commit secara instan saat kata tertentu terdeteksi. Hook ini beroperasi di luar konteks sesi utama, memberikan kecepatan eksekusi yang lebih tinggi untuk tugas-tugas berulang.

Perbandingan Performa: Haiku dengan Plugin vs Opus Tanpa Plugin

  • Model Haiku yang lebih murah dan cepat menghasilkan kode yang lebih akurat daripada model Opus pintar saat menggunakan plugin.
  • Model Opus tanpa plugin cenderung merekomendasikan API usang seperti 'generate object' yang sudah digantikan di versi terbaru.
  • Plugin memaksa agen untuk memverifikasi dokumentasi lokal sebelum memberikan jawaban akhir kepada pengguna.

Melalui demonstrasi langsung, terlihat bahwa kecerdasan mentah sebuah model tidak menjamin akurasi jika datanya sudah usang. Haiku, meskipun secara teknis kurang canggih dibandingkan Opus, mampu memberikan solusi yang tepat karena panduan dari plugin Vercel. Ini membuktikan bahwa pengelolaan konteks yang tepat melalui plugin lebih berharga daripada sekadar menggunakan model AI yang paling mahal.

Community Posts

View all posts