Perintah Bash di TypeScript? (Ini Jenius)

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00Salah satu cara termudah untuk membuat agen AI Anda lebih andal adalah dengan memberi mereka
00:00:03akses ke bash, namun hal itu bisa agak rumit. Anda butuh shell asli, sistem file,
00:00:09server dan kontainer, dan secara keseluruhan membutuhkan banyak infrastruktur, atau setidaknya dulu begitu.
00:00:13Tapi bagaimana jika saya beri tahu ada cara yang lebih simpel? Anda sebenarnya bisa menggunakan implementasi typescript
00:00:18dari bash. Saya tahu ini terdengar agak gila, tapi percayalah, ini sangat keren
00:00:22dan bahkan bisa menghemat uang Anda. Biar saya tunjukkan caranya.
00:00:30Ini adalah paket baru bernama justbash dan Anda bisa lihat di readme-nya tertulis “lingkungan
00:00:34bash tersimulasi dengan sistem file virtual dalam memori yang ditulis dalam typescript. Ini
00:00:38dirancang untuk agen AI yang membutuhkan lingkungan bash sandboxed yang aman.”
00:00:42Tapi sebelum saya tunjukkan bagaimana Anda bisa menghubungkan ini ke agen AI Anda untuk memberi mereka
00:00:45kemampuan lebih, saya ingin menunjukkan beberapa kode sederhana agar Anda punya konteks
00:00:48tentang cara kerjanya. Di sini saya memulai lingkungan bash baru dari paket justbash
00:00:53dan di dalamnya kita bisa menjalankan perintah bash kita. Jadi kita melakukan env.exec dan di sini saya hanya
00:00:57menjalankan perintah bash echo hello dan menginstruksikan untuk menyimpannya ke file bernama
00:01:01greeting.txt. Lalu di baris berikutnya saya menjalankan exec lagi di lingkungan yang sama dan berkata
00:01:06saya ingin membaca file greeting.txt tersebut. Dan Anda bisa lihat kita sebenarnya bisa mencatat
00:01:10standard output dari hasil yang kita dapatkan di sana, kode keluar, dan juga variabel
00:01:14lingkungan, dan saat saya jalankan, Anda bisa lihat file tersebut berhasil ditulis dan juga
00:01:18dibaca. Kita mendapatkan kode keluar nol dan kemudian variabel lingkungan dalam shell
00:01:22bash simulasi kita. Tapi hal penting yang perlu diingat di sini adalah seperti yang saya katakan, ini hanyalah
00:01:26shell bash simulasi, ini benar-benar versi perintah bash yang ditulis dalam typescript.
00:01:30Jadi ini tidak benar-benar terhubung ke shell asli, ini hanya mengonversi perintah yang kita
00:01:34berikan di sini menjadi typescript dan menjalankannya. Jadi file bernama greeting.txt ini pun
00:01:39tidak ada di sistem file mana pun, itu sebenarnya adalah sistem file virtual dalam memori meskipun ada
00:01:44pilihan jika Anda memang ingin menghubungkan ke sistem file asli. Jadi cara mudah memahaminya
00:01:47adalah ia hanya mengambil perintah bash yang kita tulis di dalam fungsi exec
00:01:51dan mengubahnya menjadi fungsi javascript yang kemudian dijalankan, yang berarti ia tidak
00:01:55membutuhkan shell asli dan kita bisa melihatnya di basis kode di sini. Saat saya memasukkan echo di dalam
00:01:59exec, sebenarnya ia menjalankan fungsi javascript ini dan kita bisa lihat ini hanya memiliki logika
00:02:03untuk memproses flag yang dimiliki perintah echo di bash dan mengubahnya menjadi javascript
00:02:08lalu mencetak output dari apa pun yang kita tulis setelah echo dan Anda bisa lihat
00:02:11di bawah sini ia hanya mengembalikan objek yang memiliki standard output dengan output dalam
00:02:15javascript standard error dan juga kode keluar. Dan jika Anda berpikir bahwa ia tidak mungkin
00:02:19menangani semua dasar-dasar bash, Anda bisa melihat daftar semua
00:02:23perintah yang didukung di sini dan jumlahnya sangat banyak, ada hal-hal seperti cat, copy, awk,
00:02:27base64, bahkan ada yang canggih untuk pemrosesan data seperti jq, python 3 dan sqlite, dan Anda bahkan
00:02:33bisa menjalankan permintaan jaringan menggunakan curl. Anda juga bisa mengatur whitelist agar tetap
00:02:36aman dan ada juga fitur shell di bawah sini seperti pipe, redirection, command
00:02:41chaining, ini benar-benar memberikan semua yang dimiliki shell bash dasar. Jadi Anda bisa lihat
00:02:45paket ini sangat keren dan punya banyak fungsionalitas, tapi Anda mungkin masih
00:02:48bertanya-tanya mengapa Anda butuh implementasi bash dalam typescript dan bagaimana ini bisa membantu agen Anda
00:02:53serta menghemat uang. Nah, untuk menjawab itu, mari saya tunjukkan salah satu kegunaannya dengan
00:02:57aplikasi chat yang sangat sederhana. Katakanlah dalam aplikasi chat ini saya ingin membahas file json ini, ini
00:03:02adalah file json yang berisi banyak sekali data dan katakanlah saya ingin meminta AI untuk mengambil
00:03:06informasi tertentu di dalamnya atau mungkin melakukan analisis pada beberapa kolom ini, Anda bisa
00:03:11lihat ini file yang sangat besar. Salah satu cara termudah tapi jelas salah untuk
00:03:15melakukannya adalah dengan mengambil seluruh isi file dan memasukkannya ke dalam prompt. Anda bisa
00:03:19lihat di sini saya menggunakan AI SDK dan juga menggunakan gpt 5.2. Jika kita jalankan agen ini dan
00:03:24memintanya mengambil data tertentu, Anda bisa lihat asistennya akan menjawab dan saya bisa
00:03:28konfirmasi ini benar karena model-model besar ini cukup mahir mengambil nilai dari
00:03:33konteks besar mereka. Tapi masalahnya, ini menghabiskan 133.000 token dan kemampuannya akan
00:03:39mulai menurun jika Anda mengajukan pertanyaan yang lebih rumit, mungkin Anda ingin melakukan manipulasi data
00:03:43atau bertanya tentang data dalam rentang tertentu. Seperti yang saya katakan, itu jelas cara yang
00:03:48salah, jadi cara berikutnya yang mungkin pernah Anda coba adalah metode RAG
00:03:51atau bahkan memberi agen sebuah sandbox agar ia bisa menjalankan perintah bash dan memanipulasi
00:03:56data dengan cara itu, tapi masalah dengan pendekatan tersebut adalah Anda mulai butuh banyak infrastruktur.
00:04:00Jadi sebagai gantinya, mari kita simulasikan ini dengan justbash. Untuk melakukan ini dengan AI SDK, Anda bisa
00:04:05menggunakan paket bash tool yang dibuat di atas justbash dan apa yang dimungkinkan oleh ini
00:04:09adalah di endpoint API kita untuk chat, kita bisa membuat bash tool baru, memasukkan file apa pun yang
00:04:13kita ingin ada di lingkungan bash simulasi kita, dalam hal ini saya memasukkan file json
00:04:17yang tadi, yang sangat besar itu, lalu saya juga mengatur tujuan
00:04:21ke mana file-file ini akan diletakkan, yaitu ke direktori simulasi /workspace.
00:04:26Setelah itu, yang perlu kita lakukan dalam stream yang kita miliki dari AI SDK kita adalah meneruskannya
00:04:31melalui bash tool yang kita miliki, yaitu bashTool.bash dan saya juga memberikan beberapa
00:04:34instruksi agen yang bisa Anda temukan di folder node modules, ini hanyalah instruksi
00:04:39yang disediakan paket tersebut untuk membantu agen AI Anda memahami cara menggunakan
00:04:42bash tool. Sekarang dengan pengaturan yang sangat sederhana itu, jika kita mengajukan pertanyaan yang sama persis
00:04:46kepada asisten untuk mengambil sepotong informasi dari file json tersebut, alih-alih menggunakan konteksnya sendiri
00:04:50dan perlu melakukan pencarian yang sangat sulit, Anda bisa lihat ia justru pergi dan
00:04:54menjalankan beberapa perintah bash, tapi sekali lagi, ini di lingkungan typescript simulasi kita.
00:04:58Dalam hal ini ia mencoba menjalankan perintah jq tapi sepertinya menemui galat, jadi selanjutnya
00:05:02ia menjalankan perintah head bash sehingga kita bisa melihat seperti apa format file tersebut dan dengan
00:05:06cara itu ia mendapatkan format yang benar, menjalankan perintah jq, dan memberi kita jawabannya. Jadi ya, meski kita
00:05:10mendapatkan jawaban yang sama persis dan mungkin memakan waktu sedikit lebih lama, poin kuncinya
00:05:15adalah Anda bisa lihat ini hanya menghabiskan enam ribu token input, sedangkan metode lainnya menghabiskan
00:05:19seratus tiga puluh tiga ribu. Ini adalah metode yang jauh lebih baik untuk menangani konteks yang panjang,
00:05:24dan itu bahkan bukan satu-satunya kelebihannya. Ini menjadi jauh lebih andal saat Anda mulai
00:05:28mengajukan pertanyaan lebih mendalam tentang data Anda, contohnya jika saya bertanya berapa banyak data antara
00:05:33seribu dan dua ribu lima ratus yang memiliki metadata.active bernilai true, Anda bisa lihat ia
00:05:37bisa langsung menjalankan perintah bash dan memberi kita jawabannya seketika. Jika Anda mencobanya
00:05:41di versi yang lain, pertama itu akan menghabiskan banyak konteks dan kedua ia mungkin
00:05:45hanya memberi jawaban salah berdasarkan tebakan. Ini akan jauh lebih akurat karena Anda
00:05:49seolah-olah berkata pada agen, “Hei, kamu punya akses penuh ke shell bash,” padahal
00:05:53secara teknis tidak. Ini benar-benar nilai tambah gratis dan sederhana yang bisa Anda berikan
00:05:57pada agen Anda agar lebih andal tanpa butuh infrastruktur tambahan, dan itulah
00:06:01yang sangat saya sukai. Semoga saya sudah menunjukkan salah satu kegunaannya, tapi percayalah
00:06:05masih banyak lagi yang lain, seperti yang kita lihat tadi, Anda bisa menjalankan perintah dasar python, sql, dan curl
00:06:10di sini, dan jika mau, Anda sebenarnya bisa menghubungkannya ke sistem file
00:06:14sungguhan. Beritahu saya pendapat Anda tentang justbash di kolom komentar di bawah. Sambil menunggu, jangan lupa subscribe
00:06:18dan seperti biasa, sampai jumpa di video berikutnya.

Key Takeaway

JustBash menawarkan cara jenius untuk memberikan kemampuan shell Bash kepada agen AI melalui simulasi TypeScript yang efisien, aman, dan hemat biaya tanpa memerlukan infrastruktur server yang rumit.

Highlights

JustBash adalah paket TypeScript yang mensimulasikan lingkungan Bash secara sandbox tanpa memerlukan infrastruktur shell asli.

Menggunakan sistem file virtual dalam memori (in-memory) untuk operasi file

Timeline

Pengenalan Masalah Infrastruktur Bash

Pembicara menjelaskan tantangan dalam memberikan akses Bash kepada agen AI yang biasanya membutuhkan shell asli, kontainer, dan infrastruktur rumit. Masalah ini sering kali menghambat pengembangan agen yang andal karena kompleksitas setup yang tinggi. Namun, diperkenalkan sebuah solusi baru yang lebih simpel menggunakan implementasi TypeScript murni. Pendekatan ini diklaim gila namun sangat keren karena bisa menghemat biaya operasional secara signifikan. Fokus utama bagian ini adalah memposisikan teknologi simulasi sebagai alternatif modern bagi pengembang AI.

Mengenal JustBash dan Mekanisme Kerjanya

JustBash diperkenalkan sebagai lingkungan Bash tersimulasi dengan sistem file virtual yang ditulis sepenuhnya dalam TypeScript. Pembicara mendemonstrasikan kode sederhana di mana perintah "echo" digunakan untuk menulis file "greeting.txt" di memori. Hasil eksekusi mencakup standard output, kode keluar, dan variabel lingkungan layaknya shell asli. Penting untuk dicatat bahwa semua ini terjadi di dalam memori tanpa menyentuh sistem file fisik komputer pengguna. Bagian ini memberikan konteks dasar tentang bagaimana perintah Bash diterjemahkan menjadi fungsi JavaScript.

Daftar Perintah dan Fitur Lanjutan

Di sini dijelaskan bahwa JustBash bukan sekadar simulasi sederhana, melainkan mendukung banyak perintah canggih seperti awk, jq, bahkan sqlite. Setiap perintah yang dimasukkan ke fungsi exec akan dikonversi menjadi logika JavaScript yang memproses flag dan argumen Bash. Fitur shell esensial seperti pipe, redirection, dan command chaining juga tersedia untuk memberikan pengalaman shell yang lengkap. Pembicara menekankan bahwa ini adalah "nilai tambah gratis" bagi agen AI untuk memproses data secara lokal. Keamanan tetap terjaga karena adanya sistem whitelist untuk membatasi akses perintah tertentu.

Studi Kasus: Efisiensi Token pada File Besar

Pembicara membandingkan metode konvensional memasukkan seluruh isi file JSON besar ke dalam prompt AI yang memakan 133.000 token. Cara tersebut dianggap salah karena selain mahal, akurasi AI cenderung menurun saat menangani konteks yang terlalu panjang. Solusi seperti RAG atau sandbox asli memang ada, namun membutuhkan infrastruktur tambahan yang tidak sedikit. JustBash hadir sebagai penengah yang memungkinkan AI menjalankan perintah secara terprogram pada data tersebut. Hal ini membuktikan bahwa efisiensi biaya adalah keunggulan utama dari penggunaan alat simulasi ini.

Implementasi Menggunakan AI SDK

Bagian ini menunjukkan cara mengintegrasikan JustBash dengan AI SDK melalui paket bash-tool yang sangat praktis. Pengembang hanya perlu memasukkan file ke direktori simulasi /workspace dan memberikan instruksi agen yang sudah disediakan. Saat dicoba, agen AI mampu menggunakan perintah "jq" dan "head" untuk memahami struktur data secara mandiri. Meskipun prosesnya sedikit lebih lama daripada pembacaan langsung, penggunaan token turun drastis menjadi hanya sekitar 6.000 token. Demonstrasi ini menunjukkan betapa mudahnya menghubungkan alat Bash ke alur kerja chat AI modern.

Keandalan Analisis Data dan Penutup

Analisis data yang rumit, seperti menghitung entri berdasarkan kriteria tertentu, terbukti jauh lebih akurat dengan JustBash karena AI benar-benar menjalankan logika komputasi. Tanpa alat ini, AI mungkin hanya menebak jawaban berdasarkan konteks yang ada di memorinya dan berisiko memberikan informasi salah. Pembicara menegaskan kembali bahwa JustBash memberikan akses shell penuh secara teknis tanpa risiko keamanan shell asli. Video diakhiri dengan ajakan untuk mengeksplorasi perintah lain seperti Python dan SQL yang juga didukung dalam simulasi. Penonton diajak untuk memberikan pendapat mereka dan berlangganan konten serupa di masa depan.

Community Posts

View all posts