Run OpenClaw on any model
Open-source autonomous agent runtime - register your Antseed gateway as a custom provider in openclaw.json.
What OpenClaw is. OpenClaw is an open-source agent runtime for autonomous, long-running tasks (research, coding, web automation). It loads its provider catalog from ~/.openclaw/openclaw.json - each entry is an HTTP endpoint plus a wire protocol (anthropic-messages, openai-chat, etc.) and a list of models.
How Antseed plugs in. Add a provider entry called antseed with api: "openai-completions" and authHeader: true. Antseed translates to each seller's native protocol, so this one entry reaches every chat model on the network. The recommended endpoint is a gateway: it gives the agent its own key, budget and usage log, and works wherever OpenClaw runs - a server, a container, another computer. Use the local buyer proxy (http://127.0.0.1:8377/v1) only when OpenClaw runs on the same computer as the buyer.
Why a config entry instead of env vars. OpenClaw runs many providers in parallel (one per task, sometimes one per agent). A single base-URL override would force every agent through Antseed; a named provider lets you mix Antseed with hosted Anthropic, OpenAI, or local models on a per-agent basis.
Run Antseed first
Every integration needs an Antseed endpoint: a gateway, best on a small server so every tool on every machine can reach it, or the local buyer proxy (same computer only). One-time setup, a few minutes.
Step 1
Install OpenClaw
- Install OpenClawnpm install -g openclaw
Verify with
openclaw --version. OpenClaw has a newer Node.js support policy than Antseed, so use a Node version accepted by the current OpenClaw release. The config file lives at~/.openclaw/openclaw.jsonand is created on first launch. - Optional: let the setup script do the restskills/openclaw-antseed/scripts/setup.sh --service deepseek-v4-flash
From a checkout of the Antseed repo. With no gateway, it installs the Antseed CLI if needed, runs
antseed gateway service install(a background service that starts at login and restarts if it stops, on macOS and Linux, no root), creates a key for OpenClaw and saves it in~/.antseed/openclaw/api-key, then writes theantseedprovider intoopenclaw.jsonwith that one model as the default (antseed/deepseek-v4-flash). Both files are readable only by you, and running it again reuses the saved key. To use a gateway you already have, setANTSEED_BASE_URLandANTSEED_API_KEYfirst. Then runopenclaw gateway restartand check it withopenclaw models listandopenclaw agent exec "Say hi" --model "antseed/deepseek-v4-flash". The Configure and Test steps below are the by-hand route: they readANTSEED_BASE_URLandANTSEED_API_KEYfrom your shell and use a gateway preset the script doesn't create. A new gateway's wallet is empty, so add funds (antseed gateway console-link, then Wallet & Funding), or create the free-sellers preset below and add it toopenclaw.jsonas a model.
Step 2
Point OpenClaw at Antseed
Recommended: a gateway
| ANTSEED_BASE_URL | https://gateway.example.com/v1 |
| ANTSEED_API_KEY | antseed_… |
Show as shell exports
Your gateway's base URL, ending in /v1, and an API key from the Keys page of its console. Recommended: a gateway on a server, which every machine can reach. A gateway on this computer is http://localhost:8379/v1; publish it with a tunnel (antseed tunnel start) for other machines. No gateway yet: see Run Antseed first above. Same computer as the buyer, no gateway: use http://127.0.0.1:8377/v1 and any placeholder key, such as antseed-p2p.
Gateway only: create a preset that prefers free sellers
Run it where the gateway runs, or create the preset on the console's **Presets** page. OpenClaw then calls it as the model @preset/openclaw. With a plain model id, OpenClaw's requests can land on a paid seller and get a 402 on an unfunded gateway, even for a model that has a free seller. To never pay, add --max-input-price 0 --max-output-price 0: with no free seller available you get a 502 instead of a 402. Using the local buyer proxy instead? Skip this step: only a gateway resolves presets, and funding the buyer doesn't change that. Without funds, run a gateway on the same computer instead (antseed gateway service install, which keeps it running in the background at http://127.0.0.1:8379/v1, plus a key from antseed gateway key create --label openclaw) and follow the gateway steps.
Keep authHeader: true: it sends the key as Authorization: Bearer, which the gateway requires. Use openai-completions with a base URL ending in /v1; this is the setup Antseed runs its own OpenClaw agents on. With the local buyer proxy, leave out the @preset/openclaw entry: the proxy answers it with an error.
Gateway: use the preset
The restart is only for a running OpenClaw gateway service. One-off openclaw agent exec runs read the config directly.
Local buyer proxy: use a model id
Without deposits, use a model that has a free seller: the local buyer retries a free seller after a paid one answers 402. CLI 0.1.234 and earlier pass that 402 on, and OpenClaw then disables the key for about 10 minutes (see Troubleshooting), so on those versions fund the buyer (antseed buyer deposit) or use a gateway. A model with no free seller, such as kimi-k2.6, always needs a funded buyer.
Step 3
Pick a model
Every id under models[] must be a model id from GET /v1/models or a gateway preset (@preset/<slug>). kimi-k2.6 has no free seller, so it needs a funded gateway. Don't pin a seller with <peerId>@<service-id>: OpenClaw drops everything from the @, so the gateway gets a bare peer id and answers 502 model_not_found. Pin with a preset instead: antseed gateway preset create --slug openclaw-pinned --name "OpenClaw pinned" --model deepseek-v4-flash --allow-peer <peerId>, then use @preset/openclaw-pinned. With the local buyer proxy and the desktop app, the special id antseed follows the model picked in the app; it does not work through a gateway.
The full list is every model on the network. Run GET /v1/models on your endpoint, antseed network browse, or open the live network page to see what's available right now.
Verify
Test it
- Confirm the endpoint advertises the model ids you put in configcurl -s "$ANTSEED_BASE_URL/models" -H "Authorization: Bearer $ANTSEED_API_KEY" | jq '.data[].id'Example response"deepseek-v4-flash" "gpt-oss-120b" "kimi-k2.6" "minimax-m2.7"
Presets are not listed here. If a model id you listed in
openclaw.jsondoesn't appear here, no seller your routing policy allows serves it right now. Remove the entry or pick another model from the list. - Check the configured model catalogopenclaw models list
You should see the
antseedprovider and its configured models. - Run an agent against Antseedopenclaw agent exec "Summarize the README in this repo" --model "antseed/@preset/openclaw"
Through the local buyer proxy:
openclaw agent exec "Summarize the README in this repo" --model "antseed/kimi-k2.6".
How OpenClaw talks to Antseed
- Wire format sent by OpenClaw:
OpenAI Chat Completions(hits/v1/chat/completionson your gateway or buyer proxy) - Best-fit services: any service whose
protocolsarray containsopenai-chat-completions. That's what the peer advertises as natively-supported - zero translation overhead, no transform edge cases. - How to check a peer: run
antseed network peer <peerId> --jsonand look atproviderServiceApiProtocols[provider].services[service]. The browse command exposes the same field per peer. - What happens when protocols don't match: Antseed's
@antseed/api-adaptertranslates between OpenAI Chat Completions and the service's native protocol on the fly, inside the buyer. So a request from OpenClaw can still reach a service that only advertisesanthropic-messages- just with a small transform step. - One known caveat: services whose only advertised protocol is
openai-responsesrequire streaming. If OpenClaw sends a non-streaming request and Antseed routes it to one of those services, the call fails withHTTP 400: Stream must be set to true. Pick a service whoseprotocolsincludesopenai-chat-completions(or another non-responses protocol) to avoid this.
If it goes wrong
Troubleshooting
provider "antseed" not foundwhen launching an agentJSON parse error inopenclaw.json, or you put the entry in the wrong nesting level. The provider must live undermodels.providers.antseed. Runopenclaw config validateto surface parse errors.401from the gatewaySetauthHeader: trueon the provider and make sureANTSEED_API_KEYholds a gateway key in the environment OpenClaw starts with.- Connection refused at
localhost:8379The gateway on this computer isn't running.antseed gateway service statusshows whether the service is installed and answering;antseed gateway service installstarts it again. - OpenClaw lists
antseed/<id>but every call returns502 model_not_foundNo seller your routing policy allows currently advertises that model. CheckGET $ANTSEED_BASE_URL/modelswith the bearer key and updatemodels[], or pick another model. If the error names a 40-character peer id instead of a model, the id was<peerId>@<service-id>, which OpenClaw cuts at the@; pin with a preset instead (see **Pick a model**). returned a billing error, thenInline API key for provider "antseed" is temporarily disabled after a provider auth/billing failureThe gateway answered402: the request was routed to a paid seller and the workspace wallet is empty. OpenClaw then disables theantseedkey for about 10 minutes for every model, free ones included;openclaw models statuslists it under **Unavailable auth profiles** with the time left. Wait it out, then use the@preset/openclawpreset above, or fund the workspace wallet (console → **Wallet & Funding**).- Streaming errors on long-running agentsAntseed supports SSE streaming. If you see truncated responses, check that no proxy between OpenClaw and Antseed is buffering (Cloudflare, nginx). The gateway and the buyer proxy do not buffer.
- Agent stalls on first request after a deployAntseed opens a payment channel on the first request to a new peer (one on-chain transaction, ~5–15s on Base). Subsequent requests reuse the channel. Pre-warm by running a quick
curlbefore launching the agent. - OpenClaw runs remotely and cannot reach
127.0.0.1:8377The local buyer proxy only listens on localhost. Use a gateway: a server gateway, or a tunnel (antseed tunnel start). Put its/v1URL inANTSEED_BASE_URL, a gateway key inANTSEED_API_KEY, and keepauthHeader: true. Do not expose port 8377 directly.
Reference
Links
Same category