Guías de migraciónDesde Helicone
Dejar Helicone sin fingir que es sencillo
Helicone fue adquirido por Mintlify y sus servicios están en modo de mantenimiento. Si estás decidiendo adónde ir, esta página es el mapa concepto por concepto: en qué tiene que convertirse tu código, lo que INFRO hace y Helicone no hacía, lo que INFRO simplemente no tiene (cuatro cosas) y la sección que la mayoría de estas páginas omite: cuándo otra opción es la mejor respuesta.
Las cuentas de INFRO son de autoservicio. El catálogo, la documentación y el contrato de la API son públicos, el gateway está desplegado, y todo lo que va más allá de v1 está marcado como Más adelante. Planes y prueba
Dónde están las cosas
Qué se anunció
En marzo de 2026 Mintlify anunció que adquiría Helicone y dijo que Helicone seguiría en modo de mantenimiento, añadiendo que «trabajaría estrechamente con cada cliente para facilitar una migración fluida a otra plataforma». En octubre de 2026 la página de inicio de Helicone pasó a decir «Helicone ya no forma parte de Mintlify. Pronto habrá más detalles». Su página de registro en la nube sigue diciendo «Los registros están desactivados».
Qué no se anunció
Sin fecha de cierre, sin compromiso de retención de datos y, por ahora, sin explicación del cambio de octubre: quién dirige Helicone ahora y qué implica para su hoja de ruta. Léelo tal como está escrito: nada de esto exige actuar esta semana. Es un motivo para decidir con calma y no con prisa, y para volver a leer las páginas de Helicone antes de hacerlo.
Por qué existe esta página
Porque la respuesta honesta depende de para qué usabas Helicone, y la mayoría de las páginas que encontrarás en esta búsqueda no te lo van a decir. Si estabas allí por las trazas, las evaluaciones y la gestión de prompts, la sección siguiente nombra un destino mejor que nosotros.
Esta sección está antes de las diferencias a propósito. Una gran parte de quienes leen esto usaban Helicone como plataforma de observabilidad y evaluación, y para ese trabajo existe un producto construido justamente alrededor de eso.
Langfuse se describe como una plataforma de ingeniería de IA de código abierto para la evaluación y la observabilidad de agentes: trazado jerárquico entre llamadas a LLM, invocaciones de herramientas y pasos de recuperación, evaluadores LLM como juez y heurísticos, gestión de prompts con despliegue y reversión, conjuntos de datos y experimentos, anotación humana y un playground. Tiene licencia MIT con autoalojamiento en Docker Compose, Kubernetes y Terraform, y fue adquirido por ClickHouse en enero de 2026, lo que, según la propia versión de ClickHouse, lo deja como código abierto y autoalojable, con el servicio en la nube funcionando como antes.
El motivo para mirar INFRO es un problema distinto con una apariencia parecida. Si lo que realmente tienes son varias cuentas de proveedor en varios equipos, un gasto que nadie puede atribuir hasta que llega la factura, reintentos y respaldos escritos de forma distinta en cada base de código y ningún paso de aprobación sobre qué modelo puede llamar un servicio, es un problema de plano de control, no de observabilidad, y es el problema en torno al cual está construido este producto. Muchos equipos necesitan ambas cosas, y ejecutar INFRO como gateway con las trazas exportadas a un colector de tu elección es una configuración razonable.
Elige Langfuse cuando
- Estabas en Helicone principalmente por la observabilidad. Langfuse es ese producto, construido con intención y en profundidad, y es lo más parecido a un destino equivalente que existe.
- Necesitas gestión de prompts o evaluadores. INFRO no tiene ninguno de los dos ni fecha para ellos. Langfuse tiene ambos, y la evaluación es una de las dos cosas con las que se presenta.
- Trazas agentes, no solo llamadas a modelos. Langfuse modela un árbol de trazas que abarca llamadas a herramientas y pasos de recuperación. INFRO registra una solicitud cada vez; un árbol de spans es algo que armas en tu propio colector.
- Quieres autoalojar sin una conversación de ventas, o mantener esa opción abierta. Langfuse tiene licencia MIT y cualquiera puede ejecutarlo. Los planes de INFRO son alojados; se ejecuta en tu propia infraestructura solo bajo un acuerdo enterprise.
Langfuse no es socio, revendedor ni afiliado de INFRO. Lo enlazamos porque es la respuesta honesta a una pregunta que, de otro modo, esta página respondería de forma deshonesta.
Los objetos de Helicone frente a los nuestros, leídos de su documentación pública (revisada de nuevo el 24 de octubre de 2026) y contrastados con lo que el gateway realmente implementa. Cuatro filas dicen que no tenemos nada; son las que conviene leer primero.
| Helicone | Qué hace allí | En INFRO |
|---|---|---|
| Integración con el gatewaymisma forma | Apunta un cliente compatible con OpenAI a la URL base del gateway de IA de Helicone y pasa tu clave de Helicone. | La misma forma: URL base https://api.infro.io/v1, clave en Authorization: Bearer. Dos líneas, una por servicio. |
| Registro asíncrono, fuera de la ruta de la solicitudnada | Un registrador basado en OpenLLMetry envuelve el SDK de tu proveedor para que Helicone no esté en la ruta crítica de tu aplicación. | Nada equivalente. INFRO es un gateway, así que siempre está en la ruta; eso es lo que le permite enrutar, hacer failover y rechazar una solicitud contra un presupuesto, y es un compromiso real que asumes. |
| De quién es la cuenta de proveedor que sirve la solicituddistinto | El gateway puede ofrecer acceso a modelos, y Helicone también admite traer tus propias claves de proveedor. | Solo las tuyas. Conectas cuentas de proveedor que ya tienes, tus proveedores te facturan directamente con tus propias tarifas, e INFRO se queda con el 0% del gasto en modelos. |
| Propiedades personalizadasdistinto | Etiquetas arbitrarias enviadas como encabezados de solicitud Helicone-Property-<Name>, usadas para filtrar y analizar costos. | Un objeto metadata en el cuerpo de la solicitud, filtrable en el registro de solicitudes como tag.<key>. La misma idea en otro lugar: un encabezado pasa a ser un campo del cuerpo, que es la mayor edición individual del traslado. |
| Seguimiento de usuarios finalesdistinto | Helicone-User-Id identifica a un usuario final, con analítica por usuario de interacción, retención y satisfacción construida sobre él. | metadata.user_id se registra en cada solicitud y filtra el registro de solicitudes y la agrupación de uso, así que el costo por usuario final se puede responder. No hay una pantalla de analítica de comportamiento por usuario: ni duración de sesión, ni tasa de retorno, ni puntuación de satisfacción. |
| Sesiones y árboles de trazasdistinto | Helicone-Session-Id, -Path y -Name agrupan llamadas relacionadas en una sola vista, incluidos pasos que no son de LLM, como consultas vectoriales y llamadas a herramientas, con estructura padre/hijo a partir de la ruta. | metadata.session_id agrupa solicitudes en el registro, y los spans se pueden enviar a tu propio colector de OpenTelemetry desde la ruta de la solicitud. Lo que INFRO no tiene es una vista de sesión con un árbol de trazas: registra llamadas a modelos, no los pasos entre ellas. |
| Caché de respuestasdistinto | Helicone-Cache-Enabled almacena en caché las respuestas completas en el edge, con un tamaño de bucket y una semilla de caché. | Una caché de respuestas de coincidencia exacta para chat completions, desactivada por defecto y activada por organización o proyecto. Una solicitud idéntica dentro del tiempo de vida se responde desde la caché y nunca llega a tu proveedor, así que tu proveedor no la factura. El control es un campo cache en el cuerpo o encabezados X-INFRO-Cache; una semilla de caché pasa a ser X-INFRO-Cache-Namespace. No hay un bucket de varias respuestas almacenadas ni coincidencia semántica (de prompts similares). La página de documentación es /docs/features/caching. |
| Límites de tasa personalizadosdistinto | Helicone-RateLimit-Policy fija una cuota por ventana, en solicitudes o en costo, segmentada globalmente, por usuario o por propiedad personalizada. | Niveles de tasa de solicitudes por clave informados como X-RateLimit-Limit, más presupuestos a nivel de organización, proyecto, miembro y clave que rechazan el tráfico en el tope con 402 budget_exceeded. Los topes de costo se corresponden bien; un límite segmentado por cliente final o por una propiedad arbitraria, no. |
| Gestión de promptsnada | Prompts gestionados fuera del código, con versiones comparadas contra el tráfico de producción. | Nada, y nada previsto que podamos nombrar. Los prompts se quedan en tu repositorio, o en una herramienta que lo haga bien: Langfuse lo hace. |
| Evaluadores y experimentosnada | LLM como juez y evaluadores personalizados que puntúan la calidad de la salida, con comparación de prompts lado a lado. La documentación de Helicone incluye un aviso de deprecación en la función Experiments. | Nada. INFRO no puntúa la salida de los modelos y no opina sobre si una respuesta fue buena. |
| Webhooksdistinto | Webhooks firmados que se disparan al completarse la solicitud, con los cuerpos de solicitud y respuesta, el costo, los tokens y la latencia. | Webhooks firmados, pero solo para trabajos de medios asíncronos: job.succeeded, job.failed, job.canceled. No hay un hook de finalización por solicitud; el registro de solicitudes y GET /v1/requests son la forma de leer el tráfico terminado. |
| Costo por solicituddistinto | Costo calculado por solicitud y agregado por propiedad, usuario y modelo. | Una estimación de lo que facturará tu proveedor, en la respuesta como usage.cost, con usage.price_source indicando si vino de tu tarifa negociada, de tu tarifa para ese modelo o de la tarifa de lista del fabricante; y ausente, no adivinada, cuando no se conoce ninguna tarifa. |
| Respaldos y enrutamiento entre varios proveedoresmisma forma | Respaldo de proveedor a través del gateway. | Rutas con nombre con destinos por prioridad o ponderados sobre tus propias conexiones. Un destino que agota el tiempo de espera o devuelve un 5xx antes de que empiece la respuesta se reintenta en otro lugar; una vez que fluyen los bytes, el error se muestra en lugar de reenrutarse. |
| Política de modelosdistinto | No es un concepto documentado de Helicone en las páginas que leímos; el control más cercano es un límite de tasa. | Una lista de permitidos en la organización, el proyecto o la clave. Gana el ámbito más estrecho y todo lo que queda fuera se rechaza antes de que cueste nada. |
| Datos históricosnada | Solicitudes, propiedades, sesiones y puntuaciones que ya están en Helicone. | No hay importador ni está previsto. Nada de lo que registraste allí aparece aquí. Expórtalo desde Helicone y guárdalo en un lugar que controles antes de dejar de enviar tráfico. |
| Código abierto y autoalojamientodistinto | La plataforma de Helicone es de código abierto y puedes ejecutarla tú mismo. | El gateway no es de código abierto. Sus planes son alojados; un despliegue autoalojado o híbrido solo viene con un acuerdo enterprise. Si necesitas ejecutarlo tú mismo sin uno, detente aquí.Empresas — Disponible con un acuerdo enterprise, no en autoservicio. |
Nuestra lectura de la documentación publicada de Helicone, no una prueba ni un benchmark. Su documentación se movió durante la transición y algunas páginas de funciones ya no están donde estaban; donde no pudimos confirmar algo, la fila lo dice en lugar de adivinar. Cada fuente y la fecha en que la abrimos aparecen al pie de esta página.
Dos líneas para la conexión. El trabajo está en las anotaciones: Helicone las lleva como encabezados de la solicitud e INFRO en el cuerpo de la solicitud, así que en cada lugar donde defines un encabezado hay un cambio.
Antes · gateway de Helicone
import OpenAI from "openai";
// Before: the OpenAI SDK through Helicone's gateway, attribution in headers.
const sessionId = "sess_42";
const client = new OpenAI({
baseURL: process.env.HELICONE_BASE_URL ?? "https://ai-gateway.helicone.ai",
apiKey: process.env.HELICONE_API_KEY,
defaultHeaders: {
"Helicone-User-Id": "user_8f21",
"Helicone-Session-Id": sessionId,
"Helicone-Property-Feature": "summarizer",
},
});
const completion = await client.chat.completions.create({
model: "gpt-5.4-mini",
messages: [{ role: "user", content: "Summarize this ticket in one line." }],
});
console.log(completion.choices[0]?.message.content);Después · INFRO
import OpenAI from "openai";
// After: the same SDK through INFRO, on your own OpenAI account.
const sessionId = "sess_42";
const client = new OpenAI({
baseURL: process.env.INFRO_BASE_URL ?? "https://api.infro.io/v1",
apiKey: process.env.INFRO_API_KEY,
});
const completion = await client.chat.completions.create({
model: "openai/gpt-5.4-mini",
messages: [{ role: "user", content: "Summarize this ticket in one line." }],
// Attribution moves from headers into the body. Recorded on the request,
// never forwarded to the provider.
metadata: {
user_id: "user_8f21",
session_id: sessionId,
feature: "summarizer",
},
});
console.log(completion.choices[0]?.message.content);La URL base y la clave
https://api.infro.io/v1, con la clave en el encabezado estándar Authorization: Bearer, así que son los argumentos baseURL y apiKey que tu cliente ya tiene. Si tu código todavía apunta al antiguo host proxy por proveedor de Helicone y lleva un encabezado Helicone-Auth aparte, ese encabezado se elimina por completo; INFRO no usa ninguno.
El id del modelo
Los modelos se indican como vendor/model, por ejemplo anthropic/claude-opus-5. GET /v1/models enumera lo que tu clave puede llamar realmente, que es lo que sirvan tus propias cuentas de proveedor conectadas: un modelo que ninguna conexión cubre devuelve 503 no_provider_connected con el nombre del proveedor que hay que conectar.
Las anotaciones
Helicone-User-Id pasa a ser metadata.user_id, Helicone-Session-Id pasa a ser metadata.session_id y cada Helicone-Property-X pasa a ser una clave dentro de metadata.tags, filtrada en el registro de solicitudes como tag.x. En TypeScript, el propio tipo metadata de OpenAI es un mapa plano de strings, así que el objeto anidado tags necesita un cast; extra_body de Python lo acepta tal cual.
Algo que vale la pena probar antes de comprometerte: la integración asíncrona de Helicone envuelve tu cliente del proveedor en lugar de estar en la ruta de red, así que en principio sigue registrando mientras la URL base apunta aquí. No hemos probado esa combinación y no podemos prometerla: pruébala primero en un servicio y lee GET /v1/requests de este lado para comprobar que ambos coinciden en lo que pasó.
Cuatro cosas, y todas se derivan de ser un gateway que funciona sobre tus propias cuentas de proveedor y no un sistema de registro que las observa.
- La cuenta que sirvió la solicitud es tuya, y se nombra
- Cada respuesta lleva
provider(el tipo de proveedor cuya cuenta la ejecutó) yconnection, el id de la conexión que usó, junto conrouteyroute_namecuando una ruta la resolvió. No hay ningún fondo común detrás del gateway ni margen sobre el tráfico: tu proveedor te factura con tus propias tarifas, e INFRO cobra una suscripción por la capa. - El costo es una estimación que dice de dónde viene
usage.costes una estimación de la factura de tu proveedor por esa solicitud, yusage.price_sourceindica cómo se obtuvo:custom_providerpara tu tarifa negociada con el proveedor que la sirvió,custompara tu tarifa para ese modelo,listpara la tarifa publicada por el fabricante. Cuando no se conoce ninguna tarifa, la solicitud se registra sin precio y no como cero, porque un cero en una columna de costos es una afirmación y una ausencia es un hecho.- Un presupuesto puede rechazar una solicitud
- Topes a nivel de organización, proyecto, miembro y clave, con umbrales de alerta que tú fijas. En el tope, el gateway devuelve
402 budget_exceededen lugar de avisarte por correo del exceso de gasto después; esa es la diferencia entre un presupuesto y un informe. - Las estimaciones se contrastan con la facturación del propio proveedor
- Un proceso diario lee las APIs de costos de OpenAI y de Anthropic con una credencial de administrador independiente y guarda la cifra informada junto a lo que INFRO estimó, de modo que lo que ves es una variación y no una cifra que hay que aceptar por confianza. Solo esos dos proveedores tienen adaptador; un proveedor sin él no muestra variación en lugar de una variación de cero, y Bedrock, Vertex y Azure mantienen su costo en el sistema de facturación de la nube que los rodea.
Lo que no se traslada
No hay importador. Nada de lo que registraste en Helicone aparece en INFRO, y nada de aquí irá a buscarlo. Exporta lo que necesites mientras su servicio siga activo.
- Tu historial de solicitudes. No hay importador ni plan para uno. Exporta primero lo que necesites de Helicone; nada en INFRO irá a buscarlo.
- Propiedades personalizadas, sesiones e ids de usuario ya registrados. Las anotaciones empiezan desde la primera solicitud que envíes aquí.
- Respuestas en caché. Las entradas de la caché de otro producto no se trasladan; la caché de INFRO empieza vacía y se llena con tu propio tráfico, y solo coincide con solicitudes exactas, nunca con similares.
- Prompts y puntuaciones de evaluadores. No tienen dónde aterrizar.
- Un deployment de Helicone que operabas tú mismo. Los planes de INFRO son alojados; ejecutar INFRO en tu propia infraestructura es un acuerdo enterprise, no un paso de la migración.
Si lo que quieres es el plano de control
Lee primero el contrato de la API: está publicado completo, incluidas las partes que todavía no existen, para que puedas decidir antes de escribir nada. Luego cuéntanos qué estás ejecutando y te diremos con honestidad si vale la pena hacer el cambio.
Fuentes
Cada afirmación de esta página sobre Helicone o Langfuse proviene de una de estas fuentes, con la fecha en que la leímos. Nada se deduce de una prueba, un benchmark o una conversación.
- Helicone — homepage (“Helicone is no longer part of Mintlify”)leído el 24 oct 2026
- Helicone — sign-up page (“Sign ups are disabled”)leído el 24 oct 2026
- Helicone — “Helicone is joining Mintlify”leído el 20 sept 2026
- Mintlify — “Mintlify acquires Helicone”leído el 24 oct 2026
- Helicone docs — Quickstartleído el 24 oct 2026
- Helicone docs — Async logging (OpenLLMetry)leído el 20 sept 2026
- Helicone docs — Custom propertiesleído el 24 oct 2026
- Helicone docs — Sessionsleído el 24 oct 2026
- Helicone docs — User metricsleído el 24 oct 2026
- Helicone docs — Cachingleído el 24 oct 2026
- Helicone docs — Custom rate limitsleído el 24 oct 2026
- Helicone docs — Webhooksleído el 20 sept 2026
- Helicone docs — Experiments (deprecation notice)leído el 20 sept 2026
- Langfuse — product overviewleído el 20 sept 2026
- ClickHouse — “ClickHouse welcomes Langfuse”leído el 20 sept 2026