From 356543afdb17e74d4dbc8d700bb39dec23fb9edc Mon Sep 17 00:00:00 2001 From: Cosmo Date: Thu, 23 Apr 2026 13:18:23 +0000 Subject: [PATCH] config: make OpenClaw credentials optional when LLM_BACKEND=claude Allows removing all GATEWAY_*, VOICE_MODEL, *_SESSION_KEY env vars when running on the Claude direct backend. The OpenClaw hard-exit check now only fires when that backend is actually selected. --- satellite/config.py | 20 ++++++++++++-------- satellite/modes.py | 5 ++++- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/satellite/config.py b/satellite/config.py index 5de4b53..159753a 100644 --- a/satellite/config.py +++ b/satellite/config.py @@ -19,14 +19,18 @@ logging.basicConfig( ) log = logging.getLogger("cosmo") -# OpenClaw Gateway — Cosmo (по умолчанию) -# Роутинг к нужному агенту делается через x-openclaw-session-key, поэтому AGENT не нужен. -GATEWAY_URL = os.getenv("GATEWAY_URL", "http://192.168.31.103:18789") -GATEWAY_TOKEN = os.getenv("GATEWAY_TOKEN") -VOICE_MODEL = os.getenv("VOICE_MODEL", "openai/gpt-4o-mini") +# Какой LLM backend — openclaw (дефолт) или claude (прямой Anthropic). +# В конфиге используется для решения «требовать ли OpenClaw credentials». +LLM_BACKEND_CFG = os.getenv("LLM_BACKEND", "openclaw").lower() + +# OpenClaw Gateway — Cosmo +# Нужны только если LLM_BACKEND=openclaw. При claude-бэкенде остаются пустыми — это ок. +GATEWAY_URL = os.getenv("GATEWAY_URL", "") +GATEWAY_TOKEN = os.getenv("GATEWAY_TOKEN", "") +VOICE_MODEL = os.getenv("VOICE_MODEL", "") # OpenClaw Gateway — Люся -LUSYA_GATEWAY_URL = os.getenv("LUSYA_GATEWAY_URL", "http://192.168.31.103:18790") +LUSYA_GATEWAY_URL = os.getenv("LUSYA_GATEWAY_URL", "") LUSYA_GATEWAY_TOKEN = os.getenv("LUSYA_GATEWAY_TOKEN", GATEWAY_TOKEN) LUSYA_VOICE_MODEL = os.getenv("LUSYA_VOICE_MODEL", VOICE_MODEL) @@ -84,6 +88,6 @@ BARGE_IN_WARMUP = float(os.getenv("BARGE_IN_WARMUP", "0.8")) # сек пр # Groq client groq_client = Groq(api_key=os.getenv("GROQ_API_KEY")) -if not GATEWAY_TOKEN: - print("❌ GATEWAY_TOKEN не задан в .env") +if LLM_BACKEND_CFG == "openclaw" and not GATEWAY_TOKEN: + print("❌ GATEWAY_TOKEN не задан в .env (нужен для LLM_BACKEND=openclaw)") sys.exit(1) diff --git a/satellite/modes.py b/satellite/modes.py index 03c7ead..8c8a905 100644 --- a/satellite/modes.py +++ b/satellite/modes.py @@ -75,7 +75,10 @@ def _conversation_loop(agent_id: str, agent_name: str = "Cosmo"): def run_with_enter(): print("\n🦞 Cosmo Satellite запущен (режим: Enter для активации)") - print(f" Gateway : {GATEWAY_URL}") + if LLM_BACKEND == "claude": + print(f" LLM : Claude (direct)") + else: + print(f" Gateway : {GATEWAY_URL}") print("\nНажми Enter → говори → получи ответ. Ctrl+C для выхода.\n") while True: