Vercel випустила 7-му версію свого AI SDK із функцією scoped tool context, яка змушує кожен інструмент в AI-агенті отримувати лише ті секрети, які він явно оголошує. Обмежуючи доступ, розробники можуть запобігти випадковому перегляду всіх облікових даних, збережених у середовищі, сторонніми інструментами.
Чому це важливо
AI-агенти часто поєднують кілька зовнішніх сервісів — пошук замовлень, створення тікетів, обробку платежів — кожен із яких потребує власних API-ключів або URL-адрес. Поширеним спрощенням є передача всього об'єкта process.env кожному інструменту:
execute(input, { context: process.env })
Такий підхід створює неявне розширення привілеїв: додавання нового інструменту миттєво надає йому доступ до всіх наявних секретів, включаючи паролі до баз даних або платіжні токени, без жодних попереджень під час перегляду коду. Ризик полягає в тому, що зламаний або помилковий інструмент може раптово розкрити облікові дані, які ніколи не призначалися для нього.
Як працює scoped tool context
В SDK 7 інструмент оголошує context schema — визначення на основі Zod для конкретних полів, які йому потрібні. Коли агент викликає інструмент, викликаюча сторона надає об'єкт toolsContext, який містить лише оголошені поля. SDK перевіряє структуру перед виконанням, і будь-які відсутні або зайві ключі призводять до помилки.
Мінімальна демонстрація показує два інструменти з різними вимогами:
- lookupOrder – потребує
baseUrlдля виклику внутрішнього сервісу замовлень. - createTicket – потребує
supportTokenдля відкриття тікета підтримки.
Кожен інструмент експортує contextSchema, у якому перелічено його єдиний необхідний ключ. Під час роботи агента передається:
{
lookupOrder: { baseUrl: "https://orders.internal" },
createTicket: { supportToken: "s3cr3t-token" }
}
Тільки lookupOrder бачить baseUrl; createTicket ніколи не торкається його, і навпаки. SDK забезпечує цю межу під час виконання, перетворюючи приховану залежність на явний список можливостей, який можна перевірити під час аудиту.
Переваги для безпеки
- Обмеження розкриття даних – облікові дані залишаються там, де вони потрібні.
- Валідація контексту – невідповідність або відсутність полів перериває виконання.
- Явні можливості – рецензенти можуть бачити, до чого саме має доступ кожен інструмент.
- Зменшення радіусу ураження – якщо інструмент буде зламано, зловмисник отримає лише ті секрети, які були дозволені цьому інструменту.
Ця функція не замінює традиційне використання пісочниць (sandboxing). Розробники все одно повинні використовувати маскування логів, контроль вихідного трафіку мережі та регулярну ротацію токенів. Scoped context — це межа; вона не закриває кімнату на замок.
Що потрібно змінити розробникам
- Визначте схему для кожного інструменту – використовуйте бібліотеку Zod, що постачається з SDK.
- Передавайте вузький
toolsContext– уникайте використанняprocess.envдля всього підряд. - Перегляньте існуючих агентів – виявіть секрети, які можна видалити з викликів інструментів.
- Додайте автоматизовані тести – переконайтеся, що валідація контексту завершується помилкою при спробі передати зайві дані.
Швидкий старт виглядає так:
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 видасть помилку, якщо ви спробуєте надати інструменту секрет, про який він не просив.
Контраргумент
Деякі команди можуть стверджувати, що додаткові визначення схем створюють зайвий шаблонний код (boilerplate) і сповільнюють прототипування. Хоча це правда, ціна є помірною — лише кілька рядків на інструмент — а вигода для безпеки зростає разом із кількістю інтегрованих сервісів. В середовищах, що працюють із платіжними даними або персональною інформацією, цей компроміс важко ігнорувати.
На що звернути увагу далі
- Метрики впровадження – перші користувачі повідомляють про меншу кількість інцидентів із витоком секретів.
- Інструментарій спільноти – плагіни, які автоматично генерують схеми контексту з конфігураційних файлів.
- Майбутні релізи SDK – натяки на те, що Vercel може розширити scoped contexts, включивши мережеві дозволи та обмеження частоти запитів (rate-limit caps).
Якщо ви вже створюєте AI-агентів за допомогою Vercel SDK, першим кроком має бути аудит поточного використання process.env. Визначте єдине значення, яке можна видалити з усіх викликів інструментів, і замініть шаблон "для всього підряд" на обмежений toolsContext. Результатом буде посилення безпеки без втрати гнучкості, яка робить AI-агентів потужними.
