Entwickler, die die Continue-Erweiterung in VS Code oder JetBrains nutzen, stehen häufig vor einem architektonischen Dilemma: Die tastendruckbasierte Tab-Autovervollständigung erfordert extrem niedrige Antwortzeiten (eine Time-To-First-Token bzw. TTFT von unter 300 Millisekunden), während tiefgreifende Refaktorierungen und Unterhaltungen im Seitenleisten-Chat hochleistungsfähige Frontier-Modelle mit weit gefächerten Kontextfenstern verlangen. Zwingt man ein schwergewichtiges Modell wie Claude 3.5 Sonnet oder GPT-4o in die Autovervollständigung, führt dies zu spürbaren Eingabeverzögerungen und explodierenden API-Rechnungen. Verwendet man hingegen ein schlankes Vervollständigungsmodell für den Chat, reicht dessen Urteilsvermögen für komplexe architektonische Aufgaben nicht aus.
Die Lösung liegt im rollenbasierten Modell-Routing. Continue entkoppelt die synchrone Inline-Codevervollständigung architektonisch von der analytischen Chat-Interaktion. Diese Anleitung zeigt, wie Entwickler Continue so konfigurieren, dass Tab-Autovervollständigung und Chat-Anfragen an getrennte, spezialisierte Modelle weitergeleitet werden – sowohl im modernen config.yaml-Standard als auch in älteren config.json-Installationen –, und wie lokale sowie cloudbasierte Endpunkte für minimale Latenz optimiert werden.
Architektonische Trennung: Autovervollständigung versus Chat
Tab-Vervollständigung und Chat-Interaktionen unterliegen grundlegend verschiedenen Leistungsanforderungen und Modellstrukturen:
| Dimension | Tab-Autovervollständigung | Seitenleisten-Chat und Bearbeitung |
|---|---|---|
| Primäre Kennzahl | Latenz bis zum ersten Token (TTFT < 300 ms); Schreibfluss | Logische Schlusstiefe; Erfassung umfangreicher Code-Kontexte |
| Aufrufhäufigkeit | Extrem hoch; bei jeder Tipp-Pause ausgelöst; hunderte Male pro Stunde | Mäßig; gezieltes Absenden durch den Entwickler; dutzende Male pro Tag |
| Modellarchitektur | Auf Fill-In-The-Middle (FIM) spezialisierte Kompaktmodelle (1B–7B) | Dichte oder MoE-Frontier-Modelle (14B–70B+ / Cloud-APIs) |
| Empfohlenes Hosting | Lokale Engine (Ollama, vLLM, llama.cpp) oder latenzoptimierte Cloud-Endpunkte | Frontier-Cloud-APIs (Anthropic, OpenAI, Mistral) oder rechenstarke lokale Server |
| Kontextstruktur | Zeilenpräfix und -suffix um den Cursor mit AST-/LSP-Symboldefinitionen | Vollständiger Chatverlauf; referenzierte Projektdateien; Agenten-Systemprompts |
Durch das Routing auf getrennte Modelle profitieren Entwickler von lokaler, privater und kostenloser Eingabeassistenz im Millisekundenbereich, ohne auf die Schärfe führender Cloud-Modelle im Seitenbereich verzichten zu müssen.
Methode 1: Der moderne Standard (config.yaml)
In aktuellen Versionen von Continue erfolgt die Konfiguration über die Datei ~/.continue/config.yaml. Die Aufgabenverteilung wird über das Feld roles innerhalb der einzelnen Modellblöcke gesteuert.
Schritte zur Modelltrennung:
- Definieren Sie ein kompaktes, FIM-fähiges Modell mit
roles: [autocomplete]. - Definieren Sie ein oder mehrere fortschrittliche Modelle mit
roles: [chat, edit].
Beispiel für eine produktive Konfiguration
name: Continue Hybrid Routing
version: 0.0.1
schema: v1
models:
# 1. Spezialisiertes Tab-Vervollständigungsmodell (Lokal über Ollama)
- name: Qwen2.5 Coder 1.5B (Autocomplete)
provider: ollama
model: qwen2.5-coder:1.5b
roles:
- autocomplete
autocompleteOptions:
debounceDelay: 250
maxPromptTokens: 1024
# 2. Leistungsstarkes Modell für Chat und Refaktorisierung (Anthropic API)
- name: Claude 3.5 Sonnet (Chat & Edit)
provider: anthropic
model: claude-3-5-sonnet-latest
apiKey: YOUR_ANTHROPIC_API_KEY
roles:
- chat
- edit
# 3. Alternatives Cloud-Chatmodell (OpenAI)
- name: GPT-4o (Chat)
provider: openai
model: gpt-4o
apiKey: YOUR_OPENAI_API_KEY
roles:
- chat
Wichtige Parameter im Überblick
roles: Legt fest, für welche Aufgabe Continue das Modell heranzieht. Ein Modell mit der Rolleautocompletebedient ausschließlich die grauen Inline-Vorschläge (Ghost Text) und wird aus dem Chat-Dropdown ausgeblendet. Modelle mitchaterscheinen im Auswahlmenü des Konversationsfensters.autocompleteOptions.debounceDelay: Wartezeit in Millisekunden nach dem letzten Tastendruck, bevor eine Inferenzanfrage ausgelöst wird (empfohlen: 200 ms bis 350 ms). Dies verhindert, dass schnelles Tippen die lokale GPU mit überflüssigen Berechnungen überlastet.autocompleteOptions.maxPromptTokens: Obergrenze der Kontext-Tokens aus dem umgebenden Code. Ein Wert zwischen 1024 und 2048 garantiert maximale Generierungsgeschwindigkeit auf moderater Hardware.- Gedankengänge deaktivieren (Thinking Mode): Falls Modelle mit Denkprozessen (wie qwen3 oder Reasoning-Modelle) eingesetzt werden, muss
extraBodyProperties: { think: false }definiert werden. Andernfalls zerstören interne Denk-Tokens das Code-Layout und erzeugen extreme Latenz.
Methode 2: Ältere Konfigurationen (config.json)
Wird in bestehenden Entwicklungsumgebungen noch das Format ~/.continue/config.json verwendet, erfolgt die Trennung über den separaten Root-Eintrag tabAutocompleteModel, getrennt vom Array models.
[!NOTE] Die Datei
config.jsonund die EigenschafttabAutocompleteModelgelten als veraltet (Deprecated). Obwohl Continue Abwärtskompatibilität gewährleistet, wird der Umstieg aufconfig.yamlempfohlen.
Beispiel für die Legacy-Konfiguration
{
"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
}
}
In diesem Format gilt:
- Einträge unter
"models"erscheinen im Chat-Auswahlmenü. - Das Objekt
"tabAutocompleteModel"steuert exklusiv die Inline-Vervollständigung. - Feineinstellungen werden über
"tabAutocompleteOptions"vorgenommen.
Empfohlene Modellkombinationen nach Szenario
Szenario A: Hybrid aus Lokal und Cloud (Empfohlener Standard)
- Autovervollständigung:
qwen2.5-coder:1.5boderqwen2.5-coder:7büber lokales Ollama. Bietet Latenzen unter 150 ms ohne laufende API-Kosten. - Chat: Anthropics
claude-3-5-sonnetoder OpenAIsgpt-4ofür anspruchsvolle Refaktorierungen in der Seitenleiste.
Szenario B: Vollständig isolierte Offline-Umgebung (Maximaler Datenschutz)
- Autovervollständigung:
qwen2.5-coder:1.5b(Q4- oder Q8-Quantisierung) via Ollama oder vLLM. - Chat:
qwen2.5-coder:32boderdeepseek-coder-v2:16bauf lokaler Hardware. Erfordert Systeme mit 16 GB bis 32 GB einheitlichem oder dediziertem Grafikspeicher (VRAM).
Szenario C: Spezialisierte Hochpräzisions-Cloud-Vervollständigung
- Autovervollständigung:
codestral-latestüber die Mistral-API. Maßgeschneidert für über 80 Programmiersprachen mit nativer FIM-Unterstützung. - Chat: OpenAI
gpt-4ooder Claude 3.5 Sonnet.
Endpunkt-Optimierung und Fehlerbehebung
1. Parallele Anfragen und Speicherpersistenz in Ollama
Werden Vervollständigung und Chat lokal betrieben, kann die Standardkonfiguration von Ollama Anfragen sequentiell blockieren:
- Setzen Sie die Umgebungsvariable
OLLAMA_NUM_PARALLEL=2(oder höher), um gleichzeitige Anfragen für Vervollständigung und Chat zu erlauben. - Setzen Sie
OLLAMA_KEEP_ALIVE=24h. Dadurch verbleibt das Vervollständigungsmodell dauerhaft im GPU-Speicher und wird nicht nach 5 Minuten Inaktivität entladen, was Kaltstartverzögerungen von 5 bis 10 Sekunden verhindert.
2. Debounce-Verzögerung und Kontextgröße kalibrieren
- Schnelle Schreiber (über 80 Wörter pro Minute): Setzen Sie
debounceDelayauf 300 ms bis 350 ms, um verworfene Zwischeninferenzen zu minimieren. - Bedachtes Programmieren: Verwenden Sie 200 ms bis 250 ms.
- Halten Sie
maxPromptTokenszwischen 1024 und 2048. Ein zu langer vorangestellter Codekontext verlängert die Antwortzeit unnötig.
3. Konflikte mit anderen IDE-Erweiterungen vermeiden
Falls keine Inline-Vorschläge erscheinen:
- Prüfen Sie in den Continue-Einstellungen, ob Enable Tab Autocomplete aktiviert ist.
- Deaktivieren Sie konkurrierende Erweiterungen für Code-Vervollständigung (wie GitHub Copilot oder Supermaven). Zwei gleichzeitig aktive Vervollständigungs-Engines im selben Editor-Buffer unterdrücken sich häufig gegenseitig.
Konfiguration überprüfen
Nach dem Speichern der Konfigurationsdatei lässt sich die Modelltrennung schnell validieren:
- Öffnen Sie das Continue-Bedienfeld (
Ctrl+L/Cmd+L) und prüfen Sie, ob im unteren Modellauswahlmenü ausschließlich die Chat-Modelle (wie Claude 3.5 Sonnet) aufgeführt sind. - Tippen Sie in einer Quellcodedatei einen Funktionskopf ein und pausieren Sie 300 Millisekunden. Ein grauer Ghost-Text-Vorschlag sollte verzögerungsfrei erscheinen und bestätigen, dass das separate lokale Modell aktiv antwortet.
Referenzen
- 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