docs(providers): say how a custom provider uses the Responses wire

#6997 asks for custom providers to be able to use `/responses`. They
already can. A `[providers.<name>]` table with `wire = "responses"`
resolves to WireFormat::Responses (client.rs
provider_wire_format_for_config, the ProviderKind::Custom branch). The
existing subagent route-replacement test proves such a table posts to
`<base_url>/responses`. Neither CONFIGURATION.md nor PROVIDERS.md said
so: both described custom tables as OpenAI-compatible Chat endpoints
only. Both now say that Chat Completions is the default and that `wire`
selects Responses or Anthropic Messages, and CONFIGURATION.md gives a
custom-table example.

Verification: docs only. Checked the keys against the code: `kind`,
`base_url`, `api_key_env`, `model` and `wire` are all read for custom
tables (provider_readiness.rs, model_inventory.rs, config.rs
provider_wire_dialect). `git diff --check` is clean. No live gateway was
called.

Refs #6997

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01NBKbhx19BRbZtvWK8rVKjz
This commit is contained in:
CodeWhale BotandClaude Opus 5.5 committed 2026-10-16 19:32:07 -07:00
1 parent 6f1e1094ce
commit 6ee9df1814
2 files changed
+16 -1

No files matched your search

+13
View File
@@ -601,6 +601,19 @@ Custom provider names may be selected with `provider = "<name>"`,
`--provider <name>`, or an AgentProfile `provider = "<name>"` when the matching
`[providers.<name>]` table exists.
A custom table sends Chat Completions requests by default. Add
`wire = "responses"` to send OpenAI Responses requests to
`<base_url>/responses` instead, or `wire = "anthropic"` for Anthropic Messages:
```toml
[providers.my-gateway]
kind = "openai-compatible"
base_url = "https://gateway.example/v1"
api_key_env = "MY_GATEWAY_API_KEY"
model = "gpt-5.6"
wire = "responses"
```
StepFun has a first-class provider entry, so keep Coding Plan credentials and
base URL scoped to `[providers.stepfun]`:
+3 -1
View File
@@ -384,7 +384,9 @@ Instead, choose the closest shipped route and override its endpoint/model:
- Multiple named OpenAI-compatible gateways, or local routes you want to pin
from an AgentProfile, can use a custom table such as
`[providers.lm-studio] kind = "openai-compatible"` and select it with
`provider = "lm-studio"` or a profile `provider = "lm-studio"`.
`provider = "lm-studio"` or a profile `provider = "lm-studio"`. Such a table
speaks Chat Completions unless it sets `wire = "responses"` (OpenAI
Responses at `<base_url>/responses`) or `wire = "anthropic"`.
- Local OpenAI-compatible runtimes: use `provider = "vllm"`, `"sglang"`, or
`"ollama"` with the matching provider-specific base URL/model values.