Files
ai-daily-report/skill/references/llm-config-auto-follow.md

1.5 KiB

AI Daily Pipeline — LLM Config Auto-Follow (2026-05-30)

Problem

The daily report script had hardcoded XIAOMI_API_KEY / XIAOMI_BASE_URL env vars. When the user switches Hermes' main model provider, the script would still use the old provider unless manually updated.

Solution: resolve_llm_config(env)

Added to ai_daily_blog_pipeline.py (replaces hardcoded reads in llm_call()):

def resolve_llm_config(env: dict):
    """Read Hermes config to get the active provider's API key, base_url, and model."""
    # 1. Read ~/.hermes/config.yaml → model.provider, model.base_url, model.default
    # 2. Read ~/.hermes/auth.json → credential_pool[provider].source (e.g. "env:XIAOMI_API_KEY")
    # 3. Resolve env var name → actual key from .env
    # 4. Fallback to LLM_API_KEY / XIAOMI_API_KEY if auth.json lookup fails
    return api_key, base_url, model_name

Config Sources (priority order)

  1. ~/.hermes/config.yamlmodel.provider, model.base_url, model.default
  2. ~/.hermes/auth.jsoncredential_pool[provider][0].source (format: env:VAR_NAME)
  3. ~/.hermes/.env → actual key value
  4. Legacy fallback: LLM_API_KEY / XIAOMI_API_KEY / LLM_BASE_URL / LLM_MODEL

Usage

When user runs hermes config set model.provider=minimax, the daily report script automatically uses MiniMax's API key and endpoint on the next run. No script changes needed.

Pitfall

The script needs import yaml — ensure PyYAML is installed. It's available in the Hermes venv but may not be in system Python.