Конфигурация
AiHummer настраивается через каталог настроек, а не через кучу переменных окружения. У каждой настройки есть определённый порядок разрешения, большинство ключей меняются из веб-админки в рантайме, и лишь небольшой набор bootstrap-переменных обязан оставаться в окружении. Ведущее правило простое: всё настраиваемое конфигурируется в Web UI — не только через env и не зашито в код.
Порядок разрешения
Каждая настройка в каталоге разрешается в одном и том же порядке, побеждает первое совпадение:
- База данных — значение, заданное через админку (хранится по workspace).
- Окружение — соответствующая переменная
AIHUMMER_*. - Default — встроенное значение по умолчанию из релиза.
Это значит, что значение из админки переопределяет окружение в рантайме, а окружение переопределяет встроенный default. Можно задать разумную базовую линию в окружении, а затем настраивать поведение вживую из UI без передеплоя.
[!NOTE] Поскольку слой базы данных стоит выше окружения, для изменения большинства поведения в продакшене вы не правите конфиг-файлы — вы меняете это в админке, и изменение вступает в силу для этого workspace.
Горячие и требующие перезапуска
Как вступает в силу изменённая настройка, зависит от ключа:
| Поведение | Примеры | Когда применяется |
|---|---|---|
| Горячие | включение инструментов, макс. глубина суб-агентов | Перечитываются в рантайме, без перезапуска |
| Требуют перезапуска | адрес прослушивания, проводка некоторых сервисов | Применяются при следующем перезапуске gateway |
Горячие ключи перечитываются вживую, поэтому переключение инструмента или
изменение subagent-depth вступает в силу на следующем ходу. Некоторые
структурные ключи вступают в силу только после перезапуска; админка помечает, что
есть что.
Bootstrap-переменные остаются только в env
Несколько переменных обязаны присутствовать в окружении, потому что они нужны ещё до того, как существует каталог настроек (и база, из которой он читает). Эти bootstrap-переменные доступны только через env и не выводятся в админке:
| Переменная | Почему bootstrap |
|---|---|
AIHUMMER_DATABASE_URL | БД должна существовать до чтения любой настройки из БД. |
AIHUMMER_DB_APP_URL | DSN ограниченной роли, активирующий RLS. |
AIHUMMER_MASTER_KEY | base64-32 байта; разблокирует секреты-в-покое / vault / BYOK. |
AIHUMMER_GATEWAY_ADDR | Адрес прослушивания (по умолчанию :8765). |
AIHUMMER_OIDC_ISSUER | Защищает /v1/admin/* до того, как UI станет доверенным. |
[!WARNING] Храните
AIHUMMER_MASTER_KEYв безопасности и делайте его резервную копию отдельно от бэкапа базы данных. Он расшифровывает vault доступов; потеряете его — зашифрованные секреты восстановить нельзя.
Конфиг-файл
Для host-native установок bootstrap-окружение лежит в одном файле, который загружает systemd-юнит:
/home/.aihummer/etc/gateway.env
Правьте этот файл для bootstrap- и базовых значений, затем перезапустите сервис gateway, чтобы применить изменения:
# /home/.aihummer/etc/gateway.env (фрагмент)
AIHUMMER_DATABASE_URL=postgres://user:pass@localhost:5432/aihummer
AIHUMMER_MASTER_KEY=base64-32-bytes...
AIHUMMER_GATEWAY_ADDR=:8765
AIHUMMER_OIDC_ISSUER=https://idp.example/realms/main
systemctl restart aihummer-gateway
Всё за пределами этих bootstrap/базовых ключей — агенты, инструменты, режим памяти, стратегии рассуждения, бюджеты, guardrails и прочее — предназначено для управления из настроек админки, а не из этого файла.
Подключение опциональных возможностей
Многие функции выключены, пока вы не укажете их на backing-сервис. Обычно это
задаётся один раз в gateway.env (или переопределяется в UI, где применимо):
# Подключить реальную модель (отсутствует → детерминированный mock)
AIHUMMER_LLM_PROVIDER=openai
AIHUMMER_LLM_MODEL=gpt-4o-mini
AIHUMMER_LLM_GATEWAY_URL=https://api.openai.com/v1
# Включить инструменты, указав на их бэкенды
SEARXNG_URL=http://localhost:8888
CLOAKBROWSER_CDP_URL=http://localhost:9222
# Голосовые сайдкары (STT/TTS авто-настраивает установщик)
AIHUMMER_STT_URL=http://localhost:8001
AIHUMMER_TTS_URL=http://localhost:8002
# Реальное векторное хранилище + эмбеддер (иначе in-memory + hash-эмбеддер)
AIHUMMER_QDRANT_URL=http://localhost:6333
AIHUMMER_EMBEDDER_URL=http://localhost:8080
[!TIP] Реальная модель никогда не обязательна. Без подключённых
AIHUMMER_LLM_*ответы приходят из детерминированного mock; AiHummer также работает на свободных/локальных OpenAI-совместимых эндпоинтах и транспорте через подписку Codex/ChatGPT, с опциональным BYOK.
Куда дальше
- Защитите вход администратора: Первый вход.
- Посмотрите, где лежат файлы: Установка.
- Проверьте предварительные требования: Требования.