Problem
The seller OpenAI upstream adapter unconditionally sends seed: 0 for its deterministic greedy startup/readiness probe:
Some OpenAI-compatible upstreams reject the optional seed field with HTTP 400, even though normal streaming chat completions for the same model, key, temperature: 0, and max_tokens succeed. This makes dexdo seller fail before any chain action with a generic upstream readiness failure.
Minimal reproduction
- Configure an OpenAI-compatible seller profile whose upstream accepts
/v1/chat/completions but rejects the optional seed field.
- Run the normal seller readiness path.
- Observe the generated probe includes
seed: 0 and receives HTTP 400.
- Send the otherwise identical request without
seed; it succeeds.
The behaviour is reproducible with a current v0.2.1 source checkout (846f8e5). The provider identity, streamed response, model, and credentials all validate without seed.
Expected behaviour
An explicitly configured profile should be able to declare that its upstream does not support optional seed, while preserving the existing default for deployed configurations.
Suggested additive model-profile capability:
"capabilities": {
"max_output_tokens": 256,
"supports_seed": false
}
Then build the request with seed: 0 only when the request is greedy and supports_seed is true. Defaulting the capability to true keeps current profile wire behaviour unchanged.
Why this matters
This is an adapter capability mismatch, not a provider/key/model failure. Without a profile-level declaration, supported OpenAI-compatible upstreams can be incorrectly rejected before provision/seller publication.
Problem
The seller OpenAI upstream adapter unconditionally sends
seed: 0for its deterministic greedy startup/readiness probe:Some OpenAI-compatible upstreams reject the optional
seedfield with HTTP 400, even though normal streaming chat completions for the same model, key,temperature: 0, andmax_tokenssucceed. This makesdexdo sellerfail before any chain action with a generic upstream readiness failure.Minimal reproduction
/v1/chat/completionsbut rejects the optionalseedfield.seed: 0and receives HTTP 400.seed; it succeeds.The behaviour is reproducible with a current v0.2.1 source checkout (
846f8e5). The provider identity, streamed response, model, and credentials all validate withoutseed.Expected behaviour
An explicitly configured profile should be able to declare that its upstream does not support optional
seed, while preserving the existing default for deployed configurations.Suggested additive model-profile capability:
Then build the request with
seed: 0only when the request is greedy andsupports_seedis true. Defaulting the capability totruekeeps current profile wire behaviour unchanged.Why this matters
This is an adapter capability mismatch, not a provider/key/model failure. Without a profile-level declaration, supported OpenAI-compatible upstreams can be incorrectly rejected before provision/seller publication.