Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Это совершенно точно не из соображений безопасности — чем текст, полученный через HTTP/GET, может быть опаснее текста, загруженного непосредственно в чат, или прочитанного агентом из Вашего локального файла?
Причины неважны. Важен результат.
ЕМ>Именно поэтому я и пытаюсь понять, откуда столько восторгов о его якобы фантастических успехах в создании программного кода. Пока складывается впечатление, что на коде он лажается меньше просто потому, что имеет формальные правила оценки корректности, имеет обширную базу примеров хорошего кода, и имеет набор алгоритмических костылей для генерации и анализа.
На коде он лажается меньше в агентском режиме. Как раз потому, что у него там есть не просто какие-то воображаемые "правила", а реальные инструменты для "оценки корректности" и "анализа". Оттуда и восторги — на практике он позволяет очень хорошо работать с кодом.
При этом в режиме чата он очень-очень быстро деградирует от "кода, который не соответствует вкусам читателя" до "кода, который не компилируется вообще".
Иллюзии того, что в чат-режиме ИИ что-то там может напрограммировать связаны просто с тем, что клиент не проверяет результат.
Вот я смотрю за тем, что делает агент на локальной машине. Он совершенно не всегда порождает корректный код. Но локально он свой код сначала проверяет, а уже потом показывает пользователю.
Причём у меня в проекте ему даны инструкции обязательно сначала дизайнить архитектуру, потом тесты, потом код, потом поднимать тестовое покрытие. Именно это помогает мне не тратить время на рассмотрение каждой правки, которая чинит один тест и ломает другие семь.
Но в истории работы агента я все эти правки вижу. И понимаю, что в режиме чата он бы просто отдал мне вот этот вот сырой код как готовое решение. Работа с чатом — это работа джуном под управлением сениора. Ты его такой спрашиваешь "а как мне найти приложение, которое многократно читает реестр и/или один и тот же файл". А он тебе отвечает "ну вот так-то и так-то, вот тебе пример кода". Ты ему "код не компилируется" — "ну так это была идея кода, я думал ты сам справишься".
А в режиме агента ты работаешь как сениор, руководя мидлом. "Сделай мне инструмент для поиска приложений, которые многократно читают реестр и/или один и тот же файл". И вот он пошёл лопатить. "А, нет, такой функции и правда нет, исправляем. Ага, приложение не запустилось, сейчас посмотрим в чём дело. Так, добавим логи вокруг вызовов, чтобы понять точную причину падения". И так от пары минут до нескольких часов — как задачу поставишь.
Зато потом приносит то, что очень похоже на нужный результат.
Если интересует качество кода, а не только "чтобы тесты проходили", то нужно тщательнее контролировать остальные этапы, да ещё и иногда заставлять делать рефакторинг.
ЕМ>Про такое не стоит говорить "нет доступа".
Правильнее будет "их попросили этого не делать, и они пообещали".
Нет, не правильнее.
ЕМ>Никто. Самое смешное, что он может это сделать не только по злому умыслу разработчиков-обучателей, но и полностью самостоятельно, если каким-то образом придет к выводу, что так будет "правильно".
Самое смешное, что он этого не сможет сделать, если вы самостоятельно не дадите ему такую возможность.
ЕМ>Если "не разрешаю" означает лишь настройки агента, то это такой себе запрет...
Это комбинация настроек песочницы и "уговоров" агента.
Движочек паранойи можно двигать в те или иные стороны. В левом положении у него вообще нет ничего, кроме доступа на чтение в фолдер сессии. И каждую правку в файл он будет вынужден запрашивать у пользователя. Не потому, что у него в промпте написано, а потому что песочница исполняется под такими правами. Попытка запустить какой-нибудь git push в такой песочнице упрётся в cannot connect to host. В правом положении у него полный доступ ко всей машине и к сети.