SimpleChatbot / docs /ENVIRONMENT_CONFIGURATION.md
Amin
Persist Hermes advisory provider config and stop boot-time overwrites.
255b13e
|
Raw
History Blame Contribute Delete
10.7 kB

Environment Configuration

Configure secrets in Hugging Face Space Settings or inject them at container runtime. Never commit a populated .env file.

Core persistence

Variable Default Purpose
HF_TOKEN none Hugging Face token with required repository access.
HERMES_DATASET_REPO derived/none Private Dataset used to persist /opt/data.
AUTO_CREATE_DATASET true Create the private Dataset when missing.
SYNC_INTERVAL 60 Persistence sync interval in seconds.
HF_HUB_DOWNLOAD_TIMEOUT implementation default Hub download timeout.
HF_HUB_UPLOAD_TIMEOUT implementation default Hub upload timeout.
HERMES_HOME /opt/data Persistent Hermes data root.
MAX_BACKUPS script default Backup retention used by persistence helper.

Dashboard authentication

Variable Default Purpose
HERMES_ADMIN_PASSWORD none Required production dashboard password.
HERMES_ADMIN_USERNAME admin Username written to Hermes dashboard config by entrypoint.
HERMES_DASHBOARD_BASIC_AUTH_USERNAME admin Username checked by Futures router and runtime audit.
HERMES_DASHBOARD_BASIC_AUTH_SECRET generated/persisted Stable signing secret for password-login session cookies; set as a Space secret so restarts do not invalidate every browser session.
HERMES_GATEWAY_ENABLED false Opt-in Hermes messaging/cron worker; keep disabled for a stable dashboard-only Space.

For the audit tool only:

Variable Purpose
HERMES_DASHBOARD_COOKIE Existing authenticated session cookie when Basic auth is not used.
HERMES_FUTURES_BASE_URL Default audit target base URL.

For a private Hugging Face Space, also provide HF_TOKEN to the audit process. The utility uses that bearer token only at the Hugging Face proxy, then uses HERMES_ADMIN_PASSWORD to establish the separate dashboard session cookie. Neither credential is written to the audit report.

Datasources

Variable Default Purpose
DS4_BASE_URL DS4 Hugging Face Space URL Authoritative Datasource 4 base.
DS4_TIMEOUT_S 6 DS4 request timeout.
DS2_BASE_URL DS2 Hugging Face Space URL Complementary Datasource 2 base.
DS2_TIMEOUT_S 6 DS2 request timeout.
HERMES_SYMBOL_CACHE_PATH /opt/data/futures_symbols_cache.json Symbol catalog cache.

Binance fallback

Variable Default Purpose
BINANCE_PUBLIC_FALLBACK_ENABLED true Enable unauthenticated field fallback.
BINANCE_FUTURES_PUBLIC_BASE_URL https://fapi.binance.com Binance Futures public base.
BINANCE_FUTURES_TIMEOUT_S 5 Request timeout.
BINANCE_FUTURES_MAX_RETRIES 2 Retry bound.
BINANCE_KLINE_INTERVAL 5m Default fallback interval.
BINANCE_KLINE_LIMIT 100 Default kline count.
BINANCE_ATR_PERIOD 14 ATR lookback in fallback client.
BINANCE_ORDERBOOK_LIMIT 20 Depth level limit.
BINANCE_OI_PERIOD 5m Open Interest history period.

A regional HTTP 451 must be surfaced honestly. Do not use raw IP, DNS bypass, or TLS bypass.

KuCoin Futures fallback

KuCoin is tried after Binance for missing or unusable public Futures fields. The client is read-only and does not require private credentials.

Variable Default Purpose
KUCOIN_FUTURES_PUBLIC_FALLBACK_ENABLED true Enable unauthenticated KuCoin fallback.
KUCOIN_FUTURES_PUBLIC_BASE_URL https://api-futures.kucoin.com KuCoin Futures public base.
KUCOIN_FUTURES_TIMEOUT_S 5 Request timeout.
KUCOIN_FUTURES_MAX_RETRIES 1 Retry bound.
FRESHNESS_FUTURE_TOLERANCE_SECONDS 120 Bounded provider/local clock-skew allowance; larger future timestamps remain invalid.

KuCoin values are labelled kucoin_futures; they must not be relabelled as Binance or Datasource 4 data. KuCoin contract metadata may independently verify an otherwise-unverified active Futures contract, but it cannot override an explicit Datasource 4 safety block or noTradeGuard.

Deterministic analysis

Variable Default Purpose
FUTURES_MIN_SIGNAL_SCORE 0.55 Minimum absolute deterministic score.
FUTURES_MIN_SIGNAL_COMPONENTS 3 Minimum present scoring components.
FUTURES_MIN_DIRECTION_CONFIRMATIONS 2 Minimum components confirming direction.
FUTURES_STOP_ATR_MULTIPLIER 1.2 ATR stop-distance multiplier.
FUTURES_TAKE_PROFIT_RR 1.8 Target reward-to-risk.
FUTURES_MIN_STOP_BPS 20 Minimum stop distance in basis points.
FUTURES_PLAN_MAX_AGE_SECONDS 20 Plan expiry window.
FUTURES_DEFAULT_LEVERAGE 5 Requested leverage before caps/haircut.

Changing these variables changes deterministic behavior and requires explicit review, tests, and deployment evidence.

Execution and Paper account

Variable Default Purpose
PAPER_EQUITY_USDT implementation default Initial Paper account equity.
FUTURES_EXCHANGE_ID implementation default Exchange adapter ID.
FUTURES_API_KEY none Exchange credential boundary. Do not set for routine Paper-only development.
FUTURES_API_SECRET none Exchange secret.
FUTURES_API_PASSPHRASE none Optional exchange passphrase.

Do not introduce credentials into source, logs, diagnostics, screenshots, patches, or generated reports.

Optional AI context (Hermes auxiliary)

Variable Default Purpose
EXTERNAL_AI_ENABLED true Allow optional AI context when explicitly requested (include_external_context).
EXTERNAL_AI_TOTAL_TIMEOUT_SECONDS 15 Outer safety cap for the futures_advisory auxiliary call in advisory.py; also seeds auxiliary.futures_advisory.timeout on first persist.
EXTERNAL_AI_TIMEOUT_SECONDS 8 Legacy per-call timeout (kept for compatibility).
OPENROUTER_ANALYSIS_MODEL openai/gpt-4o-mini OpenRouter model written into Hermes fallback_providers and auxiliary.futures_advisory by sync_hf.py on first persist.
GOOGLE_ANALYSIS_MODEL gemini-2.5-flash Gemini fallback model for the same chains.
HF_ANALYSIS_MODEL meta-llama/Llama-3.1-8B-Instruct Hugging Face fallback model for the same chains.
HERMES_OPENROUTER_FALLBACK_MODEL none Optional override that takes precedence over OPENROUTER_ANALYSIS_MODEL for fallback_providers.
HERMES_GOOGLE_FALLBACK_MODEL none Optional override that takes precedence over GOOGLE_ANALYSIS_MODEL for fallback_providers.
HERMES_HF_FALLBACK_MODEL none Optional override that takes precedence over HF_ANALYSIS_MODEL for fallback_providers.

Advisory is implemented via Hermes agent.auxiliary_client.async_call_llm with auxiliary task futures_advisory (registered by plugins/futures_trading/). Parsed output follows external_ai/advisory_schema.py. Advisory output cannot change the deterministic plan, risk approval, or execution gates.

scripts/sync_hf.py persists fallback_providers and auxiliary.futures_advisory.fallback_chain into Hermes config.yaml on first boot (or when an obsolete chain such as openrouter/free is detected). After that, set HERMES_PRESERVE_FALLBACK_PROVIDERS=true so operator/Hermes-UI edits are not overwritten each boot.

Hermes-wide auxiliary provider fallback (OpenRouter β†’ Google β†’ main model) for built-in tasks (compression, title_generation, web_extract) may still be configured when HERMES_MANAGE_AUXILIARY_FALLBACKS=true.

Analysis model env vars are read by scripts/sync_hf.py when building the initial advisory chain. They are not read directly by external_ai/advisory.py, which routes through Hermes auxiliary task routing only.

Deprecated (ignored): EXTERNAL_AI_PROVIDER_ORDER, EXTERNAL_AI_PROVIDER_TIMEOUT_SECONDS β€” pre-migration direct-chain knobs with no runtime consumer.

Telegram webhook

Variable Default Purpose
TELEGRAM_ENABLED false Enable webhook adapter.
TELEGRAM_MODE webhook Must remain webhook mode.
TELEGRAM_PUBLIC_BASE_URL Space URL Webhook target base.
TELEGRAM_WEBHOOK_PATH /api/telegram/webhook Webhook path.
TELEGRAM_WEBHOOK_SECRET none Telegram secret-token header value.
TELEGRAM_BOOTSTRAP_SECRET none One-time owner claim secret.
TELEGRAM_ALLOWED_USER_IDS empty Comma-separated authorized IDs.
TELEGRAM_BOT_TOKEN none Telegram bot token.
TELEGRAM_PROXY_URL empty Optional direct Bot API proxy.
TELEGRAM_RELAY_URL empty Optional proactive relay.
TELEGRAM_RELAY_SECRET empty HMAC relay secret.
TELEGRAM_STATE_PATH /opt/data/telegram_state.json Persisted owner/watchlist state.
TELEGRAM_ALERTS_ENABLED false External-scheduler alert evaluation status.
TELEGRAM_COMMAND_RATE_LIMIT 10 Commands per user per minute.
TELEGRAM_SCAN_MAX_SYMBOLS 300 Maximum verified catalog candidates.
TELEGRAM_SCAN_SHORTLIST_SIZE 20 Deterministic shortlist size.
TELEGRAM_SCAN_RESULT_COUNT 10 Displayed result count.
TELEGRAM_SCAN_MAX_CONCURRENCY 4 Analysis concurrency.

MCP isolation

Variable Default Requirement
LINEAR_MCP_ENABLED false Keep unchanged unless separately approved.
UNREAL_ENGINE_MCP_ENABLED false Keep disabled unless separately approved.

Runtime integrity paths

Advanced overrides used by diagnostics:

HERMES_FUTURES_OVERLAY_MANIFEST
HERMES_OVERLAY_SOURCE
HERMES_SYNC_SCRIPT

These should normally use their runtime defaults.

Cold-start and provider fallback controls

Variable Default Purpose
DS4_TIMEOUT_S 6 Fast-path DS4 request timeout.
DS4_WAKE_TIMEOUT_S 25 One extended retry used only after a retryable DS4 cold-start failure.
HERMES_MAX_CONCURRENT_SESSIONS 1 Resource-safe active session cap written to config.yaml.
HERMES_MANAGE_AUXILIARY_FALLBACKS true Configure OpenRouter β†’ Google β†’ main-model fallback for Hermes text auxiliary tasks.
HERMES_PRESERVE_FALLBACK_PROVIDERS true (Space) Preserve operator/Hermes-UI fallback_providers and auxiliary.futures_advisory after initial persist; obsolete chains are still refreshed.

HTTP 402 is terminal only for the current advisory provider. It is not retried against the same provider and the next configured provider is attempted within the total advisory deadline.