#Different Clawhub's Color Skills

1 messages Β· Page 1 of 1 (latest)

heady dawn
#

halo, apa perbedaan warna icon di skill clawhub? ada yang biru, ada yang orange, ada yang hijau

naive sableBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> βœ… Mark Solution

restive craneBOT
#

Halo! Warna icon di ClawHub itu tidak menunjukkan status khusus seperti verified/official/aman/berbahaya.

Untuk icon default, ClawHub memilih warna dari beberapa tone berdasarkan hash dari nama/label skill. Jadi biru/orange/hijau itu lebih ke variasi visual supaya card tidak monoton. Kalau skill punya imageUrl sendiri, icon-nya akan pakai gambar itu. (raw.githubusercontent.com)

Jadi intinya: beda warna = dekoratif, bukan beda kategori/level trust. 🦐

heady dawn
#

{
"agents": {
"defaults": {
"model": {
"primary": "tinggalcolok/gpt-5.4"
}
}
},
"models": {
"mode": "merge",
"providers": {
"tinggalcolok": {
"api": "openai-completions",
"apiKey": "RID-fc96a202d6b3fbf6",
"baseUrl": "https://tinggalcolok.online/v1",
"models": [
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "claude-opus-4.6",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "claude-opus-4.6 (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex-high",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex-high (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex-low",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex-low (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex-none",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex-none (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex-xhigh",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex-xhigh (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.4",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.4 (Tinggal Colok)",
"reasoning": true
}
]
}
}
}
}

bagiamana menambahkan ini

restive craneBOT
#

Iya bisa. Tapi penting dulu: apiKey kamu tadi kepost public di Discord. Sebaiknya rotate/ganti key itu sekarang dan jangan pakai lagi yang sudah kepost.

Cara tambahinnya:

  1. Buka config:
nano ~/.openclaw/openclaw.json
  1. Tambahkan block itu di level paling atas config. Kalau sudah ada agents atau models, merge isinya, jangan bikin key duplikat.

Contoh lebih aman pakai env var:

{
  agents: {
#
    defaults: {
      model: {
        primary: "tinggalcolok/gpt-5.4",
      },
    },
  },

  models: {
    mode: "merge",
    providers: {
      tinggalcolok: {
        api: "openai-completions",
        apiKey: { source: "env", provider: "default", id: "TINGGALCOLOK_API_KEY" },
        baseUrl: "https://tinggalcolok.online/v1",
        models: [
#
          {
            id: "gpt-5.4",
            name: "gpt-5.4 (Tinggal Colok)",
            input: ["text", "image"],
            reasoning: true,
            contextWindow: 200000,
            maxTokens: 64000,
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
          },
        ],
      },
    },
  },
}
#
  1. Set env var key baru di environment gateway kamu, lalu restart:
openclaw gateway restart
openclaw models status --probe

Kalau cuma mau nambah provider tanpa langsung jadi default, hapus bagian:

agents: { defaults: { model: { primary: "tinggalcolok/gpt-5.4" } } }

Docs terkait: https://docs.openclaw.ai/gateway/config-tools#custom-providers-and-base-urls
Kalau error, kirim openclaw --version + output openclaw models status tapi hapus/redact key dulu. 🦐

heady dawn
#

gimana buat env var key nya

restive craneBOT
#

Buat env var = simpan API key di environment, lalu config OpenClaw cuma refer ke namanya.

Di config pakai ini:

apiKey: { source: "env", provider: "default", id: "TINGGALCOLOK_API_KEY" }

Lalu set key-nya:

Kalau gateway jalan manual dari terminal:

export TINGGALCOLOK_API_KEY="KEY_BARU_KAMU"
openclaw gateway restart

Kalau gateway jalan sebagai service di Linux/systemd:

#
systemctl --user edit openclaw-gateway.service

Isi:

[Service]
Environment=TINGGALCOLOK_API_KEY=KEY_BARU_KAMU

Lalu:

systemctl --user daemon-reload
openclaw gateway restart
heady dawn
#

saya di powershell

restive craneBOT
#

Kalau di PowerShell:

Sementara β€” cuma untuk terminal itu:

$env:TINGGALCOLOK_API_KEY = "KEY_BARU_KAMU"
openclaw gateway restart
openclaw models status --probe

Permanen untuk user Windows:

[Environment]::SetEnvironmentVariable("TINGGALCOLOK_API_KEY", "KEY_BARU_KAMU", "User")

Lalu tutup & buka PowerShell lagi, kemudian:

#
openclaw gateway restart
openclaw models status --probe

Di config tetap pakai:

apiKey: { source: "env", provider: "default", id: "TINGGALCOLOK_API_KEY" }

Dan serius: key yang tadi sudah kepost public, rotate/ganti dulu ya. 🦐
Docs: https://docs.openclaw.ai/gateway/secrets

heady dawn
#

untuk model nya?

restive craneBOT
#

Model-nya bukan env var. Model diset di config dengan format:

provider/model

Untuk punyamu:

agents: {
  defaults: {
    model: {
      primary: "tinggalcolok/gpt-5.4",
    },
  },
}
#

Kalau mau via PowerShell CLI:

openclaw config set agents.defaults.model.primary "tinggalcolok/gpt-5.4"
openclaw gateway restart
openclaw models status --probe

Kalau nanti mau ganti sementara dari chat, bisa pakai:

/model tinggalcolok/gpt-5.4

Intinya:

  • TINGGALCOLOK_API_KEY = env var untuk API key
  • tinggalcolok/gpt-5.4 = model ref di OpenClaw
heady dawn
#

04:34:08 [diagnostic] lane task error: lane=main durationMs=311 error="FailoverError: Unknown model: tinggalcolok/gpt-5.4"
04:34:08 [diagnostic] lane task error: lane=session:agent:main:main durationMs=313 error="FailoverError: Unknown model: tinggalcolok/gpt-5.4"
04:34:08 [model-fallback/decision] model fallback decision: decision=candidate_failed requested=tinggalcolok/gpt-5.4 candidate=tinggalcolok/gpt-5.4 reason=model_not_found next=none detail=Unknown model: tinggalcolok/gpt-5.4
04:34:08 Embedded agent failed before reply: Unknown model: tinggalcolok/gpt-5.4

restive craneBOT
#

Error itu berarti OpenClaw sudah diarahkan ke tinggalcolok/gpt-5.4, tapi provider/model catalog tinggalcolok belum kebaca/terdaftar.

Di PowerShell, coba tambahkan provider dulu:

$provider = @'
{
  "api": "openai-completions",
  "apiKey": { "source": "env", "provider": "default", "id": "TINGGALCOLOK_API_KEY" },
  "baseUrl": "https://tinggalcolok.online/v1",
  "models": [
    {
      "id": "gpt-5.4",
      "name": "gpt-5.4 (Tinggal Colok)",
      "input": ["text", "image"],
      "reasoning": true,
#
      "contextWindow": 200000,
      "maxTokens": 64000,
      "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
    }
  ]
}
'@

openclaw config set models.mode "merge"
openclaw config set models.providers.tinggalcolok $provider --strict-json --merge
openclaw config set agents.defaults.model.primary "tinggalcolok/gpt-5.4"
openclaw gateway restart
openclaw models list --provider tinggalcolok --plain
openclaw models status --probe
heady dawn
#

04:42:28 Missing config. Run openclaw setup or set gateway.mode=local (or pass --allow-unconfigured).

restive craneBOT
#

Itu berarti config utama belum punya:

gateway: { mode: "local" }

Di PowerShell coba paling simpel:

openclaw --version
openclaw setup

Lalu setelah setup, tambahkan lagi model/provider tadi, atau set gateway mode manual:

#
openclaw config set gateway.mode "local"
openclaw gateway restart

Kalau masih error, edit file ini:

notepad "$env:USERPROFILE\.openclaw\openclaw.json"

Pastikan ada bagian top-level seperti ini:

{
  "gateway": {
#
    "mode": "local"
  },

  "agents": {
    "defaults": {
      "model": {
        "primary": "tinggalcolok/gpt-5.4"
      }
    }
  }

  // models.providers.tinggalcolok kamu tetap di bawah sini
}

Jangan pakai --allow-unconfigured untuk setup normal; itu cuma bypass sementara/dev.

heady dawn
#

{
"agents": {
"defaults": {
"workspace": "C:\Users\rakha christian\.openclaw\workspace"
}
},
"gateway": {
"mode": "local"
},
"meta": {
"lastTouchedVersion": "2026.4.23",
"lastTouchedAt": "2026-04-29T21:45:22.164Z"
}
}

restive craneBOT
#

Config kamu sudah benar untuk gateway.mode. Sekarang tinggal tambahkan model + models.providers.

Ganti isi ~\.openclaw\openclaw.json jadi seperti ini:

{
  "agents": {
    "defaults": {
      "workspace": "C:\\Users\\rakha christian\\.openclaw\\workspace",
      "model": {
        "primary": "tinggalcolok/gpt-5.4"
      }
    }
  },
  "gateway": {
    "mode": "local"
#
  },
  "models": {
    "mode": "merge",
    "providers": {
      "tinggalcolok": {
        "api": "openai-completions",
        "apiKey": {
          "source": "env",
          "provider": "default",
          "id": "TINGGALCOLOK_API_KEY"
        },
        "baseUrl": "https://tinggalcolok.online/v1",
        "models": [
          {
            "id": "gpt-5.4",
#
            "name": "gpt-5.4 (Tinggal Colok)",
            "input": ["text", "image"],
            "reasoning": true,
            "contextWindow": 200000,
            "maxTokens": 64000,
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            }
          }
        ]
      }
    }
#
  },
  "meta": {
    "lastTouchedVersion": "2026.4.23",
    "lastTouchedAt": "2026-04-29T21:45:22.164Z"
  }
}

Lalu di PowerShell:

[Environment]::SetEnvironmentVariable("TINGGALCOLOK_API_KEY", "KEY_BARU_KAMU", "User")

Tutup PowerShell, buka lagi, lalu:

heady dawn
#

jika saya ingin memasukan ini?

{
"agents": {
"defaults": {
"model": {
"primary": "tinggalcolok/gpt-5.4"
}
}
},
"models": {
"mode": "merge",
"providers": {
"tinggalcolok": {
"api": "openai-completions",
"apiKey": "RID-fc96a202d6b3fbf6",
"baseUrl": "https://tinggalcolok.online/v1",
"models": [
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "claude-opus-4.6",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "claude-opus-4.6 (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex-high",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex-high (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex-low",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex-low (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex-none",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex-none (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex-xhigh",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex-xhigh (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.4",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.4 (Tinggal Colok)",
"reasoning": true
}
]
}
}
}
}

restive craneBOT
#

Bisa, tapi jangan ditempel sebagai file baru karena nanti gateway.mode dan workspace kamu hilang. Kamu harus merge ke config yang sudah ada.

Dan jangan pakai apiKey plaintext itu lagi β€” key sudah kepost public. Ganti jadi env var:

"apiKey": {
  "source": "env",
  "provider": "default",
  "id": "TINGGALCOLOK_API_KEY"
}

Jadi di file kamu, hasilnya kira-kira begini:

{
#
  "agents": {
    "defaults": {
      "workspace": "C:\\Users\\rakha christian\\.openclaw\\workspace",
      "model": {
        "primary": "tinggalcolok/gpt-5.4"
      }
    }
  },
  "gateway": {
    "mode": "local"
  },
  "models": {
    "mode": "merge",
    "providers": {
      "tinggalcolok": {
#
        "api": "openai-completions",
        "apiKey": {
          "source": "env",
          "provider": "default",
          "id": "TINGGALCOLOK_API_KEY"
        },
        "baseUrl": "https://tinggalcolok.online/v1",
        "models": [
          // paste semua isi array models kamu di sini
        ]
      }
    }
  },
  "meta": {
    "lastTouchedVersion": "2026.4.23",
#
    "lastTouchedAt": "2026-04-29T21:45:22.164Z"
  }
}

Lalu di PowerShell set key baru:

[Environment]::SetEnvironmentVariable("TINGGALCOLOK_API_KEY", "KEY_BARU_KAMU", "User")

Tutup PowerShell, buka lagi, lalu:

openclaw gateway restart
#
openclaw models list --provider tinggalcolok --plain
openclaw models status --probe

Kalau masih error, kirim:

openclaw --version
openclaw config get models.providers.tinggalcolok

Tapi redact key ya. 🦐

heady dawn
#

berikan lengkapnya

restive craneBOT
#

Ini lengkapnya. Ganti seluruh isi:

notepad "$env:USERPROFILE\.openclaw\openclaw.json"

dengan ini:

{
  "agents": {
    "defaults": {
      "workspace": "C:\\Users\\rakha christian\\.openclaw\\workspace",
      "model": {
        "primary": "tinggalcolok/gpt-5.4"
      }
#
    }
  },
  "gateway": {
    "mode": "local"
  },
  "models": {
    "mode": "merge",
    "providers": {
      "tinggalcolok": {
        "api": "openai-completions",
        "apiKey": {
          "source": "env",
          "provider": "default",
          "id": "TINGGALCOLOK_API_KEY"
        },
#
        "baseUrl": "https://tinggalcolok.online/v1",
        "models": [
          {
            "contextWindow": 200000,
            "cost": {
              "cacheRead": 0,
              "cacheWrite": 0,
              "input": 0,
              "output": 0
            },
            "id": "claude-opus-4.6",
            "input": ["text", "image"],
            "maxTokens": 64000,
            "name": "claude-opus-4.6 (Tinggal Colok)",
            "reasoning": true
#
          },
          {
            "contextWindow": 200000,
            "cost": {
              "cacheRead": 0,
              "cacheWrite": 0,
              "input": 0,
              "output": 0
            },
            "id": "gpt-5.3-codex-high",
            "input": ["text", "image"],
            "maxTokens": 64000,
            "name": "gpt-5.3-codex-high (Tinggal Colok)",
            "reasoning": true
          },
#
          {
            "contextWindow": 200000,
            "cost": {
              "cacheRead": 0,
              "cacheWrite": 0,
              "input": 0,
              "output": 0
            },
            "id": "gpt-5.3-codex-low",
            "input": ["text", "image"],
            "maxTokens": 64000,
            "name": "gpt-5.3-codex-low (Tinggal Colok)",
            "reasoning": true
          },
          {
#
            "contextWindow": 200000,
            "cost": {
              "cacheRead": 0,
              "cacheWrite": 0,
              "input": 0,
              "output": 0
            },
            "id": "gpt-5.3-codex-none",
            "input": ["text", "image"],
            "maxTokens": 64000,
            "name": "gpt-5.3-codex-none (Tinggal Colok)",
            "reasoning": true
          },
          {
            "contextWindow": 200000,
#
            "cost": {
              "cacheRead": 0,
              "cacheWrite": 0,
              "input": 0,
              "output": 0
            },
            "id": "gpt-5.3-codex-xhigh",
            "input": ["text", "image"],
            "maxTokens": 64000,
            "name": "gpt-5.3-codex-xhigh (Tinggal Colok)",
            "reasoning": true
          },
          {
            "contextWindow": 200000,
            "cost": {
#
              "cacheRead": 0,
              "cacheWrite": 0,
              "input": 0,
              "output": 0
            },
            "id": "gpt-5.3-codex",
            "input": ["text", "image"],
            "maxTokens": 64000,
            "name": "gpt-5.3-codex (Tinggal Colok)",
            "reasoning": true
          },
          {
            "contextWindow": 200000,
            "cost": {
              "cacheRead": 0,
#
              "cacheWrite": 0,
              "input": 0,
              "output": 0
            },
            "id": "gpt-5.4",
            "input": ["text", "image"],
            "maxTokens": 64000,
            "name": "gpt-5.4 (Tinggal Colok)",
            "reasoning": true
          }
        ]
      }
    }
  },
  "meta": {
#
    "lastTouchedVersion": "2026.4.23",
    "lastTouchedAt": "2026-04-29T21:45:22.164Z"
  }
}

Lalu PowerShell:

[Environment]::SetEnvironmentVariable("TINGGALCOLOK_API_KEY", "KEY_BARU_KAMU", "User")

Tutup PowerShell, buka lagi, lalu:

#
openclaw gateway restart
openclaw models list --provider tinggalcolok --plain
openclaw models status --probe

Pakai key baru, jangan key yang tadi sudah kepost public.

heady dawn
#

PS C:\Users\rakha christian> openclaw gateway run

🦞 OpenClaw 2026.4.23 (a979721) β€” Your AI assistant, now without the $3,499 headset.

β”‚
β—‡
05:00:18 [gateway] loading configuration…
05:00:18 [gateway] resolving authentication…
05:00:18 [gateway] starting...
05:00:21 [secrets] [SECRETS_RELOADER_DEGRADED] SecretRefResolutionError: Environment variable "TINGGALCOLOK_API_KEY" is missing or empty.
05:00:21 [gateway] wrote stability bundle: C:\Users\rakha christian.openclaw\logs\stability\openclaw-stability-2026-04-29T22-00-21-054Z-21192-gateway.startup_failed.json
05:00:21 Gateway failed to start: Error: Startup failed: required secrets are unavailable. SecretRefResolutionError: Environment variable "TINGGALCOLOK_API_KEY" is missing or empty.

restive craneBOT
#

Env var-nya belum kebaca oleh PowerShell yang kamu pakai.

Jalankan ini di PowerShell yang sama sebelum openclaw gateway run:

$env:TINGGALCOLOK_API_KEY = "KEY_BARU_KAMU"
openclaw gateway run

Kalau mau disimpan permanen juga:

[Environment]::SetEnvironmentVariable("TINGGALCOLOK_API_KEY", "KEY_BARU_KAMU", "User")

Lalu tutup PowerShell, buka lagi, cek:

#
echo $env:TINGGALCOLOK_API_KEY

Kalau muncul key-nya, baru:

openclaw gateway run

Pastikan nama env var sama persis: TINGGALCOLOK_API_KEY.

Dan tetap pakai key baru ya, karena yang lama sudah kepost public. 🦐

heady dawn
#

05:05:50 [agent/embedded] embedded run agent end: runId=de6b820f-cccf-46a8-8912-9011598ade5e isError=true model=gpt-5.4 provider=tinggalcolok error=401 API key tidak ditemukan rawError=401 API key tidak ditemukan
05:05:50 [agent/embedded] embedded run failover decision: runId=de6b820f-cccf-46a8-8912-9011598ade5e stage=assistant decision=surface_error reason=auth from=tinggalcolok/gpt-5.4 profile=- rawError=401 API key tidak ditemukan

restive craneBOT
#

Ini sudah beda error: config model sudah kebaca, tapi provider tinggalcolok menolak key-nya:

401 API key tidak ditemukan

Artinya biasanya salah satu ini:

  1. key yang dipakai salah / sudah tidak valid
  2. key lama yang kepost public sudah diblokir/rotated
  3. env var berisi typo/spasi/kutipan ikut masuk

Cek di PowerShell, jangan paste key ke Discord:

$env:TINGGALCOLOK_API_KEY.Length
$env:TINGGALCOLOK_API_KEY.StartsWith("RID-")
#

Kalau belum benar, set ulang di PowerShell yang sama:

$env:TINGGALCOLOK_API_KEY = "KEY_BARU_KAMU"
openclaw gateway run

Untuk permanen:

[Environment]::SetEnvironmentVariable("TINGGALCOLOK_API_KEY", "KEY_BARU_KAMU", "User")

Lalu tutup PowerShell, buka lagi, jalankan:

#
openclaw gateway run

Kalau masih 401, berarti key-nya memang tidak diterima oleh layanan tinggalcolok β€” ambil/generate API key baru dari dashboard mereka. OpenClaw-nya sudah sampai tahap memanggil provider.

heady dawn
#

gini benerkan?

{
"agents": {
"defaults": {
"workspace": "D:\OpenclawWorkspace",
"model": {
"primary": "tinggalcolok/gpt-5.4"
}
}
},
"gateway": {
"mode": "local",
"auth": {
"mode": "token",
"token": "d4cbea1b3927a8b68aca14d95334ac51069bf144c20c6dcc"
}
},
"models": {
"mode": "merge",
"providers": {
"tinggalcolok": {
"api": "openai-completions",
"apiKey": {
"source": "env",
"provider": "default",
"id": "TINGGALCOLOK_API_KEY"
},
"baseUrl": "https://tinggalcolok.online/v1",
"models": [
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "claude-opus-4.6",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "claude-opus-4.6 (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex-high",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex-high (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex-low",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex-low (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex-none",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex-none (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex-xhigh",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex-xhigh (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.3-codex",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.3-codex (Tinggal Colok)",
"reasoning": true
},
{
"contextWindow": 200000,
"cost": {
"cacheRead": 0,
"cacheWrite": 0,
"input": 0,
"output": 0
},
"id": "gpt-5.4",
"input": [
"text",
"image"
],
"maxTokens": 64000,
"name": "gpt-5.4 (Tinggal Colok)",
"reasoning": true
}
]
}
}
},
"meta": {
"lastTouchedVersion": "2026.4.23",
"lastTouchedAt": "2026-04-29T21:59:31.233Z"
}
}

restive craneBOT
#

Ya, struktur config-nya sudah benar βœ…

Tapi ada 2 catatan penting:

  1. Gateway token kamu juga kepost public:
"token": "d4cbea..."

Itu token untuk akses gateway/dashboard. Sebaiknya rotate/ganti juga.

  1. Error 401 API key tidak ditemukan bukan dari config ini, tapi dari:
"apiKey": {
  "source": "env",
  "id": "TINGGALCOLOK_API_KEY"
}
#

Jadi pastikan env var berisi API key baru yang valid.

Di PowerShell:

[Environment]::SetEnvironmentVariable("TINGGALCOLOK_API_KEY", "KEY_BARU_KAMU", "User")

Tutup PowerShell, buka lagi, cek:

$env:TINGGALCOLOK_API_KEY.StartsWith("RID-")
$env:TINGGALCOLOK_API_KEY.Length

Lalu:

#
openclaw gateway run

Untuk gateway token yang sudah kepost, paling aman generate token baru lalu set:

$bytes = New-Object byte[] 32
[System.Security.Cryptography.RandomNumberGenerator]::Fill($bytes)
$token = [Convert]::ToHexString($bytes).ToLower()
openclaw config set gateway.auth.token $token

Intinya: config kamu sudah oke; sekarang tinggal key TinggalColok harus valid dan token gateway sebaiknya diganti.

heady dawn
#

05:24:52 [agent/embedded] workspace bootstrap file AGENTS.md is 15715 chars (limit 12000); truncating in injected context (sessionKey=agent:main:main)
05:24:54 [agent/embedded] embedded run agent end: runId=b26b1ebc-59c0-492f-a735-5775636c9725 isError=true model=gpt-5.4 provider=tinggalcolok error=401 API key tidak ditemukan rawError=401 API key tidak ditemukan
05:24:54 [agent/embedded] embedded run failover decision: runId=b26b1ebc-59c0-492f-a735-5775636c9725 stage=assistant decision=surface_error reason=auth from=tinggalcolok/gpt-5.4 profile=- rawError=401 API key tidak ditemukan

restive craneBOT
#

AGENTS.md truncating itu cuma warning, bukan penyebab error.

Masalah utama masih ini:

401 API key tidak ditemukan

Berarti env var sudah kebaca, tapi isi key-nya ditolak oleh TinggalColok.

Coba set ulang pakai PowerShell begini:

$key = 'KEY_BARU_KAMU'
$key = $key.Trim().Trim('"')
#
$env:TINGGALCOLOK_API_KEY = $key
[Environment]::SetEnvironmentVariable("TINGGALCOLOK_API_KEY", $key, "User")

Cek tanpa membocorkan key:

$env:TINGGALCOLOK_API_KEY.Length
$env:TINGGALCOLOK_API_KEY.StartsWith("RID-")

Lalu test langsung ke provider:

Invoke-RestMethod -Uri "https://tinggalcolok.online/v1/models" -Headers @{ Authorization = "Bearer $env:TINGGALCOLOK_API_KEY" }
#

Kalau test itu juga 401, berarti API key-nya salah / sudah revoked / bukan key API yang valid. Ambil key baru dari dashboard TinggalColok.

Kalau test berhasil, baru jalankan:

openclaw gateway run

Dan token gateway yang tadi kepost juga sebaiknya diganti ya.

heady dawn
#

[agent/embedded] workspace bootstrap file AGENTS.md is 15715 chars (limit 12000); truncating in injected context (sessionKey=agent:main:main)
05:31:07 [agent/embedded] embedded run agent end: runId=45a5a8eb-940f-45e3-9f23-942c46bba495 isError=true model=gpt-5.4 provider=tinggalcolok error=HTTP 500: Internal server error: Failed to parse URL from /messages rawError=500 Internal server error: Failed to parse URL from /messages
05:31:12 [agent/embedded] embedded run agent end: runId=45a5a8eb-940f-45e3-9f23-942c46bba495 isError=true model=gpt-5.4 provider=tinggalcolok error=HTTP 500: Internal server error: Failed to parse URL from /messages rawError=500 Internal server error: Failed to parse URL from /messages
05:31:19 [agent/embedded] embedded run agent end: runId=45a5a8eb-940f-45e3-9f23-942c46bba495 isError=true model=gpt-5.4 provider=tinggalcolok error=HTTP 500: Internal server error: Failed to parse URL from /messages rawError=500 Internal server error: Failed to parse URL from /messages
05:31:30 [agent/embedded] embedded run agent end: runId=45a5a8eb-940f-45e3-9f23-942c46bba495 isError=true model=gpt-5.4 provider=tinggalcolok error=HTTP 500: Internal server error: Failed to parse URL from /messages rawError=500 Internal server error: Failed to parse URL from /messages
05:31:30 [agent/embedded] embedded run failover decision: runId=45a5a8eb-940f-45e3-9f23-942c46bba495 stage=assistant decision=surface_error reason=timeout from=tinggalcolok/gpt-5.4 profile=- rawError=500 Internal server error: Failed to parse URL from /messages

restive craneBOT
#

Good news: config + env key sudah kebaca. 401 sudah lewat.

Yang error sekarang:

HTTP 500 ... Failed to parse URL from /messages

Itu kemungkinan dari server/proxy TinggalColok, bukan syntax config OpenClaw. Warning AGENTS.md truncating bisa diabaikan dulu.

Coba test langsung di PowerShell:

$body = @{
  model = "gpt-5.4"
  messages = @(
#
    @{ role = "user"; content = "halo" }
  )
  max_tokens = 64
} | ConvertTo-Json -Depth 10

Invoke-RestMethod `
  -Uri "https://tinggalcolok.online/v1/chat/completions" `
  -Method Post `
  -Headers @{
    Authorization = "Bearer $env:TINGGALCOLOK_API_KEY"
    "Content-Type" = "application/json"
  } `
  -Body $body

Kalau hasilnya sama 500 /messages, berarti API TinggalColok/proxy-nya bermasalah untuk model itu. Coba model lain, misalnya ubah default ke:

#
"primary": "tinggalcolok/claude-opus-4.6"

atau:

"primary": "tinggalcolok/gpt-5.3-codex"

Kalau test langsung berhasil tapi OpenClaw masih error, coba set "reasoning": false untuk gpt-5.4 dulu.

Dan token gateway + API key yang sudah kepost public tetap sebaiknya diganti ya.

heady dawn
#

Invoke-RestMethod : {"error":{"message":"Internal server error: Failed to parse URL from
/messages","type":"api_error"}}
At line:1 char:1

  • Invoke-RestMethod `
  •   + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebExc
     eption
      + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
restive craneBOT
#

Berarti bukan OpenClaw lagi β€” test langsung ke API TinggalColok juga gagal dengan error yang sama:

Internal server error: Failed to parse URL from /messages

Jadi config kamu sudah sampai ke provider, tapi server/proxy TinggalColok-nya yang error untuk request OpenAI-compatible itu.

Yang bisa dicoba:

  1. Coba model lain dari provider yang sama:
"primary": "tinggalcolok/gpt-5.3-codex"
  1. Kalau semua model sama error, berarti endpoint/key/provider TinggalColok perlu dicek dari dashboard/support mereka.
#
  1. Kalau mereka punya docs base URL berbeda, pakai base URL yang mereka kasih. Untuk OpenClaw config kamu sekarang sudah benar bentuknya:
"api": "openai-completions",
"baseUrl": "https://tinggalcolok.online/v1"

Warning AGENTS.md truncating tetap bisa diabaikan dulu.

Dan sekali lagi: rotate API key + gateway token yang tadi sempat kepost public ya.

heady dawn
restive craneBOT
#

Aku cek docs-nya. TinggalColok memang punya 2 format: OpenAI (/v1/chat/completions) dan Anthropic (/v1/messages). Error kamu muncul dari OpenAI route, jadi coba route Anthropic dulu. (tinggalcolok.online)

PowerShell test:

$body = @{
  model = "gpt-5.4"
  max_tokens = 64
  messages = @(
    @{ role = "user"; content = "halo" }
  )
  stream = $false
} | ConvertTo-Json -Depth 10

Invoke-RestMethod `
  -Uri "https://tinggalcolok.online/v1/messages" `
#
  -Method Post `
  -Headers @{
    Authorization = "Bearer $env:TINGGALCOLOK_API_KEY"
    "Content-Type" = "application/json"
  } `
  -Body $body

Kalau ini berhasil, ubah config OpenClaw:

"api": "anthropic-messages",
"baseUrl": "https://tinggalcolok.online/v1"

bukan:

#
"api": "openai-completions"

Kalau /v1/messages juga gagal, berarti masalahnya di backend TinggalColok/key/model, bukan OpenClaw. Also: docs mereka masih menampilkan placeholder __NEXT_PUBLIC_API_DOMAIN__, jadi endpoint di docs agak kurang rapi. Tetap pakai https://tinggalcolok.online/v1.

heady dawn
#

Invoke-RestMethod : {"type":"error","error":{"type":"api_error","message":"Internal server error: Failed to parse URL
from /messages"}}
At line:1 char:1

  • Invoke-RestMethod `
  •   + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebExc
     eption
      + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
restive craneBOT
#

Iya, ini makin jelas: problemnya di sisi TinggalColok, bukan config OpenClaw kamu.

Docs mereka bilang OpenClaw pakai:

"api": "openai-completions"

dan endpoint format OpenAI adalah /v1/chat/completions; API key pakai Bearer token RID-.... (tinggalcolok.online)

Tapi request langsung dari PowerShell ke API mereka tetap balas:

Failed to parse URL from /messages

Itu berarti backend TinggalColok sendiri lagi gagal saat meneruskan request ke /messages.

#

Jadi config kamu kembalikan/pertahankan seperti ini:

"api": "openai-completions",
"baseUrl": "https://tinggalcolok.online/v1"

Lalu cek apakah key + models endpoint jalan:

Invoke-RestMethod `
  -Uri "https://tinggalcolok.online/v1/models" `
  -Headers @{ Authorization = "Bearer $env:TINGGALCOLOK_API_KEY" }

Kalau /v1/models berhasil tapi chat gagal, kirim error itu ke support TinggalColok. Docs mereka juga masih menampilkan placeholder __NEXT_PUBLIC_API_DOMAIN__, jadi kemungkinan ada bug/deploy config di API mereka.

heady dawn
#

INI HASIL SAAT SAYA TEST DI PLAYGROUND

05.46.59
[INFO]
Mengirim pesan (openai format)...
05.46.59
[REQ]
POST https://tinggalcolok.online/v1/chat/completions
Authorization: Bearer RID-fc96...

{
"model": "gpt-5.3-codex",
"max_tokens": 200,
"messages": [
{
"role": "user",
"content": "HAI"
}
],
"stream": false
}
05.47.00
[ERR]
500 - Internal server error: Failed to parse URL from /messages
05.47.03
[INFO]
Mengirim pesan (openai format)...
05.47.03
[REQ]
POST https://tinggalcolok.online/v1/chat/completions
Authorization: Bearer RID-fc96...

{
"model": "claude-opus-4.6",
"max_tokens": 200,
"messages": [
{
"role": "user",
"content": "HAI"
}
],
"stream": false
}
05.47.03
[ERR]
429 - Token MAX habis. Beli paket untuk menambah token MAX.
05.47.05
[INFO]
Mengirim pesan (anthropic format)...
05.47.05
[REQ]
POST https://tinggalcolok.online/v1/messages
Authorization: Bearer RID-fc96...

{
"model": "claude-opus-4.6",
"max_tokens": 200,
"messages": [
{
"role": "user",
"content": "HAI"
}
],
"stream": false
}
05.47.06
[ERR]
429 - Token MAX habis. Beli paket untuk menambah token MAX.
05.47.06
[INFO]
Streaming test (anthropic format)...
05.47.06
[REQ]
POST https://tinggalcolok.online/v1/messages
Authorization: Bearer RID-fc96...
stream: true
05.47.07
[ERR]
429 - Token MAX habis. Beli paket untuk menambah token MAX.
05.47.08
[INFO]
Streaming test (anthropic format)...
05.47.08
[REQ]
POST https://tinggalcolok.online/v1/messages
Authorization: Bearer RID-fc96...
stream: true
05.47.08
[ERR]
429 - Token MAX habis. Beli paket untuk menambah token MAX.
05.47.11
[INFO]
Streaming test (anthropic format)...
05.47.11
[REQ]
POST https://tinggalcolok.online/v1/messages
Authorization: Bearer RID-fc96...
stream: true
05.47.11
[ERR]
500 - Internal server error: Failed to parse URL from /messages
05.47.11
[INFO]
Mengirim pesan (anthropic format)...
05.47.11
[REQ]
POST https://tinggalcolok.online/v1/messages
Authorization: Bearer RID-fc96...

{
"model": "gpt-5.3-codex-high",
"max_tokens": 200,
"messages": [
{
"role": "user",
"content": "HAI"
}
],
"stream": false
}
05.47.12
[ERR]
500 - Internal server error: Failed to parse URL from /messages

restive craneBOT
#

Yep, hasil playground itu mengonfirmasi:

  • claude-opus-4.6 β†’ 429 Token MAX habis = key valid, tapi kuota MAX habis.
  • gpt-5.3-codex / gpt-5.3-codex-high β†’ 500 Failed to parse URL from /messages = bug/masalah backend TinggalColok untuk model itu.
  • Jadi OpenClaw config kamu bukan masalah utama.

Untuk sekarang, supaya OpenClaw jalan, pilih model non-MAX / Standard yang masih punya kuota, misalnya dari /v1/models cari yang bukan MAX. Jangan pakai gpt-5.4 / claude-opus-4.6 kalau token MAX habis.

Set default-nya misalnya:

"primary": "tinggalcolok/claude-sonnet-4.5"

dan pastikan model itu ada di array models.

Kalau mau cepat, jalankan:

#
Invoke-RestMethod `
  -Uri "https://tinggalcolok.online/v1/models" `
  -Headers @{ Authorization = "Bearer $env:TINGGALCOLOK_API_KEY" }

Pilih model Standard yang muncul, lalu tambahkan ke config dan set sebagai primary.
Untuk error Failed to parse URL from /messages, itu perlu dilaporkan ke admin/support TinggalColok.

heady dawn
#

05:52:06 [diagnostic] lane task error: lane=main durationMs=23153 error="Error: No API key found for provider "mistral". Auth store: C:\Users\rakha christian.openclaw\agents\main\agent\auth-profiles.json (agentDir: C:\Users\rakha christian.openclaw\agents\main\agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
05:52:06 [diagnostic] lane task error: lane=session:agent:main:main durationMs=23157 error="Error: No API key found for provider "mistral". Auth store: C:\Users\rakha christian.openclaw\agents\main\agent\auth-profiles.json (agentDir: C:\Users\rakha christian.openclaw\agents\main\agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
05:52:06 [model-fallback/decision] model fallback decision: decision=candidate_failed requested=mistral/mistral-large-latest candidate=mistral/mistral-large-latest reason=auth next=none detail=No API key found for provider "mistral". Auth store: C:\Users\rakha christian.openclaw\agents\main\agent\auth-profiles.json (agentDir: C:\Users\rakha christian.openclaw\agents\main\agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir.
05:52:06 Embedded agent failed before reply: No API key found for provider "mistral". Auth store: C:\Users\rakha christian.openclaw\agents\main\agent\auth-profiles.json (agentDir: C:\Users\rakha christian.openclaw\agents\main\agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir. | No API key found for provider "mistral". Auth store: C:\Users\rakha christian.openclaw\agents\main\agent\auth-profiles.json (agentDir: C:\Users\rakha christian.openclaw\agents\main\agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir.

restive craneBOT
#

Itu artinya sekarang OpenClaw sedang mencoba pakai Mistral:

requested=mistral/mistral-large-latest
No API key found for provider "mistral"

Jadi model aktifnya berubah ke mistral/mistral-large-latest, bukan tinggalcolok/....

Kalau kamu tidak mau pakai Mistral, ubah balik modelnya. Dari chat kirim standalone:

/model tinggalcolok/claude-sonnet-4.5

atau model Standard lain yang ada di /v1/models.

#

Kalau mau dari PowerShell:

openclaw config set agents.defaults.model.primary "tinggalcolok/claude-sonnet-4.5"
openclaw gateway restart

Kalau thread/session ini masih nyangkut ke Mistral, mulai session baru:

/new tinggalcolok/claude-sonnet-4.5

Kalau memang mau pakai Mistral, kamu harus setup API key Mistral dulu. Tapi untuk kasusmu, lebih masuk akal pakai model TinggalColok Standard yang kuotanya masih ada.

AGENTS.md truncating masih bisa diabaikan. Error utamanya adalah model aktif salah / auth Mistral belum ada.
Docs: https://docs.openclaw.ai/concepts/models

heady dawn
#

06:00:15 [diagnostic] lane task error: lane=main durationMs=29071 error="Error: No API key found for provider "mistral". Auth store: C:\Users\rakha christian.openclaw\agents\main\agent\auth-profiles.json (agentDir: C:\Users\rakha christian.openclaw\agents\main\agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
06:00:15 [diagnostic] lane task error: lane=session:temp:slug-generator durationMs=29077 error="Error: No API key found for provider "mistral". Auth store: C:\Users\rakha christian.openclaw\agents\main\agent\auth-profiles.json (agentDir: C:\Users\rakha christian.openclaw\agents\main\agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir."
06:00:15 [llm-slug-generator] Failed to generate slug: Error: No API key found for provider "mistral". Auth store: C:\Users\rakha christian.openclaw\agents\main\agent\auth-profiles.json (agentDir: C:\Users\rakha christian.openclaw\agents\main\agent). Configure auth for this agent (openclaw agents add <id>) or copy auth-profiles.json from the main agentDir.
at resolveApiKeyForProvider (file:///C:/Users/rakha%20christian/AppData/Roaming/npm/node_modules/openclaw/dist/model-auth-C2dR7B_F.js:344:8)
at getApiKeyForModel (file:///C:/Users/rakha%20christian/AppData/Roaming/npm/node_modules/openclaw/dist/model-auth-C2dR7B_F.js:408:9)
at resolveApiKeyForCandidate (file:///C:/Users/rakha%20christian/AppData/Roaming/npm/node_modules/openclaw/dist/pi-embedded-sj59rpw_.js:718:10)
at applyApiKeyInfo (file:///C:/Users/rakha%20christian/AppData/Roaming/npm/node_modules/openclaw/dist/pi-embedded-sj59rpw_.js:728:28)
at initializeAuthProfile (file:///C:/Users/rakha%20christian/AppData/Roaming/npm/node_modules/openclaw/dist/pi-embedded-sj59rpw_.js:846:11)
at file:///C:/Users/rakha%20christian/AppData/Roaming/npm/node_modules/openclaw/dist/pi-embedded-sj59rpw_.js:1475:10
at async file:///C:/Users/rakha%20christian/AppData/Roaming/npm/node_modules/openclaw/dist/command-queue-BeffWSYG.js:110:22

ini terjadi karena saya hapus auth-profiles.json

restive craneBOT
#

Iya, kalau auth-profiles.json dihapus, provider bawaan seperti Mistral kehilangan API key/profile-nya.

Tapi untuk setup TinggalColok kamu sebenarnya tidak butuh auth-profiles.json, karena key-nya dari env var:

"apiKey": {
  "source": "env",
  "provider": "default",
  "id": "TINGGALCOLOK_API_KEY"
}

Masalahnya sekarang session masih mencoba pakai:

mistral/mistral-large-latest
#

Balikin ke TinggalColok:

Di chat, kirim standalone:

/new tinggalcolok/claude-sonnet-4.5

atau model TinggalColok lain yang kuotanya masih ada.

Di PowerShell juga set default lagi:

openclaw config set agents.defaults.model.primary "tinggalcolok/claude-sonnet-4.5"
openclaw gateway restart

Kalau kamu memang mau pakai Mistral lagi, jalankan ulang setup model/auth:

#
openclaw configure --section model

Tapi untuk kasusmu: jangan urus Mistral dulu. Fokus pakai model TinggalColok Standard yang berhasil di playground.

heady dawn
#

saya ingin pake mistral aja

restive craneBOT
#

Bisa. Untuk Mistral, kamu perlu Mistral API key asli dari console Mistral, bukan key TinggalColok.

Di PowerShell:

[Environment]::SetEnvironmentVariable("MISTRAL_API_KEY", "KEY_MISTRAL_KAMU", "User")

Tutup PowerShell, buka lagi, cek:

$env:MISTRAL_API_KEY.Length

Set default model:

#
openclaw config set agents.defaults.model.primary "mistral/mistral-large-latest"
openclaw gateway restart
openclaw models list --provider mistral
openclaw models status --probe

Kalau mau model lebih murah/ringan, bisa pakai:

openclaw config set agents.defaults.model.primary "mistral/mistral-small-latest"

Docs Mistral OpenClaw: https://docs.openclaw.ai/providers/mistral

Catatan: karena kamu sudah hapus auth-profiles.json, pakai env var MISTRAL_API_KEY ini cara paling simpel.

heady dawn
#

jika saya pakai 6 key api?

restive craneBOT
#

Bisa, kalau 6 API key itu valid dan sesuai aturan provider. Jangan dipakai buat bypass abuse/rate limit ya.

Untuk Mistral, kalau cuma env var:

MISTRAL_API_KEY

itu cuma 1 key.

Kalau mau 6 key, pakai auth profiles OpenClaw. Jalankan ini 6x:

openclaw models auth paste-token --provider mistral --profile-id mistral:key1
openclaw models auth paste-token --provider mistral --profile-id mistral:key2
openclaw models auth paste-token --provider mistral --profile-id mistral:key3
#
openclaw models auth paste-token --provider mistral --profile-id mistral:key4
openclaw models auth paste-token --provider mistral --profile-id mistral:key5
openclaw models auth paste-token --provider mistral --profile-id mistral:key6

Setiap command akan minta paste token/key. Paste satu key berbeda tiap profile.

Lalu set model:

openclaw config set agents.defaults.model.primary "mistral/mistral-large-latest"
openclaw gateway restart
openclaw models status --probe --probe-provider mistral

OpenClaw akan pilih/rotate auth profile Mistral, terutama saat rate limit/cooldown. Tapi dia tidak rotate setiap request; biasanya profile dipin per session supaya cache stabil.