1. Узкие места: от чата к API
(1) Bind: только loopback блокирует LAN; 0.0.0.0 без auth опасен.(2) TLS: вне localhost — на прокси.(3) Жизненный цикл: терминал умирает при сне; нужен launchd.(4) Память: параллель раздувает KV-cache и хвосты задержек раньше, чем упираетесь в чистый CPU.
2. Режимы экспозиции
| Режим | Сценарий | Минимум контроля |
|---|---|---|
| Только loopback | Личные скрипты | Порты |
| Приватная LAN | Офис | Прокси, IP-фильтры, rate limit |
| Интернет | Распределённые команды | TLS, ключи/OIDC, логи |
| Удалённый Mac | 24/7, стабильный параллелизм | Мониторинг, роли |
3. MLX и соответствие контракту
Важны streaming, размер схем инструментов и реальный KV относительно заявленного контекста. Замерьте P95 при 1/5/10 клиентах. Если SLO ломается при малой нагрузке — меняйте топологию, а не только промпты.
4. launchd: пять шагов
Абсолютные пути в plist, рабочий каталог, логи, осторожный KeepAlive, health-check с двух хостов.
5. FAQ
Воркер на 127.0.0.1, TLS на краю. Общий URL для нескольких пользователей требует ключей. Смена upstream на удалённый Mac сохраняет клиентов.
6. Когда уходить на удалённый узел
| Сигнал | Действие |
|---|---|
| >3 параллельно + IDE/браузер | Вынести тяжёлый инференс |
| Нужен SLA и стабильный uplink | Выделенный узел |
| Команда делит один endpoint | Квоты вне личного ноутбука |
| Только ночные батчи | Достаточно launchd |
Ориентиры:
- ≥8 ГБ под macOS и базовые приложения до веса модели.
- TLS на reverse-proxy; воркер на loopback.
- Красное давление памяти >30 мин/день неделю подряд — архитектурный сигнал.
7. Анализ: выделение API-слоя
Unified memory сияет в single-tenant сценариях; HTTP приносит очереди и хвосты задержек. Для графики и монтажа всплески completion конкурируют с таймлайном. Разделение редактирования и внешнего контракта сохраняет преимущества Metal и предсказуемость под нагрузкой.
Если параллелизм и аптайм конфликтуют с ноутбуком, аренда удалённого Mac у MACGPU даёт тот же macOS/Metal стек с изоляцией ролей; почасовая оплата упрощает пилоты.