Auto-Capture-KI-Provider
Auto-Capture führt eine Hintergrund-KI-Anfrage aus, um technische Arbeit zusammenzufassen und als Memory zu speichern. Es braucht eine der Provider-Konfigurationen unten.
Empfohlen: Einen Provider nutzen, der in opencode bereits authentifiziert ist und strukturierte Ausgabe unterstützt:
"opencodeProvider": "anthropic","opencodeModel": "claude-haiku-4-5-20251001",Das Plugin stellt strukturierte Output-Requests an die Session-API von opencode, statt Provider-Endpoints direkt aufzurufen, sodass opencode Auth, Token-Refresh und Provider-Routing besitzt. Der Provider-Name muss einem Eintrag aus opencode providers list entsprechen, und das gewählte Modell muss strukturierte JSON-Ausgabe über opencode unterstützen.
Optional eine Reasoning-Variante des Modells mit "opencodeVariant": "xhigh" pinnen (z. B. für grok-4.7). Sie gilt für die internen LLM-Aufrufe des Plugins (Auto-Capture-Zusammenfassungen, Profil-Lernen, Profil-Cleanup), auch wenn opencodeModel "inherit" ist, sodass Hintergrundarbeit ein anderes Reasoning-Level als die interaktive Sitzung nutzen kann.
Langsame Reasoning-Modelle (oder sehr große Profil-Prompts) können das Standard-Budget von 90 s für strukturierte Ausgabe überschreiten. "opencodeTimeoutMs" (Millisekunden) setzen, um es für interne Structured-Output-Aufrufe (Auto-Capture-Zusammenfassungen, Profil-Lernen) zu verlängern — z. B. "opencodeTimeoutMs": 180000 für 3 Minuten. Werte werden auf 10000..600000 geklemmt; der Standard bleibt 90000. Numerische Strings werden coerced. Profil-Cleanup nutzt ein separates, längeres Timeout.
Unterstützte Provider: jeder von opencode providers list gelistete Provider (z. B. anthropic, openai, github-copilot, …).
Wenn opencodeProvider und opencodeModel gesetzt sind, haben sie Vorrang vor den manuellen memoryProvider-Einstellungen unten.
Sitzungsmodell folgen: "opencodeModel": "inherit" setzen, um zur Aufrufzeit ein konkretes OpenCode-Modell statt einer gepinnten ID zu nutzen. Für Auto-Capture wird jeder Prompt über den chat.params-Hook aufgezeichnet und der Capture-Request wiederverwendet Provider/Modell dieses Prompts. Für Profil-Lernen und andere Structured-Output-Pfade (die nicht an eine einzelne User-Nachricht gebunden sind) nutzt inherit zuerst das zuletzt vom Host über chat.params / den V2-Context-Hook gemeldete Modell und fällt danach auf die Recent-Liste in OpenCodes model.json zurück, falls vorhanden (bevorzugt den konfigurierten opencodeProvider). OpenCode v2 schreibt model.json nicht mehr; dort ist das In-Process-Sitzungsmodell der primäre Fallback. Das wörtliche Modell-ID inherit zu senden ist nie gültig und verursachte zuvor ProviderModelNotFoundError: Model not found: <provider>/inherit auf diesen Pfaden. opencodeProvider bleibt als normale Config-Gate erforderlich.
Fallback: Manuelle API-Konfiguration (wenn opencodeProvider nicht genutzt wird):
"memoryProvider": "openai-chat","memoryModel": "gpt-4o-mini","memoryApiUrl": "https://api.openai.com/v1","memoryApiKey": "sk-...",API-Key-Formate:
"memoryApiKey": "sk-...""memoryApiKey": "file://~/.config/opencode/api-key.txt""memoryApiKey": "env://OPENAI_API_KEY"Manuelle memoryProvider-Modi:
openai-chat: OpenAI-Chat-Completions-kompatible API mit Tool-/Function-Calling. Kann mit kompatiblen Proxies wie LiteLLM nur funktionieren, wenn das gewählte Upstream-Modell und der Proxy Tool-Calls erhalten.openai-responses: OpenAI Responses API mit Function-Call-Ausgabe.anthropic: Anthropic Messages API mit Tool Use.minimax: MiniMax Anthropic-Messages-kompatibler Endpoint.memoryApiUrlauf den globalen Endpoint (https://api.minimax.io) oder den China-Endpoint (https://api.minimax.cn) setzen; der Pfad/anthropic/v1/messagesund der Headerx-api-keywerden automatisch angewendet.MiniMax-M3.1-Flash(empfohlen) oderMiniMax-M3verwenden, beide mit 1.000.000-Token-Kontext. Flash denkt immer; optionalmemoryExtraParamsauf{ "output_config": { "effort": "max" } }setzen mitlow,medium,high,xhighodermax(Standard). Flash lehnt deaktiviertes Thinking und Effortnoneab und unterstützt keinservice_tier. M3-Thinking ist auf diesem Endpoint standardmäßig aus; aktivieren mit{ "thinking": { "type": "adaptive" } }. Modell-IDs bleiben explizit konfiguriert; vorhandene Custom- oder Legacy-IDs werden unverändert durchgereicht. Siehe die MiniMax-Kompatibilitätsreferenz.orcarouter: OpenAI-kompatibles Model-Gateway mit namenspaced Model-IDs.memoryApiUrlundmemoryModelsind optional — sie defaulten aufhttps://api.orcarouter.ai/v1undorcarouter/auto(ein Routing-Alias, der pro Request ein fähiges Modell wählt). Wenn dumemoryModelsetzt, eine namenspaced ID wieopenai/gpt-5.5oderdeepseek/deepseek-v4-flashverwenden; OrcaRouter lehnt bare Modellnamen ab. Beispiel:OrcaRouter betreibt auf demselben Endpoint auch Gateway-Level-Zero-Trust-Security für KI-Agenten — prüft jeden Prompt/jede Response und steuert jeden Tool-Call auf Default-Deny-Basis, ohne Änderungen am Anwendungscode."memoryProvider": "orcarouter","memoryApiKey": "<OrcaRouter API key>",atlas-cloud: OpenAI-kompatibles Chat-Completions-Preset für Atlas Cloud.memoryApiUrlundmemoryModelsind optional — sie defaulten aufhttps://api.atlascloud.ai/v1unddeepseek-ai/deepseek-v4-pro. FehltmemoryApiKey, wirdATLASCLOUD_API_KEYaus der Umgebung verwendet. Beispiel:Wenn dieser Provider gewählt ist, werden Auto-Capture- / Profil-Prompts, Modellantworten und relevanter Gesprächskontext an"memoryProvider": "atlas-cloud","memoryApiKey": "env://ATLASCLOUD_API_KEY",https://api.atlascloud.aiübertragen.cheaper-inference: OpenAI-kompatibles Chat-Completions-Preset für Cheaper Inference.memoryApiUrlundmemoryModelsind optional — sie defaulten aufhttps://api.cheaperinference.com/v1undgpt-5.4-mini. FehltmemoryApiKey, wirdCHEAPER_INFERENCE_API_KEYaus der Umgebung verwendet. Beispiel:Wenn dieser Provider gewählt ist, werden Auto-Capture- / Profil-Prompts, Modellantworten und relevanter Gesprächskontext an"memoryProvider": "cheaper-inference","memoryApiKey": "env://CHEAPER_INFERENCE_API_KEY",https://api.cheaperinference.comübertragen.api-route: OpenAI-kompatibles Chat-Completions-Preset für API Route.memoryApiUrlundmemoryModelsind optional — sie defaulten aufhttps://global.api-route.com/v1undgpt-6.1-sol. FehltmemoryApiKey, wirdAPI_ROUTE_API_KEYaus der Umgebung verwendet. Beispiel:Wenn dieser Provider gewählt ist, werden Auto-Capture- / Profil-Prompts, Modellantworten und relevanter Gesprächskontext an"memoryProvider": "api-route","memoryApiKey": "env://API_ROUTE_API_KEY",https://global.api-route.comübertragen.runcrate: OpenAI-kompatibles Chat-Completions-Preset für Runcrate.memoryApiUrlundmemoryModelsind optional — sie defaulten aufhttps://api.runcrate.ai/v1unddeepseek-ai/DeepSeek-V4.1-Flash. FehltmemoryApiKey, wirdRUNCRATE_API_KEYaus der Umgebung verwendet. Beispiel:Wenn dieser Provider gewählt ist, werden Auto-Capture- / Profil-Prompts, Modellantworten und relevanter Gesprächskontext an"memoryProvider": "runcrate","memoryApiKey": "env://RUNCRATE_API_KEY",https://api.runcrate.aiübertragen.cloudgpu: OpenAI-kompatibles Chat-Completions-Preset für CloudGPU.memoryApiUrlundmemoryModelsind optional — sie defaulten aufhttps://cloudgpu.app/v1unddeepseek-v4.1-flash. FehltmemoryApiKey, wirdCLOUDGPU_API_KEYaus der Umgebung verwendet (Key erstellen unter https://cloudgpu.app/api/console; API-Doku: https://cloudgpu.app/api/docs). Beispiel:Wenn dieser Provider gewählt ist, werden Auto-Capture- / Profil-Prompts, Modellantworten und relevanter Gesprächskontext an"memoryProvider": "cloudgpu","memoryApiKey": "env://CLOUDGPU_API_KEY",https://cloudgpu.appübertragen.
Fehlerbehebung:
- Auto-Capture-Fehler blockieren die manuelle Nutzung des
memory-Tools nicht. - Meldet Auto-Capture, dass ein Provider nicht verbunden ist, den Provider-Namen mit
opencode providers listbestätigen und diesen Provider zuerst in opencode konfigurieren. - Gibt ein Proxy oder Custom-Provider Klartext statt strukturierter/Tool-Ausgabe zurück, ein anderes Modell/einen anderen Provider wählen oder einen der manuellen Provider-Modi oben nutzen.
- Für Modelle, die
temperatureablehnen, bei manueller API-Konfiguration"memoryTemperature": falsehinzufügen. - Für Modelle, die erzwungene Tool-Calls ablehnen (
tool_choice: "required", z. B. manche Thinking-Modi), beiopenai-chat/orcarouter/atlas-cloud/cheaper-inference/api-route/runcrate/cloudgpu"forceToolChoice": falsehinzufügen. - Bei
opencodeProvider/opencodeModel(z. B. DeepSeek V4 Thinking) sendet OpenCode weiterhin erzwungenestool_choicefür strukturierte Ausgabe. opencode-mem deaktiviert Thinking auf dem internen Agentenopencode-mem-structured(und wendet das inchat.paramsnach Variant-Merge erneut an), damit Auto-Capture und Profil-Lernen abschließen können. Dein interaktiver Chat-Agent bleibt unverändert. Scheitert Capture weiterhin mit einem Thinking-/tool_choice-Fehler, füropencodeModelein Non-Thinking-Modell wählen oder einen vollständigen manuellen Fallback konfigurieren (memoryModel+memoryApiUrl). opencode-claude-auth/ Claude Code: Auto-Capture nutzt OpenCode mit deinem authentifiziertenanthropic-Provider. Erzwungenesformat: json_schemaloopt oft mit Claude-Auth, daher nutzt opencode-mem einen Auth-erhaltenden Text-JSON-Pfad füropencodeProvider: "anthropic"(keine erzwungenenStructuredOutput-Tools; Antwort wird mit Zod geparst). Ein Step-Watchdog bricht runaway interne Sitzungen nach 2 Schritten weiterhin ab. Scheitert Capture weiterhin, einen vollständigen manuellen Anthropic-API-Key-Fallback konfigurieren (memoryProvider: "anthropic"+memoryModel+memoryApiUrl+memoryApiKey) — Claude Pro/Max OAuth lässt sich außerhalb von OpenCode nicht wiederverwenden.- Nicht unterstützte Plattformen: Intel Mac (
darwin/x64) wird nicht unterstützt —@tursodatabase/databaseund festeonnxruntime-node-Releases (gepinnt1.31.1) liefern kein natives x64-Binding. Apple Silicon, Linux oder Windows nutzen, oder einen Remote-Embedding-Endpoint überembeddingApiUrl+embeddingApiKey. MLX wird nicht unterstützt.