Spaces:
Sleeping
Sleeping
fix: rebuild providers from scratch on each startup
Browse filesPrevents stale providers (e.g. openrouter with deleted key) from
persisting via dataset backup. Also removes hardcoded model list
from zhipu provider — let OpenClaw discover models dynamically.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- scripts/sync_hf.py +8 -14
scripts/sync_hf.py
CHANGED
|
@@ -451,18 +451,18 @@ class OpenClawFullSync:
|
|
| 451 |
data.setdefault("agents", {}).setdefault("defaults", {}).setdefault("model", {})
|
| 452 |
data.setdefault("session", {})["scope"] = "global"
|
| 453 |
|
| 454 |
-
#
|
| 455 |
-
|
|
|
|
| 456 |
if OPENAI_API_KEY:
|
| 457 |
-
|
| 458 |
"baseUrl": OPENAI_BASE_URL,
|
| 459 |
"apiKey": OPENAI_API_KEY,
|
| 460 |
"api": "openai-completions",
|
| 461 |
}
|
| 462 |
print(f"[SYNC] Set OpenAI-compatible provider (baseUrl={OPENAI_BASE_URL})")
|
| 463 |
-
# OpenRouter provider (optional)
|
| 464 |
if OPENROUTER_API_KEY:
|
| 465 |
-
|
| 466 |
"baseUrl": "https://openrouter.ai/api/v1",
|
| 467 |
"apiKey": OPENROUTER_API_KEY,
|
| 468 |
"api": "openai-completions",
|
|
@@ -472,22 +472,16 @@ class OpenClawFullSync:
|
|
| 472 |
]
|
| 473 |
}
|
| 474 |
print("[SYNC] Set OpenRouter provider")
|
| 475 |
-
# Zhipu AI provider (optional)
|
| 476 |
if ZHIPU_API_KEY:
|
| 477 |
-
|
| 478 |
"baseUrl": "https://open.bigmodel.cn/api/paas/v4",
|
| 479 |
"apiKey": ZHIPU_API_KEY,
|
| 480 |
"api": "openai-completions",
|
| 481 |
-
"models": [
|
| 482 |
-
{"id": "glm-4-flash", "name": "GLM-4 Flash"},
|
| 483 |
-
{"id": "glm-4-plus", "name": "GLM-4 Plus"},
|
| 484 |
-
{"id": "glm-4-long", "name": "GLM-4 Long"},
|
| 485 |
-
]
|
| 486 |
}
|
| 487 |
print("[SYNC] Set Zhipu AI provider")
|
| 488 |
-
if not
|
| 489 |
print("[SYNC] WARNING: No API key set (OPENAI/OPENROUTER/ZHIPU), LLM features may not work")
|
| 490 |
-
data
|
| 491 |
data["agents"]["defaults"]["model"]["primary"] = OPENCLAW_DEFAULT_MODEL
|
| 492 |
|
| 493 |
# Plugin whitelist (only load telegram + whatsapp to speed up startup)
|
|
|
|
| 451 |
data.setdefault("agents", {}).setdefault("defaults", {}).setdefault("model", {})
|
| 452 |
data.setdefault("session", {})["scope"] = "global"
|
| 453 |
|
| 454 |
+
# Build providers from scratch — only include providers with active API keys.
|
| 455 |
+
# This ensures removed secrets don't leave stale providers from backup.
|
| 456 |
+
providers = {}
|
| 457 |
if OPENAI_API_KEY:
|
| 458 |
+
providers["openai"] = {
|
| 459 |
"baseUrl": OPENAI_BASE_URL,
|
| 460 |
"apiKey": OPENAI_API_KEY,
|
| 461 |
"api": "openai-completions",
|
| 462 |
}
|
| 463 |
print(f"[SYNC] Set OpenAI-compatible provider (baseUrl={OPENAI_BASE_URL})")
|
|
|
|
| 464 |
if OPENROUTER_API_KEY:
|
| 465 |
+
providers["openrouter"] = {
|
| 466 |
"baseUrl": "https://openrouter.ai/api/v1",
|
| 467 |
"apiKey": OPENROUTER_API_KEY,
|
| 468 |
"api": "openai-completions",
|
|
|
|
| 472 |
]
|
| 473 |
}
|
| 474 |
print("[SYNC] Set OpenRouter provider")
|
|
|
|
| 475 |
if ZHIPU_API_KEY:
|
| 476 |
+
providers["zhipu"] = {
|
| 477 |
"baseUrl": "https://open.bigmodel.cn/api/paas/v4",
|
| 478 |
"apiKey": ZHIPU_API_KEY,
|
| 479 |
"api": "openai-completions",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 480 |
}
|
| 481 |
print("[SYNC] Set Zhipu AI provider")
|
| 482 |
+
if not providers:
|
| 483 |
print("[SYNC] WARNING: No API key set (OPENAI/OPENROUTER/ZHIPU), LLM features may not work")
|
| 484 |
+
data.setdefault("models", {})["providers"] = providers
|
| 485 |
data["agents"]["defaults"]["model"]["primary"] = OPENCLAW_DEFAULT_MODEL
|
| 486 |
|
| 487 |
# Plugin whitelist (only load telegram + whatsapp to speed up startup)
|