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.
This commit is contained in:
Cosmo
2026-04-23 13:18:23 +00:00
parent 05de9c284b
commit 356543afdb
2 changed files with 16 additions and 9 deletions

View File

@@ -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)

View File

@@ -75,6 +75,9 @@ def _conversation_loop(agent_id: str, agent_name: str = "Cosmo"):
def run_with_enter():
print("\n🦞 Cosmo Satellite запущен (режим: Enter для активации)")
if LLM_BACKEND == "claude":
print(f" LLM : Claude (direct)")
else:
print(f" Gateway : {GATEWAY_URL}")
print("\nНажми Enter → говори → получи ответ. Ctrl+C для выхода.\n")