Multica Docs

Daemon и runtime

Agent не выполняются на серверах Multica — они работают на ваших машинах.

В Multica agent не выполняются на наших серверах — они работают на ваших машинах под управлением небольшой программы daemon, которая вызывает локально установленные AI coding tools. Сервер Multica только координирует: хранит issue, ставит в очередь task и отправляет их в нужный runtime (runtime = daemon × один AI coding tool).

Это главное отличие Multica от Linear и Jira: ваши API keys, toolchain и каталоги с кодом остаются на вашей машине — сервер Multica их не видит. Поэтому «мой agent не работает» почти всегда означает локальную проблему: daemon не запущен, AI coding tool не установлен, ключ истёк. Сначала проверьте локально; см. Troubleshooting.

Запуск daemon

Daemon — часть Multica CLI. После установки Multica CLI выполните на своей машине:

multica daemon start

При запуске daemon делает четыре вещи:

  1. Читает credentials, сохранённые при входе
  2. Обнаруживает AI coding tools на PATH (12 встроенных: Antigravity, Claude Code, Codex, Cursor, Copilot, Gemini, Hermes, Kimi, Kiro CLI, OpenCode, OpenClaw, Pi)
  3. Регистрируется на сервере вместе с runtime для каждого обнаруженного инструмента
  4. Опрашивает очередь каждые 3 секунды на предмет task для выполнения и отправляет heartbeat каждые 15 секунд

Основные команды:

CommandPurpose
multica daemon startЗапуск (по умолчанию в фоне; добавьте --foreground для foreground)
multica daemon stopОстановка
multica daemon restartПерезапуск
multica daemon statusСтатус
multica daemon logsЛоги (добавьте -f для follow)

Полный справочник CLI — в CLI commands.

Desktop app поставляется с daemon. Если вы используете desktop app, не нужно вручную запускать multica daemon start — daemon стартует автоматически. См. страницу Desktop app, какой вариант подходит вашему workflow.

Почему на одной машине несколько runtime

Runtime — это не сервер и не контейнер, а сочетание «daemon × один AI coding tool». Например: вы запускаете daemon на MacBook с установленными Claude Code и Codex и состоите в двух workspace. Multica регистрирует 4 runtime:

Rendering diagram…

Ключевые моменты:

  • Один daemon может соответствовать нескольким runtime — по одному на каждую комбинацию установленного инструмента и workspace, в котором вы состоите
  • Один и тот же daemon, workspace и инструмент дают ровно один runtime — перезапуск daemon не создаёт дубликатов
  • На странице Runtimes в UI Multica перечислены эти строки

Cloud runtime скоро появятся, сейчас waitlist. Когда они станут доступны, вы сможете выполнять task agent прямо в Multica Cloud без локального daemon. Зарегистрируйтесь на download page, чтобы получить уведомление.

Когда runtime помечается offline

Multica использует heartbeat, чтобы определить, online ли runtime. Три ключевых числа:

EventThreshold
Частота heartbeat daemonКаждые 15 секунд
Помечен как missingНет heartbeat 45 секунд (3 пропущенных beat)
АвтоудалениеMissing без связанных agent более 7 дней

Missing не постоянен — как только daemon снова отправит heartbeat, runtime возвращается в online, запись сохраняется. Перезапуск daemon не теряет runtime.

Task на missing runtime помечаются failed (причина runtime_offline). Для retryable источников (issue, chat) Multica автоматически ставит их в очередь снова; task от Autopilot не повторяются автоматически. См. Tasks → Which failures retry automatically.

Сколько task может выполняться параллельно

Multica ограничивает параллелизм на двух уровнях:

  • Уровень daemon: 20 одновременных task по умолчанию (настраивается через env var MULTICA_DAEMON_MAX_CONCURRENT_TASKS)
  • Уровень agent: 6 одновременных task на agent по умолчанию (настраивается per-agent)

Действует более жёсткий из двух лимитов. Если daemon уже выполняет 20 task, новые ждут, даже если у agent ещё есть запас.

Если task застряли в queued и не переходят в dispatched, обычно исчерпан один из этих лимитов.

Что происходит с in-flight task после сбоя daemon

При crash или force-kill daemon task, которые он уже забрал, остаются в dispatched или running. При следующем старте daemon сообщает серверу: «эти task больше не мои, пометьте их failed». Сервер переводит их в failed с причиной runtime_recovery — для retryable источников task автоматически ставятся в очередь снова.

Даже если этот шаг не удался из‑за сети, на сервере каждые 30 секунд работает backstop-скан: любой runtime без heartbeat более 45 секунд помечается missing, и его task reclaim вместе с ним.

Troubleshooting: agent не работает

При проблеме «мой agent не работает» сначала пройдите трёхшаговый checklist:

  1. multica daemon status — убедитесь, что daemon запущен и online
  2. multica daemon logs -f — проверьте ошибки
  3. Откройте страницу Runtimes в UI Multica — убедитесь, что runtime показывает «online»

Больше сценариев — в Troubleshooting.

Далее

  • Tasks — полный жизненный цикл task после того, как daemon его забирает
  • Providers Matrix — различия возможностей 12 AI coding tools