Desenvolvedores que utilizam a extensão Continue no VS Code ou no JetBrains frequentemente enfrentam um dilema arquitetural: o autocompletar de código em tempo real via tecla Tab exige latência ultrabaixa (tempo até o primeiro token ou TTFT inferior a 300 milissegundos), enquanto tarefas de chat lateral e refatoração profunda exigem modelos de fronteira com raciocínio analítico e amplas janelas de contexto. Forçar um modelo pesado como Claude 3.5 Sonnet ou GPT-4o para autocompletar gera travamentos na digitação e eleva os custos de API. Por outro lado, limitar o chat a modelos compactos compromete a capacidade de diagnosticar problemas complexos de arquitetura.
A solução consiste no roteamento de modelos baseado em papéis (roles). O Continue desacopla de forma nativa a geração de código em linha do raciocínio conversacional. Este guia detalha como configurar o Continue para despachar requisições de autocomplete e chat para modelos distintos tanto no padrão moderno config.yaml quanto no legado config.json, além de orientar a otimização de endpoints locais e em nuvem para eliminar gargalos de latência.
Separação Arquitetural: Autocomplete versus Chat
O autocompletar via Tab e as interações de chat possuem requisitos de desempenho e estruturas de modelo contrastantes:
| Critério | Autocomplete via Tab | Chat Lateral e Edição de Código |
|---|---|---|
| Métrica Primária | Tempo até o primeiro token (TTFT < 300 ms); fluidez ao digitar | Profundidade lógica; compreensão de contexto amplo |
| Frequência de Uso | Altíssima; disparado a cada pausa na digitação; centenas de vezes por hora | Baixa a moderada; disparos deliberados com prompts estruturados; dezenas por dia |
| Arquitetura do Modelo | Modelos compactos especializados em Fill-In-The-Middle (FIM, 1B–7B) | Modelos densos ou MoE de fronteira (14B–70B+ / APIs comerciais) |
| Hospedagem Recomendada | Motor local (Ollama, vLLM, llama.cpp) ou endpoints de nuvem ultrarrápidos | APIs em nuvem (Anthropic, OpenAI, Mistral) ou servidores locais robustos |
| Formato de Contexto | Prefixos e sufixos ao redor do cursor combinados a definições de AST/LSP | Histórico completo de diálogo; múltiplos arquivos anexados; prompts de sistema |
Ao dividir as tarefas, desenvolvedores obtêm sugestões em milissegundos sem custo de API e com total privacidade local, preservando o poder dos maiores modelos para as discussões técnicas no painel lateral.
Método 1: Padrão Moderno (config.yaml)
Nas versões recentes do Continue, os parâmetros são centralizados no arquivo ~/.continue/config.yaml. O direcionamento das tarefas é governado pela lista roles atribuída a cada modelo configurado.
Etapas para o isolamento de modelos:
- Definir um modelo leve com suporte a FIM e atribuir
roles: [autocomplete]. - Definir um ou mais modelos avançados de diálogo e atribuir
roles: [chat, edit].
Exemplo de Configuração em Produção
name: Continue Hybrid Routing
version: 0.0.1
schema: v1
models:
# 1. Modelo Especializado em Autocomplete via Tab (Local via Ollama)
- name: Qwen2.5 Coder 1.5B (Autocomplete)
provider: ollama
model: qwen2.5-coder:1.5b
roles:
- autocomplete
autocompleteOptions:
debounceDelay: 250
maxPromptTokens: 1024
# 2. Modelo de Raciocínio Avançado para Chat e Edição (Nuvem via Anthropic)
- name: Claude 3.5 Sonnet (Chat & Edit)
provider: anthropic
model: claude-3-5-sonnet-latest
apiKey: YOUR_ANTHROPIC_API_KEY
roles:
- chat
- edit
# 3. Modelo Alternativo em Nuvem para Chat (OpenAI)
- name: GPT-4o (Chat)
provider: openai
model: gpt-4o
apiKey: YOUR_OPENAI_API_KEY
roles:
- chat
Principais Parâmetros
roles: Delimita onde o modelo atua. Modelos comautocompletesão invocados para renderizar o texto fantasma inline no editor e não aparecem na lista de seleção do chat. Modelos contendochatalimentam o seletor da barra lateral.autocompleteOptions.debounceDelay: Intervalo em milissegundos após cessar a digitação antes de enviar a requisição (recomendado entre 200 ms e 350 ms). Impede o envio de inferências intermediárias descartadas durante a digitação contínua.autocompleteOptions.maxPromptTokens: Limite de tokens do código circundante repassado ao modelo. Manter entre 1024 e 2048 assegura a máxima taxa de geração em hardware moderado.- Desativação do Modo de Raciocínio (Thinking Mode): Caso utilize modelos que realizem cadeia de pensamentos prévia (como variações do qwen3), declare
extraBodyProperties: { think: false }no modelo de autocomplete para evitar que raciocínios intermediários corrompam o código e aumentem a latência.
Método 2: Configuração Legada (config.json)
Em ambientes corporativos com versões anteriores do Continue, a configuração reside em ~/.continue/config.json. A distinção é feita por meio do nó raiz tabAutocompleteModel.
[!NOTE] O arquivo
config.jsone a propriedade raiztabAutocompleteModelestão obsoletos (Deprecated). Embora o Continue assegure retrocompatibilidade, recomenda-se planejar a migração paraconfig.yaml.
Exemplo de Configuração Legada
{
"models": [
{
"title": "Claude 3.5 Sonnet",
"provider": "anthropic",
"model": "claude-3-5-sonnet-latest",
"apiKey": "YOUR_ANTHROPIC_API_KEY"
},
{
"title": "GPT-4o",
"provider": "openai",
"model": "gpt-4o",
"apiKey": "YOUR_OPENAI_API_KEY"
}
],
"tabAutocompleteModel": {
"title": "Qwen2.5-Coder 1.5B",
"provider": "ollama",
"model": "qwen2.5-coder:1.5b"
},
"tabAutocompleteOptions": {
"debounceDelay": 250,
"maxPromptTokens": 1024
}
}
Nesse modelo:
- Os itens dentro da lista
"models"populam o menu suspenso do chat. - O objeto
"tabAutocompleteModel"atua de forma autônoma para sugestões inline. - Opções de latência são inseridas em
"tabAutocompleteOptions".
Combinações Recomendadas por Cenário
Cenário A: Híbrido Local e Nuvem (Recomendação Padrão)
- Autocomplete:
qwen2.5-coder:1.5bouqwen2.5-coder:7bexecutando no Ollama local. Garante latência inferior a 150 ms com custo zero de API. - Chat:
claude-3-5-sonnetda Anthropic ougpt-4oda OpenAI para soluções de refatoração complexa no painel lateral.
Cenário B: Ambiente Fechado / Privacidade Rigorosa
- Autocomplete:
qwen2.5-coder:1.5b(quantizado em Q4 ou Q8) hospedado via Ollama ou vLLM. - Chat:
qwen2.5-coder:32boudeepseek-coder-v2:16bem infraestrutura local dedicada. Requer máquinas com 16 GB a 32 GB de memória VRAM dedicada ou compartilhada.
Cenário C: Autocomplete Dedicado em Nuvem de Alta Precisão
- Autocomplete:
codestral-latestvia API da Mistral. Projetado especificamente para mais de 80 linguagens com suporte nativo a FIM. - Chat: OpenAI
gpt-4oou Claude 3.5 Sonnet.
Otimização de Endpoints e Diagnóstico de Desempenho
1. Concorrência e Persistência de Memória no Ollama
Ao rodar modelos locais tanto para sugestões quanto para diálogos, o Ollama pode enfileirar requisições de forma sequencial:
- Configure a variável de ambiente
OLLAMA_NUM_PARALLEL=2(ou superior) no sistema operacional para processar requisições concorrentes de autocomplete e chat. - Estabeleça
OLLAMA_KEEP_ALIVE=24hpara evitar que o modelo de autocomplete seja descarregado da VRAM após 5 minutos de inatividade, erradicando congelamentos de 5 a 10 segundos no início da digitação.
2. Calibragem de Debounce e Janela de Contexto
- Programadores de digitação veloz (mais de 80 palavras por minuto): configure
debounceDelay: 300a 350 ms para mitigar inferências descartadas. - Digitação pausada: configure entre 200 ms e 250 ms.
- Mantenha
maxPromptTokensentre 1024 e 2048. Enviar contextos gigantescos penaliza o tempo de inicialização sem agregar precisão prática ao autocompletar em linha.
3. Evitando Conflitos entre Extensões na IDE
Se as sugestões em texto fantasma deixarem de aparecer:
- Certifique-se de que a opção Enable Tab Autocomplete esteja ativada nas configurações do Continue.
- Desative temporariamente extensões concorrentes de autocompletar em linha (como GitHub Copilot ou Supermaven). A sobreposição de múltiplos motores de sugestão no mesmo buffer costuma provocar anulação mútua.
Verificação da Configuração
Após salvar as alterações no arquivo de configuração:
- Abra a barra lateral do Continue (
Ctrl+L/Cmd+L) e assegure-se de que o menu suspenso inferior exiba exclusivamente os modelos destinados a Chat. - Em qualquer arquivo de código, inicie a declaração de uma função e pause por 300 milissegundos. Uma sugestão em cinza claro deverá ser exibida de forma instantânea, confirmando o roteamento autônomo do modelo de autocomplete.
Referências
- Autocomplete Role in Continue Models | Continue Docs
- Chat Role | Continue Docs
- Continue Autocomplete Setup and Configuration Guide | Continue Docs
- How to Understand Configuration | Continue Docs
- Migrating Config to YAML | Continue Docs
- config.json Reference (Deprecated) | Continue Docs
- Using Ollama with Continue: A Developer's Guide | Continue Docs