SymGate · Visão geral

Proxy OpenAI-compatible com tool calling de volta

O SymGate fica entre a IDE e o gateway corporativo de modelos. Ele devolve o tool calling que o gateway descarta, barra credencial saindo em prompt e registra uma trilha de auditoria de cada request.

Por que existe

O gateway descarta o campo tools da request. Sem ele o modelo nunca fica sabendo que existem ferramentas e responde que não tem acesso ao sistema de arquivos — nenhum agente funciona.

O SymGate contorna isso descrevendo as ferramentas em texto no system prompt, que o gateway não descarta, e remontando a resposta no formato oficial. Para o cliente chega um tool_calls normal: nada muda do lado da IDE.

IDE ---- tools (JSON) ----> SymGate ---- texto ----> gateway IDE <--- tool_calls -------- SymGate <--- texto ----- gateway

Configurar o cliente

A base é https://symgate.aideliveryengine.com/v1 e a chave é a sua, do gateway — o SymGate não guarda credencial de ninguém. Exemplo para o OpenCode:

"model": "symgate/azure.gpt-5.4",
"provider": {
  "symgate": {
    "npm": "@ai-sdk/openai-compatible",
    "name": "SymGate",
    "options": {
      "baseURL": "https://symgate.aideliveryengine.com/v1",
      "apiKey": "{file:~/.config/opencode/symphony.key}"
    },
    "models": {
      "azure.gpt-5.4": { "name": "GPT 5.4", "tool_call": true }
    }
  }
}

"tool_call": true é obrigatório. Sem isso o cliente não oferece modo agente — que é justamente o motivo de o SymGate existir. E defina o "model" no topo: o padrão do OpenCode aponta para outro provider, sem tool calling.

O passo a passo de cada cliente (OpenCode, Cline, Continue) está na documentação.

Segurança

A sua chave não fica aqui

O SymGate não guarda credencial de ninguém. A chave que você configura vai no cabeçalho Authorization, é repassada ao gateway e não é gravada em disco nem na auditoria. Cada pessoa usa a própria — não existe chave compartilhada do time.

O que não sai daqui

Agente lê arquivo. Mais cedo ou mais tarde ele lê um .env, e o conteúdo volta no turno seguinte como resultado de ferramenta — a caminho de um provedor externo. Antes de mandar qualquer coisa para o gateway, o SymGate examina o conteúdo novo do turno, resultado de ferramenta incluído, procurando segredo e dado pessoal.

AçãoO que dispara
Bloqueia Chave privada · chave e secret da AWS · chaves da OpenAI, Anthropic, OpenRouter e Google · tokens do GitHub, GitLab e Slack · JWT · senha embutida em URL
Avisa Segredo atribuído em código (api_key = "…") · CPF. Passa, mas fica registrado — são padrões que dão falso positivo demais para barrar a pessoa

Quando bloqueia, a request não chega ao gateway: nada é enviado. A pessoa lê na própria IDE o que foi encontrado, com o valor mascarado — sk-ant…4f2a, o suficiente para reconhecer qual segredo era, nunca o bastante para usá-lo.

Superfície

Auditoria

Cada request vira uma linha JSON: quando aconteceu, qual modelo, quem chamou, quantas ferramentas foram declaradas e o que os guardrails encontraram. Serve para responder depois — saiu segredo daqui?, quem usou o quê? — sem depender da memória de ninguém.

Achado nenhum entra inteiro na trilha: o valor vai sempre mascarado. Um registro de auditoria que guardasse o segredo por extenso seria mais um lugar de onde vazar.

Endpoints

RotaMétodoO quê
/v1/chat/completions POST A conversa. É aqui que o tool calling é traduzido nos dois sentidos.
/v1/models GET Os modelos liberados nesta instância.
/v1/health GET Se o serviço está de pé.
/docs/ GET A documentação. Pede usuário e senha.

O prefixo é indiferente: a rota é reconhecida pelo final do caminho, então /api/chat/completions responde igual a /v1/chat/completions. Prefira /v1 — é a convenção que os clientes OpenAI-compatible esperam, e é o que a documentação usa.

Endereços

EndereçoO quê
symgate.aideliveryengine.com Atual. Certificado do hostname, sem aviso no navegador.
163.176.0.170 Legado. Mesmo serviço, ainda no ar — quem já configurou não precisa mexer.
Abrir a documentação → Referência da API, configuração de cada cliente, guardrails, auditoria e status do projeto. Pede senha — peça a sua a quem administra o proxy.