Tim Astro Secara Rahasia Membangun Kerangka Kerja Agen AI Terbaik

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

Transcript

00:00:00Ini adalah Flu, framework open source untuk membangun agen AI yang dibuat oleh tim di balik Astro,
00:00:04yang pada dasarnya mengambil fungsi Cloud Code sebagai harness dan menjadikannya 100% dapat diprogram.
00:00:09Jadi hal-hal seperti keterampilan, alat, sandbox didukung secara langsung,
00:00:13sehingga Anda dapat membuat harness agen yang lengkap dan menerapkannya di mana saja hanya dalam beberapa baris TypeScript.
00:00:19Tapi mengapa tim Astro memutuskan untuk membangun framework harness agen sejak awal?
00:00:23Dan apa trik keren yang bisa Anda lakukan dengan sandbox yang memungkinkan Anda menjalankan agen dengan jauh lebih murah?
00:00:28Klik subscribe dan mari kita cari tahu.
00:00:33Flu dibangun oleh salah satu pendiri Astro, dan lucunya,
00:00:36mereka tidak berniat membangun framework harness agen.
00:00:39Fred dan tim membangun Flu untuk menjalankan alur kerja AI di dalam repo GitHub milik Astro sendiri.
00:00:44Namun ketika insinyur lain dari Amplitude mencobanya,
00:00:47tim menyadari bahwa ini adalah alat yang dapat diakses oleh agen apa pun,
00:00:51yang sebenarnya masuk akal jika Anda memikirkannya.
00:00:53Maksud saya, mari kita lihat Cloud Code, sebagai contoh.
00:00:55Di bawah antarmuka terminal atau chat UI terdapat sebuah harness,
00:00:58jadi ia mendukung alat kustom dari server MCP, ia membaca file Cloud MD,
00:01:02ia memiliki dukungan sandbox dan dukungan untuk keterampilan yang dapat digunakan kembali.
00:01:05Ini dan banyak lagi yang memungkinkan model untuk melakukan pekerjaan nyata,
00:01:08yang bisa diberikan Flu kepada Anda hanya dalam beberapa baris kode.
00:01:11Ia melakukan ini dengan dibangun di atas Pi, yang merupakan harness agen minimal itu sendiri,
00:01:16hal yang sama yang menjadi dasar OpenClaw,
00:01:18dan ia membungkus framework nyata di sekitar inti agen Pi.
00:01:21Flu sebenarnya melakukan sesuatu yang cerdas dengan sandbox untuk membantu Anda menjalankannya dengan jauh lebih murah,
00:01:25yang akan saya bahas sedikit nanti.
00:01:26Tapi jika kita kembali ke contoh Cloud Code,
00:01:28ia mengasumsikan bahwa ada manusia di belakang kemudi yang mengendalikan agen,
00:01:31yang biasanya memang begitu.
00:01:33Tapi Flu tidak memiliki batasan yang sama.
00:01:35Dengan Flu, Anda bisa membangun agen seperti Cloud Code yang memerlukan input manusia,
00:01:38tetapi Anda juga bisa membangun alur kerja yang tidak memerlukan manusia sama sekali,
00:01:42yang berguna untuk proses agentic yang sangat spesifik
00:01:44dan tidak perlu sering berubah.
00:01:46Sekarang, Anda mungkin berpikir,
00:01:47ini terdengar sangat mirip dengan sesuatu seperti Mastra atau Vercel AI SDK,
00:01:52dan saya akan membahas perbedaannya nanti.
00:01:54Faktanya, perbedaannya akan jauh lebih jelas jika kita melalui demo sederhana.
00:01:57Jadi mari kita lakukan itu.
00:01:58Jadi untuk memulai, Anda harus menginstal runtime Flu,
00:02:01yaitu apa yang diimpor dan dijalankan oleh agen Anda,
00:02:04dan kemudian Anda harus menginstal CLI Flu,
00:02:06yang mengompilasi dan melayani agen Anda.
00:02:08Anda juga harus menyiapkan kunci API dari salah satu dari banyak penyedia yang didukung Pi.
00:02:13Untuk demo ini, saya akan menggunakan Anthropic,
00:02:15dan kemudian Anda harus menjalankan flu init dengan target,
00:02:18yang membuat file konfigurasi flu sehingga CLI tahu cara mengemas proyek Anda.
00:02:22Anda dapat memilih antara Node atau Cloudflare,
00:02:24dan saya akan membahas perbedaannya dalam sekejap.
00:02:26Tapi saya sudah melakukan langkah-langkah ini,
00:02:27jadi mari kita lihat seperti apa file-file ini.
00:02:30Jadi inilah file-file tipikal yang Anda dapatkan dari proyek bun kosong,
00:02:33dan beberapa file ini bahkan tidak digunakan.
00:02:35Jika kita melihat index.ts, ini tidak akan digunakan untuk apa pun.
00:02:38Begitu juga file readme,
00:02:39tetapi yang sebenarnya akan digunakan adalah file flu config.ts ini,
00:02:42yang menggunakan Vite di balik layar,
00:02:45CLI untuk menggunakan Node alih-alih Cloudflare.
00:02:47Dan perbedaannya adalah Node menggunakan server HTTP di atas HONO,
00:02:51dan Cloudflare akan menyebarkan proyek Anda ke pekerja
00:02:53dengan objek tahan lama untuk persistensi.
00:02:55Sekarang, setelah Anda melakukan langkah-langkah itu,
00:02:56Anda harus membuat direktori baru,
00:02:57entah itu untuk agen atau alur kerja.
00:03:00Kita akan membahas alur kerja nanti,
00:03:01tetapi untuk saat ini, saya mulai dengan agen sederhana,
00:03:03yang berisi kode dalam dokumentasi.
00:03:05Dan ini pada dasarnya mengatur model
00:03:06dan menambahkan beberapa instruksi,
00:03:08yang ditambahkan ke prompt sistem.
00:03:09Dan hanya itu.
00:03:10Itu semua yang Anda butuhkan untuk membuat agen flu dasar.
00:03:13Mari kita lihat cara kerjanya.
00:03:14Untuk menjalankannya, kita bisa menggunakan flu connect,
00:03:15yang membangun dan menjalankan agen.
00:03:17Dan kita mencocokkan nama file TS kita,
00:03:20yaitu hello world,
00:03:21sebelum memberikan ID instans,
00:03:22yang bisa berupa apa saja.
00:03:24Jadi bisa juga lokal satu, dua, tiga.
00:03:25Tapi ini berguna jika Anda memiliki banyak agen yang berjalan
00:03:27dan setiap agen dapat memiliki ID uniknya sendiri.
00:03:29Ini juga berguna untuk menyebarkan ke Cloudflare
00:03:31karena ID ini memetakan ke instans objek tahan lamanya sendiri.
00:03:35Jadi sekarang jika kita tekan enter,
00:03:36kita bisa melihatnya memuat konfigurasi,
00:03:38membaca target dan menjalankan agen yang ditemukannya.
00:03:40Sekarang kita tidak memiliki file agen MD,
00:03:42tetapi jika kita memilikinya, ia akan menggunakan itu.
00:03:43Dan sekarang ia telah membangun agen ke file server.mjs ini
00:03:46dan telah memberi kita kemampuan untuk memasukkan prompt.
00:03:48Jadi saya bisa mengatakan sesuatu seperti, beri saya lelucon acak.
00:03:50Dan di sini kita bisa melihat agen mulai berpikir,
00:03:52ia merespons, jadi mengalirkan siklus hidupnya.
00:03:54Kemudian ia memberi saya lelucon, meminta saya untuk yang lain.
00:03:57Tetapi kemudian di sini, ia mencetak JSON terakhir,
00:03:59yang terdiri dari teks,
00:04:00serta beberapa token input dan output,
00:04:02biaya dari seluruh prompt
00:04:03dan model yang digunakan.
00:04:05Tentu saja, kita bisa terus berbicara dengan agen ini,
00:04:06tapi untuk saat ini, saya akan mematikannya.
00:04:08Dan itulah contoh membangun agen dasar dengan Flu.
00:04:11Mari kita lakukan sesuatu yang sedikit lebih rumit.
00:04:13Mari kita bangun alur kerja untuk membantu menghasilkan beberapa judul
00:04:15untuk video YouTube ini.
00:04:16Dan untuk melakukan itu, lagi, kita membuat agen
00:04:18dengan instruksi yang lebih kompleks.
00:04:20Dan kali ini kita benar-benar memiliki keterampilan.
00:04:23Jadi keterampilan diimpor di sini dengan atribut impor keterampilan.
00:04:26Dan di sini, perhatikan kita tidak lagi mengekspor agen itu sendiri,
00:04:29tetapi kali ini kita mengekspor fungsi yang disebut run.
00:04:31Dan apa yang dilakukannya adalah menginisialisasi agen
00:04:34untuk alur kerja dan kemudian membuka sesi di harness.
00:04:36Nah, apa yang terjadi selanjutnya cukup menarik.
00:04:38Jadi di sini, apa yang terjadi adalah kita mendapatkan jalur
00:04:41dari payload, yang diatur di sini
00:04:43dalam jenis konteks flux ini.
00:04:44Jadi jika kita mengubah nama di sini menjadi file,
00:04:46kita akan mendapatkan kesalahan tipe.
00:04:47Dan di sini mendapatkan file,
00:04:49yang saya sebut skrip,
00:04:50dan memasukkannya sebagai prompt.
00:04:52Jadi ini semua akan masuk akal
00:04:53jika kita melihat instruksi di sini,
00:04:55yang kita suruh dia mempelajari skrip
00:04:57dan memberi saya 10 judul YouTube clickbait
00:04:59menggunakan keterampilan skor judul untuk memberi peringkat pada mereka.
00:05:01Jadi mari kita lihat apakah ini berhasil.
00:05:02Tapi sebelum kita melakukannya,
00:05:03saya ingin membuatnya jelas bahwa alur kerja
00:05:04berada di direktori alur kerja
00:05:06dan keterampilan ada di direktori keterampilan
00:05:08dari root proyek.
00:05:09Dan untuk menjalankan alur kerja ini,
00:05:10kita perlu menjalankan flu run dengan nama alur kerja kita.
00:05:13Dalam kasus saya, itu YT titles,
00:05:14diikuti oleh target dan payload JSON,
00:05:16yaitu jalur untuk skrip ini.
00:05:18Jadi jika kita tekan enter,
00:05:19kita akan melihat kita mendapatkan ID alur kerja.
00:05:21Dan di sini ia melakukan sesuatu yang agak aneh.
00:05:23Ia sebenarnya mencari-cari keterampilan itu,
00:05:25meskipun saya sudah menetapkannya sebelumnya.
00:05:27Dan sekarang dalam penalaran ini,
00:05:27ia memberitahu saya tidak ada file pada sistem file.
00:05:30Mengapa ia melakukan itu?
00:05:31Jadi secara default,
00:05:32flu menjalankan agen di sandbox hanya menggunakan bash.
00:05:35Yang ia miliki aksesnya adalah deskripsi keterampilan,
00:05:37yang telah didaftarkan di sini,
00:05:39tetapi ia tidak memiliki akses ke file-file ini
00:05:42yang terkait dengan keterampilan.
00:05:43Dan keterampilan itu sendiri, jika kita melihatnya,
00:05:44ia sebenarnya menjalankan skrip Python menggunakan bash
00:05:47untuk mendapatkan skor gaya vidIQ yang akurat
00:05:50untuk judul YouTube.
00:05:51Jadi untuk memperbaikinya,
00:05:52saya akan mengimpor lokal dari flu runtime node,
00:05:54yang memberitahu flu untuk menjalankan agen pada sistem lokal saya
00:05:57sehingga ia memiliki akses ke semua file saya
00:05:59dan dapat menjalankan skrip Python.
00:06:01Jika Anda sadar keamanan,
00:06:02saya akan menjelaskan bagaimana Anda bisa mengatasi ini
00:06:03nanti di video.
00:06:04Tapi kita juga akan mengubah
00:06:05direktori kerja saat ini ke keterampilan
00:06:07di dalam direktori keterampilan proyek ini.
00:06:10Sehingga flu tidak perlu mencari-cari
00:06:11untuk menemukan file tepat yang dibutuhkannya.
00:06:13Dan sekarang ketika saya menjalankan alur kerja ini,
00:06:15kita bisa melihat flu segera membaca file MD keterampilan
00:06:17dan mampu menghasilkan 10 judul clickbait
00:06:20dengan skor untuk masing-masingnya.
00:06:21Sekarang, jika Anda tidak ingin memberikan agen
00:06:22akses alur kerja ke sistem lokal Anda,
00:06:25apa yang bisa Anda lakukan sebagai gantinya
00:06:26adalah membuat alat kustom dari file Python.
00:06:28Jadi di sini saya memuat file Python dalam keterampilan
00:06:30dan membuat alat yang disebut skor judul,
00:06:33yang menggunakan value bots untuk memverifikasi parameter
00:06:35dan kemudian menjalankan skrip Python.
00:06:37Kemudian kita bisa mendaftarkan alat ini di dalam agen kita
00:06:40dan semuanya harus bekerja seperti yang diharapkan.
00:06:42Tapi sekarang mari kita kembali ke proyek sebelumnya
00:06:44dan katakan kita ingin memicunya berdasarkan panggilan posting HTTP.
00:06:47Nah, hanya ada satu hal yang perlu kita lakukan untuk mengaktifkan itu.
00:06:50Dan itu adalah cukup menambahkan root middleware.
00:06:52Sekarang, yang perlu kita lakukan hanyalah membangun proyek flu,
00:06:54tentukan target kita, port opsional,
00:06:56dan kemudian jalankan file server kita.
00:06:58Dan sekarang ia mendengarkan pada port yang kita tentukan.
00:07:00Perhatikan bahwa file server.js
00:07:01menyisipkan agen atau alur kerja apa pun yang kita miliki.
00:07:03Jadi kita hanya perlu file ini
00:07:05jika kita ingin menyebarkannya di mana saja yang mendukung Node.js.
00:07:07Sekarang saya bisa menjalankan curl dengan metode post
00:07:09ke port yang ditentukan,
00:07:11pilih alur kerja dan berikan beberapa data,
00:07:13yang memberi kita ID alur kerja.
00:07:14Dan kemudian jika kita curl untuk alur kerja,
00:07:16tentukan ID alur kerja khusus kita
00:07:18dan menyalurkan ke JQ hanya untuk membuatnya lebih mudah dibaca,
00:07:21kita bisa melihat informasi tentang alur kerja kita
00:07:23dan ringkasan hasilnya.
00:07:25Tentu saja, Flu mendukung WebSocket alih-alih HTTP
00:07:27jika Anda ingin mengalirkan informasi alur kerja.
00:07:29Sekarang, seperti biasa, ada begitu banyak fitur yang dimiliki Flu
00:07:31yang tidak sempat saya bahas,
00:07:33seperti profil agen untuk agen yang dapat digunakan kembali,
00:07:35dukungan untuk Daytona, sandbox Cloudflare,
00:07:37atau sandbox lainnya hanya dengan menggunakan URL,
00:07:40menambahkan rute kustom untuk otentikasi atau pemeriksaan kesehatan,
00:07:42dan bahkan dukungan untuk sub-agen.
00:07:44Tapi bagaimana ini dibandingkan
00:07:45dengan framework agen AI open source lain seperti Mastra?
00:07:48Yah, terakhir kali saya menggunakan Mastra
00:07:49adalah ketika saya membuat video ini,
00:07:50yang bisa Anda jeda video ini dan pergi menonton
00:07:52jika Anda ingin penyegaran tentang apa itu.
00:07:54Tapi ketika saya menggunakannya,
00:07:55Anda masih harus mengatur sesi secara manual,
00:07:58memori, sandbox, dan pemuatan alat sendiri.
00:08:01Itu adalah proses langkah-demi-langkah yang jauh lebih granular,
00:08:03dan saya tidak yakin apakah itu telah berubah
00:08:05menjadi lebih sederhana,
00:08:06tetapi saya pikir pendekatan yang diambil Flu
00:08:08benar-benar berbeda.
00:08:10Ini lebih merupakan pendekatan harness-first
00:08:11dan mengasumsikan bahwa Anda akan menggunakan
00:08:13fitur-fitur ini sejak awal.
00:08:14Berbicara tentang sandbox,
00:08:16Flu sebenarnya melakukan sesuatu yang sangat cerdas dengan mereka.
00:08:18Jadi setiap agen mendapatkan sandbox-nya sendiri secara default,
00:08:21yang saya jelaskan sebelumnya dalam demo,
00:08:22tetapi sandbox ini didukung oleh just Bash milik Vercel,
00:08:25yang mengimplementasikan kembali Bash dalam TypeScript.
00:08:27Jadi ia menjalankan sandbox ini dalam memori
00:08:29bukan kontainer nyata,
00:08:31artinya Anda mendapatkan akses ke alat grep, glob, dan baca
00:08:34tanpa membayar kontainer setiap kali,
00:08:35yang harus mem-boot seluruh mesin Linux
00:08:38tepat sebelum Anda bisa melakukan apa pun.
00:08:40Artinya Flu menjalankan ribuan agen
00:08:41dengan hampir tidak ada biaya,
00:08:43dan Anda bisa memilih untuk menggunakan kontainer nyata
00:08:44hanya saat Anda membutuhkannya.

Key Takeaway

Flu menyediakan framework harness-first yang memungkinkan pengembangan agen AI dan alur kerja yang hemat biaya melalui penggunaan sandbox berbasis memori dalam TypeScript.

Highlights

  • Flu adalah framework open source untuk membangun agen AI yang dikembangkan oleh tim di balik Astro.

  • Framework ini memungkinkan pembuatan harness agen lengkap hanya dalam beberapa baris TypeScript.

  • Flu mendukung alur kerja yang sepenuhnya otomatis tanpa memerlukan input manusia, berbeda dengan pendekatan Cloud Code.

  • Sandbox Flu berbasis pada implementasi TypeScript dari Bash, sehingga berjalan di memori tanpa biaya booting kontainer Linux penuh.

  • Proyek Flu dapat dijalankan pada runtime Node menggunakan server HTTP di atas Hono atau disebarkan ke Cloudflare dengan dukungan objek tahan lama.

Timeline

Pengenalan Framework Flu

  • Flu berfungsi sebagai harness agen AI yang 100% dapat diprogram menggunakan TypeScript.
  • Framework ini mengadopsi fungsi dari Cloud Code seperti dukungan untuk server MCP, file Cloud MD, dan keterampilan yang dapat digunakan kembali.
  • Pembangunan Flu awalnya ditujukan untuk alur kerja internal di dalam repositori GitHub Astro.

Flu memungkinkan pengembangan agen AI yang lengkap dalam hitungan baris kode. Dibangun di atas Pi, framework ini berfungsi sebagai harness yang membungkus inti agen dengan kemampuan kustomisasi yang luas, termasuk keterampilan, alat, dan lingkungan sandbox.

Setup Proyek dan Agen Dasar

  • Runtime Flu dan CLI Flu diperlukan untuk mengompilasi serta melayani agen.
  • File konfigurasi flu config.ts menentukan target deployment antara Node atau Cloudflare.
  • Instans agen dikelola melalui ID unik yang memetakan ke objek tahan lama di Cloudflare.

Proses dimulai dengan inisialisasi menggunakan flu init. File konfigurasi menggunakan Vite di balik layar untuk mengelola build. Proyek agen sederhana dapat dibuat dengan mengatur model dan instruksi prompt sistem, kemudian dijalankan menggunakan perintah flu connect.

Pengembangan Alur Kerja Kompleks

  • Alur kerja didefinisikan dengan mengekspor fungsi run alih-alih agen itu sendiri.
  • Integrasi skrip Python dalam alur kerja memerlukan akses sistem lokal atau pembuatan alat kustom.
  • Keterampilan diimpor menggunakan atribut khusus dan dapat diberi peringkat atau skor berdasarkan kebutuhan output.

Alur kerja yang lebih kompleks memanfaatkan keterampilan untuk melakukan tugas spesifik, seperti memberi peringkat pada judul video YouTube. Masalah akses file di sandbox default diatasi dengan mengonfigurasi runtime lokal atau mendaftarkan alat kustom yang memvalidasi parameter sebelum menjalankan skrip.

Deployment dan Optimasi Sandbox

  • Middleware rute memungkinkan pemicuan agen melalui permintaan HTTP POST.
  • Integrasi WebSocket didukung untuk kebutuhan streaming informasi alur kerja secara real-time.
  • Penggunaan sandbox berbasis memori yang meniru Bash secara signifikan mengurangi biaya operasional dibanding kontainer Linux.

Proyek dapat disebarkan di lingkungan yang mendukung Node.js menggunakan file server.js. Keunggulan teknis utama Flu terletak pada penggunaan sandbox berbasis memori dari implementasi TypeScript, yang memungkinkan eksekusi ribuan agen dengan biaya minimal tanpa overhead booting kontainer tradisional.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video