Como estoy en una situación en la que puedo usar tokens de Gemini muy baratos, tal como dice el título estoy usando Claude Code conectándole un backend proxy al que está enlazado Gemini. El CLI de Gemini es demasiado agresivo (aunque le pidas que solo lea código, insiste en intentar modificar algo), así que no me termina de encajar, y siento que el diseño de agente de Claude Code es el que mejor funciona, así que incluso cambiando el backend lo sigo usando con muy buenos resultados.
Esta capa de proxy, en cierto modo, añade una capa extra de abstracción, así que OpenAI, XAI, Claude y Gemini pueden conectarse y usarse en Claude Code de la misma manera.
Tuve que resolver varios problemas molestos, como el streaming + el parseo de JSON, o el refinamiento de esquemas para tool use, así que si hay alguien que quiera intentar algo parecido, avíseme en los comentarios y lo publico como open source.
Si alguien ya hizo algo similar, comparta su experiencia~
8 comentarios
Mi enfoque es un poco distinto: en lugar de usar herramientas agente basadas en Claude Code o Cowork, desarrollo mediante conversación en lenguaje natural en un chat web puro con LLM. Monté un proxy en mi propio servidor para conectar las APIs de Claude ↔ Gemini, y la estructura es que Gemini se encarga de los servicios en producción (chatbot de KakaoTalk, agente de lenguaje natural para ERP), mientras que el code review y el diseño de arquitectura los hago conversando con Claude, y la persona solo hace la confirmación final y el despliegue.
Gemini hace de aprendiz de programación, Claude de revisor de código, y la persona de aprobación final: esa separación de roles funciona bastante bien.
Comparado con los agentes basados en editor de código (Claude Code, etc.), también tiene la ventaja de consumir muchos menos tokens. Como no hay file I/O, el código se intercambia por conversación y la persona lo aplica directamente. Con lo que sí coincido es en que "el diseño de agentes de Claude es el que mejor funciona". Gemini CLI definitivamente tiene bastante carácter (jaja), así que para el rol de revisión Claude me ha parecido mejor.
Gracias por compartir tu experiencia. 👍 También coincido con la parte sobre las diferencias de estilo entre Gemini y Claude.
Veo que usas varios proveedores conectados al mismo tiempo en una sola interfaz web; cuando uno hace programación autónoma basada en agentes, en vez de pensar a fondo en un buen diseño, suele haber una tendencia a escribir de forma superficial, como una especie de “desarrollo guiado por el currículum”, así que yo también creo que es mejor trabajar el diseño en formato de conversación. ☺️
Yo levanté algo como anthropic-proxy en local y lo usé con un proxy mediante un comando como
ANTHROPIC_BASE_URL=http://0.0.0.0:3000 claudepara usar otros modelos de Gemini o GPT, pero como dicen que lo implementaron de forma serverless, me da curiosidad.Oh, también hay un proyecto open source hecho en JS. Gracias 👍👍
La estructura interna es parecida, pero yo lo uso con un poco más de abstracción. (cuestión de preferencias)
Incluso si se implementa como serverless, como el tiempo de respuesta del LLM es mucho más lento, es difícil notar el cold start y se siente bastante fluido. Además, usando la función Function URL de Lambda también es posible hacer streaming, así que se puede cubrir por completo. En especial, lo mejor de todo es que incluso después de reiniciar no hace falta volver a encender el servidor.
Creo que también sería perfectamente usable si toman este código, modifican solo la parte de FastAPI al formato de handler de Lambda y lo suben a Lambda (después de hacer un poco de troubleshooting).
https://github.com/1rgs/claude-code-proxy
¿En qué se diferencia de un proxy como este?
Gracias por compartir una buena librería. Si la hubiera conocido, creo que lo habría hecho de una forma más cómoda 👍👍
Internamente, el manejo en sí de la conversión del formato de entrada/salida no parece ser muy diferente,
pero si tuviera que señalar una diferencia, la librería que presentaste está basada en self-hosting / Docker / Python / LiteLLM, mientras que yo lo implementé con serverless / AWS Lambda / TS / sin dependencias.
Si conectas Gemini a Claude Code, existe la posibilidad de que te suspendan.
Creo que deberías tener cuidado con la ola masiva de suspensiones en OpenCode.
Gracias por el comentario rápido. 🙌
El problema de la suspensión de Open Code (suscripción a Claude => integración con Open Code) se debió a que una clave de plan de tarifa fija autenticada por OAuth se usó en software de terceros, y eso fue lo que causó el problema. Para usarlo como se indicó arriba, debes emitir una API key y usarlo con cobro por uso, lo cual no viola los términos y condiciones.