Vercel એ તેના AI SDK નું વર્ઝન 7 લોન્ચ કર્યું છે, જેમાં scoped tool context ફીચર છે જે AI એજન્ટમાંના દરેક ટૂલને ફક્ત તે જ સિક્રેટ્સ (secrets) મેળવવા માટે મજબૂર કરે છે જે તે સ્પષ્ટપણે જાહેર કરે છે. એક્સપોઝરને મર્યાદિત કરીને, ડેવલપર્સ થર્ડ-પાર્ટી ટૂલ્સને તેમના એન્વાયરમેન્ટમાં સંગ્રહિત દરેક ક્રેડેન્શિયલ અજાણતા જોતા અટકાવી શકે છે.

આ ફેરફાર શા માટે મહત્વપૂર્ણ છે

AI એજન્ટ્સ ઘણીવાર અનેક બાહ્ય સેવાઓને જોડે છે—ઓર્ડર લુકઅપ, ટિકિટ ક્રિએશન, પેમેન્ટ પ્રોસેસિંગ—દરેકમાં તેના પોતાના API કી અથવા URL ની જરૂર હોય છે. સામાન્ય શોર્ટકટ એ છે કે દરેક ટૂલને આખું process.env ઓબ્જેક્ટ આપી દેવું:

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

આ પેટર્ન implicit privilege expansion બનાવે છે: નવું ટૂલ ઉમેરતા જ તેને કોઈપણ કોડ રિવ્યુ ફ્લેગ વગર ડેટાબેઝ પાસવર્ડ અથવા પેમેન્ટ ટોકન્સ સહિતના તમામ હાલના સિક્રેટ્સનો એક્સેસ મળી જાય છે. જોખમ એ છે કે કોઈ કમ્પ્રમાઇઝ્ડ અથવા બગ વાળું ટૂલ અચાનક એવા ક્રેડેન્શિયલ્સ લીક કરી શકે છે જે તેના માટે ક્યારેય નિર્ધારિત નહોતા.

scoped tool context કેવી રીતે કામ કરે છે

SDK 7 માં, એક ટૂલ context schema જાહેર કરે છે—જે તેને જરૂરી ચોક્કસ ફીલ્ડ્સની Zod-આધારિત વ્યાખ્યા છે. જ્યારે એજન્ટ ટૂલને ઇનવોક કરે છે, ત્યારે કોલર toolsContext ઓબ્જેક્ટ સપ્લાય કરે છે જેમાં ફક્ત તે જાહેર કરેલા ફીલ્ડ્સ જ હોય છે. SDK એક્ઝેક્યુશન પહેલાં તેની રચનાને વેલિડેટ કરે છે, અને કોઈપણ ખૂટેલા અથવા વધારાના કીને કારણે એરર આવે છે.

એક મિનિમલ ડેમો બે ટૂલ્સ બતાવે છે જેની જરૂરિયાતો અલગ છે:

  • lookupOrder – ઇન્ટરનલ ઓર્ડર સર્વિસને કોલ કરવા માટે baseUrl ની જરૂર છે.
  • createTicket – સપોર્ટ ટિકિટ ખોલવા માટે supportToken ની જરૂર છે.

દરેક ટૂલ contextSchema એક્સપોર્ટ કરે છે જે તેની સિંગલ જરૂરી કીની યાદી આપે છે. જ્યારે એજન્ટ ચાલે છે, ત્યારે તે પાસ કરે છે:

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

ફક્ત lookupOrderbaseUrl જોઈ શકે છે; createTicket તેને ક્યારેય સ્પર્શતું નથી, અને તેનાથી ઉલટું પણ છે. SDK રનટાઇમમાં આ સીમા (boundary) લાગુ કરે છે, જે છુપાયેલી નિર્ભરતાને એક સ્પષ્ટ ક્ષમતા યાદીમાં ફેરવે છે જે રિવ્યુઅર્સ ઓડિટ કરી શકે છે.

સુરક્ષાના ફાયદા

  • ડેટા એક્સપોઝર મર્યાદિત કરે છે – ક્રેડેન્શિયલ્સ જ્યાં જરૂર હોય ત્યાં જ રહે છે.
  • કોન્ટેક્સ્ટ વેલિડેટ કરે છે – ખોટા અથવા ખૂટેલા ફીલ્ડ્સ એક્ઝેક્યુશન અટકાવે છે.
  • ક્ષમતાઓને સ્પષ્ટ બનાવે છે – રિવ્યુઅર્સ જોઈ શકે છે કે દરેક ટૂલ ચોક્કસપણે શેનો એક્સેસ કરી શકે છે.
  • બ્લાસ્ટ રેડિયસ ઘટાડે છે – જો કોઈ ટૂલ કમ્પ્રમાઇઝ થાય, તો હુમલાખોર ફક્ત તે જ સિક્રેટ્સ મેળવી શકે છે જેની તે ટૂલને પરવાનગી હતી.

આ ફીચર પરંપરાગત સેન્ડબોક્સિંગનું સ્થાન લેતું નથી. ડેવલપર્સે હજુ પણ લોગ રિડેક્શન, નેટવર્ક એગ્રેસ કંટ્રોલ્સ અને નિયમિત ટોકન રોટેશનનો ઉપયોગ કરવો આવશ્યક છે. સ્કોપ્ડ કોન્ટેક્સ્ટ એ એક સીમા છે; તે રૂમને સીલ નથી કરતી.

ડેવલપર્સે શું ફેરફાર કરવાની જરૂર છે

  1. દરેક ટૂલ માટે સ્કીમા વ્યાખ્યાયિત કરો – SDK સાથે આવતી Zod લાઇબ્રેરીનો ઉપયોગ કરો.
  2. સાંકડો toolsContext પાસ કરો – બધું જ સમાવી લેતા process.env થી બચો.
  3. હાલના એજન્ટ્સનું રિવ્યુ કરો – કોઈપણ એવા સિક્રેટ્સ ઓળખો જે ટૂલ કોલ્સમાંથી દૂર કરી શકાય છે.
  4. ઓટોમેટેડ ટેસ્ટ ઉમેરો – ખાતરી કરો કે જ્યારે વધારાનો ડેટા ઇન્જેક્ટ કરવામાં આવે ત્યારે કોન્ટેક્સ્ટ વેલિડેશન નિષ્ફળ જાય.

ક્વિક સ્ટાર્ટ આ મુજબ દેખાય છે:

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

demo.ts બનાવો, દરેક ટૂલનું contextSchema જાહેર કરો, અને તેને tsx demo.ts સાથે રન કરો. જો તમે કોઈ ટૂલને એવો સિક્રેટ આપવાનો પ્રયાસ કરશો જે તેણે માંગ્યો નથી, તો SDK એરર આપશે.

વિરોધ પક્ષ

કેટલીક ટીમો દલીલ કરી શકે છે કે વધારાની સ્કીમા વ્યાખ્યાઓ બોઈલરપ્લેટ ઉમેરે છે અને પ્રોટોટાઇપિંગને ધીમું કરે છે. જોકે આ સાચું છે, પણ તેની કિંમત ઓછી છે—દરેક ટૂલ દીઠ માત્ર થોડી લાઈનો—અને ઇન્ટિગ્રેટેડ સેવાઓની સંખ્યા સાથે સુરક્ષાનો ફાયદો વધતો જાય છે. પેમેન્ટ ડેટા અથવા વ્યક્તિગત માહિતી હેન્ડલ કરતા એન્વાયરમેન્ટમાં, આ સમજૂતીને અવગણવી મુશ્કેલ છે.

આગળ શું જોવા જેવું છે

  • એડોપ્શન મેટ્રિક્સ – શરૂઆતના એડોપ્ટર્સ ઓછા સિક્રેટ-લીક બનાવોની જાણ કરી રહ્યા છે.
  • કમ્યુનિટી ટૂલિંગ – પ્લગ-ઇન્સ જે કન્ફિગરેશન ફાઇલોમાંથી કોન્ટેક્સ્ટ સ્કીમા આપમેળે જનરેટ કરે છે.
  • ભવિષ્યના SDK રિલીઝ – સંકેતો છે કે Vercel સ્કોપ્ડ કોન્ટેક્સ્ટને નેટવર્ક પરમિશન અને રેટ-લિમિટ કેપ્સ સુધી વિસ્તૃત કરી શકે છે.

જો તમે પહેલેથી જ Vercel ના SDK સાથે AI એજન્ટ્સ બનાવી રહ્યા હોવ, તો પ્રથમ પગલું તમારા વર્તમાન process.env ના ઉપયોગનું ઓડિટ કરવાનું છે. એવા સિંગલ વેલ્યુને ઓળખો જેને તમામ ટૂલ કોલ્સમાંથી દૂર કરી શકાય અને બધું જ સમાવી લેતા પેટર્નને બદલે સ્કોપ્ડ toolsContext નો ઉપયોગ કરો. પરિણામ એ છે કે AI એજન્ટ્સને શક્તિશાળી બનાવતી ફ્લેક્સિબિલિટીને બગાડ્યા વિના વધુ મજબૂત સુરક્ષા મળે છે.