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.