You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Document the required /v1 base URL and per-agent registry refresh behavior for OpenClaw.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+10-1Lines changed: 10 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [2026.3.8] - 2026-03-27
11
+
12
+
### Changed
13
+
-**OpenClaw docs and connector guidance**: the README and docs-site now make the required `http://localhost:8080/v1` base URL explicit and document the recommended `openclaw models status --agent main --probe` verification path.
14
+
15
+
### Fixed
16
+
-**OpenClaw reconnect auth drift**: `isartor connect openclaw` now refreshes the `main` / default agent model override and clears stale per-agent `models.json` registries so changing the gateway API key does not leave OpenClaw stuck on old provider auth.
OpenClaw note: use Isartor's OpenAI-compatible `/v1` base path, not the root `:8080` URL. If you change Isartor's gateway API key later, rerun `isartor connect openclaw` so OpenClaw's per-agent model registry refreshes too.
4. the `main` / default agent model override when one is present
43
+
5. a refresh of stale per-agent `models.json` registries so OpenClaw regenerates them with the latest `baseUrl` and `apiKey`
42
44
43
45
Example generated provider block:
44
46
@@ -72,6 +74,40 @@ agents: {
72
74
}
73
75
```
74
76
77
+
## Base URL and auth path
78
+
79
+
OpenClaw must talk to Isartor's OpenAI-compatible `/v1` surface.
80
+
81
+
- Correct base URL: `http://localhost:8080/v1`
82
+
- Wrong base URL: `http://localhost:8080`
83
+
84
+
Why this matters:
85
+
86
+
- OpenClaw appends `/chat/completions` for OpenAI-compatible custom providers
87
+
- Isartor exposes that route as `/v1/chat/completions`
88
+
- using the root gateway URL can produce `404` errors such as `gateway unknown L0 via chat/completions`
89
+
90
+
`isartor connect openclaw` writes the `/v1` path for you, so prefer the connector over hand-editing the provider block.
91
+
92
+
## Reconnecting after changing the gateway API key
93
+
94
+
OpenClaw stores custom-provider state in two places:
95
+
96
+
1.`~/.openclaw/openclaw.json`
97
+
2. per-agent `models.json` registries under `~/.openclaw/agents/<agentId>/agent/`
98
+
99
+
Those per-agent registries can keep an old `apiKey` or `baseUrl` even after `openclaw.json` changes. That is why you can still see `401` after fixing the key in the top-level config.
openclaw agent --agent main -m "Hello from OpenClaw through Isartor"
107
+
```
108
+
109
+
The connector now refreshes `openclaw.json`, updates the `main` / default agent model override, and removes stale per-agent `models.json` files so OpenClaw regenerates them with the new auth.
110
+
75
111
## Why this is the best fit
76
112
77
113
The upstream LiteLLM/OpenClaw docs assume the gateway can expose a multi-model catalog and route among many providers behind one endpoint.
@@ -85,6 +121,7 @@ Isartor is different today:
85
121
That means:
86
122
87
123
- if you change Isartor's provider/model later, rerun `isartor connect openclaw`
124
+
- if you change Isartor's gateway API key later, rerun `isartor connect openclaw --gateway-api-key ...`
88
125
- do **not** expect `isartor/openai/...` and `isartor/anthropic/...` fallbacks to behave like LiteLLM provider switching unless Isartor itself grows multi-provider routing later
-`~/.openclaw/agents/<agentId>/agent/models.json` — regenerated by OpenClaw after Isartor clears stale custom-provider caches
101
139
-`openclaw.json.isartor-backup` — backup, when a prior config existed
102
140
103
141
## Disconnecting
@@ -116,7 +154,7 @@ For day-to-day use:
116
154
2. Validate with `isartor check`
117
155
3. Keep Isartor running with `isartor up --detach`
118
156
4. Let OpenClaw use `isartor/<configured-model>` as its primary model
119
-
5. Use `openclaw models status` whenever you want to confirm what OpenClaw currently sees
157
+
5. Use `openclaw models status --agent main --probe` whenever you want to confirm what OpenClaw currently sees
120
158
121
159
If you later switch Isartor from, for example, Groq to OpenAI or Azure:
122
160
@@ -143,6 +181,7 @@ That refreshes OpenClaw's provider model to match the new Isartor config.
143
181
| Symptom | Cause | Fix |
144
182
|---------|-------|-----|
145
183
| OpenClaw cannot reach the provider | Isartor not running | Run `isartor up --detach` first |
184
+
| OpenClaw onboarding/custom provider returns 404 | Base URL points at `http://localhost:8080` instead of `http://localhost:8080/v1`| Use `isartor connect openclaw` or update the custom provider base URL to end with `/v1`|
146
185
| OpenClaw still shows the old model | Isartor model changed after initial connect | Re-run `isartor connect openclaw`|
147
-
| Auth errors (401) | Gateway auth enabled | Re-run with `--gateway-api-key` or set `ISARTOR__GATEWAY_API_KEY`|
186
+
| Auth errors (401) after reconnecting | OpenClaw is still using stale per-agent provider state | Re-run `isartor connect openclaw --gateway-api-key <key>` so Isartor refreshes `openclaw.json` and clears stale per-agent `models.json` registries|
148
187
| "Model is not allowed" | OpenClaw allowlist still excludes the managed model | Re-run `isartor connect openclaw` so the managed model is re-added to the allowlist |
0 commit comments