Ее зовут Кая
Версия 1 готова, теперь это не HAL1000, а Кая. Сура Дамилолы Карпова. Первая версия. Буду тестировать несколько недель и потом выложу скелет на гитхаб.
HAL
Полностью локальная система домашней автоматизации с ИИ. Ноль облачных зависимостей. Весь инференс, наблюдение, память и автоматизация — на одном Windows PC.
Зачем ещё один проект
На GitHub сотни обёрток вокруг Ollama с красивым чатом. Десятки docker compose с Home Assistant и Frigate. HAL — не обёртка и не шаблон. Это единая система, где ИИ-ассистент, камеры, устройства, журнал поведения и память связаны общим пайплайном и одной базой данных.
Ничего похожего в open source нет. Есть отдельные компоненты — но никто не собрал наблюдение + поведенческий трекинг + персону с накопительной памятью + управление устройствами + самоисцеляющуюся инфраструктуру в одну локальную систему.
Что делает HAL особенным
Персона, которая зарабатывает знания
У HAL есть ИИ-персона с системой из 12+ доменных файлов: фитнес, здоровье, питание, карьера, хобби, семья, психология и так далее. Каждый домен содержит методологию — как быть хорошим тренером, как слушать и задавать правильные вопросы, как замечать паттерны в поведении. Но ноль личных данных о пользователе.
Личные знания накапливаются органически. После каждого разговора экстрактор вытаскивает факты, проверяет на дубликаты семантическим поиском, тегирует по домену и сохраняет. Факт «начал учить гитару» попадает в домен хобби. «Спал 5 часов» — в здоровье. Следующий сеанс — персона уже это знает.
Предзаписанные досье — читерство. Персона начинает с чистого листа и зарабатывает знания через общение. Через неделю она знает о тебе больше, чем любой облачный ассистент, и ничего из этого не покидает твой компьютер.
LLM — рот, а не мозг
Модель на 9B параметров не умеет вызывать инструменты. И это не ограничение — это архитектурное решение. Пайплайн из 14 шагов обогащения работает до модели: поиск по памяти, семантический поиск по доменным файлам, расписание, журнал событий, корреляции, статус PC, база фильмов/игр. Всё предвычисляется в Python и инжектируется как контекст. Модель получает готовые данные и озвучивает их человеческим языком.
После ответа — отдельные экстракторы вытаскивают факты и события, сохраняют в базу. Замкнутый цикл: разговор → извлечение → память → следующий разговор.
Это принципиально отличается от подхода «дай модели инструменты и надейся». Мы не надеемся — мы предвычисляем.
Поведенческий журнал и корреляции
Журнал собирает события из четырёх источников: разговоры, Apple Health, камеры Frigate и ручной ввод. 15 категорий: еда, тренировки, добавки, настроение, сон, метрики здоровья, присутствие по зонам. Векторный поиск по журналу через sqlite-vec.
Корреляционный движок — чистый SQL и Python, без LLM. «Лучше ли я сплю в дни тренировок?» — это агрегация по журналу, а не вопрос к языковой модели. Результат инжектируется в контекст, и персона озвучивает его.
Еженедельный отчёт синтезирует: фитнес-режим по дням, процент выполнения добавок, тренировки, настроение, тренды. Нарратив пишет 27B модель.
Фитнес-стейт-машина
Расписание — не промпт и не список. Это стейт-машина в Python: день недели определяет режим (кикбоксинг / силовая / отдых), pre-computed добавки, крон-напоминания через Telegram с инлайн-кнопками «Готово» / «Отложить». Нажал «Готово» — записалось в журнал. Отложил — придёт через 9 минут.
Что ещё делает
- Frigate NVR: 3 камеры, 11 зон присутствия, распознавание лиц, MQTT-трекинг с дебаунсом 60с
- Управление Apple TV (pyatv), Samsung TV (samsungtvws), HomePod (AirPlay)
- Детекция активности PC (игра/код/медиа/idle). Выгрузка LLM из VRAM при запуске игры. Буферизация уведомлений в фокус-режимах.
- Самоисцеление: heartbeat 60с, авто-рестарт, база багов, алерты в Telegram, ежедневный дайджест, структурная проверка в 4 утра
- Recast: epub → аудиокнига с клонированным голосом через Chatterbox TTS → Audiobookshelf
- Идентификация котов через vision-модель (камера → minicpm-v → сенсор в Home Assistant)
Архитектура
30+ Python-модулей. Единая SQLite база с sqlite-vec эмбеддингами (1024-dim). 18 сервисов под оркестратором с авто-рестартом. 4 Docker-контейнера (Frigate, Home Assistant, Mosquitto, Audiobookshelf). Всё остальное нативно на Windows, потому что WSL2 ломает mDNS и не видит ICS-подсети.
Стек
Ollama, Qwen 3.5 9B/27B, OpenClaw, FastAPI, SQLite + sqlite-vec, Frigate NVR, Home Assistant, MediaMTX, MQTT, pyatv, samsungtvws, Telegram Bot API, Piper TTS, Chatterbox TTS, Seed-VC, LightRAG, SearXNG, faster-whisper.
Ключевые решения
- Middleware вместо tool calls. 9B модель не умеет opt-in инструменты. Вся логика — в пайплайне обогащения.
- Персона зарабатывает знания. Доменные файлы = методология. Личные данные = ноль на старте.
- Docker по минимуму. Только то, что требует Linux.
- Одна база. SQLite + sqlite-vec для всего. Без Postgres, без Redis.
- Документация для LLM. Каждый модуль задокументирован так, чтобы языковая модель могла разобраться в системе без помощи человека.