Vercel نے اپنے AI SDK کا ورژن 7 متعارف کروا دیا ہے جس میں ایک scoped tool context فیچر شامل ہے جو یہ یقینی بناتا ہے کہ AI ایجنٹ کا ہر ٹول صرف وہی سیکرٹس (secrets) وصول کرے جن کا اس نے واضح طور پر اعلان کیا ہو۔ نمائش کو محدود کر کے، ڈویلپرز تھرڈ پارٹی ٹولز کو غلطی سے ان تمام کریڈنشلز (credentials) تک رسائی حاصل کرنے سے روک سکتے ہیں جو ان کے انوائرمنٹ میں محفوظ ہیں۔

یہ تبدیلی کیوں اہم ہے

AI ایجنٹس اکثر متعدد بیرونی سروسز کو آپس میں جوڑتے ہیں—جیسے آرڈر کی تلاش، ٹکٹ کی تخلیق، ادائیگیوں کی پروسیسنگ—جن میں سے ہر ایک کے لیے اپنی API keys یا URLs کی ضرورت ہوتی ہے۔ ایک عام شارٹ کٹ یہ ہے کہ ہر ٹول کو پورا process.env آبجیکٹ دے دیا جائے:

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

یہ پیٹرن ایک implicit privilege expansion (ضمنی مراعات میں اضافہ) پیدا کرتا ہے: ایک نیا ٹول شامل کرنے سے اسے فوری طور پر تمام موجودہ سیکرٹس تک رسائی مل جاتی ہے، بشمول ڈیٹا بیس پاس ورڈز یا پیمنٹ ٹوکنز، اور اس کے لیے کسی کوڈ ریویو کی ضرورت نہیں پڑتی۔ خطرہ یہ ہے کہ کوئی کمزور یا بگ والا ٹول اچانک ایسے کریڈنشلز لیک کر سکتا ہے جو کبھی اس کے لیے نہیں بنائے گئے تھے۔

scoped tool context کیسے کام کرتا ہے

SDK 7 میں، ایک ٹول ایک context schema کا اعلان کرتا ہے—جو کہ ان مخصوص فیلڈز کی Zod پر مبنی تعریف ہے جن کی اسے ضرورت ہے۔ جب ایجنٹ کسی ٹول کو کال کرتا ہے، تو کالر ایک toolsContext آبجیکٹ فراہم کرتا ہے جس میں صرف وہی اعلان کردہ فیلڈز شامل ہوتے ہیں۔ SDK عمل سے پہلے اس کی ساخت (shape) کی تصدیق کرتا ہے، اور کسی بھی گمشدہ یا اضافی کیز (keys) کی صورت میں ایرر (error) آ جاتا ہے۔

ایک مختصر ڈیمو دو ایسے ٹولز کو دکھاتا ہے جن کی ضروریات الگ الگ ہیں:

  • lookupOrder – اسے اندرونی آرڈر سروس کو کال کرنے کے لیے baseUrl کی ضرورت ہے۔
  • createTicket – اسے سپورٹ ٹکٹ کھولنے کے لیے supportToken کی ضرورت ہے۔

ہر ٹول ایک contextSchema ایکسپورٹ کرتا ہے جس میں اس کی واحد مطلوبہ کی (key) درج ہوتی ہے۔ جب ایجنٹ چلتا ہے، تو وہ یہ پاس کرتا ہے:

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

صرف lookupOrder ہی baseUrl دیکھ سکتا ہے؛ createTicket اسے کبھی نہیں چھوتا، اور اس کے برعکس بھی ہے۔ SDK رن ٹائم پر اس حد (boundary) کو نافذ کرتا ہے، جس سے ایک چھپی ہوئی وابستگی (dependency) ایک واضح صلاحیتوں کی فہرست (capability list) میں بدل جاتی ہے جسے ریویورز آڈٹ کر سکتے ہیں۔

سیکیورٹی کے فوائد

  • ڈیٹا کی نمائش کو محدود کرتا ہے – کریڈنشلز وہیں رہتے ہیں جہاں ان کی ضرورت ہوتی ہے۔
  • کانٹیکسٹ کی تصدیق کرتا ہے – غلط یا گمشدہ فیلڈز کی صورت میں عمل رک جاتا ہے۔
  • صلاحیتوں کو واضح بناتا ہے – ریویورز دیکھ سکتے ہیں کہ ہر ٹول کو کس چیز تک رسائی حاصل ہے۔
  • نقصان کے دائرہ کار (blast radius) کو کم کرتا ہے – اگر کوئی ٹول ہیک ہو جائے، تو حملہ آور کو صرف وہی سیکرٹس ملیں گے جن کی اس ٹول کو اجازت تھی۔

یہ فیچر روایتی sandboxing کا متبادل نہیں ہے۔ ڈویلپرز کو اب بھی log redaction، نیٹ ورک ایگریس کنٹرولز (network egress controls)، اور ریگولر ٹوکن روٹیشن کا استعمال کرنا چاہیے۔ scoped context ایک حد ہے؛ یہ کمرے کو مکمل طور پر سیل نہیں کرتا۔

ڈویلپرز کو کن چیزوں میں تبدیلی کرنے کی ضرورت ہے

  1. ہر ٹول کے لیے ایک schema تعریف کریں – SDK کے ساتھ آنے والی Zod لائبریری کا استعمال کریں۔
  2. محدود toolsContext پاس کریں – ہر چیز کے لیے استعمال ہونے والے process.env سے گریز کریں۔
  3. موجودہ ایجنٹس کا جائزہ لیں – ان تمام سیکرٹس کی نشاندہی کریں جنہیں ٹول کالز سے ہٹایا جا سکتا ہے۔
  4. خودکار ٹیسٹ شامل کریں – اس بات کو یقینی بنائیں کہ جب اضافی ڈیٹا شامل کیا جائے تو context validation فیل ہو جائے۔

ایک فوری آغاز (quick start) کچھ اس طرح نظر آتا ہے:

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) کوڈ کا اضافہ کرتی ہیں اور پروٹو ٹائپنگ کو سست کرتی ہیں۔ اگرچہ یہ سچ ہے، لیکن اس کی قیمت معمولی ہے—صرف فی ٹول چند لائنیں—اور سیکیورٹی کا فائدہ مربوط سروسز کی تعداد کے ساتھ بڑھتا جاتا ہے۔ ان ماحول میں جہاں پیمنٹ ڈیٹا یا ذاتی معلومات کو سنبھالا جاتا ہے، اس سمجھوتے کو نظر انداز کرنا مشکل ہے۔

آگے کیا نظر آئے گا

  • قبولیت کے پیمانے (Adoption metrics) – ابتدائی صارفین سیکرٹ لیک ہونے کے واقعات میں کمی کی اطلاع دے رہے ہیں۔
  • کمیونٹی ٹولنگ – ایسے پلگ انز جو کنفیگریشن فائلوں سے خودکار طور پر context schemas تیار کرتے ہیں۔
  • مستقبل کے SDK ریلیز – اشارے کہ Vercel scoped contexts کو نیٹ ورک پرمیشنز اور ریٹ لیمٹ کیپ (rate-limit caps) تک بڑھا سکتا ہے۔

اگر آپ پہلے سے ہی Vercel کے SDK کے ساتھ AI ایجنٹس بنا رہے ہیں، تو پہلا قدم اپنے موجودہ process.env کے استعمال کا جائزہ لینا ہے۔ اس واحد ویلیو کی نشاندہی کریں جسے تمام ٹول کالز سے ہٹایا جا سکتا ہے اور ہر چیز کے لیے استعمال ہونے والے پیٹرن کو ایک scoped toolsContext سے بدل دیں۔ اس کا نتیجہ بغیر کسی لچک کو قربان کیے ایک مضبوط سیکیورٹی پوزیشن کی صورت میں نکلے گا جو AI ایجنٹس کو طاقتور بناتی ہے۔