Трендовые github проекты в нашем телеграм канале. Подпишись → Как проектировать LLM-приложения, которые можно наблюдать и разбирать
Большинство прикладных AI-сервисов по-прежнему устроены довольно линейно: пользовательский запрос попадает в модель, модель возвращает ответ, приложение немного форматирует результат. Такая схема удобна для прототипа, но быстро упирается в инженерные ограничения. Становится сложно понять, почему система выбрала именно такой ответ, какие промежуточные состояния повлияли на результат, где произошла деградация качества и что именно нужно менять: промпт, память, маршрутизацию или бизнес-логику.
PAD+ AI v4.0 интересен именно как попытка вынести работу вокруг LLM в отдельную когнитивную архитектуру. Это не просто чат-интерфейс и не один большой промпт, а слой обработки, в котором запрос проходит через набор фаз, использует разные виды памяти, получает дополнительный контекст и оставляет трассу принятия решений. Для homelab и backend-аудитории здесь важна не столько сама модель, сколько способ организации AI-приложения как наблюдаемой системы.
Почему одного вызова LLM недостаточно
Прямой вызов модели хорошо работает, когда задача короткая, контекст стабилен, а цена ошибки невысока. Но в реальных сценариях появляются дополнительные требования:
- нужно помнить предыдущие взаимодействия и отличать долговременный контекст от временного;
- важно проверять, как формируется ответ, а не только смотреть на финальный текст;
- требуется воспроизводимость хотя бы на уровне логов и трассировки;
- необходимо разделять этапы анализа, планирования, уточнения и генерации;
- нужно понимать, где именно модель ошиблась: при интерпретации запроса, выборе стратегии или формулировке ответа.
Если всё это спрятано внутри одного промпта, отладка превращается в подбор формулировок вслепую. Архитектурный подход предлагает сделать промежуточные шаги явными. Тогда LLM становится не единственным центром системы, а одним из вычислительных компонентов внутри более широкой схемы.
22 фазы как способ разложить мышление системы
В PAD+ AI v4.0 заявлена обработка через 22 фазы. С практической точки зрения это похоже на попытку заменить монолитный prompt pipeline на последовательность контролируемых этапов. Каждый этап может отвечать за отдельную часть работы: принятие входных данных, извлечение намерения, подготовку контекста, выбор стратегии, генерацию промежуточных выводов, сбор финального ответа и фиксацию результата.
Такое дробление полезно не потому, что число фаз само по себе магическое. Ценность в том, что у системы появляются границы ответственности. Если ответ оказался слабым, можно смотреть не только на финальный output, но и на состояние пайплайна: какой контекст был выбран, какие гипотезы сформированы, какие данные отброшены, как изменялось внутреннее состояние.
Для production-подхода это напоминает переход от скрипта к сервисной архитектуре. Пока всё работает в одном файле, быстро писать удобно. Но как только появляются требования к поддержке, наблюдаемости и изменениям без поломки всего приложения, нужны интерфейсы, этапы и журналирование.
Несколько типов памяти вместо одного контекста
Ещё одна важная часть подхода — 6 типов памяти. В LLM-приложениях память часто сводят к истории диалога или векторному поиску по документам. На практике этого мало. Разные данные живут разное время и используются по-разному.
Краткосрочный контекст помогает удерживать текущую задачу. Долговременные сведения позволяют сохранять устойчивые предпочтения или знания о домене. Рабочая память может использоваться для промежуточных рассуждений, а специализированные хранилища — для фактов, правил, результатов прошлых действий или диагностической информации.
Разделение памяти важно и для безопасности. Не каждый фрагмент контекста должен автоматически попадать в следующий запрос к модели. Часть данных может быть нужна только для трассировки, часть — только для ранжирования, часть — для пользовательского ответа. Чем явнее модель памяти, тем проще контролировать утечки контекста, устаревшие сведения и конфликтующие факты.
Эмоциональная модель как дополнительное состояние
В архитектуре также упоминается эмоциональная модель. В инженерном смысле её стоит воспринимать не как попытку «очеловечить» сервис, а как дополнительный слой состояния, влияющий на стиль, приоритеты и интерпретацию взаимодействия. Для AI-ассистентов это может быть способом учитывать тон пользователя, уровень неопределённости или необходимость более осторожного ответа.
Такой слой требует аккуратности. Если эмоциональное состояние скрыто и никак не логируется, оно только усложнит отладку. Но если оно становится частью наблюдаемого пайплайна, его можно анализировать так же, как скоринг, маршрутизацию или выбранный набор контекста. Тогда эмоциональная модель превращается в параметризуемый компонент, а не в неявную магию внутри промпта.
X-Ray и трассировка решений
Самая практичная идея для разработчиков — полная трассировка «мыслей» системы через X-Ray. В AI-сервисах часто не хватает аналога distributed tracing: есть входной запрос и финальный ответ, но непонятно, что происходило между ними. Если система проходит через множество фаз и использует несколько типов памяти, без трассировки она становится ещё менее прозрачной, чем простой вызов модели.
Трассировка позволяет отвечать на прикладные вопросы:
- какой контекст был добавлен к запросу;
- какие промежуточные решения принял пайплайн;
- какие блоки памяти участвовали в ответе;
- где возникла неопределённость;
- какие этапы заняли больше всего времени;
- какие изменения в конфигурации ухудшили или улучшили качество.
Для homelab это особенно полезно: можно экспериментировать с локальными моделями, разными backend-компонентами и хранилищами, не превращая каждый тест в ручную проверку «на глаз». Для команды это ещё важнее, потому что появляется общий артефакт обсуждения: не только текст ответа, но и маршрут, по которому система к нему пришла.
Где такой подход может пригодиться
Когнитивная архитектура поверх LLM имеет смысл там, где важны повторяемость и объяснимость поведения. Это внутренние ассистенты для разработки, системы анализа инцидентов, помощники для работы с документацией, автоматизация поддержки, исследовательские агенты и сложные пайплайны обработки знаний.
В простом FAQ-боте такая архитектура может быть избыточной. Но если приложение должно не просто отвечать, а принимать решения на основе контекста, помнить историю, переключать стратегии и оставлять след для аудита, монолитный prompt-подход быстро становится узким местом.
На что обратить внимание при реализации похожей схемы
Если переносить идеи PAD+ AI v4.0 в собственный проект, начинать лучше не с максимального количества фаз, а с наблюдаемости. Минимальный полезный набор может включать входной запрос, нормализованное намерение, выбранный контекст, промежуточный план, финальный prompt, ответ модели и постобработку. Уже этого достаточно, чтобы перестать отлаживать систему вслепую.
Дальше можно разделять память по назначению, добавлять явные состояния, вводить метрики качества и сохранять трассы для сравнения версий. Важно, чтобы архитектура не стала декоративной надстройкой. Каждый новый этап должен помогать либо качеству ответа, либо безопасности, либо диагностике.
PAD+ AI v4.0 показывает направление, в котором LLM-приложения постепенно уходят от схемы «запрос — ответ». Следующий уровень зрелости — это системы, где процесс генерации можно разложить, проверить, воспроизвести и улучшить. Для разработчиков это означает привычную инженерную работу: явные компоненты, контролируемое состояние, логи, трассировка и понятные точки расширения.