Мозги: быстрая и умная модель
Мозгов у Хомера двое: быстрая модель отвечает на каждую фразу, а умная берётся за многошаговые дела по поручению. По умолчанию это Claude Haiku и Claude Opus; обе меняются в настройках на другие модели и другие облака, например DeepSeek.
Колонка — быстрая модель (по умолчанию Haiku)
Мозги колонки — постоянный процесс Claude Code в неинтерактивном режиме на компьютере с колонкой:
claude -p --model haiku --input-format stream-json --output-format stream-json \
--tools "" --mcp-config mcp-voice.json --allowedTools mcp__homer- Каждая фраза уходит туда вместе со снимком дома: устройства по комнатам из плана Homer, их состояния, сцены.
- Ответ занимает 1,5–2 секунды, с вызовом инструмента 2,5–4.
- Процесс пересоздаётся каждые 6 реплик, чтобы история не разрасталась, и сразу после изменения настроек мозгов.
- Встроенных инструментов Claude Code (файлы, оболочка, интернет) у него нет (
--tools ""). Есть только инструменты дома уровня «Колонка».
Что Haiku делает сам
- Свет, розетки, сцены, шторы, климат, вентиляторы, медиа — по белому списку сервисов и только для устройств из снимка. Эти действия приходят прямо в его ответе, без лишнего вызова, поэтому это самое быстрое.
- Музыку, таймеры и напоминания — инструментами.
- Отвечает на вопросы о доме: что включено, где открыто окно, какая температура.
Что отдаёт Алисе
Радио, сказки, будильник, погоду, новости, курс, справку о мире — если в доме есть Яндекс Станция. Ответит сама Станция.
Вход и расход
Используется вход Claude Code того пользователя Windows, от которого запущена колонка. Запросы идут в счёт лимитов подписки Claude, отдельного ключа API и оплаты нет.
WARNING
Если выйти из Claude Code на этом компьютере, мозги начнут отвечать «Голова не отвечает» или отвечать запасной головой. Быстрые команды про свет продолжат работать: их разбирает сервер дома без нейросети.
Поручения — умная модель (по умолчанию Opus)
Многошаговое Haiku не делает сам, а поручает старшей модели, по умолчанию claude-opus-5-5:
- «добавь новую лампу в спальню»;
- «переименуй датчик в ванной»;
- «разберись, почему не работает свет на кухне».
Как идёт поручение:
- Haiku вызывает инструмент
delegateс просьбой целиком, колонка отвечает «Сейчас займусь». - В фоне запускается отдельный
claude -pс Opus и набором инструментов уровня «Поручения». - Если нужно действие человека, например сбросить лампу, Opus говорит об этом через колонку (инструмент
say). - Итог Opus произносит вслух. Первая строка его ответа озвучивается, остальное уходит в журнал.
Ограничения поручения:
| Одновременно | одно поручение. Пока оно идёт, новое получит ответ «ещё занята» |
| Время | до 15 минут |
| Шаги | до 40 вызовов |
| Инструкция | смотреть, потом действовать; ничего не удалять и не менять сверх просьбы; если не уверен — не делать, а сказать |
Модель поручений меняется в Настройки → Колонка → Мозги Хомера (см. ниже). Opus расходует лимиты подписки заметно быстрее Haiku, поэтому вызывается только поручением. Отключить поручения совсем — снять инструмент delegate у колонки.
Другие облака: DeepSeek, OpenRouter и прочие
В Настройки → Колонка → Мозги Хомера → Чем думает у колонки и у поручений по два списка: облако и модель.
| Облако | Ключ | Список моделей |
|---|---|---|
| Claude | не нужен, подписка Claude Code | Haiku, Sonnet, Opus, Fable |
| DeepSeek | platform.deepseek.com | из облака по ключу |
| OpenRouter | openrouter.ai | из облака |
| Kimi, Z.ai (GLM), MiniMax | по ссылке «где взять» в настройках | из облака по ключу |
Работает это через тот же Claude Code: у облаков есть вход, совместимый с Anthropic, и колонка запускает claude с адресом облака и его ключом (ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN). Все внутренние модели Claude Code тоже переводятся на выбранную, иначе служебные запросы ушли бы в Haiku, которого у облака нет.
- Ключ хранится на сервере дома. В приложение он не возвращается: в настройках видно только «сохранён». Ключ получает только колонка из домашней сети.
- Кнопка «Проверить» загружает список моделей облака введённым ключом ещё до сохранения.
- Скорость и качество зависят от модели: для колонки нужна быстрая, иначе ответ задержится на секунды. Кадр с камеры (
camera_look) понимают не все модели.
Запасная голова
Основная голова — claude -p на компьютере с колонкой. Если она молчит 60 секунд, сторож убивает процесс, а следующая реплика поднимает новый. Пока основная не ответила (CLI завис, облако легло, нет интернета), колонка по очереди спрашивает запасные:
| Порядок | Голова | Когда работает |
|---|---|---|
| 1 | Та же облачная модель напрямую по её API | Только если в Чем думает выбрано облако с ключом. У подписки Claude ключа нет, шаг пропускается |
| 2 | Локальная модель в LM Studio на компьютере | Если запущен сервер LM Studio |
Локальная модель:
- сервер LM Studio на порту
18234с токеном, токен — вsecrets/local-llm-key.txt; - модель
qwen3-4b-instruct-2507, грузится по первому запросу (около 9 с), дальше отвечает за 0,2–1 с; - сервер запускается из папки «Автозагрузка» пользователя;
- другой адрес или модель — переменные
HOMER_LOCAL_LLMиHOMER_LOCAL_LLM_MODEL. Подробности —tools/speaker/local-llm.md.
Это запасной вариант
У запасных голов нет инструментов (музыка, таймеры, камеры, поручения) и памяти разговора. Модель на 4B путает службы и тёплый свет с яркостью. Она держит дом, пока основная голова не вернётся, а не заменяет её.
Резервная колонка на GPD и Smartbox без компьютера тоже спрашивают облачную модель напрямую, по тем же правилам: без инструментов и только с ключом облака.
Память
У головы колонки два вида памяти. Обе лежат на компьютере с колонкой, в папке HomerSpeaker.
- Сутки разговоров (
day.jsonl) — что ей говорили и что она отвечала за последние 24 часа. Голова получает это при каждом перезапуске и помнит, о чём шла речь днём: «как зовут гостя», «что я просил час назад». - Постоянная память (
memory.md). «Хомер, запомни, что собаку зовут Тоша» — голова записывает факт инструментомmemory_saveи помнит его всегда. Без просьбы она записывает только то, что ей прямо сказали о доме и людях: имена и питомцев. «Забудь про Димона» —memory_forget.
Постоянную память видят и поручения Opus, и Claude Code с инструментами дома. Каждая запись и каждое удаление попадают в журнал. Файл memory.md обычный: его можно открыть и поправить руками.
Забыть из Telegram. Под каждым «запомнил» в группе дома есть кнопка «🗑 Забыть». Команда /memory присылает весь список, и у каждого факта своя кнопка. После нажатия бот отвечает в группе, кто и что убрал. Кнопки работают только в группе, привязанной к дому, и только пока включён компьютер с колонкой: память лежит на нём. Голова колонки перечитывает память перед следующей репликой, если та не идёт посреди разговора. Забытый факт она больше не вспомнит.