Sync the self-hosting stack
This commit is contained in:
@@ -9,6 +9,38 @@ one of them changed. An entry says which artefact and which version, so `web 0.1
|
|||||||
Every version published to a channel appears here. Nothing is written from memory afterwards: a build
|
Every version published to a channel appears here. Nothing is written from memory afterwards: a build
|
||||||
cannot be published without its entry.
|
cannot be published without its entry.
|
||||||
|
|
||||||
|
## 2026-08-28 — Models other than OpenAI's work again `api 0.96.0`
|
||||||
|
|
||||||
|
**Read this if you point Jarvis at anything other than OpenAI.** Self-hosted models, Qwen, Llama,
|
||||||
|
Mistral, anything behind LiteLLM or a similar gateway. If you use OpenAI, nothing here changes for
|
||||||
|
you.
|
||||||
|
|
||||||
|
A conversation in which the assistant had used a tool would fail from that point on, with the
|
||||||
|
provider answering:
|
||||||
|
|
||||||
|
```text
|
||||||
|
400 System message must be at the beginning
|
||||||
|
```
|
||||||
|
|
||||||
|
and failing the same way on every retry and every later message in that conversation. There was no
|
||||||
|
way round it except starting a new conversation and avoiding tools, which is most of what Jarvis
|
||||||
|
does.
|
||||||
|
|
||||||
|
The cause was on our side. Jarvis records what a tool returned as its own entry in the context,
|
||||||
|
placed immediately after the assistant turn it belongs to — the position is what says "these are the
|
||||||
|
results of the turn above". That entry was labelled as a system instruction, which OpenAI accepts
|
||||||
|
anywhere in a conversation and almost every other provider rejects outright.
|
||||||
|
|
||||||
|
It is now labelled in a way every provider accepts at any position, and it still says in its own
|
||||||
|
first sentence that the platform wrote it and the assistant did not — which is what stops a model
|
||||||
|
learning to write tool results instead of asking for them. Nothing changes about what the model is
|
||||||
|
told; only the envelope it arrives in.
|
||||||
|
|
||||||
|
A guard now also sits on the last line before any request leaves for your provider, so a
|
||||||
|
mislabelled entry is corrected and logged rather than costing you a conversation.
|
||||||
|
|
||||||
|
**Nothing to do.** Take the build; conversations that were failing will work on their next message.
|
||||||
|
|
||||||
## 2026-08-27 — A machine could show Offline while you were using it `api 0.95.0` `web 0.121.0`
|
## 2026-08-27 — A machine could show Offline while you were using it `api 0.95.0` `web 0.121.0`
|
||||||
|
|
||||||
**Only affects deployments running more than one copy of the api.** On Docker Compose this cannot
|
**Only affects deployments running more than one copy of the api.** On Docker Compose this cannot
|
||||||
|
|||||||
Reference in New Issue
Block a user