AI: Архитектура проекта

Основные принципы

Способ организации

Иерархически структурированная (древовидная) система — подход к организации ПО, при котором система разбивается на компоненты, связанные в виде дерева: от главного модуля к более специализированным подмодулям.

Причины

    Сложность неструктурированной системы может легко выйти из-под контроля.
    Эффективность неструктурированной системы может быть крайне низкой.
    Выгода от координации в системе может снижаться, если затраты на её обеспечение в неструктурированных системах слишком высоки.

Особенности

    Иерархия модулей: Каждый уровень имеет родительские и дочерние элементы.
    Нисходящее проектирование: Система проектируется "сверху вниз", начиная с высокоуровневых абстракций.
    Инкапсуляция: Каждый модуль скрывает детали реализации, предоставляя интерфейс. При этом модуль может содержать внутри себя сколь угодно сложную логику.
    Контролируемые зависимости: Связи должны быть однонаправленными (от родителей к детям) и без скрытых эффектов.
    Sinks, Not Pipes: Модули должны заканчивать работу, а не запускать цепную реакцию скрытых вызовов.
    Соответствие файловой структуры: Файловая структура проекта должна строго соответствовать модульной декомпозиции.

Структура

  • Ствол и Ветви формируют Ядро системы:
  • Это основная архитектура, нефункциональные требования (NFRs).
  • Листья формируют Функционал:
  • Это изолированные компоненты, бизнес-логика (модули, Sinks).


Технический долг

  • Технический долг в "листьях" — это нормально и управляемо.
  • Технический долг в "стволе" или "ветвях" — это катастрофа, которая блокирует развитие.


Важность для AI

  • Без архитектуры:
  • Дрейф контекста: Агент "забывает" или теряет понимание системы.
  • Галлюцинации в ядре: Агент опирается на несуществующие или неверно понятые концепции.
  • Несогласованность: Модули перестают стыковаться.
  • Спагетти-код: Быстрое разрастание хаоса, который агент уже не может рефакторить.
  • С правильной архитектурой:
  • Четкие границы и контракты: Агент работает в изолированном "контексте".
  • Фиксированное ядро: Защита критических частей системы.
  • Снижение "зоны поражения": Ошибка агента локализована и не разрушает всю систему.
  • Тесты: чётко фиксируют границы ответственности и дозволенного для агента.


Зоны ответственности

  • Зона Архитектора:
  • Нефункциональные требования: Производительность, безопасность, масштабируемость, архитектура.
  • Формирование файловой структуры, контрактов и интерфейсов.
  • Контроль ядра и границ системы.
  • Зона AI-Агентов:
  • Функциональные требования: CRUD, бизнес-логика по спецификации.
  • Написание утилитарных функций, валидации и юнит-тестов.
  • Работа в изолированных, делегированных компонентах.