diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 7482b1acc..16999a343 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "0055e404cf21b5b4d6ba9ea081e61e62e004eddc", - "syncedAt": "2026-04-27T08:04:59.781Z" + "sha": "f9181835e8700f3e2c56ebe7cdec050276f75458", + "syncedAt": "2026-04-27T08:15:57.939Z" } diff --git a/docs/gateway/local-models.md b/docs/gateway/local-models.md index 2967a39ed..65c52e399 100644 --- a/docs/gateway/local-models.md +++ b/docs/gateway/local-models.md @@ -169,6 +169,11 @@ Compatibility notes for stricter OpenAI-compatible backends: those into real tool calls only when the name exactly matches a registered tool for the turn; otherwise the block is treated as unsupported text and is hidden from user-visible replies. +- If a model emits JSON, XML, or ReAct-style text that looks like a tool call + but the provider did not emit a structured invocation, OpenClaw leaves it as + text and logs a warning with the run id, provider/model, detected pattern, and + tool name when available. Treat that as provider/model tool-call + incompatibility, not a completed tool run. - Some smaller or stricter local backends are unstable with OpenClaw's full agent-runtime prompt shape, especially when tool schemas are included. If the backend works for tiny direct `/v1/chat/completions` calls but fails on normal