Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions docs/providers/openai-compatible.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ You'll find these settings in the Zoo Code settings panel (click the <Codicon na
* **Base URL:** Enter the base URL provided by your chosen provider. **This is crucial.**
* **API Key:** Enter your API key.
* **Model:** Choose a model.
* **Extra Body:** Optionally add provider-specific JSON fields to each request body.
* **Model Configuration:** This lets you customize advanced configuration for the model
- Max Output Tokens
- Context Window
Expand All @@ -48,6 +49,28 @@ You'll find these settings in the Zoo Code settings panel (click the <Codicon na

---

## Provider-Specific Request Fields

Some OpenAI-compatible providers support request-body fields that are not part of Zoo Code's standard model settings. Enter these fields as a JSON object in **Extra Body**.

For example, Sail Research uses `metadata.completion_window` to select a completion tier:

<img src="/img/openai-compatible/extra-body.png" alt="OpenAI Compatible Extra Body setting containing Sail Research completion window metadata" width="480" />

```json
{
"metadata": {
"completion_window": "balanced"
}
}
```

Zoo Code validates the JSON before saving the provider profile and adds the fields to streaming, non-streaming, and single-completion requests. The top-level value must be an object.

Extra Body cannot override fields managed by Zoo Code, including the model, messages, streaming mode, tools, reasoning settings, temperature, and token limits. Use the corresponding Zoo Code setting for those fields. Do not put API keys or other secrets in Extra Body because provider profiles can be exported.

---

## Native Tool Calling

Zoo Code uses **native tool calling** exclusively. This is the only supported tool protocol -- there is no XML-based fallback.
Expand Down
Binary file added static/img/openai-compatible/extra-body.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading