Мысли по поводу ИИ-агентов
Я тут немного погрузился в программирование ИИ-агентов. Но не тех агентов, которые просто выдают пользователю текст, который получили от LLM, а которые должны что-то делать на основе текста, полученного от модели. Это какой-то шизофренический опыт, противоречащий всему программированию, к которому я привык за свою жизнь.
Обычно, если ты вызываешь функцию или делаешь удаленный запрос, то ты знаешь, что и в каком формате ты получишь в ответ, главное не забыть обработать типичные ошибки вроде отсутствия связи или неправильной авторизации. Количество таких ошибок конечно. А когда агент общается с моделью, в общем случае вообще не известно, что модель ему ответит. И хуже того, каждый повторный запрос выдаст разный результат.
Можно (и нужно) просить модель выдать ответ в нужном формате (например, JSON с нужными полями), но это выглядит именно как просьба, в общем случае никто не обещает, что результат будет именно таким, и что кроме JSON болтливая модель не решит написать что-нибудь еще. А когда модель возвращает скрипт, который агент должен запустить у меня на компьютере, тут у меня начинается легкая паника.
Я пользуюсь некоторыми готовыми агентами, и вообще говоря, меня напрягает, когда они начинают лезть в файлы, которые по идее им не нужны для выполнения работы. Полбеды, если модель решит их просто прочитать (и отправить содержимое модели), а вдруг она захочет их перезаписать? В некоторых агентах есть ограничения, когда пользователь явно разрешает или запрещает модели лезть в какие-нибудь папки и файлы, но некоторые модели просто пишут скрипты на Python, bash или PowerShell, которые делают с файлами то, что они считают нужным. И как в такой ситуации можно хоть как-то гарантировать безопасность своих файлов? По идее надо научиться ограничивать права агентов на уровне операционной системы. Буду копать в эту сторону.


