LLM против AI-агента: отвечая на вопрос интервью с помощью шести дополнительных ответов
Имитация собеседования с инженером по ИИ охватывает функции больших языковых моделей, вызовы инструментов, границы выполнения, циклы агентов, параллельные вызовы и меры безопасности при возвратах средств в системе поддержки.
Источники: Can You Answer This ₹40 LPA AI Engineer Interview Question? LLM vs AI Agent
Если спросить кандидата на должность инженера ИИ, что отличает LLM от агента ИИ, типичный первый ответ заключается в том, что LLM генерирует текст, в то время как агент совершает действия. Интервьюер редко кивает и переходит дальше. Дальнейшие вопросы показывают, работал ли кандидат с реальными системами или просто запомнил определения. Вот как обычно развивается такой диалог, по одному вопросу за раз.
Что делает LLM самостоятельно
Модель языка генерирует результат на основе предоставленного ей контекста. Она может объяснить ошибку, подвести итоги логов, вставленных в запрос, или вернуть структурированные данные. Она не может получить доступ к частной базе данных просто потому, что кто-то этого попросил. Поэтому, когда интервьюер спрашивает, как помощник ИИ может проверить актуальную транзакцию, ответ заключается в использовании инструментов и кода приложения.
Как используется инструмент
Представьте сообщение клиента: «Моя оплата прошла успешно, но заказ не был создан». Бэкенд предоставляет несколько узких функций:
getPaymentStatus(transactionId)
getOrderStatus(transactionId)
createSupportTicket(details)
Приложение отправляет их имена и схемы параметров вместе с разговором, и модель может ответить чем-то вроде этого:
{
name: "getPaymentStatus",
arguments: { transactionId: "txn_123" }
}
Следующий вопрос интервьюера — ловушка: вызвала ли модель сервис оплаты? Нет. Она сгенерировала структурированный запрос на использование инструмента. Ничего ещё не было запущено.
Кто на самом деле совершает вызов
Это делает бэкенд. Настоящий процесс состоит из шести шагов:
- Приложение отправляет запрос вместе с определениями инструментов.
- Модель возвращает название инструмента и аргументы.
- Бэкенд проверяет введённые данные и разрешения вызывающего пользователя.
- Он запускает одобренную функцию.
- Результат возвращается к модели в качестве нового контекста.
- Модель запрашивает другой инструмент или даёт свой окончательный ответ.
Короче говоря, LLM предлагает действия, а приложение отвечает за их выполнение, управление учётными данными и контроль доступа. Эту фразу стоит знать наизусть, потому что именно её интервьюеры высокого уровня постоянно проверяют.
Что превращает это в агента
На доске уравнение выглядит кратко:
AI Agent = LLM + Instructions + Tools + State + Execution Loop
Агент отслеживает свое состояние, выбирает действие, получает результат и переоценивает ситуацию, что формирует цикл:
Observe → Decide → Request Tool → Execute → Observe Result → Continue or Stop
Затем возникает вопрос о том, кто это останавливает. Модель может дать окончательный ответ, но приложение должно устанавливать ограничения. Цикл следует завершаться при достижении лимита количества попыток, истечении времени ожидания, возникновении неисправимой ошибки или при необходимости получения одобрения человека.
Запуск нескольких инструментов одновременно
Возможность одновременного запуска запросов зависит от взаимосвязей между данными. Для определения статуса платежа и статуса заказа требуется только ID транзакции, поэтому их можно получить параллельно:
const [payment, order] = await Promise.all([
getPaymentStatus(transactionId),
getOrderStatus(transactionId)
]);
Теперь предположим, что ответ о платеже содержит ссылку на шлюз, необходимую для следующего вызова. Вторая операция должна ждать первой:
const payment = await getPaymentStatus(transactionId);
const gateway = await getGatewayDetails(payment.gatewayRef);
Хороший ответ показывает, что кандидат проверяет независимость звонков перед их параллелизацией.
Разрешение агенту осуществить возврат средств
Правильным ответом будет утверждение, что одного лишь запроса от модели недостаточно. Бэкенд должен проверить клиента, являющегося владельцем транзакции, определить, подходит ли она для возврата и каковы соответствующие лимиты. Для операции записи требуются ключ идемпотентности и журнал аудита, к тому же для крупных возвратов может потребоваться одобрение человека. Системное указание вида «возврат только для действительных транзакций» служит руководством для модели; оно не считается авторизацией.
Как интервьюер оценивает ответ
Первый ответ — «LLM генерирует ответы, а агент выполняет действия» — был слишком поверхностным для должности высокого уровня. В нем не говорилось, кто выполняет действия, у кого есть разрешения и что предотвращает небезопасные операции. После дополнительных вопросов кандидат смог дать более содержательный ответ, но чтобы с самого начала достичь уровня высокой должности, в первом ответе следовало сразу упомянуть границы применения и цикл работы агента.