Источник
Dyad repository
Открытый репозиторий локального AI app builder с архитектурными заметками и документацией.
Dyad - локальный AI app builder в формате desktop-приложения. С архитектурной точки зрения он интересен сочетанием local-first подхода, агентной оркестрации и шаблонного проектирования: разработчик управляет intent, а платформа берет на себя системное выполнение изменений и проверок.
Эта глава собрана по публичным материалам и архитектурным заметкам команды, с фокусом на инженерные паттерны, которые полезно переносить в другие AI-assisted платформы.
Архитектурные паттерны Dyad
Electron multi-process
Main process управляет ОС-функциями, файлами и интеграциями; renderer process отвечает за UI на React.
- Изоляция ответственности между системным слоем и интерфейсом.
- IPC-события как шина взаимодействия между процессами.
Agent + Tool orchestration
LLM генерирует не только код, но и структурированные tool-вызовы, которые Dyad интерпретирует и применяет.
- Паттерн ReAct: reasoning + action в одном цикле.
- Контролируемое выполнение действий модели через ограниченный набор инструментов.
Local-first execution
Код и рабочие артефакты остаются на машине пользователя, что снижает latency и упрощает приватность.
- Нет обязательного cloud-runtime для ядра продукта.
- Легче встроить в существующий workflow разработчика и IDE.
Template + Rules
Шаблоны проекта и AI_RULES.md задают рамки генерации кода и технологические ограничения.
- Быстрый старт через scaffold, а не с пустого листа.
- Политики генерации задаются декларативно на уровне шаблона.
Versioned checkpoints
Изменения в коде и БД можно откатывать через checkpoint-подход (в том числе через branching для Postgres).
- Undo/redo становится инфраструктурной возможностью, а не ручной процедурой.
- Эксперименты с AI-изменениями становятся безопаснее.
Визуализация архитектуры приложения
Смысл слоя
UI-слой принимает intent пользователя, показывает diff и результат изменений без прямого доступа к системным API.
Операционный фокус
Держать отклик интерфейса быстрым и не блокировать UI долгими операциями.
Типичная ошибка
Смешивать UI-логику с файловыми операциями и сетевыми вызовами провайдеров.
Ключевые модули репозитория
Core app
src + worker + preload: UI, main-process и фоновые задачи (например, тяжёлые проверки/сборка).
Reusable packages
packages/@dyad-sh: переиспользуемые SDK/утилиты для AI-провайдеров, общих типов и интеграций.
Scaffold and templates
scaffold + templates: стартовые структуры приложений с правилами генерации (AI_RULES.md).
Quality and delivery
testing + e2e-tests + scripts: unit/integration/e2e проверки, сборка через Electron Forge, CI-автоматизация.
Как проходит изменение в Dyad
Flow изменений в Dyad
От пользовательского intent до checkpoint и контролируемого откатаPrompt и intent
Пользователь формулирует изменение: новая фича, правка UI или обновление логики.
Сбор контекста
Dyad подбирает релевантные файлы проекта, шаблон и правила генерации.
Agent plan + tool calls
LLM строит план и возвращает структурированные tool-вызовы для платформы.
Применение изменений
Main-process исполняет действия: патчи, проверки, обновление preview.
Checkpoint и rollback
Состояние фиксируется как checkpoint, чтобы можно было безопасно откатить регрессию.
Prompt и intent
Пользователь формулирует изменение: новая фича, правка UI или обновление логики.
Сбор контекста
Dyad подбирает релевантные файлы проекта, шаблон и правила генерации.
Agent plan + tool calls
LLM строит план и возвращает структурированные tool-вызовы для платформы.
Применение изменений
Main-process исполняет действия: патчи, проверки, обновление preview.
Checkpoint и rollback
Состояние фиксируется как checkpoint, чтобы можно было безопасно откатить регрессию.
Инженерные сильные стороны
- Local-first execution с минимальным vendor lock-in по данным проекта.
- Явные tool boundaries уменьшают хаотичное исполнение действий моделью.
- Template-driven подход ускоряет старт и повышает повторяемость генерации.
Сборка, тесты и качество
- Electron Forge + Vite для локальной разработки и упаковки desktop-сборок.
- Playwright для e2e, Vitest для unit/integration тестов.
- Husky и lint-staged для pre-commit проверок стиля и качества.
- Разделение OSS и Pro-модулей снижает риски смешивания лицензий.
Практический чеклист
- Фиксируйте boundaries между UI, оркестрацией агента и FS-операциями до добавления новых инструментов.
- Сначала проектируйте rollback/checkpoint, и только потом расширяйте автоматизацию действий агента.
- Держите шаблоны и AI_RULES в одном lifecycle с продуктом: версия шаблона = версия ожиданий от генерации.
- Покрывайте e2e-сценариями весь путь prompt -> patch -> preview для критичных пользовательских сценариев.
- Для Pro/OSS модулей поддерживайте строгий контракт интеграции, чтобы не ломать open-source ядро.
Материалы и связанные главы
GitHub: dyad-sh/dyad
Док: Dyad architecture (docs/architecture.md)
Hacker News: Show HN — Dyad
Neon blog: Dyad + Postgres branching
Dyad docs: Templates overview
Из соседних глав: Lovable, ML-платформа в Т-Банке и AI Engineering.
