Ich bin in der Situation, Gemini-Token sehr günstig nutzen zu können, und verwende deshalb wie im Titel einen Proxy-Backend, das Gemini mit Claude Code verbindet. Die Gemini-CLI ist mir zu aggressiv (selbst wenn man ihr sagt, sie solle nur Code lesen, versucht sie ständig, irgendetwas zu ändern), deshalb passt sie für mich nicht besonders gut. Das Agent-Design von Claude Code scheint am besten zu funktionieren, daher nutze ich es auch nach dem Austausch des Backends weiterhin sehr zufrieden.
Diese Proxy-Schicht legt im Grunde noch eine zusätzliche Abstraktionsschicht darüber, sodass sich OpenAI, XAI, Claude und Gemini alle auf dieselbe Weise mit Claude Code verbinden und verwenden lassen.
Dabei musste ich einige mühsame Probleme lösen, etwa Streaming- und JSON-Parsing-Probleme oder die Bereinigung von Schemas für Tool Use. Falls jemand etwas Ähnliches ausprobieren möchte, sagt gern in den Kommentaren Bescheid — dann würde ich es als Open Source veröffentlichen.
Falls jemand schon an etwas Ähnlichem gearbeitet hat, teilt gern eure Erfahrungen~
8 Kommentare
Ich verfolge dabei einen etwas anderen Ansatz: Statt Agenten-Tools wie Claude Code oder Cowork entwickle ich in reinem LLM-Webchat per natürlicher Sprache. Ich habe auf meinem eigenen Server einen Proxy eingerichtet, der die Claude- und Gemini-APIs miteinander verbindet. Im produktiven Einsatz laufen dann die eigentlichen Services (KakaoTalk-Chatbot, ERP-Agent für natürliche Sprache) auf Gemini, während ich Code-Reviews und Architekturdesign im Gespräch mit Claude mache und der Mensch nur noch die finale Freigabe und das Deployment übernimmt.
Gemini übernimmt die Coding-Ausführung, Claude die Code-Prüfung, der Mensch die finale Freigabe — diese Rollentrennung funktioniert ziemlich gut.
Im Vergleich zu editorbasierten Agenten (Claude Code usw.) ist auch der Token-Verbrauch deutlich geringer, was ein Vorteil ist. Ohne Datei-I/O wird Code per Gespräch ausgetauscht und vom Menschen direkt übernommen. Womit ich übereinstimme, ist der Punkt, dass „Claudes Agenten-Design am besten funktioniert“. Die Gemini CLI hat definitiv einen starken eigenen Willen (haha), deshalb ist Claude für die Prüferrolle besser geeignet.
Danke, dass Sie Ihre Erfahrungen geteilt haben. 👍 Ich kann auch den Punkt zu den unterschiedlichen Tendenzen von Gemini und Claude nachvollziehen.
Sie nutzen also mehrere Anbieter gleichzeitig über eine einzige Weboberfläche. Wenn man agentenbasiertes autonomes Coding betreibt, neigt man eher dazu, oberflächlich im Stil einer „lebenslaufgetriebenen Entwicklung“ zu schreiben, statt für ein gutes Design gründlich nachzudenken. Deshalb denke ich auch, dass es besser ist, das Design in Form eines Dialogs zu erarbeiten. ☺️
Ich habe lokal so etwas wie anthropic-proxy laufen lassen und mit einem Befehl wie
ANTHROPIC_BASE_URL=http://0.0.0.0:3000 claudeper Proxy andere Gemini- oder GPT-Modelle genutzt, aber da Sie sagen, dass Sie es serverlos umgesetzt haben, bin ich neugierig.Oh, es gibt also auch Open Source, das in JS geschrieben ist. Vielen Dank 👍👍
Die interne Struktur ist ähnlich, aber ich nutze es mit etwas mehr Abstraktion. (Geschmackssache)
Auch wenn man es serverlos umsetzt, ist die Antwortzeit des LLM deutlich langsamer, sodass ein Cold Start kaum spürbar ist und es sich angenehm nutzen lässt. Mit der Function-URL-Funktion von Lambda ist auch Streaming möglich, sodass sich das vollständig abdecken lässt. Besonders gut ist, dass man selbst nach einem Neustart keinen Server einschalten muss.
Wenn Sie in diesem Code nur den FastAPI-Teil in das Format eines Lambda-Handlers umschreiben und auf Lambda deployen, dürfte es (nach etwas Troubleshooting) durchaus gut nutzbar sein.
https://github.com/1rgs/claude-code-proxy
Gibt es Unterschiede zu einem solchen Proxy?
Vielen Dank, dass Sie mir auf diese gute Bibliothek hingewiesen haben. Hätte ich davon gewusst, hätte ich es wohl etwas komfortabler umsetzen können 👍👍
Intern scheint sich die Verarbeitung der Ein-/Ausgabeformat-Konvertierung selbst nicht besonders zu unterscheiden,
aber wenn ich einen Unterschied nennen sollte: Die von Ihnen vorgestellte Bibliothek basiert auf Self-Serving / Docker / Python / LiteLLM, während ich es serverlos / mit AWS Lambda / in TS / ohne Abhängigkeiten implementiert habe.
Wenn man Gemini mit Claude Code verbindet, kann es zwar zu einer Sperre kommen.
Sie sollten sich aber wohl vor einer groß angelegten Sperrwelle bei opencode in Acht nehmen.
Vielen Dank für den schnellen Kommentar. 🙌
Der Stopp bei Open Code (Claude-Abonnement => Open-Code-Integration) war ein Problem, weil ein per OAuth authentifizierter Flatrate-Tarif-Schlüssel in Software von Drittanbietern verwendet wurde. Wenn man es wie oben beschrieben nutzt, verstößt es nicht gegen die Nutzungsbedingungen, sofern man einen API-Schlüssel ausstellt und die Nutzung verbrauchsabhängig abrechnet.