Skip to content

docs(providers): multi-model/provider compatibility + wire protocols (Track E #2300)#3471

Open
Hmbown wants to merge 1 commit into
mainfrom
codex/v0.8.65-provider-compat-docs
Open

docs(providers): multi-model/provider compatibility + wire protocols (Track E #2300)#3471
Hmbown wants to merge 1 commit into
mainfrom
codex/v0.8.65-provider-compat-docs

Conversation

@Hmbown

@Hmbown Hmbown commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Multi-model-compatibility + provider-docs portion of #2300 (Fleet loadout part deferred to the Fleet workstream). Documents the provider list + wire protocols (Chat Completions / Responses / Anthropic Messages / Ollama-local / custom) and the #2608 prefix-is-a-wire-id invariant. Provider list derived from PROVIDER_REGISTRY; check-provider-registry.py passes. Sequenced after #3425 (qianfan) which also edits PROVIDERS.md — will rebase + add qianfan to the matrix. Codex-drafted, orchestrator-reviewed.

🤖 Generated with Claude Code

…rotocols (Track E #2300)

The multi-model-compatibility + provider-docs portion of #2300 (the Fleet loadout
part is handled separately). Documents the provider list and wire protocols
(OpenAI Chat Completions / Responses / Anthropic Messages / Ollama-local / custom
OpenAI-compatible) and the #2608 invariant: provider-prefixed model strings are
wire ids/namespace hints, not provider switches. Provider list derived from
PROVIDER_REGISTRY; check-provider-registry.py passes.

Drafted by a Codex sub-agent; orchestrator-reviewed (docs-only, accurate vs registry).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@claude

claude Bot commented Jun 23, 2026

Copy link
Copy Markdown

Claude finished @Hmbown's task in 2m 38s —— View job


PR Review: docs(providers) multi-model/provider compatibility + wire protocols


Summary: Documentation-only PR that accurately reflects the codebase state. The wire protocol table, #2608 invariant prose, and env-var additions are all correct. One minor pre-existing gap is surfaced, and one small note on the new table.


Correctness

siliconflow-CN TOML table fix (docs/CONFIGURATION.md, ~line 198) — Good catch. The old text said "sharing [providers.siliconflow]"; the new text says "with the [providers.siliconflow_cn] table". Confirmed correct against crates/config/src/provider.rs line 268 ("siliconflow_cn").

Wire protocol source attribution (docs/PROVIDERS.md, ~line 102–104): The note says values are "derived from crates/config/src/provider.rs". Verified: the enum is WireFormat { ChatCompletions, Responses, AnthropicMessages }, the default wire() returns ChatCompletions, openai-codex returns Responses, and anthropic returns AnthropicMessages. All three are accurate.

New default_text_model additions (docs/CONFIGURATION.md, default_text_model key): Added openai-codexgpt-5.5 and anthropicclaude-sonnet-4-6. Consistent with the Shipped Providers table in docs/PROVIDERS.md.

Provider ID lists — All three places where canonical IDs appear (PROVIDERS.md intro, CONFIGURATION.md intro paragraph, CODEWHALE_PROVIDER env var list) are now consistent with each other. Good.


Minor Issues

OPENAI_CODEX_ACCOUNT_ID / CODEX_ACCOUNT_ID missing from env list (docs/CONFIGURATION.md): PROVIDERS.md (line 251) documents that "OPENAI_CODEX_ACCOUNT_ID/CODEX_ACCOUNT_ID are accepted", but the env-var list in CONFIGURATION.md still doesn't include them. This is a pre-existing gap that this PR adds context around — worth adding in a follow-up or as a one-line fix here.
Fix this →

Wire table: sglang/vllm/ollama auth shows optional keys as peer with required keys. The table format can't distinguish optional from required auth, but readers may miss that SGLANG_API_KEY, VLLM_API_KEY, and OLLAMA_API_KEY are optional. The shipped-providers table below already notes "localhost deployments commonly omit auth", so this is acceptable as-is.


#2608 Invariant Coverage

Both files now clearly state the invariant:

  • PROVIDERS.md §"Wire Protocol Compatibility": "It is not a provider switch and must not be treated as proof that the route is DeepSeek, OpenRouter, or any other provider."
  • CONFIGURATION.md (after the Bailian/DashScope example): "a prefix such as deepseek-ai/... or deepseek/... is a provider-owned wire ID under the selected provider, not an automatic switch to the DeepSeek provider."

Coverage is correct and appropriately placed. No code changes are made by this PR, so there are no logic paths to audit.


What's Good

  • Intro rewrite from a named list of "additive routes" to "every entry in ProviderKind::ALL and PROVIDER_REGISTRY is a first-class selectable provider route" is more accurate and scales to future additions.
  • Env-var completions (OPENROUTER_MODEL, NOVITA_MODEL, FIREWORKS_MODEL, TOGETHER_*, OPENAI_CODEX_*, ZAI_*, STEPFUN_*, MINIMAX_*, DEEPINFRA_*) were legitimately missing. All additions match their counterparts in the existing PROVIDERS.md shipped-provider table.
  • Wire protocol table is a useful quick-reference that didn't exist before.
  • PR is appropriately marked as needing a rebase after feat(provider): add Qianfan route fixture #3425 (qianfan) before merge.

Result: Approve pending the rebase on #3425. The one missing env var (OPENAI_CODEX_ACCOUNT_ID) is a minor gap; fix it in this PR or file a follow-up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant