Vercel meluncurkan versi 7 dari AI SDK miliknya dengan fitur scoped tool context yang memaksa setiap tool dalam agen AI untuk hanya menerima rahasia (secrets) yang dideklarasikannya secara eksplisit. Dengan membatasi paparan, pengembang dapat menghentikan tool pihak ketiga agar tidak secara tidak sengaja melihat setiap kredensial yang tersimpan di lingkungan (environment) mereka.

Mengapa perubahan ini penting

Agen AI sering kali menggabungkan berbagai layanan eksternal—pencarian pesanan, pembuatan tiket, pemrosesan pembayaran—yang masing-masing memerlukan API key atau URL sendiri. Jalan pintas yang umum digunakan adalah memberikan seluruh objek process.env ke setiap tool:

execute(input, { context: process.env })

Pola tersebut menciptakan perluasan hak istimewa implisit (implicit privilege expansion): menambahkan tool baru secara instan memberikannya akses ke semua rahasia yang ada, termasuk kata sandi database atau token pembayaran, tanpa adanya tanda peringatan dalam peninjauan kode (code review). Risikonya adalah tool yang terkompromi atau bermasalah tiba-tiba membocorkan kredensial yang sebenarnya tidak ditujukan untuknya.

Cara kerja scoped tool context

Dalam SDK 7, sebuah tool mendeklarasikan context schema—sebuah definisi berbasis Zod tentang bidang (fields) tepat yang dibutuhkannya. Saat agen memanggil sebuah tool, pemanggil menyediakan objek toolsContext yang hanya berisi bidang-bidang yang telah dideklarasikan tersebut. SDK akan memvalidasi bentuknya sebelum eksekusi, dan setiap kunci (key) yang hilang atau berlebih akan menyebabkan error.

Demo minimal menunjukkan dua tool dengan persyaratan yang berbeda:

  • lookupOrder – membutuhkan baseUrl untuk memanggil layanan pesanan internal.
  • createTicket – membutuhkan supportToken untuk membuka tiket dukungan.

Setiap tool mengekspor contextSchema yang mencantumkan satu kunci wajibnya. Saat agen berjalan, ia akan meneruskan:

{
  lookupOrder: { baseUrl: "https://orders.internal" },
  createTicket: { supportToken: "s3cr3t-token" }
}

Hanya lookupOrder yang melihat baseUrl; createTicket tidak pernah menyentuhnya, dan sebaliknya. SDK menegakkan batasan ini pada saat runtime, mengubah dependensi tersembunyi menjadi daftar kapabilitas eksplisit yang dapat diaudit oleh peninjau.

Keuntungan keamanan

  • Membatasi paparan data – kredensial tetap berada di tempat yang dibutuhkan.
  • Memvalidasi konteks – bidang yang tidak cocok atau hilang akan membatalkan eksekusi.
  • Membuat kapabilitas menjadi eksplisit – peninjau dapat melihat dengan tepat apa yang dapat diakses oleh setiap tool.
  • Mengurangi radius dampak (blast radius) – jika sebuah tool terkompromi, penyerang hanya mendapatkan rahasia yang diizinkan untuk tool tersebut.

Fitur ini tidak menggantikan sandboxing tradisional. Pengembang tetap harus menerapkan redaksi log (log redaction), kontrol egress jaringan, dan rotasi token secara berkala. Scoped context adalah sebuah batasan; ia tidak menutup seluruh ruangan.

Apa yang perlu disesuaikan oleh pengembang

  1. Definisikan skema untuk setiap tool – gunakan library Zod yang disertakan dalam SDK.
  2. Teruskan toolsContext yang sempit – hindari penggunaan process.env yang bersifat umum.
  3. Tinjau agen yang sudah ada – identifikasi rahasia apa pun yang dapat dihapus dari panggilan tool.
  4. Tambahkan pengujian otomatis – pastikan validasi konteks gagal saat data tambahan disuntikkan.

Cara memulai cepat adalah sebagai berikut:

mkdir scoped-tools && cd scoped-tools
npm init -y
npm install ai zod
npm install -D typescript tsx @types/node

Buat demo.ts, deklarasikan contextSchema untuk setiap tool, dan jalankan dengan tsx demo.ts. SDK akan mengeluarkan error jika Anda mencoba memberikan rahasia kepada tool yang tidak memintanya.

Argumen sebaliknya

Beberapa tim mungkin berargumen bahwa definisi skema tambahan menambah boilerplate dan memperlambat pembuatan prototipe. Meskipun benar, biayanya tergolong kecil—hanya beberapa baris per tool—dan keuntungan keamanannya meningkat seiring dengan bertambahnya jumlah layanan yang terintegrasi. Dalam lingkungan yang menangani data pembayaran atau informasi pribadi, pertukaran (trade-off) ini sulit untuk diabaikan.

Apa yang perlu diperhatikan selanjutnya

  • Metrik adopsi – pengguna awal melaporkan lebih sedikit insiden kebocoran rahasia.
  • Tooling komunitas – plugin yang secara otomatis menghasilkan context schema dari file konfigurasi.
  • Rilis SDK di masa mendatang – petunjuk bahwa Vercel mungkin memperluas scoped context untuk mencakup izin jaringan dan batas limitasi laju (rate-limit caps).

Jika Anda sudah membangun agen AI dengan SDK Vercel, langkah pertama adalah mengaudit penggunaan process.env Anda saat ini. Identifikasi nilai tunggal yang dapat dihapus dari semua panggilan tool dan ganti pola umum tersebut dengan toolsContext yang terukur (scoped). Hasilnya adalah postur keamanan yang lebih ketat tanpa mengorbankan fleksibilitas yang membuat agen AI menjadi kuat.