Лекция
Архитектура программного обеспечения — это основа, на которой строится любое цифровое решение. Она определяет не отдельные строки кода и не конкретные технологии, а общий способ организации системы: как ее части связаны между собой, как распределяются обязанности, как обеспечивается развитие, устойчивость и понятность проекта.
Встатье рассмотрены применение старых и новых вдов архитектур для использования с ИИ агентами
Для разработки с участием ИИ-агентов появляются не столько полностью новые “классические архитектуры”, сколько архитектурные стили и практики, которые делают проект понятным, изменяемым и безопасным для агента.
Главная идея: ИИ-агенту нужна архитектура с явными границами, маленькими модулями, хорошими контрактами и быстрыми тестами.
| Архитектурный подход | Насколько удобен для ИИ-агентов | Почему удобен | Риски / минусы |
|---|---|---|---|
| Модульный монолит | Очень высокий | Вся система в одном репозитории, но разделена на понятные модули. Агенту легче видеть связи и менять код без распределенной сложности | Нужно строго следить за границами модулей |
| Clean Architecture | Высокий | Четкие слои: domain, use cases, infrastructure, API. Агенту проще понять, куда добавлять бизнес-логику | Может быть много шаблонного кода |
| Hexagonal Architecture / Ports & Adapters | Очень высокий | Внешние системы отделены через интерфейсы. Агент может менять адаптер, не ломая домен | Для маленьких проектов может быть избыточна |
| DDD с Bounded Contexts | Высокий | Хорошо помогает делить сложную бизнес-логику на понятные области | Требует хороших названий и документации |
| Vertical Slice Architecture | Очень высокий | Код группируется по фичам: CreateOrder, CancelOrder, PayInvoice. Агенту проще менять одну фичу локально | Может быть дублирование между фичами |
| Microservices | Средний | Каждый сервис можно менять отдельно | Агенту сложнее учитывать сеть, контракты, деплой, версии API |
| Event-Driven Architecture | Средний / низкий | Хорошо разделяет части системы | Агенту сложнее отследить последствия событий и асинхронные цепочки |
| Layered Architecture | Средний | Простая и знакомая структура | Часто бизнес-логика размазывается по сервисам, агент может ошибиться с местом изменения |
| Serverless | Средний | Маленькие функции удобны для локальных изменений | Много скрытой платформенной логики, сложнее тестировать end-to-end |
| Plugin Architecture | Высокий | Агент может добавлять новые плагины без изменения ядра | Нужно хорошо спроектировать API плагинов |
три наиболее удобных варианта.
Это, пожалуй, самый практичный вариант.
app/
modules/
orders/
domain/
application/
infrastructure/
api/
payments/
domain/
application/
infrastructure/
api/
users/
domain/
application/
infrastructure/
api/
Почему хорошо для ИИ:
Задача: "добавь отмену заказа" Агент понимает: - идти в modules/orders - бизнес-правила искать в domain - сценарий отмены писать в application - endpoint добавить в api - работу с БД положить в infrastructure
Это снижает шанс, что агент начнет менять все подряд.
То есть бизнес-логика не зависит напрямую от базы данных, API, очередей или LLM. Она общается с ними через интерфейсы — порты и адаптеры.
Пример:
OrderService ├─ использует PaymentPort ├─ использует NotificationPort └─ не знает, Stripe там, PayPal или mock
Для ИИ-агента это важно, потому что он может:
Таком образом:: модульный монолит дает агенту понятные границы, а Clean/Hexagonal дает безопасные точки изменения.

Очень удобна для фичевой разработки с агентами.
features/
orders/
create-order/
command.ts
handler.ts
validator.ts
tests.ts
cancel-order/
command.ts
handler.ts
validator.ts
tests.ts
payments/
pay-invoice/
command.ts
handler.ts
tests.ts
Главная особенность: код лежит по пользовательским сценариям, а не только по техническим слоям.
Это удобно для промптов типа:
Добавь фичу "cancel order"
Агенту проще создать новую папку фичи и не трогать лишнее.
Недостаток: общую бизнес-модель все равно нужно держать аккуратно, иначе будет дублирование правил.
Главная идея:
одна бизнес-возможность = один вертикальный срез кода.
Это помогает агентам:
Таком образом:: Vertical Slice Architecture делает кодовую базу похожей на набор понятных задач, а не на лабиринт слоев.

Хорошо подходит, когда ИИ-агент должен часто добавлять новые возможности.
core/ plugin-api.ts plugin-loader.ts plugins/ export-to-pdf/ telegram-notifications/ stripe-payments/ ai-summary/
Почему удобно:
Новая возможность = новый плагин Меньше риска сломать ядро системы
Это особенно полезно для IDE, CMS, внутренних платформ, automation-систем, SaaS с расширениями.
В контексте ИИ-агентов это особенно удобно: агент может не переписывать всю систему, а подключать новую функцию как отдельный модуль.
| Принцип | Почему помогает |
|---|---|
| Маленькие файлы | Агенту проще читать и менять код |
| Явные границы модулей | Меньше случайных изменений не там |
| Хорошие названия | Агент лучше понимает смысл кода |
| Контракты и интерфейсы | Меньше риска сломать интеграции |
| Тесты рядом с фичей | Агент может быстрее проверить изменение |
| ADR-документы | Агент понимает архитектурные решения |
| README внутри модулей | Объясняет, как модуль устроен |
| Схемы API/OpenAPI/GraphQL schema | Агент видит точные контракты |
| Статическая типизация | TypeScript, Kotlin, C#, Go, Rust помогают ловить ошибки |
| Линтеры и форматтеры | Агент пишет более единообразный код |
Главная идея: ядро задает правила, плагины добавляют поведение.
Для ИИ-агентов это полезно, потому что:
Таком образом: Plugin / Extension Architecture дает агенту безопасные “точки расширения”, куда можно добавлять новые возможности, не ломая основную систему.

| Подход | Почему неудобен |
|---|---|
| Большой неструктурированный монолит | Агент не понимает, где настоящая бизнес-логика |
| God Service / God Object | Слишком много ответственности в одном месте |
| Скрытая магия фреймворка | Агент может не понять, как реально вызывается код |
| Сильная связанность между модулями | Маленькое изменение ломает много мест |
| Много неявных side effects | Агенту сложно предсказать последствия |
| Слабые тесты или их отсутствие | Агент не может безопасно проверять изменения |
| Слишком много микросервисов на старте | Много сетевой и инфраструктурной сложности |
Для большинства проектов, которые будут активно разрабатываться с ИИ-агентами, я бы выбрал:
Модульный монолит + Vertical Slice для фич + Hexagonal/Clean внутри сложных модулей + DDD для сложной бизнес-логики + строгая типизация + тесты рядом с кодом
Пример:
src/
modules/
orders/
domain/
order.entity.ts
order-status.ts
order-policy.ts
features/
create-order/
create-order.command.ts
create-order.handler.ts
create-order.test.ts
cancel-order/
cancel-order.command.ts
cancel-order.handler.ts
cancel-order.test.ts
ports/
order-repository.ts
payment-gateway.ts
adapters/
postgres-order-repository.ts
stripe-payment-gateway.ts
api/
order.controller.ts
Такой стиль хорошо подходит и человеку, и ИИ-агенту: понятно, где бизнес-логика, где сценарии, где интеграции, и что можно менять безопасно.
То есть архитектура, специально оптимизированная не только под людей, но и под ИИ-агентов, которые читают код, планируют изменения, запускают тесты, рефакторят и создают pull request’ы.
Важно: это пока не каноническая архитектура с единым названием, а формирующийся стиль. Свежие материалы OpenAI, Martin Fowler и статьи 2025–2026 годов больше говорят о переходе к AI-native engineering, agentic workflows и необходимости архитектуры, где человек больше занимается дизайном и контролем, а агент — реализацией.

Обычная архитектура оптимизировалась под:
| Раньше | Теперь добавляется |
|---|---|
| удобство человека-разработчика | удобство ИИ-агента |
| масштабирование системы | масштабирование изменений в коде |
| performance/runtime | agent navigability |
| deploy независимость | task locality |
| чистый код | машинно-понятный контекст |
| документация для людей | executable/context документация для агентов |
Главная идея:
Хорошая архитектура для ИИ-агента — это архитектура, где задачу можно выполнить локально, по явному контракту, с быстрым тестом и минимальным риском сломать соседние части.
Agent-Friendly Architecture — это способ проектировать продукт, кодовую базу или систему так, чтобы с ней было удобно работать AI-агентам.
Идея простая: агент должен легко понять, изменить, проверить и безопасно выполнить задачу.
Обычно это значит:
Условно ее можно назвать:
Agent-Oriented Modular Architecture
Или короче:
AOMA — Agent-Oriented Modular Architecture
Это не официальный стандарт, а хорошее рабочее название.
Ее суть:
Система делится не только на модули, а на agent-friendly workspaces:
Пример структуры:
src/
modules/
orders/
AGENT.md
README.md
module.contract.yaml
domain/
order.ts
order-policy.ts
features/
create-order/
task.md
create-order.handler.ts
create-order.test.ts
cancel-order/
task.md
cancel-order.handler.ts
cancel-order.test.ts
ports/
order-repository.ts
payment-gateway.ts
adapters/
postgres-order-repository.ts
stripe-payment-gateway.ts
architecture.rules.ts
Не просто “чистые слои”, а кодовая база как навигационная среда для агента.
То есть архитектура отвечает не только на вопрос:
Как системе работать?
но и на вопрос:
Как ИИ-агенту безопасно менять эту систему?
| Принцип | Что означает |
|---|---|
| Task locality | Одна задача должна затрагивать минимум файлов |
| Context capsules | У каждого модуля есть свой короткий контекст: README, AGENT.md, контракты |
| Executable contracts | Контракты проверяются тестами, схемами, типами, линтерами |
| Vertical slices | Код группируется вокруг фич, а не только вокруг технических слоев |
| Typed boundaries | Границы модулей выражены типами и интерфейсами |
| Fast feedback | Агент может быстро запустить локальный тест конкретной фичи |
| No hidden magic | Минимум неявного поведения фреймворка |
| Change maps | Документация говорит, куда идти для типовых изменений |
| Architecture tests | Автотесты проверяют, что модули не нарушают границы |
| Clean Architecture | Agent-Oriented Architecture |
|---|---|
| защищает бизнес-логику от фреймворков | защищает кодовую базу от хаотичных изменений агента |
| строится вокруг слоев | строится вокруг задач, модулей и контекста |
| хорошо для людей | хорошо для людей + ИИ |
| главный принцип — dependency rule | главный принцип — локальность изменения и понятный контекст |
| документация желательна | документация для агента обязательна |
Микросервисы дают независимый deploy, но не всегда удобны для ИИ-агента: агенту сложнее учитывать сеть, API-версии, distributed transactions, observability и асинхронные эффекты.
В 2026 уже появляются обсуждения и даже бенчмарки, сравнивающие, в каких архитектурах агентам легче работать. Например, материалы о ModulithBench утверждают, что модульный монолит может быть удобнее для reasoning агентов, чем микросервисы, из-за локальности и меньшей распределенной сложности. Это не окончательный научный консенсус, но направление показательное.
Для реального проекта я бы выбрал такую формулу:
Agent-Oriented Modular Architecture = Modular Monolith + Vertical Slice Architecture + Hexagonal boundaries + DDD для сложных доменов + AGENT.md в каждом модуле + architecture tests + typed contracts + локальные тесты на каждую фичу
# Orders Module — Agent Guide Purpose: This module manages order lifecycle. Allowed changes: - Add new order features inside features/ - Put business rules in domain/ - Use ports/ for external dependencies Do not: - Call payment provider directly from domain/ - Import infrastructure from domain/ - Modify payments module without updating contract tests Common tasks: - New order action → create folder in features/ - New persistence logic → update adapter + repository port - New business rule → update order-policy.ts and tests
Это очень полезно: агент не просто “угадывает”, куда писать код, а получает локальную инструкцию.
Абсолютно новой, официально признанной архитектуры пока нет. Но реально формируется новый стиль:
Agent-Friendly / AI-Native / Agent-Oriented Architecture
Его главная особенность:
проектировать кодовую базу так, чтобы ИИ-агент мог безопасно понимать, изменять, тестировать и расширять ее маленькими контролируемыми шагами.
На практике лучшая база для этого сейчас — модульный монолит + vertical slices + typed contracts + локальная документация для агентов.
Комментарии