SubLaneSubLane

Protocolos de clientes nativos

SubLane guia: protocolos de clientes nativos.

Estes parâmetros de avaliação foram introduzidos após v0.1.0-rc.1; essa versão não inclui-os. Use uma compilação de código-fonte até que uma versão mais recente inclua esta alteração.

Estão ativas as assinaturas Codex, Claude, Antigravity e Grok Build e os canais API. Claude Messages, Gemini, Responses e Chat Completions são formatos cliente independentes do fornecedor. Os recursos compatíveis com o modelo seguem o grupo da chave, permissões e regras de encaminhamento e alternativa. Cada canal API define seu protocolo: Messages pode continuar nativo ou ser convertido para Chat Completions, Responses ou Gemini. A integração SDK pública preserva limites explícitos e estados incompletos. /v1/responses/compact continua exclusivo do Codex. Provedores e clientes reais exigem validação separada.

Pontos finais e autenticação

ProtocoloPonto finalCredenciais
Claude MensagensPOST /v1/messagesx-api-key ou Authorization: Bearer
Gemini JSONPOST /v1beta/models/{model}:generateContentx-goog-api-key, Authorization: Bearer, ou key parâmetro de consulta
Gemini SSEPOST /v1beta/models/{model}:streamGenerateContent?alt=sseO mesmo que Gemini JSON

Usar um pessoal SubLane API chave. Se forem fornecidas várias localizações de credencial, elas devem concordar; um cabeçalho de autorização inválido não pode voltar para outra chave. Os cookies de sessão de navegador não são credenciais de gateway. Prefere os cabeçalhos para as chaves de texto de consultas porque outras proxies podem registrar URLs. SubLane não encaminha chaves do cliente, cookies ou strings de consulta para provedores.

Utilização GET /v1/models com autenticação do portador para descobrir IDs de modelos nativos permitidos. For Gemini requisições, o modelo na URL é autoritário; um corpo model ou stream o campo não pode substituir a rota. streamGenerateContent retorna SSE; alt pode ser omitido ou definido como sse.

Claude exemplo

Definir SUBLANE_URL à origem da instância e SUBLANE_API_KEY para a sua chave pessoal. Substitua YOUR_MODEL_ID com um modelo do catálogo:

Claude example · 1
curl "$SUBLANE_URL/v1/messages" \
  -H "x-api-key: $SUBLANE_API_KEY" \
  -H 'anthropic-version: 2023-06-01' \
  -H 'content-type: application/json' \
  --data '{"model":"YOUR_MODEL_ID","max_tokens":1024,"messages":[{"role":"user","content":"Hello"}]}'

Adicionar "stream": true para mensagens nomeadas SSE eventos. O conteúdo de solicitação nativa inclui blocos de sistema, ferramentas, resultados de ferramentas, controles de cache e configuração de pensamento. Claude-formato respostas preservar blocos de conteúdo e thinking assinaturas, sujeito ao tratamento específico do executor selecionado. Erros usar o envelope Anthropic e nomeado SSE eventos de erro. request-id e X-Request-ID Identificar o registo de pedidos correspondente.

Gemini exemplo

Gemini example · 2
curl "$SUBLANE_URL/v1beta/models/YOUR_MODEL_ID:generateContent" \
  -H "x-goog-api-key: $SUBLANE_API_KEY" \
  -H 'content-type: application/json' \
  --data '{"contents":[{"role":"user","parts":[{"text":"Hello"}]}]}'

Para transmissão, utilizar :streamGenerateContent?alt=sse e curl --no-buffer. Responses conter nativo candidates, peças e usageMetadata; Antigravity's interna response o envelope é removido pela SDK. Chamadas de ferramentas e assinaturas de pensamento permanecem em seus Gemini representação. Erros usam o Google-style error.code, error.status e error.message. SSE os pedaços têm data: enquadramento sem OpenAI's [DONE] Marcador.

Comportamento compartilhado

  • Membros e chaves habilitados, validade chave, subsídios de pool, políticas de modelo, disponibilidade de conta, concorrência e limites de solicitação de membros são novamente verificados através dos serviços de gateway existentes.
  • Cada pedido verifica a chave, o membro, o grupo de recursos, a política de modelos, a capacidade e os limites do membro. Novos pedidos podem usar assinaturas ou canais API conforme o encaminhamento e a alternativa do grupo. As conversas existentes mantêm o recurso; desativá-lo ou removê-lo não provoca uma troca automática.
  • Usos de afinidade de conversação Session_id; Claude também utiliza metadata.user_id quando não é fornecida nenhuma sessão explícita. Os identificadores são examinados ao membro e ao pool. Os pedidos sem um identificador de afinidade permanecem sem sessão.
  • O cancelamento fecha o trabalho a montante e libera as locações de conta/membro. Os eventos terminais em falta e os eventos malformados ou superdimensionados são falhas, não são respostas vazias bem sucedidas. Os erros de transmissão são higienizados depois de os cabeçalhos terem sido enviados.
  • Solicitar operações de etiquetas de histórico como messages ou gemini, com IDs de solicitação, latência de primeira saída e uso de token disponível. Os totais de entrada antrópicos incluem leituras de cache e criação; Gemini a entrada já inclui fichas em cache, e o seu total de saída inclui tokens pensantes. Gemini os blocos de uso são consumidos após finishReason.
  • O corpo dos pedidos tem um limite predefinido de 128 MiB (SUBLANE_MAX_REQUEST_BODY_MB); respostas e eventos têm limites separados de 8 MiB. O prazo total predefinido é de 30 minutos (SUBLANE_GATEWAY_REQUEST_TIMEOUT) e a espera por cabeçalhos de inferência é de cinco minutos (SUBLANE_INFERENCE_HEADER_TIMEOUT), também nos protocolos nativos. As respostas em fluxo são transmitidas progressivamente.

O esquema de inicialização consolidado inclui operações de protocolo nativos no histórico de pedidos. Não é necessário nenhum serviço adicional persistente.

Âmbito de aplicação e verificação

Esta matriz sintética cobre Codex, Claude e Antigravity, todos ativos em execução. Grok Build e os canais API também estão ativos e têm testes separados, fora desta matriz de 24 casos:

Protocolo do clienteCodex contaClaude contaAntigravity conta
OpenAI ResponsesTestadoTestadoTestado
OpenAI Chat CompletionsTestadoTestadoTestado
Claude MensagensTestadoTestadoTestado
Gemini geraçãoTestadoTestadoTestado

TestClientProtocolMatrix verifica 24 combinações de fornecedor, protocolo e fluxo com serviços simulados. Testes separados cobrem Grok Build, canais API, assinaturas, cache, permissões, novas tentativas, cancelamento e fluxos inválidos. Não certificam todas as ferramentas, modos de raciocínio, campos específicos ou percursos de clientes reais.

Cobertura usa contas sintéticas e provedores zombados, incluindo nativos JSON/SSE, ferramentas/pensamento, tradução entre fornecedores, autorização, uso, interrupção e cancelamento. Claude Código, Gemini Compatibilidade CLI ou desktop. Recursos nativos avançados dependem do provedor selecionado e SDK caminho de conversão.

In API chaves → Guia de configuração, escolha o seu cliente ou API formato. O guia fornece Codex configuração, Cline/OpenAI- montagem compatível e Chat Completions exemplos, ou nativo Claude/Gemini solicita exemplos, com o URL base e o cabeçalho de autenticação corretos. Selecione um modelo no pool da chave. O guia nunca obtém o segredo de uma chave; exemplos lidos SUBLANE_API_KEY do ambiente do cliente. CC Switch importação rápida suportes Codex, OpenCode, Claude Código, Openclaw, Hermes, Gemini CLI, e Grok Build.

Gemini O CLI 0.37.2 completou adicionalmente uma solicitação de streaming de texto e uma viagem de ida e volta de ferramentas somente para leitura contra um endpoint simulado isolado usando uma chave e modelo sintéticos. Isto verifica o caminho da solicitação e o consumo de resposta do CLI; ele não valida a inferência de inscrição real, cada recurso CLI, ou os fluxos de trabalho completos dos outros clientes.

Endpoints de contagem de chamadas, batedores de mensagens, arquivos, Gemini Vivo e Antigravity protocolos de conexão de desktop não são implementados por esta alteração. As ações não suportadas são rejeitadas em vez de tratadas como requisições de geração. Os recursos nativos de descoberta de modelos não são expostos; use o pool- scoped /v1/models catálogo.

Referências do protocolo: Claude transmissão, Claude erros, Gemini geração. Os limites de roteamento e compatibilidade foram comparados com sub2api e Novo API; SubLane mantém a sua própria autorização, ciclo de vida e implementação de armazenamento.