Выбор ответа Middle Агенты и вызов инструментов спрашивают часто обновлено

Откуда брать user_id для инструмента

Вопрос

Инструмент get_orders(user_id) агента поддержки. Откуда должен браться user_id?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Из аутентифицированной сессии на стороне приложения; модель его не задаёт. Если userid приходит от модели, пользователь может инъекцией или просьбой «покажи заказы пользователя 42» получить чужие данные.

Варианты ответа

  1. Из аргументов, которые сгенерировала модель: она видит диалог и знает, кто пишет
  2. Из аутентифицированной сессии на стороне приложения; модель его не задаётправильный ответ
  3. Из текста сообщения пользователя: пусть он сам укажет свой id в начале диалога
  4. Из системного промпта, куда его вписывают при каждом запросе к модели

Разбор

Если user_id приходит от модели, пользователь может инъекцией или просьбой «покажи заказы пользователя 42» получить чужие данные. Идентичность берётся из сессии, а инструмент получает её из контекста выполнения, не из аргументов. Текст сообщения тем более недоверенный. Системный промпт лучше, чем ничего, но модель всё равно может подставить другое значение: контроль должен быть в коде.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.