System Design Space
Граф знанийНастройки

Обновлено: 24 марта 2026 г. в 14:56

Dyad: архитектура локального AI app builder

medium

Разбор архитектуры Dyad: multi-process Electron, agent+tool orchestration, template-driven разработка и local-first подход с checkpoint-моделью.

Локальный AI builder сложен не потому, что он работает без облака, а потому, что ему приходится упаковывать runtime, инструменты и UX в один управляемый продукт.

Глава разбирает, как multi-process Electron, orchestration агента и tools, template-driven сборка и local-first checkpoints помогают держать надежность и контроль над состоянием.

На интервью этот кейс полезен тем, что через него удобно обсуждать desktop architecture, local execution, safety boundaries и компромисс между автономностью и управляемостью.

Практическая польза главы

Практика проектирования

Переводите знания о архитектурном устройстве AI-продукта Dyad и operational lessons в архитектурные решения по data flow, model serving и контрольным точкам качества.

Качество решений

Оценивайте систему через метрики модели и платформы одновременно: precision/recall, latency, drift, стоимость и операционные риски.

Interview articulation

Структурируйте ответ как цепочку data -> model -> serving -> monitoring, показывая где возникают ограничения и как вы ими управляете.

Trade-off framing

Явно фиксируйте компромиссы по архитектурном устройстве AI-продукта Dyad и operational lessons: скорость экспериментов, качество, explainability, resource budget и сложность поддержки.

Источник

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-изменениями становятся безопаснее.

Визуализация архитектуры приложения

Local-first контур исполненияинтентвалидированный IPCtool-командыпатч + проверкивызовы провайдераответыRenderer UIReact + chat + previewPreload + IPC Bridgesecure message boundaryMain Process Orchestratorworkflow coordinationTool Executorpatch/apply/checkpointWorkspace + Git Statefiles, templates, rulesLLM / Data Integrationsproviders + external APIs

Смысл слоя

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 и контролируемого отката

Интент
Планирование
Исполнение
Безопасность
01

Prompt и intent

Пользователь формулирует изменение: новая фича, правка UI или обновление логики.

02

Сбор контекста

Dyad подбирает релевантные файлы проекта, шаблон и правила генерации.

03

Agent plan + tool calls

LLM строит план и возвращает структурированные tool-вызовы для платформы.

04

Применение изменений

Main-process исполняет действия: патчи, проверки, обновление preview.

05

Checkpoint и rollback

Состояние фиксируется как checkpoint, чтобы можно было безопасно откатить регрессию.

Нажмите «Запуск», чтобы пройти весь цикл изменения в Dyad пошагово.

Инженерные сильные стороны

  • 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 ядро.

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки