Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Быстрый старт

Ядро — один бинарь, которому нужен только конфиг; БД (SQLite) он создаёт сам на старте, внешних сервисов не требуется.

cp config.example.yaml config.yaml     # впиши llm.api_key и модель
eva-kernel --config config.yaml

Нет ключа под рукой — поставь llm.provider: mock, и ядро поднимется впустую, для проверки:

cp config.example.yaml config.yaml   # llm.provider: mock
nix develop -c cargo run -- --config config.yaml
curl 127.0.0.1:8090/health

Дальше вписываешь настоящий провайдер (anthropic, или openai — под ним же Nous Portal, OpenRouter и любой локальный llama-server/vLLM через base_url), персону в persona.file — и подключаешь клиентов к API. Телеграм — отдельный модуль со своим токеном; ядру он подключается через modules.servers.

Чем подключаться

Ядро — это API; человеку нужен клиент. Все они тонкие и ходят в одно и то же ядро: чаты, память, навыки и личности общие, клиент — окно в один и тот же список чатов; по полкам-folder его раскладывает Господин, а не клиенты.

КлиентРепозиторийСтекКому
вебeva/frontendNuxt 4 + Tailwindс чего начать: браузер, ставить нечего (замок паролем — можно вешать наружу)
десктопeva/appTauri + Nuxtокно с руками: файлы, команды и кодовые сессии на своей машине
андроидeva/androidKotlin + Composeтелефон; доверенный клиент со своими экранами памяти, крона и статистики
терминалeva/tuiPython + Textualпо ssh и там, где GUI нет; тоже с руками и кодовым режимом
мастерская переводовeva/mtlTauri + Nuxtузкая задача: переводной патч к игре — движки, ресурсы, обратная запись

Коротко: посмотреть — веб, работать руками — десктоп или терминал. Файлы и команды Господина исполняет сам клиент (клиентские операции), поэтому браузер их не трогает вовсе. Телеграм в этот список не входит — это не клиент, а поверхность-модуль со своим токеном.

Файлы конфига

Конфиг — YAML, TOML или JSON (формат по расширению файла). --config (он же -c) можно указать несколько раз — файлы сливаются в один, поздний перекрывает ранний; секции разных форматов смешиваются свободно. Удобно: несекретная база отдельным файлом, секреты (api_key, токен) — своим, с правами 600.

Поверх файлов накладываются переменные окружения с префиксом EVA_, вложенность — через двойное подчёркивание, и env приоритетнее файлов:

EVA_LLM__MODEL__GENERAL="moonshotai/kimi-k3" \
EVA_SERVER__LISTEN="0.0.0.0:8080" \
  eva-kernel --config config.yaml

Полный аннотированный пример — config.example.yaml в корне репозитория.