# Plan: OpenAI als nativer Provider ## Übersicht OpenAI (GPT-4o, GPT-5, o3, etc.) als vollwertigen Provider integrieren – gleichwertig mit Anthropic. Der Key kommt aus der `api_keys`-Tabelle (Provider: `openai`), nicht aus `appsettings.json`. ## Ist-Zustand ### Architektur - **AnthropicService** – Haupt-Provider, voller Feature-Support (Tools, Review, Preparer, Finalizer, Web-Search, Memory, ask_user_choice, Plan-Mode) - **OpenAiService** – "Neben-Provider" für Nvidia, Pollinations, Gemini. Limitiert: - Nur 6 Tools (list_files, read_file, write_file, edit_file, delete_file, execute) - Kein Review/Preparer/Finalizer - Kein Memory, Web-Search, ask_user_choice - API-Key hardcoded im `Providers`-Dictionary (nicht aus DB) - `maxIterations` fest auf 10 ### API-Key-System - User wählt einen Key aus der `api_keys`-Tabelle (`selected_api_key_id`) - Aktuell nur für Anthropic genutzt (`userApiKey.ApiKey` → `anthropic.StreamChat()`) - OpenAi-Provider nutzen eigene Keys aus `Providers`-Dict (Gemini aus `appsettings.json`, Nvidia/Pollinations keyless) ### Modell-Auswahl - Agent hat `Model`-Feld, z.B. `sonnet-4-6` oder `nvidia:model-id` - `ChatService.ResolveModelId()` mapped Anthropic-Kurzformen, OpenAI-Provider werden durchgereicht - Frontend: `