Gateway
設定 — ツールとカスタムプロバイダー
tools.* 設定キーとカスタムプロバイダー / ベース URL 設定。エージェント、チャネル、その他のトップレベル設定キーについては、設定リファレンスを参照してください。
ツール
ツールプロファイル
tools.profile は tools.allow/tools.deny の前にベースの許可リストを設定します。
| プロファイル | 含まれるもの |
|---|---|
minimal |
session_status のみ |
coding |
group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, video_generate |
messaging |
group:messaging, sessions_list, sessions_history, sessions_send, session_status |
full |
制限なし(未設定と同じ) |
ツールグループ
| グループ | ツール |
|---|---|
group:runtime |
exec, process, code_execution(bash は exec のエイリアスとして受け付けられます) |
group:fs |
read, write, edit, apply_patch |
group:sessions |
sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory |
memory_search, memory_get |
group:web |
web_search, x_search, web_fetch |
group:ui |
browser, canvas |
group:automation |
heartbeat_respond, cron, gateway |
group:messaging |
message |
group:nodes |
nodes |
group:agents |
agents_list, update_plan |
group:media |
image, image_generate, music_generate, video_generate, tts |
group:openclaw |
すべての組み込みツール(プロバイダー Plugin を除く) |
tools.allow / tools.deny
グローバルなツール許可/拒否ポリシー(拒否が優先)。大文字と小文字は区別せず、* ワイルドカードをサポートします。Docker サンドボックスがオフの場合でも適用されます。
{
tools: { deny: ["browser", "canvas"] },
}
write と apply_patch は別々のツール ID です。allow: ["write"] は互換性のあるモデルで apply_patch も有効にしますが、deny: ["write"] は apply_patch を拒否しません。すべてのファイル変更をブロックするには、group:fs を拒否するか、変更を行う各ツールを明示的に列挙します。
{
tools: { deny: ["write", "edit", "apply_patch"] },
}
tools.byProvider
特定のプロバイダーまたはモデルに対してツールをさらに制限します。順序: ベースプロファイル → プロバイダープロファイル → 許可/拒否。
{
tools: {
profile: "coding",
byProvider: {
"google-antigravity": { profile: "minimal" },
"openai/gpt-5.4": { allow: ["group:fs", "sessions_list"] },
},
},
}
tools.elevated
サンドボックス外の昇格された exec アクセスを制御します。
{
tools: {
elevated: {
enabled: true,
allowFrom: {
whatsapp: ["+15555550123"],
discord: ["1234567890123", "987654321098765432"],
},
},
},
}
- エージェント単位の上書き(
agents.list[].tools.elevated)では、さらに制限することのみ可能です。 /elevated on|off|ask|fullはセッションごとに状態を保存します。インライン指示は単一メッセージに適用されます。- 昇格された
execはサンドボックス化をバイパスし、設定されたエスケープパス(デフォルトはgateway、exec ターゲットがnodeの場合はnode)を使用します。
tools.exec
{
tools: {
exec: {
backgroundMs: 10000,
timeoutSec: 1800,
cleanupMs: 1800000,
notifyOnExit: true,
notifyOnExitEmptySuccess: false,
applyPatch: {
enabled: false,
allowModels: ["gpt-5.5"],
},
},
},
}
tools.loopDetection
ツールループの安全性チェックはデフォルトで無効です。検出を有効にするには enabled: true を設定します。設定は tools.loopDetection でグローバルに定義でき、agents.list[].tools.loopDetection でエージェントごとに上書きできます。
{
tools: {
loopDetection: {
enabled: true,
historySize: 30,
warningThreshold: 10,
criticalThreshold: 20,
globalCircuitBreakerThreshold: 30,
detectors: {
genericRepeat: true,
knownPollNoProgress: true,
pingPong: true,
},
},
},
}
historySizenumberループ分析用に保持されるツール呼び出し履歴の最大数。
warningThresholdnumber警告を出す、進捗のない繰り返しパターンのしきい値。
criticalThresholdnumber重大なループをブロックするための、より高い繰り返ししきい値。
globalCircuitBreakerThresholdnumber進捗のない実行に対するハードストップしきい値。
detectors.genericRepeatboolean同じツール/同じ引数の呼び出しが繰り返された場合に警告します。
detectors.knownPollNoProgressboolean既知のポーリングツール(process.poll、command_status など)で警告/ブロックします。
detectors.pingPongboolean進捗のないペアが交互に現れるパターンで警告/ブロックします。
tools.web
{
tools: {
web: {
search: {
enabled: true,
apiKey: "brave_api_key", // or BRAVE_API_KEY env
maxResults: 5,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
fetch: {
enabled: true,
provider: "firecrawl", // optional; omit for auto-detect
maxChars: 50000,
maxCharsCap: 50000,
maxResponseBytes: 2000000,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
maxRedirects: 3,
readability: true,
userAgent: "custom-ua",
},
},
},
}
tools.media
受信メディアの理解(画像/音声/動画)を構成します。
{
tools: {
media: {
concurrency: 2,
asyncCompletion: {
directSend: false, // deprecated: completions stay agent-mediated
},
audio: {
enabled: true,
maxBytes: 20971520,
scope: {
default: "deny",
rules: [{ action: "allow", match: { chatType: "direct" } }],
},
models: [
{ provider: "openai", model: "gpt-4o-mini-transcribe" },
{ type: "cli", command: "whisper", args: ["--model", "base", "{{MediaPath}}"] },
],
},
image: {
enabled: true,
timeoutSeconds: 180,
models: [{ provider: "ollama", model: "gemma4:26b", timeoutSeconds: 300 }],
},
video: {
enabled: true,
maxBytes: 52428800,
models: [{ provider: "google", model: "gemini-3-flash-preview" }],
},
},
},
}
Media model entry fields
プロバイダーエントリ(type: "provider" または省略):
provider: API プロバイダー ID(openai、anthropic、google/gemini、groqなど)model: モデル ID の上書きprofile/preferredProfile:auth-profiles.jsonプロファイル選択
CLI エントリ(type: "cli"):
command: 実行する実行可能ファイルargs: テンプレート化された引数({{MediaPath}}、{{Prompt}}、{{MaxChars}}などをサポートします。openclaw doctor --fixは非推奨の{input}プレースホルダーを{{MediaPath}}に移行します)
共通フィールド:
capabilities: 任意のリスト(image、audio、video)。デフォルト:openai/anthropic/minimax→ 画像、google→ 画像+音声+動画、groq→ 音声。prompt、maxChars、maxBytes、timeoutSeconds、language: エントリごとの上書き。tools.media.image.timeoutSecondsと一致する画像モデルのtimeoutSecondsエントリは、エージェントが明示的なimageツールを呼び出す場合にも適用されます。- 失敗した場合は次のエントリにフォールバックします。
プロバイダー認証は標準の順序に従います: auth-profiles.json → 環境変数 → models.providers.*.apiKey。
非同期完了フィールド:
asyncCompletion.directSend: 非推奨の互換性フラグ。完了した非同期メディアタスクはリクエスターセッション経由のまま維持されるため、エージェントが結果を受け取り、ユーザーへの伝え方を決定し、ソース配信で必要な場合はメッセージツールを使用します。
tools.agentToAgent
{
tools: {
agentToAgent: {
enabled: false,
allow: ["home", "work"],
},
},
}
tools.sessions
セッションツール(sessions_list、sessions_history、sessions_send)で対象にできるセッションを制御します。
デフォルト: tree(現在のセッション + サブエージェントなど、それによって生成されたセッション)。
{
tools: {
sessions: {
// "self" | "tree" | "agent" | "all"
visibility: "tree",
},
},
}
Visibility scopes
self: 現在のセッションキーのみ。tree: 現在のセッション + 現在のセッションによって生成されたセッション(サブエージェント)。agent: 現在のエージェント ID に属する任意のセッション(同じエージェント ID の下で送信者ごとのセッションを実行している場合、他のユーザーを含むことがあります)。all: 任意のセッション。エージェントをまたいだ対象指定には、引き続きtools.agentToAgentが必要です。- サンドボックスのクランプ: 現在のセッションがサンドボックス化されていて、
agents.defaults.sandbox.sessionToolsVisibility="spawned"の場合、tools.sessions.visibility="all"であっても可視性はtreeに強制されます。
tools.sessions_spawn
sessions_spawn のインライン添付ファイルサポートを制御します。
{
tools: {
sessions_spawn: {
attachments: {
enabled: false, // opt-in: set true to allow inline file attachments
maxTotalBytes: 5242880, // 5 MB total across all files
maxFiles: 50,
maxFileBytes: 1048576, // 1 MB per file
retainOnSessionKeep: false, // keep attachments when cleanup="keep"
},
},
},
}
Attachment notes
- 添付ファイルは
runtime: "subagent"でのみサポートされます。ACP runtime は添付ファイルを拒否します。 - ファイルは子ワークスペースの
.openclaw/attachments/<uuid>/に.manifest.jsonとともに実体化されます。 - 添付ファイルの内容は、トランスクリプト永続化から自動的に編集されます。
- Base64 入力は、厳密なアルファベット/パディング検査とデコード前のサイズガードで検証されます。
- ファイル権限は、ディレクトリが
0700、ファイルが0600です。 - クリーンアップは
cleanupポリシーに従います。deleteは常に添付ファイルを削除し、keepはretainOnSessionKeep: trueの場合にのみ添付ファイルを保持します。
tools.experimental
実験的な組み込みツールフラグです。厳密な agentic GPT-5 自動有効化ルールが適用されない限り、デフォルトはオフです。
{
tools: {
experimental: {
planTool: true, // enable experimental update_plan
},
},
}
planTool: 重要な複数ステップ作業の追跡用に、構造化されたupdate_planツールを有効にします。- デフォルト: OpenAI または OpenAI Codex GPT-5 ファミリーの実行で、
agents.defaults.embeddedPi.executionContract(またはエージェントごとのオーバーライド)が"strict-agentic"に設定されていない限りfalseです。そのスコープ外でツールを強制的にオンにするにはtrueに設定し、strict-agentic GPT-5 実行でもオフのままにするにはfalseに設定します。 - 有効にすると、システムプロンプトにも使用ガイダンスが追加され、モデルは重要な作業にのみ使用し、
in_progressのステップを最大 1 つに保ちます。
agents.defaults.subagents
{
agents: {
defaults: {
subagents: {
allowAgents: ["research"],
model: "minimax/MiniMax-M2.7",
maxConcurrent: 8,
runTimeoutSeconds: 900,
archiveAfterMinutes: 60,
},
},
},
}
model: 生成されたサブエージェントのデフォルトモデルです。省略すると、サブエージェントは呼び出し元のモデルを継承します。allowAgents: リクエスト元エージェントが独自のsubagents.allowAgentsを設定していない場合の、sessions_spawnの対象エージェント ID のデフォルト許可リストです(["*"]= 任意、デフォルト: 同じエージェントのみ)。runTimeoutSeconds: ツール呼び出しでrunTimeoutSecondsが省略された場合の、sessions_spawnのデフォルトタイムアウト(秒)です。0はタイムアウトなしを意味します。- サブエージェントごとのツールポリシー:
tools.subagents.tools.allow/tools.subagents.tools.deny。
カスタムプロバイダーとベース URL
OpenClaw は組み込みモデルカタログを使用します。カスタムプロバイダーは、設定内の models.providers または ~/.openclaw/agents/<agentId>/agent/models.json で追加します。
{
models: {
mode: "merge", // merge (default) | replace
providers: {
"custom-proxy": {
baseUrl: "http://localhost:4000/v1",
apiKey: "LITELLM_KEY",
api: "openai-completions", // openai-completions | openai-responses | anthropic-messages | google-generative-ai
models: [
{
id: "llama-3.1-8b",
name: "Llama 3.1 8B",
reasoning: false,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 128000,
contextTokens: 96000,
maxTokens: 32000,
},
],
},
},
},
}
Auth and merge precedence
- カスタム認証が必要な場合は、
authHeader: true+headersを使用します。 OPENCLAW_AGENT_DIR(またはレガシー環境変数エイリアスのPI_CODING_AGENT_DIR)でエージェント設定ルートをオーバーライドします。- 一致するプロバイダー ID のマージ優先順位:
- 空でないエージェント
models.jsonのbaseUrl値が優先されます。 - 空でないエージェント
apiKey値は、そのプロバイダーが現在の設定/認証プロファイルコンテキストで SecretRef 管理されていない場合にのみ優先されます。 - SecretRef 管理のプロバイダー
apiKey値は、解決済みシークレットを永続化する代わりに、ソースマーカー(env 参照の場合はENV_VAR_NAME、file/exec 参照の場合はsecretref-managed)から更新されます。 - SecretRef 管理のプロバイダーヘッダー値は、ソースマーカー(env 参照の場合は
secretref-env:ENV_VAR_NAME、file/exec 参照の場合はsecretref-managed)から更新されます。 - 空または欠落しているエージェント
apiKey/baseUrlは、設定内のmodels.providersにフォールバックします。 - 一致するモデルの
contextWindow/maxTokensは、明示的な設定値と暗黙のカタログ値のうち高い方を使用します。 - 一致するモデルの
contextTokensは、明示的な実行時上限が存在する場合にそれを保持します。ネイティブモデルメタデータを変更せずに有効コンテキストを制限するために使用します。 - 設定で
models.jsonを完全に書き換えたい場合は、models.mode: "replace"を使用します。 - マーカーの永続化はソースを権威とします。マーカーは、解決済みの実行時シークレット値からではなく、アクティブなソース設定スナップショット(解決前)から書き込まれます。
- 空でないエージェント
プロバイダーフィールドの詳細
Top-level catalog
models.mode: プロバイダーカタログの動作(mergeまたはreplace)。models.providers: プロバイダー ID をキーにしたカスタムプロバイダーマップ。- 安全な編集: 追加更新には
openclaw config set models.providers.<id> '<json>' --strict-json --mergeまたはopenclaw config set models.providers.<id>.models '<json-array>' --strict-json --mergeを使用します。config setは、--replaceを渡さない限り破壊的な置換を拒否します。
- 安全な編集: 追加更新には
Provider connection and auth
models.providers.*.api: リクエストアダプター(openai-completions、openai-responses、anthropic-messages、google-generative-aiなど)。MLX、vLLM、SGLang、およびほとんどの OpenAI 互換ローカルサーバーなど、セルフホストの/v1/chat/completionsバックエンドではopenai-completionsを使用します。baseUrlはあるがapiがないカスタムプロバイダーは、デフォルトでopenai-completionsになります。バックエンドが/v1/responsesをサポートしている場合にのみopenai-responsesを設定します。models.providers.*.apiKey: プロバイダー認証情報(SecretRef/env 置換を推奨)。models.providers.*.auth: 認証戦略(api-key、token、oauth、aws-sdk)。models.providers.*.contextWindow: モデルエントリがcontextWindowを設定していない場合に、このプロバイダー配下のモデルに使用されるデフォルトのネイティブコンテキストウィンドウ。models.providers.*.contextTokens: モデルエントリがcontextTokensを設定していない場合に、このプロバイダー配下のモデルに使用されるデフォルトの有効実行時コンテキスト上限。models.providers.*.maxTokens: モデルエントリがmaxTokensを設定していない場合に、このプロバイダー配下のモデルに使用されるデフォルトの出力トークン上限。models.providers.*.timeoutSeconds: 接続、ヘッダー、本文、リクエスト全体の中止処理を含む、プロバイダーごとの任意のモデル HTTP リクエストタイムアウト(秒)。models.providers.*.injectNumCtxForOpenAICompat: Ollama +openai-completionsの場合、リクエストにoptions.num_ctxを注入します(デフォルト:true)。models.providers.*.authHeader: 必要な場合に、認証情報の転送をAuthorizationヘッダーで強制します。models.providers.*.baseUrl: 上流 API ベース URL。models.providers.*.headers: プロキシ/テナントルーティング用の追加静的ヘッダー。
Request transport overrides
models.providers.*.request: モデルプロバイダー HTTP リクエスト用のトランスポートオーバーライドです。
request.headers: 追加ヘッダー(プロバイダーのデフォルトとマージされます)。値は SecretRef を受け付けます。request.auth: 認証戦略のオーバーライド。モード:"provider-default"(プロバイダー組み込みの認証を使用)、"authorization-bearer"(tokenとともに使用)、"header"(headerName、value、任意のprefixとともに使用)。request.proxy: HTTP プロキシのオーバーライド。モード:"env-proxy"(HTTP_PROXY/HTTPS_PROXY環境変数を使用)、"explicit-proxy"(urlとともに使用)。どちらのモードも任意のtlsサブオブジェクトを受け付けます。request.tls: 直接接続用の TLS オーバーライド。フィールド:ca、cert、key、passphrase(すべて SecretRef を受け付けます)、serverName、insecureSkipVerify。request.allowPrivateNetwork:trueの場合、DNS がプライベート、CGNAT、または類似の範囲に解決される場合でも、プロバイダー HTTP fetch ガード経由でbaseUrlへの HTTPS を許可します(信頼済みセルフホスト OpenAI 互換エンドポイント向けのオペレーターのオプトイン)。localhost、127.0.0.1、[::1]などの local loopback モデルプロバイダーストリーム URL は、これが明示的にfalseに設定されていない限り自動的に許可されます。LAN、tailnet、プライベート DNS ホストには引き続きオプトインが必要です。WebSocket はヘッダー/TLS に同じrequestを使用しますが、その fetch SSRF ゲートは使用しません。デフォルトはfalseです。
Model catalog entries
models.providers.*.models: 明示的なプロバイダーモデルカタログエントリ。models.providers.*.models.*.input: モデル入力モダリティ。テキスト専用モデルには["text"]を使用し、ネイティブ画像/ビジョンモデルには["text", "image"]を使用します。画像添付ファイルは、選択されたモデルが画像対応としてマークされている場合にのみエージェントターンに注入されます。models.providers.*.models.*.contextWindow: ネイティブモデルコンテキストウィンドウのメタデータ。このモデルについて、プロバイダーレベルのcontextWindowをオーバーライドします。models.providers.*.models.*.contextTokens: 任意の実行時コンテキスト上限。このモデルについて、プロバイダーレベルのcontextTokensをオーバーライドします。モデルのネイティブcontextWindowより小さい有効コンテキスト予算が必要な場合に使用します。openclaw models listは、値が異なる場合に両方の値を表示します。models.providers.*.models.*.compat.supportsDeveloperRole: 任意の互換性ヒント。空でない非ネイティブbaseUrl(ホストがapi.openai.comではない)を持つapi: "openai-completions"では、OpenClaw は実行時にこれをfalseに強制します。空または省略されたbaseUrlでは、デフォルトの OpenAI 動作が維持されます。models.providers.*.models.*.compat.requiresStringContent: 文字列専用の OpenAI 互換チャットエンドポイント向けの任意の互換性ヒント。trueの場合、OpenClaw はリクエスト送信前に、純粋なテキストのmessages[].content配列をプレーン文字列へ平坦化します。
Amazon Bedrock discovery
plugins.entries.amazon-bedrock.config.discovery: Bedrock 自動検出設定のルート。plugins.entries.amazon-bedrock.config.discovery.enabled: 暗黙的な検出のオン/オフを切り替えます。plugins.entries.amazon-bedrock.config.discovery.region: 検出用の AWS リージョン。plugins.entries.amazon-bedrock.config.discovery.providerFilter: 対象を絞った検出用の任意のプロバイダー ID フィルター。plugins.entries.amazon-bedrock.config.discovery.refreshInterval: 検出更新のポーリング間隔。plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: 検出されたモデル用のフォールバックコンテキストウィンドウ。plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: 検出されたモデル用のフォールバック最大出力トークン数。
対話型のカスタムプロバイダーオンボーディングは、GPT-4o、Claude、Gemini、Qwen-VL、LLaVA、Pixtral、InternVL、Mllama、MiniCPM-V、GLM-4V などの一般的なビジョンモデル ID について画像入力を推定し、既知のテキスト専用ファミリーでは追加の質問を省略します。不明なモデル ID では引き続き画像サポートについて確認します。非対話型オンボーディングでも同じ推定が使用されます。画像対応メタデータを強制するには --custom-image-input を渡し、テキスト専用メタデータを強制するには --custom-text-input を渡します。
プロバイダー例
Cerebras (GLM 4.7 / GPT OSS)
バンドルされた cerebras provider plugin は、openclaw onboard --auth-choice cerebras-api-key でこれを設定できます。デフォルトをオーバーライドする場合にのみ、明示的なプロバイダー設定を使用します。
{
env: { CEREBRAS_API_KEY: "sk-..." },
agents: {
defaults: {
model: {
primary: "cerebras/zai-glm-4.7",
fallbacks: ["cerebras/gpt-oss-120b"],
},
models: {
"cerebras/zai-glm-4.7": { alias: "GLM 4.7 (Cerebras)" },
"cerebras/gpt-oss-120b": { alias: "GPT OSS 120B (Cerebras)" },
},
},
},
models: {
mode: "merge",
providers: {
cerebras: {
baseUrl: "https://api.cerebras.ai/v1",
apiKey: "${CEREBRAS_API_KEY}",
api: "openai-completions",
models: [
{ id: "zai-glm-4.7", name: "GLM 4.7 (Cerebras)" },
{ id: "gpt-oss-120b", name: "GPT OSS 120B (Cerebras)" },
],
},
},
},
}
Cerebras には cerebras/zai-glm-4.7 を使い、Z.AI 直結には zai/glm-4.7 を使います。
Kimi Coding
{
env: { KIMI_API_KEY: "sk-..." },
agents: {
defaults: {
model: { primary: "kimi/kimi-code" },
models: { "kimi/kimi-code": { alias: "Kimi Code" } },
},
},
}
Anthropic 互換の組み込みプロバイダーです。ショートカット: openclaw onboard --auth-choice kimi-code-api-key。
Local models (LM Studio)
ローカルモデル を参照してください。要約: 本格的なハードウェア上で LM Studio Responses API 経由の大規模ローカルモデルを実行し、フォールバック用にホスト型モデルをマージしたままにします。
MiniMax M2.7 (direct)
{
agents: {
defaults: {
model: { primary: "minimax/MiniMax-M2.7" },
models: {
"minimax/MiniMax-M2.7": { alias: "Minimax" },
},
},
},
models: {
mode: "merge",
providers: {
minimax: {
baseUrl: "https://api.minimax.io/anthropic",
apiKey: "${MINIMAX_API_KEY}",
api: "anthropic-messages",
models: [
{
id: "MiniMax-M2.7",
name: "MiniMax M2.7",
reasoning: true,
input: ["text"],
cost: { input: 0.3, output: 1.2, cacheRead: 0.06, cacheWrite: 0.375 },
contextWindow: 204800,
maxTokens: 131072,
},
],
},
},
},
}
MINIMAX_API_KEY を設定します。ショートカット: openclaw onboard --auth-choice minimax-global-api または openclaw onboard --auth-choice minimax-cn-api。モデルカタログはデフォルトで M2.7 のみです。Anthropic 互換のストリーミングパスでは、thinking を明示的に設定しない限り、OpenClaw はデフォルトで MiniMax thinking を無効にします。/fast on または params.fastMode: true は MiniMax-M2.7 を MiniMax-M2.7-highspeed に書き換えます。
Moonshot AI (Kimi)
{
env: { MOONSHOT_API_KEY: "sk-..." },
agents: {
defaults: {
model: { primary: "moonshot/kimi-k2.6" },
models: { "moonshot/kimi-k2.6": { alias: "Kimi K2.6" } },
},
},
models: {
mode: "merge",
providers: {
moonshot: {
baseUrl: "https://api.moonshot.ai/v1",
apiKey: "${MOONSHOT_API_KEY}",
api: "openai-completions",
models: [
{
id: "kimi-k2.6",
name: "Kimi K2.6",
reasoning: false,
input: ["text", "image"],
cost: { input: 0.95, output: 4, cacheRead: 0.16, cacheWrite: 0 },
contextWindow: 262144,
maxTokens: 262144,
},
],
},
},
},
}
中国エンドポイントの場合: baseUrl: "https://api.moonshot.cn/v1" または openclaw onboard --auth-choice moonshot-api-key-cn。
ネイティブの Moonshot エンドポイントは、共有 openai-completions トランスポート上でストリーミング使用量の互換性を示します。OpenClaw は、組み込みプロバイダー ID だけでなく、エンドポイントの機能に基づいてそれを判断します。
OpenCode
{
agents: {
defaults: {
model: { primary: "opencode/claude-opus-4-6" },
models: { "opencode/claude-opus-4-6": { alias: "Opus" } },
},
},
}
OPENCODE_API_KEY(または OPENCODE_ZEN_API_KEY)を設定します。Zen カタログには opencode/... 参照を使い、Go カタログには opencode-go/... 参照を使います。ショートカット: openclaw onboard --auth-choice opencode-zen または openclaw onboard --auth-choice opencode-go。
Synthetic (Anthropic-compatible)
{
env: { SYNTHETIC_API_KEY: "sk-..." },
agents: {
defaults: {
model: { primary: "synthetic/hf:MiniMaxAI/MiniMax-M2.5" },
models: { "synthetic/hf:MiniMaxAI/MiniMax-M2.5": { alias: "MiniMax M2.5" } },
},
},
models: {
mode: "merge",
providers: {
synthetic: {
baseUrl: "https://api.synthetic.new/anthropic",
apiKey: "${SYNTHETIC_API_KEY}",
api: "anthropic-messages",
models: [
{
id: "hf:MiniMaxAI/MiniMax-M2.5",
name: "MiniMax M2.5",
reasoning: true,
input: ["text"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 192000,
maxTokens: 65536,
},
],
},
},
},
}
ベース URL では /v1 を省略します(Anthropic クライアントが追加します)。ショートカット: openclaw onboard --auth-choice synthetic-api-key。
Z.AI (GLM-4.7)
{
agents: {
defaults: {
model: { primary: "zai/glm-4.7" },
models: { "zai/glm-4.7": {} },
},
},
}
ZAI_API_KEY を設定します。z.ai/* と z-ai/* はエイリアスとして受け入れられます。ショートカット: openclaw onboard --auth-choice zai-api-key。
- 汎用エンドポイント:
https://api.z.ai/api/paas/v4 - コーディングエンドポイント(デフォルト):
https://api.z.ai/api/coding/paas/v4 - 汎用エンドポイントでは、ベース URL オーバーライドを指定したカスタムプロバイダーを定義します。
関連
- 設定 — エージェント
- 設定 — チャンネル
- 設定リファレンス — その他のトップレベルキー
- ツールと plugins