Vai al contenuto

Guide alla migrazioneDa Helicone

Lasciare Helicone, senza fingere che sia semplice

Helicone è stato acquisito da Mintlify e i suoi servizi sono in modalità di manutenzione. Se stai decidendo dove andare, questa pagina è la mappa concetto per concetto: cosa deve diventare il tuo codice, cosa fa INFRO che Helicone non faceva, le quattro cose che INFRO semplicemente non ha, e la sezione che la maggior parte di queste pagine omette, cioè quando qualcun altro è la risposta migliore.

Gli account INFRO sono self-service. Il catalogo, la documentazione e il contratto dell'API sono pubblici, il gateway è in produzione e tutto ciò che va oltre la v1 è indicato come "Più avanti". Piani e prova

A che punto siamo

Cosa è stato annunciato

Nel marzo 2026 Mintlify ha annunciato l'acquisizione di Helicone e ha detto che Helicone sarebbe proseguito in modalità di manutenzione, aggiungendo che avrebbe «lavorato a stretto contatto con ogni cliente per supportare una migrazione fluida verso un'altra piattaforma». Nell'ottobre 2026 la homepage di Helicone è cambiata e ora riporta «Helicone is no longer part of Mintlify. Details to come soon.» La sua pagina di registrazione al cloud dice ancora «Sign ups are disabled».

Cosa non è stato annunciato

Nessuna data di chiusura, nessun impegno sulla conservazione dei dati e, finora, nessuna spiegazione della modifica di ottobre: chi gestisce Helicone oggi e cosa significa per la sua roadmap. Leggilo per quello che è: nulla qui va fatto questa settimana. È un motivo per decidere con calma anziché di fretta, e per rileggere le pagine di Helicone prima di farlo.

Perché esiste questa pagina

Perché la risposta onesta dipende da cosa usavi Helicone, e la maggior parte delle pagine che troverai in questa ricerca non te lo dirà. Se eri lì per tracing, valutazioni e gestione dei prompt, la sezione successiva indica una destinazione migliore di noi.

Questa sezione sta sopra le differenze di proposito. Molte delle persone che leggono questa pagina usavano Helicone come piattaforma di osservabilità e valutazione, e per quel lavoro esiste un prodotto costruito esattamente attorno a esso.

Langfuse si descrive come una piattaforma di AI engineering open source per la valutazione e l'osservabilità degli agenti: tracing gerarchico tra chiamate LLM, invocazioni di strumenti e passaggi di recupero, valutatori LLM-as-a-judge ed euristici, gestione dei prompt con deployment e rollback, dataset ed esperimenti, annotazione umana e un playground. Ha licenza MIT con self-hosting su Docker Compose, Kubernetes e Terraform ed è stata acquisita da ClickHouse a gennaio 2026, il che, secondo ClickHouse stessa, la lascia open source e ospitabile in proprio con il servizio cloud che funziona come prima.

Il motivo per guardare INFRO è un problema diverso che si presenta in modo simile. Se ciò che hai davvero sono più account provider tra più team, una spesa che nessuno sa attribuire finché non arriva la fattura, tentativi e fallback scritti in modo diverso in ogni codebase e nessun passaggio di approvazione su quale modello un servizio può chiamare, è un problema di piano di controllo e non di osservabilità, ed è il problema attorno a cui è costruito questo prodotto. Molti team hanno bisogno di entrambi, e gestire INFRO come gateway con il tracing esportato verso un collector a tua scelta è una forma ragionevole.

Scegli Langfuse quando

  • Usavi Helicone soprattutto per l'osservabilità. Langfuse è quel prodotto, costruito con cura e in profondità, ed è la cosa più vicina a una destinazione equivalente che esista.
  • Ti servono gestione dei prompt o valutatori. INFRO non ha né l'una né gli altri, e nessuna data per nessuno dei due. Langfuse ha entrambi e la valutazione è una delle due cose su cui punta.
  • Tracci gli agenti, non solo le chiamate ai modelli. Langfuse modella un albero di trace che copre chiamate a strumenti e passaggi di recupero. INFRO registra una richiesta alla volta; un albero di span lo assembli nel tuo collector.
  • Vuoi fare self-hosting senza una conversazione commerciale, o tenere aperta quell'opzione. Langfuse ha licenza MIT e chiunque può gestirlo. I piani di INFRO sono ospitati; funziona nella tua infrastruttura solo con un accordo enterprise.

Langfuse non è un partner, un rivenditore né un affiliato di INFRO. Lo citiamo perché è la risposta onesta a una domanda a cui altrimenti questa pagina risponderebbe in modo disonesto.

Gli oggetti di Helicone a confronto con i nostri, letti dalla loro documentazione pubblica (ricontrollata il 24 ottobre 2026) e verificati rispetto a ciò che il gateway implementa davvero. Quattro righe dicono che non abbiamo nulla; sono le prime da leggere.

HeliconeCosa fa lìIn INFRO
Integrazione del gatewaystessa formaPunta un client compatibile con OpenAI all'URL di base del gateway AI di Helicone e passa la tua chiave Helicone.La stessa forma: URL di base https://api.infro.io/v1, chiave in Authorization: Bearer. Due righe, una per servizio.
Logging asincrono, fuori dal percorso della richiestanienteUn logger basato su OpenLLMetry avvolge l'SDK del tuo provider, così Helicone non è nel percorso critico della tua applicazione.Nessun equivalente. INFRO è un gateway, quindi è sempre sul percorso: è ciò che gli permette di instradare, fare failover e rifiutare una richiesta rispetto a un budget, ed è un vero compromesso che stai facendo.
Quale account provider serve la richiestadiversoIl gateway può fornire l'accesso ai modelli e Helicone supporta anche l'uso delle tue chiavi provider.Solo i tuoi. Colleghi account provider che già possiedi, i tuoi provider ti fatturano direttamente alle tue tariffe e INFRO prende lo 0% della spesa per i modelli.
Proprietà personalizzatediversoTag arbitrari inviati come header di richiesta Helicone-Property-<Name>, usati per filtrare e analizzare i costi.Un oggetto metadata nel corpo della richiesta, filtrabile nel log delle richieste come tag.<key>. Stessa idea, posto diverso: un header diventa un campo del corpo, che è la modifica singola più grande del porting.
Tracciamento degli utenti finalidiversoHelicone-User-Id identifica un utente finale, con analisi di coinvolgimento, fidelizzazione e soddisfazione per utente costruite su di esso.metadata.user_id è registrato su ogni richiesta e filtra il log delle richieste e il raggruppamento dell'utilizzo, quindi il costo per utente finale è ricavabile. Non c'è una schermata di analisi comportamentale per utente: niente durata della sessione, tasso di ritorno o punteggio di soddisfazione.
Sessioni e alberi di tracediversoHelicone-Session-Id, -Path e -Name raggruppano chiamate correlate in un'unica vista, compresi passaggi non LLM come query vettoriali e chiamate a strumenti, con struttura padre/figlio dal percorso.metadata.session_id raggruppa le richieste nel log e gli span possono essere inviati al tuo collector OpenTelemetry dal percorso della richiesta. Quello che INFRO non ha è una vista di sessione con un albero di trace: registra le chiamate ai modelli, non i passaggi tra di esse.
Caching delle rispostediversoHelicone-Cache-Enabled memorizza risposte complete sull'edge, con una dimensione del bucket e un seed della cache.Una cache delle risposte a corrispondenza esatta per i chat completions, disattivata per impostazione predefinita e attivata per organizzazione o progetto. Una richiesta identica entro il time-to-live riceve risposta dalla cache e non raggiunge mai il tuo provider, quindi il tuo provider non la fattura. Il controllo avviene con un campo cache nel corpo o con header X-INFRO-Cache; un seed della cache diventa X-INFRO-Cache-Namespace. Non esiste un bucket di più risposte memorizzate né un abbinamento semantico (per prompt simili). La pagina della documentazione è /docs/features/caching.
Limiti di frequenza personalizzatidiversoHelicone-RateLimit-Policy imposta una quota per finestra, in richieste o in costo, segmentata globalmente, per utente o per proprietà personalizzata.Livelli di frequenza delle richieste per chiave riportati come X-RateLimit-Limit, più budget a livello di organizzazione, progetto, membro e chiave che rifiutano il traffico al tetto con 402 budget_exceeded. I tetti di costo corrispondono bene; un limite segmentato per utente finale o per una proprietà arbitraria no.
Gestione dei promptnientePrompt gestiti fuori dal codice, con versioni confrontate con il traffico di produzione.Nulla, e nulla di pianificato che possiamo nominare. I prompt restano nel tuo repository o in uno strumento che lo fa come si deve: Langfuse lo fa.
Valutatori ed esperimentinienteLLM-as-a-judge e valutatori personalizzati che valutano la qualità dell'output, con confronto affiancato dei prompt. La documentazione di Helicone riporta un avviso di deprecazione sulla funzione Experiments.Nulla. INFRO non valuta l'output dei modelli e non ha alcuna opinione sul fatto che una risposta fosse buona.
WebhookdiversoI webhook firmati scattano al completamento della richiesta, con corpi di richiesta e risposta, costo, token e latenza.Webhook firmati, ma solo per i job multimediali asincroni: job.succeeded, job.failed, job.canceled. Non c'è un hook di completamento per richiesta; il log delle richieste e GET /v1/requests sono il modo di leggere il traffico concluso.
Costo per richiestadiversoCosto calcolato per richiesta e aggregato per proprietà, utente e modello.Una stima di ciò che il tuo provider fatturerà, nella risposta come usage.cost, con usage.price_source che indica se proviene dalla tua tariffa negoziata, dalla tua tariffa per quel modello o dalla tariffa di listino del vendor; assente, e non tirato a indovinare, quando non si conosce alcuna tariffa.
Fallback e routing multi-providerstessa formaFallback del provider tramite il gateway.Route con nome con destinazioni per priorità o ponderate sulle tue connessioni. Una destinazione che va in timeout o risponde 5xx prima dell'inizio della risposta viene ritentata altrove; quando i byte sono già in flusso, l'errore emerge invece di essere reinstradato.
Policy dei modellidiversoNon è un concetto documentato di Helicone nelle pagine che abbiamo letto; il controllo più vicino è un limite di frequenza.Una allowlist a livello di organizzazione, progetto o chiave. Vince l'ambito più stretto e tutto ciò che sta fuori viene rifiutato prima che costi qualcosa.
Dati storicinienteRichieste, proprietà, sessioni e punteggi già in Helicone.Nessun importatore e nessuno previsto. Nulla di ciò che hai registrato lì compare qui. Esportalo da Helicone e conservalo dove lo controlli tu prima di smettere di inviare.
Open source e self-hostingdiversoLa piattaforma di Helicone è open source e può essere gestita in proprio.Il gateway non è open source. I suoi piani sono ospitati; un deployment self-hosted o ibrido arriva solo con un accordo enterprise. Se ti serve gestirlo da solo senza un accordo, fermati qui.Enterprise — Disponibile con un contratto enterprise anziché in self-service.

È la nostra lettura della documentazione pubblicata da Helicone, non una prova o un benchmark. La loro documentazione si è spostata durante la transizione e alcune pagine delle funzionalità non si trovano più dove erano; dove non abbiamo potuto confermare qualcosa, la riga lo dice invece di tirare a indovinare. Ogni fonte e la data in cui l'abbiamo aperta sono elencate in fondo a questa pagina.

Due righe per la connessione. Il lavoro è nelle annotazioni: Helicone le porta come header della richiesta, INFRO nel corpo della richiesta, quindi ovunque imposti un header c'è una modifica.

Prima · gateway 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);

Dopo · 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);

L'URL di base e la chiave

https://api.infro.io/v1, con la chiave nell'header standard Authorization: Bearer: quindi sono gli argomenti baseURL e apiKey che il tuo client ha già. Se il tuo codice punta ancora al vecchio host proxy per provider di Helicone e porta un header Helicone-Auth separato, quell'header va rimosso del tutto; INFRO non ne usa uno.

L'id del modello

I modelli si indicano come vendor/model, per esempio anthropic/claude-opus-5. GET /v1/models elenca ciò che la tua chiave può effettivamente chiamare, cioè ciò che servono i tuoi account dei provider collegati: un modello non coperto da nessuna connessione restituisce 503 no_provider_connected, con il nome del provider da collegare.

Le annotazioni

Helicone-User-Id diventa metadata.user_id, Helicone-Session-Id diventa metadata.session_id e ogni Helicone-Property-X diventa una chiave sotto metadata.tags, filtrata nel log delle richieste come tag.x. In TypeScript, il tipo metadata di OpenAI è una mappa piatta di stringhe, quindi l'oggetto annidato tags richiede un cast; extra_body in Python lo accetta così com'è.

Una cosa da provare prima di impegnarti: l'integrazione asincrona di Helicone avvolge il client del provider invece di stare sul percorso di rete, quindi in linea di principio continua a registrare mentre l'URL di base punta qui. Non abbiamo testato questa combinazione e non possiamo garantirla: provala prima su un servizio e leggi GET /v1/requests da questa parte per verificare che entrambi concordino su cosa è successo.

Quattro cose, che derivano tutte dall'essere un gateway che gira sui tuoi account dei provider anziché un logger che li osserva.

L'account che ha servito la richiesta è tuo ed è indicato per nome
Ogni risposta porta provider (il tipo di provider il cui account l'ha eseguita) e connection, l'id della connessione usata, insieme a route e route_name quando l'ha risolta una route. Dietro il gateway non c'è alcun pool e sul traffico non c'è alcun margine: il tuo provider ti fattura alle tue tariffe e INFRO addebita un abbonamento per il livello.
Il costo è una stima che dice da dove viene
usage.cost è una stima della fattura del tuo provider per quella richiesta e usage.price_source dice come ci si è arrivati: custom_provider per la tua tariffa negoziata sul provider che l'ha servita, custom per la tua tariffa per quel modello, list per la tariffa pubblicata dal vendor. Quando non si conosce alcuna tariffa, la richiesta è registrata senza prezzo e non come zero, perché uno zero in una colonna di costo è un'affermazione e un'assenza è un fatto.
Un budget può rifiutare una richiesta
Tetti a livello di organizzazione, progetto, membro e chiave, con soglie di avviso che imposti tu. Al tetto il gateway restituisce 402 budget_exceeded invece di scriverti dopo per la spesa eccessiva: è la differenza tra un budget e un report.
Le stime sono verificate con la fatturazione del provider stesso
Un passaggio giornaliero legge le API dei costi di OpenAI e Anthropic con una credenziale admin separata e archivia la cifra riportata accanto a ciò che INFRO ha stimato, così ciò che vedi è uno scostamento e non un numero da prendere per buono. Solo questi due provider hanno un adapter; un provider senza adapter non mostra alcuno scostamento invece di uno scostamento pari a zero, e Bedrock, Vertex e Azure tengono i loro costi nel sistema di fatturazione del cloud circostante.

Cosa non si porta con sé

Non c'è un importatore. Nulla di ciò che hai registrato in Helicone compare in INFRO, e nulla qui andrà a recuperarlo. Esporta ciò che ti serve finché il loro servizio è ancora attivo.

  • La cronologia delle tue richieste. Non esiste un importatore e non ne è previsto uno. Esporta prima da Helicone ciò che ti serve; nulla in INFRO andrà a recuperarlo.
  • Proprietà personalizzate, sessioni e id utente già registrati. Le annotazioni partono dalla prima richiesta che invii qui.
  • Risposte in cache. Le voci della cache di un altro prodotto non si spostano; la cache di INFRO parte vuota e si riempie con il tuo traffico, e abbina solo richieste esatte, mai simili.
  • Prompt e punteggi dei valutatori. Non c'è dove atterrare.
  • Un deployment di Helicone che gestivi tu. I piani di INFRO sono ospitati; gestire INFRO nella tua infrastruttura è un accordo enterprise, non un passaggio della migrazione.

Se la parte che vuoi è il piano di controllo

Leggi prima il contratto dell'API: è pubblicato per intero, comprese le parti che non esistono ancora, così puoi decidere prima di scrivere qualsiasi cosa. Poi raccontaci cosa usi e ti diremo onestamente se è un passaggio che vale la pena fare.

Fonti

Ogni affermazione su Helicone o Langfuse in questa pagina proviene da una di queste fonti, con la data in cui l'abbiamo letta. Nulla è dedotto da una prova, un benchmark o una conversazione.