Применение LLM для анализа и проектирования
Последние полгода пользуюсь LLM для анализа и разработки и к этому моменту сложилось понимание, что именно делать чтобы извлечь максимум пользы из ИИ.
Самое главное что я для себя уяснил: работу по анализу моделька за меня не сделает. Очень много рутины может взять на себя, сделать кросс-проверку по требованиям, чтобы не противоречили сами себе разные части документации; может указать на области, которые я забыл описать или описал слабо. Но понимать, что именно я делаю и зачем, всё равно должен я сам: это настолько сильно меняется от проекта к проекту в интеграторе, что универсального рецепта как не было, так и нет.
Для чего конкретно я применяю агентов:
(а) формирую документы по пользовательским/бизнес требованиям на основе интервью;
(б) анализирую существующую документацию по разрозненным системам у заказчика (господь, храни 1С);
(в) анализирую реальный код систем, чтобы понять, как они функционируют и дописываю требования и задачи на доработку.
Как я это работаю:
(1) Инструментарий: Cursor IDE, встроенные модели Composer 1.5/2, в последнее время Custom API Key от OpenRouter. Автороутер по моделям anthropic/*, но там неожиданно дорогой Claude Opus 4.6. Нашёл неплохую xiaomi/mimo-v2-pro, по результатам радует. Но действительно сложные вещи приходится гонять через Opus.
(2) Многоступенчатая работа в режиме промптов:
- сперва готовлю семантический граф знаний по проекту, складываю доки в читаемых форматах, делаю предварительные прогоны для выжимки для агентов (диаграммы, таблицы и прочее). Граф сохраняю в виде XML, отдельный навык/правила на это;
- затем с помощью агента генерю промпт по специальным правилам, которые устанавливают правильный alignment модели, управляемый belief state и погружает агента в контекст задачи. Читайте про то, как работает трансформер, что такое sparse attention и проблема lost in the middle;
- затем уже самой дорогой моделью выполняю задачу по сгенерированному промпту. Обычно она работает 10-15 минут на сложных задачах. Бывает останавливается, переспрашивает (в промпте у меня есть строгие указания на этот счёт).
(3) Связность и непротиворечивость проверяю, вручную вычитывая получившиеся артефакты. Правлю, объясняю агенту что надо исправить — и главное, почему. Тогда он начинает подсказывать где ещё что надо поправить, понимая мое намерение, а не просто тупо задачу. (фан факт: в разговоре один из заказчиков назвал другого «Даней» и иишка везде в спеке стала так называть Даниила. Пришлось объяснять, что так нехорошо)
(4) На больших объемах документов контекстным окном управляю через семантический граф и промпт. Там строго написано не загружать нерелевантные задаче документы; граф лежит в XML и позволяет агенту на стадии sparse attention помечать только те документы, которые нужны для задачи.
Если работать с Cursor IDE напрямую через Anthropic, то у них есть встроенный механизм компактирования контекста, когда он его по мере надобности сжимает в вектор.
В моем случае при работе через API OpenRouter этот механизм не работает. Поэтому вручную слежу за размером окна.
Если грамотно разбивать работу по доменам и документам, то проблем обычно нет. Пока надобности с окне 1М токенов вообще не возникало. Это если ERP какую-нибудь в один присест надо прожевать — тогда да. К счастью, пока таких задач не было :))
На картинке — только кусочек рабочего промпта, он довольно длинный.
Расскажите, как у вас дела с ИИшками в работе?
#ии
Последние полгода пользуюсь LLM для анализа и разработки и к этому моменту сложилось понимание, что именно делать чтобы извлечь максимум пользы из ИИ.
Самое главное что я для себя уяснил: работу по анализу моделька за меня не сделает. Очень много рутины может взять на себя, сделать кросс-проверку по требованиям, чтобы не противоречили сами себе разные части документации; может указать на области, которые я забыл описать или описал слабо. Но понимать, что именно я делаю и зачем, всё равно должен я сам: это настолько сильно меняется от проекта к проекту в интеграторе, что универсального рецепта как не было, так и нет.
Для чего конкретно я применяю агентов:
(а) формирую документы по пользовательским/бизнес требованиям на основе интервью;
(б) анализирую существующую документацию по разрозненным системам у заказчика (господь, храни 1С);
(в) анализирую реальный код систем, чтобы понять, как они функционируют и дописываю требования и задачи на доработку.
Как я это работаю:
(1) Инструментарий: Cursor IDE, встроенные модели Composer 1.5/2, в последнее время Custom API Key от OpenRouter. Автороутер по моделям anthropic/*, но там неожиданно дорогой Claude Opus 4.6. Нашёл неплохую xiaomi/mimo-v2-pro, по результатам радует. Но действительно сложные вещи приходится гонять через Opus.
(2) Многоступенчатая работа в режиме промптов:
- сперва готовлю семантический граф знаний по проекту, складываю доки в читаемых форматах, делаю предварительные прогоны для выжимки для агентов (диаграммы, таблицы и прочее). Граф сохраняю в виде XML, отдельный навык/правила на это;
- затем с помощью агента генерю промпт по специальным правилам, которые устанавливают правильный alignment модели, управляемый belief state и погружает агента в контекст задачи. Читайте про то, как работает трансформер, что такое sparse attention и проблема lost in the middle;
- затем уже самой дорогой моделью выполняю задачу по сгенерированному промпту. Обычно она работает 10-15 минут на сложных задачах. Бывает останавливается, переспрашивает (в промпте у меня есть строгие указания на этот счёт).
(3) Связность и непротиворечивость проверяю, вручную вычитывая получившиеся артефакты. Правлю, объясняю агенту что надо исправить — и главное, почему. Тогда он начинает подсказывать где ещё что надо поправить, понимая мое намерение, а не просто тупо задачу. (фан факт: в разговоре один из заказчиков назвал другого «Даней» и иишка везде в спеке стала так называть Даниила. Пришлось объяснять, что так нехорошо)
(4) На больших объемах документов контекстным окном управляю через семантический граф и промпт. Там строго написано не загружать нерелевантные задаче документы; граф лежит в XML и позволяет агенту на стадии sparse attention помечать только те документы, которые нужны для задачи.
Если работать с Cursor IDE напрямую через Anthropic, то у них есть встроенный механизм компактирования контекста, когда он его по мере надобности сжимает в вектор.
В моем случае при работе через API OpenRouter этот механизм не работает. Поэтому вручную слежу за размером окна.
Если грамотно разбивать работу по доменам и документам, то проблем обычно нет. Пока надобности с окне 1М токенов вообще не возникало. Это если ERP какую-нибудь в один присест надо прожевать — тогда да. К счастью, пока таких задач не было :))
На картинке — только кусочек рабочего промпта, он довольно длинный.
Расскажите, как у вас дела с ИИшками в работе?
#ии