Skip to content

Latest commit

 

History

History

README.md

ZeroAPI v3 Configuration Examples

Pick the example that matches your provider subscriptions. Each file is a ready-to-use zeroapi-config.json policy snapshot — copy it to ~/.openclaw/zeroapi-config.json.

If you are using OpenClaw from Slack, Telegram, WhatsApp, Matrix, Discord, or another chat channel, start with:

/zeroapi

or:

/skill zeroapi

if your channel only exposes the generic skill runner.

If you are doing a repo-local or terminal-only setup, start with:

npx tsx scripts/first_run.ts

That wizard writes a starter config for you and prints the exact auth/install follow-up commands. It is the shell fallback, not the main chat UX.

Important: these examples do not replace ~/.openclaw/openclaw.json. OpenClaw runtime defaults, provider wiring, and per-agent model state still live there. These examples include either subscription_profile, subscription_inventory, or both. If both blocks are missing or empty, ZeroAPI may silently filter out every configured provider. These examples also set external_model_policy to stay, which is the safe default when you use extra OpenClaw providers outside the ZeroAPI pool. These examples now also set routing_mode to balanced, which is ZeroAPI's current default policy contract. These examples are intentionally conservative starter pools. benchmarks.json tracks a wider 172-model benchmark reference snapshot, but the canned configs keep a smaller, easier-to-operate subset. That practical subset is now documented in policy-families.json.

Example Files

File Providers Monthly Cost Best For
openai-only.json OpenAI Codex ~$20 Getting started, OpenAI-only setup
subscription-profile.json OpenAI Codex ~$20 Minimal profile-only baseline without explicit inventory
openai-multi-account.json OpenAI Codex (multi-account) ~$40-$240 Same-provider Plus/Pro pools with explicit account inventory
openai-glm.json OpenAI + Z AI GLM ~$30 Add fast orchestration with GLM-5.1
openai-glm-kimi.json OpenAI + Z AI + Kimi ~$49 Deep orchestration fallback coverage
full-stack.json All 5 providers ~$109-$170 Maximum resilience, longest fallback chains

Pricing Reference (per 1M tokens, 3:1 blended)

Model Provider Blended Price
GPT-5.5 openai-codex $11.25
GPT-5.4 openai-codex $5.63
GLM-5.1 zai $1.55
Kimi K2.6 (K2.5 benchmark proxy until refresh) moonshot $1.71
MiniMax-M2.7 minimax-portal $0.53
Qwen Portal coder-model qwen-portal $1.13 benchmark proxy

How to Use

1. Copy the config

cp examples/<file>.json ~/.openclaw/zeroapi-config.json

2. Authenticate providers

# OpenAI Codex (ChatGPT OAuth)
openclaw models auth login --provider openai-codex

# Z AI GLM (API key)
openclaw onboard --auth-choice zai-coding-global

# Kimi (API key)
openclaw onboard --auth-choice moonshot-api-key

# MiniMax (OAuth portal)
openclaw onboard --auth-choice minimax-portal

# Qwen Portal (OAuth)
openclaw models auth login --provider qwen-portal --set-default

3. Verify

openclaw models status

All models in your config should show as available.

Then check runtime/policy alignment:

bash scripts-zeroapi-doctor.sh

And simulate a real prompt before enabling live traffic:

npx tsx scripts/simulate.ts --prompt "coordinate a 3-step data pipeline"

If you are deciding whether to keep plain balanced mode or enable a modifier, compare them on a small prompt set first:

npx tsx scripts/compare_modifiers.ts --prompts-file prompts.txt

4. Add workspace hints (optional)

Edit workspace_hints in your config to bias routing per agent workspace:

"workspace_hints": {
  "codex-workspace": ["code"],
  "glm-workspace": ["orchestration"],
  "fixed-codex-agent": null
}

A category list opts an agent into routing and acts as a weak bias, not as the primary routing signal. A null value means specialist agent: ZeroAPI skips routing and leaves that agent's OpenClaw model assignment alone.

Routing Logic

All example configs use routing_mode: "balanced".

ZeroAPI classifies each task into one of six categories based on keywords in the prompt:

Category Typical Keywords Example
code implement, refactor, debug, test "refactor the auth module"
research analyze, explain, compare, investigate "explain the tradeoffs between X and Y"
orchestration orchestrate, pipeline, workflow, coordinate "coordinate a 3-step data pipeline"
math solve, calculate, equation, proof "solve this integral"
fast quick, format, convert, translate "quickly format this list as CSV"
default (no keyword match) "bunu düzelt"

High-risk keywords (deploy, delete, drop, production, credentials, etc.) block automatic routing regardless of category. Conservative skips are expected; not every message should switch models.

Multi-account note

If you have multiple subscriptions under the same provider, prefer subscription_inventory over squeezing them into one subscription_profile tier. ZeroAPI uses inventory both for provider headroom scoring and for authProfileOverride steering when the winning account declares an authProfile. Current stable OpenClaw releases still do not merge that hook field directly, so ZeroAPI uses its best-effort session-store sync when the session already exists, and otherwise keeps using auth.order, cooldowns, and session stickiness.

Customizing

  • Keywords: Add domain-specific terms to the keywords object
  • Fallback chains: Reorder or add models in fallbacks arrays
  • Fast TTFT threshold: Adjust fast_ttft_max_seconds — only models with ttft_seconds below this are eligible for fast tasks
  • Default model: Change default_model to whichever model you want as ZeroAPI's policy default target, then make sure openclaw.json agrees if you want runtime default behavior to match

Benchmark Scores Reference

All benchmark values in these configs are sourced from benchmarks.json (date: 2026-04-24).

Benchmark What It Measures
intelligence General reasoning composite
coding Code generation and repair (SWE-bench style)
tau2 Tool-use and agentic task completion (tau2-bench)
terminalbench Terminal/shell command accuracy
ifbench Instruction following
gpqa Graduate-level science QA
lcr Long-context retrieval
hle Humanity's Last Exam
scicode Scientific coding tasks