SGR + AI Test-Driven Development + Metaprompting
Уровень 1: AI-TDD
Когда разрабатываешь тот или иной функционал с ллмками, очень круто работает подход, когда сначала пишешь хорошие тесты (часто можно нагенерить прямо через какую-нибудь мощную ллмку типа GPT-5 high), потом просто просишь кодагента итеративно запускать тесты и улучшать код в соответствии с фидбеком до тех пор, пока тесты не пройдут. Давайте назовем этот подход AI-TDD. Это довольно рисковый подход, я бы сказал на гране, т. к. некоторые ллмки и агенты могут начать просто подгонять код под тесты, тупо вставляя заглушки — Sonnet модельки таким грешат, а вот GPT-5 ведет себя честнее. Еще, может показаться, что такой подход слегка противоречит популярными нынче Spec-Driven Development (о котором мы поговорим позже). Но на самом деле нет, т. к. AI-TDD — это скорее про подход к решению более сложных и запутанных задач, в которых как ты спеку ни пиши, ллмки все равно ошибутся в итоговом коде, ну либо спеку можно вывести только из итогового кода (в случае с CodeAlive мы такой финт ушами делали, например, в задаче на парсинг кода).
Уровень 2: AI-TDD + Metaprompting
Так вот, если вдруг у вас есть продукты с LLM под капотом или вы что-то такое планируете, то возьмите на заметку еще один паттерн — AI-TDD + метапромтинг. Что это за зверь? В целом метапроптинг — довольно простая техника, когда промпт для LLM генерирует другая LLM (обычно более мощная), мы регулярно такое практикуем. Ну а соединив метапромтинг с AI-TDD, мы получим кейс, в котором кодагент итеративно улучшает промпт. Здесь важно отметить, что промтингом обязательно должна заниматься рассуждающая модель — я использую GPT-5 high через Codex CLI (codex --config model_reasoning_effort="high"). Давайте для простоты назовем такого агента-метапромптера супервайзером.
Кстати, про сам этот термин «метапромптинг» я узнал еще в прошлом году из давнего курса OpenAI про использование модели o1, там они использовали o1 для улучшения политик (это часть промпта) для 4o-mini. Тогда меня очень впечатлил этот подход и, кажется, что тогда он как-то остался незамеченным.
Уровень 3: AI-TDD + Metaprompting + SGR (SO + CoT)
Хорошо, погружаемся еще глубже. То, что описано выше уже может неплохо работать, но отлаживать такое (а значит, и улучшать) может быть проблематично, т. к. все, что происходит внутри LLM — черный ящик. Было бы неплохо прикрутить к ответу LLM какую-нибудь «отладочную» информацию — тогда супервайзеру будет легче понять причину проблемы и внести более точные правки в промпт. И здесь можно взять старый добрый CoT (Chain Of Thoughts) — это когда мы просим модельку подумать «шаг за шагом» перед тем, как ответить. Но CoT не всегда подходит, т. к. чаще всего в продуктах с LLM под капотом мы получаем от нейронки ответы в структурированном виде (Structured Output) и вот здесь к нам на помощь приходит подход SO + CoT или, как его нынче называют, SGR — Scheme Guided Reasoning (за термин спасибо Ринату из канала LLM под капотом). Базово, идея в том, чтобы каждый шаг, каждое свое решение LLMка сопровождала рассуждениями и свидетельствами. Если совсем упрощенно, то если раньше мы получали ответ в формате { "result": 42 }, то теперь мы получаем ответ в формате { "reasoning_steps": "...тут шаги с 'мыслями' LLM о том, как именно она пришла к ответу...", "result": 42 }. В итоге, мы, во-первых, получаем ту самую «отладочную информацию», а во вторых, еще сразу повышаем точность ответов, т. к. добавление рассуждений в output non-reasoning модели обычно уже само по себе делает модельку умнее. Ну вот и все, теперь запускаем наш пайплайн метапромтинга по TDD на новом уровне. А кому интересно еще глубже нырнуть в SGR, добро пожаловать в канал Рината: https://t.me/llm_under_hood/625
И вот отличный пример Deep Research + SGR от Валеры Ковальского: https://github.com/vamplabAI/sgr-deep-research
У нас в CodeAlive много всего интересного используется — и GraphRAG и агенты, интересно ли больше контента на эту тему? Или лучше что-то более прикладное про LLM/агентов в кейсах разработки?

Добавить комментарий