Vercel telah melancarkan versi 7 AI SDK miliknya dengan ciri scoped tool context yang memaksa setiap alatan dalam ejen AI hanya menerima rahsia yang dinyatakan secara eksplisit. Dengan mengehadkan pendedahan, pembangun boleh menghalang alatan pihak ketiga daripada melihat setiap kredential yang disimpan dalam persekitaran mereka secara tidak sengaja.
Mengapa perubahan ini penting
Ejen AI sering menggabungkan pelbagai perkhidmatan luaran—carian pesanan, penciptaan tiket, pemprosesan pembayaran—yang mana setiap satunya memerlukan kunci API atau URL tersendiri. Jalan pintas yang biasa digunakan adalah dengan menyerahkan keseluruhan objek process.env kepada setiap alatan:
execute(input, { context: process.env })
Corak tersebut mewujudkan perluasan keistimewaan tersirat (implicit privilege expansion): penambahan alatan baharu secara serta-merta memberikannya akses kepada semua rahsia sedia ada, termasuk kata laluan pangkalan data atau token pembayaran, tanpa sebarang tanda semakan kod. Risikonya ialah alatan yang terjejas atau mempunyai pepijat boleh membocorkan kredential yang tidak sepatutnya diberikan kepadanya secara tiba-tiba.
Cara kerja scoped tool context
Dalam SDK 7, sesuatu alatan mengisytiharkan context schema—satu definisi berasaskan Zod bagi medan tepat yang diperlukannya. Apabila ejen memanggil sesuatu alatan, pemanggil akan membekalkan objek toolsContext yang hanya mengandungi medan yang telah diisytiharkan tersebut. SDK akan mengesahkan bentuk data tersebut sebelum pelaksanaan, dan sebarang kunci yang hilang atau berlebihan akan menyebabkan ralat.
Demo ringkas menunjukkan dua alatan dengan keperluan yang berbeza:
- lookupOrder – memerlukan
baseUrluntuk memanggil perkhidmatan pesanan dalaman. - createTicket – memerlukan
supportTokenuntuk membuka tiket sokongan.
Setiap alatan mengeksport contextSchema yang menyenaraikan satu kunci tunggal yang diperlukan. Apabila ejen dijalankan, ia akan menghantar:
{
lookupOrder: { baseUrl: "https://orders.internal" },
createTicket: { supportToken: "s3cr3t-token" }
}
Hanya lookupOrder yang melihat baseUrl; createTicket tidak akan menyentuhnya, dan begitu juga sebaliknya. SDK menguatkuasakan sempadan ini semasa masa larian (runtime), menukarkan kebergantungan tersembunyi kepada senarai keupayaan eksplisit yang boleh diaudit oleh penyemak.
Kelebihan keselamatan
- Menghadkan pendedahan data – kredential kekal di tempat yang diperlukan.
- Mengesahkan konteks – medan yang tidak sepadan atau hilang akan membatalkan pelaksanaan.
- Menjadikan keupayaan eksplisit – penyemak boleh melihat dengan tepat apa yang boleh diakses oleh setiap alatan.
- Mengurangkan radius impak (blast radius) – jika sesuatu alatan terjejas, penyerang hanya memperoleh rahsia yang dibenarkan untuk alatan tersebut.
Ciri ini tidak menggantikan sandboxing tradisional. Pembangun masih perlu menggunakan redaksi log (log redaction), kawalan egress rangkaian, dan putaran token secara berkala. Konteks berskop (scoped context) adalah satu sempadan; ia tidak menutup keseluruhan ruang.
Apa yang perlu dilaraskan oleh pembangun
- Takrifkan skema untuk setiap alatan – gunakan perpustakaan Zod yang disertakan dengan SDK.
- Hantar
toolsContextyang terhad – elakkan penggunaanprocess.envsecara menyeluruh. - Semak ejen sedia ada – kenal pasti sebarang rahsia yang boleh dikeluarkan daripada panggilan alatan.
- Tambah ujian automatik – pastikan pengesahan konteks gagal apabila data tambahan dimasukkan.
Permulaan pantas adalah seperti berikut:
mkdir scoped-tools && cd scoped-tools
npm init -y
npm install ai zod
npm install -D typescript tsx @types/node
Cipta demo.ts, isytiharkan contextSchema bagi setiap alatan, dan jalankannya dengan tsx demo.ts. SDK akan mengeluarkan ralat jika anda cuba memberikan rahsia kepada alatan yang tidak memintanya.
Hujah balas
Sesetengah pasukan mungkin berpendapat bahawa definisi skema tambahan menambah kod lewah (boilerplate) dan melambatkan prototaip. Walaupun benar, kosnya adalah kecil—hanya beberapa baris bagi setiap alatan—dan pulangan keselamatan meningkat seiring dengan bilangan perkhidmatan yang disepadukan. Dalam persekitaran yang mengendalikan data pembayaran atau maklumat peribadi, pertukaran ini sukar untuk diabaikan.
Apa yang perlu diperhatikan seterusnya
- Metrik penggunaan – pengguna awal melaporkan kurang insiden kebocoran rahsia.
- Alatan komuniti – plug-in yang menjana skema konteks secara automatik daripada fail konfigurasi.
- Pelancaran SDK masa hadapan – petunjuk bahawa Vercel mungkin meluaskan konteks berskop untuk merangkumi kebenaran rangkaian dan had kadar (rate-limit caps).
Jika anda sudah membina ejen AI dengan SDK Vercel, langkah pertama adalah dengan menyemak penggunaan process.env anda sekarang. Kenal pasti nilai tunggal yang boleh dikeluarkan daripada semua panggilan alatan dan gantikan corak menyeluruh tersebut dengan toolsContext yang berskop. Hasilnya ialah postur keselamatan yang lebih ketat tanpa mengorbankan fleksibiliti yang menjadikan ejen AI begitu berkuasa.
