Compatibles con OpenAI y OpenRouter
Cualquier cliente que te permita cambiar su URL base de OpenAI o de Anthropic puede usar el modo puerta de enlace: tus propios scripts, los SDK oficiales y las herramientas construidas sobre ellos.
URL base
Sección titulada «URL base»| Proveedor | En lugar de | Usa |
|---|---|---|
| OpenAI | https://api.openai.com/v1 |
http://127.0.0.1:5283/openai/v1 |
| Anthropic | https://api.anthropic.com |
http://127.0.0.1:5283/anthropic |
| OpenRouter | https://openrouter.ai/api/v1 |
http://127.0.0.1:5283/openrouter/api/v1 |
| Google Gemini | https://generativelanguage.googleapis.com |
http://127.0.0.1:5283/gemini |
Mantén tu clave de API en el cliente, como siempre. La puerta de enlace la reenvía sin cambios y nunca escribe su valor en los registros ni en el panel.
Para un comando: latet run
Sección titulada «Para un comando: latet run»latet run inicia el daemon si hace falta y ejecuta cualquier comando con las URL base definidas:
latet run python welcome.pyEl comando ve OPENAI_BASE_URL y OPENAI_API_BASE con el valor http://127.0.0.1:5283/openai/v1,
ANTHROPIC_BASE_URL con el valor http://127.0.0.1:5283/anthropic, y GOOGLE_GEMINI_BASE_URL y
GOOGLE_VERTEX_BASE_URL con los valores http://127.0.0.1:5283/gemini y http://127.0.0.1:5283/vertex.
Los SDK oficiales de OpenAI, de Anthropic y Google GenAI leen estas variables: para los de Google, ver
Gemini CLI y Google GenAI.
Para todo un shell: latet env
Sección titulada «Para todo un shell: latet env»latet env imprime las mismas variables con la sintaxis de tu shell. Para aplicarlas a la sesión
actual:
eval "$(latet env)" # macOS and Linuxlatet env | Invoke-Expression # Windows PowerShell--shell bash, --shell powershell o --shell cmd elige la sintaxis; la predeterminada sigue tu
sistema. Para conservar las variables, añade las líneas impresas al perfil de tu shell. Claude Code
iniciado con claude en una shell así llega a Latet sin su plugin: sus peticiones solo se comprueban, y
cada una que lleve un valor sensible en claro se detiene. Inícialo con latet claude, o configúralo con
latet global-install, que le dan también el plugin.
Ejemplo
Sección titulada «Ejemplo»Un script que pide a un modelo que redacte un correo electrónico:
from openai import OpenAI
client = OpenAI() # reads OPENAI_API_KEY and OPENAI_BASE_URLreply = client.chat.completions.create( model="your-model", messages=[{"role": "user", "content": "Write a short welcome email to emily.carter@northwind-legal.com"}],)print(reply.choices[0].message.content)Ejecútalo con latet run python welcome.py:
- El daemon sustituye la dirección antes de que salga la petición. El proveedor lee “Write a short welcome email to laura.bennett@contoso-4f1a.example”.
- El modelo escribe un correo electrónico a
laura.bennett@contoso-4f1a.example. - A la vuelta, el daemon coloca de nuevo el original, así que el script imprime un correo electrónico
dirigido a
emily.carter@northwind-legal.com.
Solo se restaura el valor ficticio en sí. Si el modelo también escribió Dear Laura, un nombre que dedujo de la dirección ficticia, esa palabra se queda tal como la escribió el modelo.
Las respuestas en streaming funcionan igual, fragmento a fragmento.
Frameworks de agentes
Sección titulada «Frameworks de agentes»LangChain, LangGraph, AutoGen y CrewAI llegan al modelo a través de los SDK oficiales o de LiteLLM,
que leen las variables que establece latet run: inicia tu programa con latet run, como
cualquier script. Cada uno está probado de verdad a través de Latet, configurado como se indica
abajo:
| Framework | Configuración | Probado |
|---|---|---|
| LangChain y LangGraph | ChatOpenAI, sin URL base (ChatAnthropic lee ANTHROPIC_BASE_URL de la misma manera) |
Un modelo de chat y un grafo sobre él |
| AutoGen | OpenAIChatCompletionClient, sin URL base |
Un AssistantAgent |
| CrewAI | LLM(model="openai/gpt-5.1"), sin URL base |
Su LLM y una crew con una tarea |
Para fijar la dirección en tu código, indícala como base_url: http://127.0.0.1:5283/openai/v1 para
los clientes de OpenAI, http://127.0.0.1:5283/anthropic para los de Anthropic.
Aider llega al modelo a través de LiteLLM, que lee OPENAI_API_BASE: inícialo con
latet run aider --model openai/gpt-5.1, o mantén openai-api-base: http://127.0.0.1:5283/openai/v1 en
su .aider.conf.yml. Está probado de verdad de la misma manera.
Lo que Latet no ve. Latet está entre tu programa y el modelo, y en ningún otro sitio. Una herramienta que tu agente llama por su cuenta, como una API de búsqueda web, una base de datos o un almacén de vectores en la nube, recibe los valores reales: el modelo la pide con valores ficticios, y Latet vuelve a poner los originales en su respuesta antes de que tu programa ejecute la herramienta. Mantén esas herramientas en tu máquina, o da por enviado en claro lo que reciben.
Qué lee la puerta de enlace
Sección titulada «Qué lee la puerta de enlace»- Chat Completions (
/chat/completions, y el antiguo/completions), la Responses API (/responses) y Anthropic Messages (/v1/messages, también el recuento de tokens): se enmascaran el prompt de sistema, cada mensaje, las llamadas a herramientas y los resultados de las herramientas, y se restauran las respuestas, en streaming o no. - Embeddings (
/embeddings): se enmascara la entrada. - Las imágenes enviadas como URL
data:se leen y se enmascaran, con el reconocimiento de texto opcional. Las imágenes indicadas por su dirección, el audio y los archivos se envían tal cual, y en el panel llevan el indicador No inspeccionado. - Cualquier otra petición a OpenAI, Anthropic u OpenRouter, como la que pide la lista de modelos, pasa sin cambios. En las rutas de Google, en cambio, se rechaza una petición con un cuerpo que Latet no lee: lo que Latet lee ahí está en Gemini CLI y Google GenAI.
Una petición a Anthropic que viene de Claude Code, o que lleva el token de una suscripción de Claude, nunca se reescribe: solo se comprueba, y se bloquea si contiene un valor sensible. Consulta Claude Code.
A tener en cuenta
Sección titulada «A tener en cuenta»-
La puerta de enlace solo escucha en
127.0.0.1y rechaza las peticiones que vienen de una página web. -
Una ruta que no es ninguna de las de arriba recibe un error
404:no upstream for this path. -
Otro proveedor compatible con OpenAI (DeepSeek, Mistral, un servidor de modelos en tu red): añádelo como destino y después usa su ruta como URL base del agente, aquí
http://127.0.0.1:5283/deepseek/v1:Ventana de terminal latet config add upstreams "{name: deepseek, url: https://api.deepseek.com}"Consulta
upstreams. -
Los agentes autónomos como Hermes Agent y OpenClaw aceptan estas URL base en sus propios ajustes: consulta Hermes Agent, OpenClaw y otros agentes.
© 2026 Emanuele Casabona · NIF-IVA IT02293040990 · Política de privacidad · Aviso legal · latet.ai