OpenClaw
カスタムのモデルプロバイダーを使い、パーソナルAIアシスタントのOpenClawをcheapaimodelのモデルで動かします。
OpenClawはOpenAI互換サービスを、~/.openclaw/openclaw.jsonのmodels.providersにカスタムプロバイダーとして追加します。エージェントからは、モデルをcheapaimodel/<model-id>として参照します。
| OpenClawの設定項目 | 値 | |
|---|---|---|
| Base URL | models.providers.cheapaimodel.baseUrl | https://api.cheapaimodel.ai/v1 |
| APIキー | models.providers.cheapaimodel.apiKey | ${CHEAPAIMODEL_API_KEY}(値はコンソールのAPIキーページで取得したキー) |
| モデルID | models.providers.cheapaimodel.models[].id | glm-5.3、またはモデルカタログの任意のID |
設定
キーを保存する
キーをOpenClawのグローバルなenvファイルに書きます。Gatewayはバックグラウンドサービスとして動いているときもこのファイルを読みます。
CHEAPAIMODEL_API_KEY=sk-...Gatewayがすでに動いている場合は、openclaw gateway restartで再起動してファイルを読み込ませてください。
プロバイダーを追加する
次の内容を設定にマージします。
{
agents: {
defaults: {
model: { primary: "cheapaimodel/glm-5.3" },
},
},
models: {
mode: "merge",
providers: {
cheapaimodel: {
baseUrl: "https://api.cheapaimodel.ai/v1",
apiKey: "${CHEAPAIMODEL_API_KEY}",
api: "openai-completions",
models: [
{
id: "glm-5.3",
name: "GLM-5.3",
compat: { supportsUsageInStreaming: true },
},
],
},
},
},
}api: "openai-completions"はリクエストを/v1/chat/completionsに送ります。modelsにはモデルIDごとにエントリーを1つずつ追加します。idはモデルカタログのIDで、nameは表示名です。nameはOpenClawで必須です。- 各エントリーには、モデルのページ(例:/models/glm-5.3)を見て
contextWindowとmaxTokensを追加してください。指定しないと、OpenClawは独自のフォールバック値でコンテキストを見積もり、出力の上限はサーバーに任せます。 compat.supportsUsageInStreamingを指定すると、OpenClawはストリームでトークン使用量を要求します。cheapaimodelは使用量を返します(ストリーミングを参照)。指定しないと、OpenClawはコンテキストの使用量を推定し、returned no token usageとログに出力します。
Gatewayはファイルを監視しており、変更は再起動なしで反映されます。
確認する
openclaw models listcheapaimodel/glm-5.3が表示されれば成功です。あとからデフォルトのモデルを変えるには、openclaw models set cheapaimodel/<model-id>を実行します。
OpenClawのエージェントは、モデルのツール呼び出し能力を前提としています。うまくツールを使えない場合は、カタログのほかのモデルを試してください。
よくある間違い
CHEAPAIMODEL_API_KEYがないとOpenClawが警告する。 Gatewayのプロセスがこの変数を持っていないため、${CHEAPAIMODEL_API_KEY}が展開されないままです。~/.openclaw/.envに書き、Gatewayを再起動してください。401。 キーの誤り、有効期限切れ、利用上限への到達のいずれかが原因です。コンソールで確認してください。- 設定が
custom model providers must declare modelsで拒否される。 カスタムプロバイダーにはmodels配列が必要で、各エントリーにはidとnameの両方が必要です。 404。 本文がfault filter abortならbaseUrlに/v1がなく、Invalid URL (POST /v1/chat/completions/chat/completions)ならbaseUrlにエンドポイントのパスまで含まれています。https://api.cheapaimodel.ai/v1に設定してください。model_not_foundとともに503が返る。idはモデルカタログのIDと正確に一致している必要があります。cheapaimodel/プレフィックスはOpenClaw内部のモデル参照にすぎず、送信されません。