Vercel தனது AI SDK-ன் பதிப்பு 7-ஐ வெளியிட்டது, இதில் scoped tool context என்ற அம்சம் உள்ளது. இது ஒரு AI agent-ல் உள்ள ஒவ்வொரு கருவியும் (tool) தான் வெளிப்படையாகக் கோரும் ரகசியங்களை (secrets) மட்டுமே பெறுவதை உறுதி செய்கிறது. வெளிப்பாட்டைக் குறைப்பதன் மூலம், டெவலப்பர்கள் தங்கள் சூழலில் (environment) சேமிக்கப்பட்டுள்ள அனைத்துத் தரவுகளையும் மூன்றாம் தரப்பு கருவிகள் தற்செயலாகப் பார்ப்பதைத் தடுக்க முடியும்.

இந்த மாற்றம் ஏன் முக்கியமானது

AI agents பெரும்பாலும் பல வெளிப்புறச் சேவைகளை ஒருங்கிணைக்கின்றன—ஆர்டர் தேடல் (order lookups), டிக்கெட் உருவாக்கம் (ticket creation), கட்டணச் செயலாக்கம் (payment processing)—ஒவ்வொன்றும் அதற்கெனத் தனித்தனி API சாவிகள் (keys) அல்லது URL-களைக் கோருகின்றன. பொதுவாகப் பயன்படுத்தப்படும் குறுக்குவழி என்னவென்றால், ஒவ்வொரு கருவிக்கும் முழு process.env ஆப்ஜெக்ட்டையும் வழங்குவதாகும்:

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

இந்த முறை ஒரு implicit privilege expansion-ஐ உருவாக்குகிறது: ஒரு புதிய கருவியைச் சேர்க்கும்போது, அது எந்தக் குறியீடு ஆய்வும் (code review) இன்றி, தரவுத்தள கடவுச்சொற்கள் அல்லது கட்டண டோக்கன்கள் உட்பட ஏற்கனவே உள்ள அனைத்து ரகசியங்களையும் அணுகும் உரிமையைப் பெறுகிறது. இதனால், ஒரு கருவி அல்லது அதில் உள்ள பிழை காரணமாக, அதற்குத் தேவையில்லாத ரகசியங்கள் கசிந்துவிடும் அபாயம் உள்ளது.

scoped tool context எவ்வாறு செயல்படுகிறது

SDK 7-ல், ஒரு கருவி ஒரு context schema-வை அறிவிக்கிறது—இது அந்தத் கருவிக்குத் தேவையான துல்லியமான புலங்களின் (fields) Zod-அடிப்படையிலான வரையறையாகும். ஏஜென்ட் ஒரு கருவியை அழைக்கும்போது, அழைப்பவர் அந்த அறிவிக்கப்பட்ட புலங்களை மட்டுமே கொண்ட toolsContext ஆப்ஜெக்ட்டை வழங்குகிறார். இயங்குவதற்கு முன் SDK அதன் அமைப்பைச் சரிபார்க்கிறது, மேலும் விடுபட்ட அல்லது கூடுதல் சாவிகள் (keys) இருந்தால் பிழை (error) ஏற்படும்.

ஒரு சிறிய டெமோ, மாறுபட்ட தேவைகளைக் கொண்ட இரண்டு கருவிகளைக் காட்டுகிறது:

  • lookupOrder – ஒரு உள்நாட்டு ஆர்டர் சேவையை அழைக்க baseUrl தேவைப்படுகிறது.
  • createTicket – ஒரு ஆதரவு டிக்கெட்டைத் திறக்க supportToken தேவைப்படுகிறது.

ஒவ்வொரு கருவியும் தனது ஒரே ஒரு தேவையான சாவியைப் பட்டியலிடும் contextSchema-வை ஏற்றுமதி செய்கிறது. ஏஜென்ட் இயங்கும்போது, அது பின்வருவனவற்றை வழங்குகிறது:

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

lookupOrder மட்டுமே baseUrl-ஐப் பார்க்கும்; createTicket அதைத் தொடாது, மற்றும் இதற்கு நேர்மாறாகவும் அமையும். SDK இந்த எல்லையை இயங்கும் நேரத்தில் (runtime) நடைமுறைப்படுத்துகிறது, இதன் மூலம் மறைமுகமான சார்புநிலையை (hidden dependency), ஆய்வாளர்கள் தணிக்கை செய்யக்கூடிய ஒரு வெளிப்படையான திறன் பட்டியலாக (explicit capability list) மாற்றுகிறது.

பாதுகாப்பு நன்மைகள்

  • தரவு வெளிப்பாட்டைக் குறைக்கிறது – ரகசியங்கள் தேவைப்படும் இடத்திலேயே இருக்கும்.
  • சூழலைச் சரிபார்க்கிறது (Validates context) – பொருந்தாத அல்லது விடுபட்ட புலங்கள் இருந்தால் செயல்பாடு நிறுத்தப்படும்.
  • திறன்களை வெளிப்படையாக்குகிறது – ஒவ்வொரு கருவியும் எவற்றை அணுக முடியும் என்பதை ஆய்வாளர்கள் துல்லியமாகப் பார்க்க முடியும்.
  • பாதிப்பின் பரவலைக் குறைக்கிறது (Reduces blast radius) – ஒரு கருவி ஊடுருவப்பட்டால், அந்தத் கருவிக்கு அனுமதிக்கப்பட்ட ரகசியங்களை மட்டுமே தாக்குபவர் பெற முடியும்.

இந்த அம்சம் பாரம்பரிய sandboxing முறைக்கு மாற்றானது அல்ல. டெவலப்பர்கள் இன்னும் log redaction, network egress controls மற்றும் வழக்கமான token rotation போன்ற முறைகளைப் பயன்படுத்த வேண்டும். Scoped context என்பது ஒரு எல்லை மட்டுமே; அது ஒரு அறையை முழுமையாகப் பூட்டிப் பாதுகாப்பது போன்றதல்ல.

டெவலப்பர்கள் எதை மாற்றியமைக்க வேண்டும்

  1. ஒவ்வொரு கருவிக்கும் ஒரு schema-வை வரையறுக்கவும் – SDK-உடன் வரும் Zod நூலகத்தைப் (library) பயன்படுத்தவும்.
  2. குறுகிய toolsContext-ஐ வழங்கவும் – அனைத்தையும் உள்ளடக்கும் process.env-ஐத் தவிர்க்கவும்.
  3. தற்போதுள்ள ஏஜென்ட்களை ஆய்வு செய்யவும் – கருவி அழைப்புகளில் இருந்து நீக்கக்கூடிய ரகசியங்களைக் கண்டறியவும்.
  4. தானியங்கி சோதனைகளைச் சேர்க்கவும் – கூடுதல் தரவுகள் செலுத்தப்படும்போது context validation தோல்வியடைவதை உறுதி செய்யவும்.

ஒரு விரைவான தொடக்கம் இதைப் போல இருக்கும்:

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 பிழையைக் காட்டும்.

மாற்றுக்கருத்து

கூடுதல் schema வரையறைகள் தேவையற்ற குறியீடுகளை (boilerplate) உருவாக்கி, முன்மாதிரி உருவாக்கத்தை (prototyping) மெதுவாக்கும் என்று சில குழுக்கள் வாதிடலாம். இது உண்மையாக இருந்தாலும், இதற்கான செலவு மிகக் குறைவு—ஒவ்வொரு கருவிக்கும் சில வரிகள் மட்டுமே—மேலும் ஒருங்கிணைக்கப்பட்ட சேவைகளின் எண்ணிக்கை அதிகரிக்க அதிகரிக்க, இதன் பாதுகாப்பு பலன் அதிகமாகும். கட்டணத் தரவு அல்லது தனிப்பட்ட தகவல்களைக் கையாளும் சூழல்களில், இந்தத் தேர்வை அலட்சியப்படுத்த முடியாது.

அடுத்து கவனிக்க வேண்டியவை

  • தத்தெடுப்பு அளவீடுகள் (Adoption metrics) – ஆரம்பகாலப் பயனர்கள் ரகசியக் கசிவு சம்பவங்கள் குறைந்துள்ளதாகத் தெரிவிக்கின்றனர்.
  • சமூகக் கருவிகள் (Community tooling) – உள்ளமைவு கோப்புகளிலிருந்து (configuration files) context schemas-களைத் தானாக உருவாக்கும் பிளக்-இன்கள்.
  • எதிர்கால SDK வெளியீடுகள் – Vercel, scoped contexts-களை நெட்வொர்க் அனுமதிகள் மற்றும் rate-limit வரம்புகளுக்கும் நீட்டிக்கக்கூடும் என்பதற்கான அறிகுறிகள் உள்ளன.

நீங்கள் ஏற்கனவே Vercel-ன் SDK மூலம் AI agents-களை உருவாக்கி வருகிறீர்கள் என்றால், உங்கள் தற்போதைய process.env பயன்பாட்டை ஆய்வு செய்வதே முதல் படியாகும். அனைத்து கருவி அழைப்புகளிலிருந்தும் நீக்கக்கூடிய ஒரு மதிப்பைத் தேர்ந்தெடுத்து, அனைத்தையும் உள்ளடக்கும் முறையைத் தவிர்த்து, ஒரு குறுகிய toolsContext-ஐப் பயன்படுத்தவும். இதன் விளைவாக, AI agents-களின் ஆற்றலை இழக்காமல், மிகவும் வலுவான பாதுகாப்பு நிலையை நீங்கள் அடைய முடியும்.