| # OpenClaw HF Space 設定指引 |
|
|
| 這份是目前專案的實際配置指引。 |
|
|
| ## 模型順序 |
|
|
| 目前預設模型鏈是: |
|
|
| 1. `huggingface/Qwen/Qwen3-8B` |
| 2. `huggingface/deepseek-ai/DeepSeek-R1` |
| 3. `openai-codex/gpt-5.4` |
|
|
| 注意: |
|
|
| - `Qwen` 是 primary |
| - `DeepSeek` 是第一個 fallback |
| - `openai-codex/gpt-5.4` 是第二個 fallback |
| - `openai-codex/gpt-5.4` 只有在它本身已經可用時,fallback 才會成功 |
|
|
| ## 你在 HF Space 要放的檔案 |
|
|
| 至少要有: |
|
|
| - `Dockerfile` |
| - `README.md` |
| - `setup-hf-config.mjs` |
| - `sync-external-storage.mjs` |
| - `guide.md` |
|
|
| ## HF Space Settings |
|
|
| ### Secrets |
|
|
| 請加入: |
|
|
| ```text |
| OPENCLAW_GATEWAY_TOKEN=<你的 gateway token> |
| HF_TOKEN=<你的 Hugging Face token> |
| SUPABASE_URL=https://cpflxjkupogczhyodoov.supabase.co |
| SUPABASE_KEY=<你的 supabase service_role key> |
| ``` |
|
|
| 如果你要 Telegram,再加: |
|
|
| ```text |
| TELEGRAM_BOT_TOKEN=<你的 telegram bot token> |
| ``` |
|
|
| ### Variables |
|
|
| 請加入: |
|
|
| ```text |
| OPENCLAW_MODEL_PRIMARY=huggingface/Qwen/Qwen3-8B |
| OPENCLAW_MODEL_FALLBACK_1=huggingface/deepseek-ai/DeepSeek-R1 |
| OPENCLAW_MODEL_FALLBACK_2=openai-codex/gpt-5.4 |
| OPENCLAW_CONTROL_UI_ALLOWED_ORIGINS=https://你的-space-url.hf.space |
| OPENCLAW_SUPABASE_TABLE=openclaw_state |
| OPENCLAW_SYNC_INTERVAL_MS=300000 |
| ``` |
|
|
| ## Supabase |
|
|
| 先在 Supabase SQL Editor 建這個 table: |
|
|
| ```sql |
| create table if not exists openclaw_state ( |
| path text primary key, |
| kind text not null, |
| content text not null, |
| sha256 text not null, |
| size_bytes bigint not null, |
| updated_at timestamptz not null, |
| synced_at timestamptz not null |
| ); |
| ``` |
|
|
| `SUPABASE_KEY` 要用: |
|
|
| - `service_role key` |
|
|
| 不要用: |
|
|
| - `Publishable Key` |
| - `Anon Key` |
|
|
| ## Telegram 最小可用設定 |
|
|
| 如果你只是要 bot 先能用,只要: |
|
|
| ```text |
| TELEGRAM_BOT_TOKEN=<你的 bot token> |
| ``` |
|
|
| 其他 `OPENCLAW_TELEGRAM_*` 都不是必填。 |
|
|
| ## Persistent Storage |
|
|
| 建議開啟 HF Space 的 persistent storage。 |
|
|
| 原因: |
|
|
| - OpenClaw 狀態會存在 `/data/.openclaw` |
| - 如果之後 `openai-codex/gpt-5.4` 要用到持久化 auth,沒有 persistent storage 會不穩 |
|
|
| ## 部署後怎麼檢查 |
|
|
| 看 Space logs,至少確認: |
|
|
| 1. `setup-hf-config.mjs` 有執行 |
| 2. 出現 `model=huggingface/Qwen/Qwen3-8B` |
| 3. 出現 `fallbacks=2` |
| 4. 出現 `supabase=1` |
| 5. gateway listen 在 `0.0.0.0:7860` |
|
|
| 再確認: |
|
|
| 1. Control UI 能打開 |
| 2. 可以用 `OPENCLAW_GATEWAY_TOKEN` 登入 |
| 3. Supabase 的 `openclaw_state` 有同步資料 |
|
|
| ## 關於 `openai-codex/gpt-5.4` |
|
|
| 目前 `openai-codex/gpt-5.4` 是 fallback,不是 primary。 |
|
|
| 這樣做的好處是: |
|
|
| - 主要流量先走 Qwen |
| - Qwen 不行再走 DeepSeek |
| - Codex 放最後 |
|
|
| 但要注意: |
|
|
| - 如果 `openai-codex/gpt-5.4` 還沒完成它需要的登入或授權 |
| - 真正切到第三個 fallback 時,仍然可能失敗 |
|
|
| 所以目前最穩的理解方式是: |
|
|
| - `Qwen + DeepSeek` 保證主流程 |
| - `Codex` 先保留在 fallback 鏈 |
|
|
| ## 最後的最小清單 |
|
|
| ### 必填 Secrets |
|
|
| ```text |
| OPENCLAW_GATEWAY_TOKEN |
| HF_TOKEN |
| SUPABASE_URL |
| SUPABASE_KEY |
| ``` |
|
|
| ### 必填 Variables |
|
|
| ```text |
| OPENCLAW_MODEL_PRIMARY=huggingface/Qwen/Qwen3-8B |
| OPENCLAW_MODEL_FALLBACK_1=huggingface/deepseek-ai/DeepSeek-R1 |
| OPENCLAW_MODEL_FALLBACK_2=openai-codex/gpt-5.4 |
| ``` |
|
|
| ### 建議 Variables |
|
|
| ```text |
| OPENCLAW_CONTROL_UI_ALLOWED_ORIGINS=https://你的-space-url.hf.space |
| OPENCLAW_SUPABASE_TABLE=openclaw_state |
| OPENCLAW_SYNC_INTERVAL_MS=300000 |
| ``` |
|
|