Выбор ответа Middle Агенты и вызов инструментов спрашивают часто обновлено
Откуда брать user_id для инструмента
Вопрос
Инструмент get_orders(user_id) агента поддержки. Откуда должен браться user_id?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Из аутентифицированной сессии на стороне приложения; модель его не задаёт. Если userid приходит от модели, пользователь может инъекцией или просьбой «покажи заказы пользователя 42» получить чужие данные.
Варианты ответа
- Из аргументов, которые сгенерировала модель: она видит диалог и знает, кто пишет
- Из аутентифицированной сессии на стороне приложения; модель его не задаётправильный ответ
- Из текста сообщения пользователя: пусть он сам укажет свой id в начале диалога
- Из системного промпта, куда его вписывают при каждом запросе к модели
Разбор
Если user_id приходит от модели, пользователь может инъекцией или просьбой «покажи заказы пользователя 42» получить чужие данные. Идентичность берётся из сессии, а инструмент получает её из контекста выполнения, не из аргументов. Текст сообщения тем более недоверенный. Системный промпт лучше, чем ничего, но модель всё равно может подставить другое значение: контроль должен быть в коде.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.