Skip to main content

Installazione

Supportato: llama-index-core dalla versione 0.14.23 alla 0.15. La 0.14.23 è la versione in cui il flusso di lavoro ha iniziato a trasportare gli eventi tipizzati dell’agente che questo adapter legge. Nelle versioni precedenti, sia i nomi dei modelli che la struttura dell’agente vanno perduti.

Strumentazione

L’API dell’agente di LlamaIndex è asincrona. Ogni ambito funziona sia con async with che con with e produce eventi identici. instrument() allega un gestore di eventi e un gestore di span al dispatcher globale di LlamaIndex. Insieme rendono visibile il ciclo dell’agente, non solo le sue chiamate ai modelli.
Senza un argomento aggiuntivo sul tuo LLM, ogni conteggio di token nella tua traccia è null. Vedi Conteggi di token di seguito.

Conteggi di token

FunctionAgent chiama astream_chat, e llama-index-llms-openai non invia stream_options={"include_usage": True} quando effettua lo streaming. Il provider quindi non invia mai il chunk di utilizzo, e non c’è niente da leggere per alcuna strumentazione. Questo è il comportamento a monte di LlamaIndex. Attiva il consenso sul tuo LLM:
Misurato sulla stessa esecuzione e modello: Le chiamate non in streaming (llm.chat, llm.achat) segnalano l’utilizzo senza configurazione. Solo il percorso di streaming, che è il percorso dell’agente predefinito, necessita di questo.

Cosa viene registrato

agent_id è il FunctionAgent.name quando lo imposti, altrimenti il nome della classe del flusso di lavoro. Sotto un AgentWorkflow, ogni agente che prende un turno ottiene il suo span annidato sotto il flusso di lavoro, quindi un passaggio di controllo si legge come due agenti anziché uno. L’output del retrieval è riassunto anziché scaricato. Un retriever restituisce documenti, e archiviarli nel payload metterebbe il tuo corpus nell’archivio degli eventi una volta per query. Vengono mantenuti il conteggio, l’intervallo dei punteggi e i frammenti troncati.

Esempio

Il ciclo dell’agente appare nella traccia come coppie di hook: init_run, setup_agent, run_agent_step, parse_agent_output, call_tool, e aggregate_tool_results. Sono il ciclo proprio del framework, quindi sono hook anziché agenti, il che mantiene agent_id significativo.

Nomina i tuoi span

agent_id è il FunctionAgent.name quando lo imposti, altrimenti il nome della classe del flusso di lavoro.
In un AgentWorkflow, quel nome è anche quello sotto il quale ogni passaggio di controllo è registrato:
Quindi agent_id ti dice quale agente ha svolto il lavoro e parent_id ti dice quale flusso di lavoro gli apparteneva. Un agente che restituisce il controllo in seguito apre un secondo turno anziché riaprire il primo. Avvolgi l’esecuzione per sovrascriverlo, o per raggruppare più agenti sotto un genitore comune:
Mantieni agent_id a bassa cardinalità. È la sfaccettatura principale su ogni superficie di dashboard, quindi usa un ruolo o un nome di flusso di lavoro, mai un UUID o una stringa per esecuzione.

Controlla la sessione

Questo adapter non accetta alcuna opzione session_id. La sessione proviene dall’ambito racchiudente, altrimenti un uuid4().hex generato per esecuzione del flusso di lavoro:

Opzioni

Umano nel ciclo

Catturato quando l’attesa accade all’interno di un tool:
ctx.wait_for_event in un passaggio di flusso di lavoro semplice non è catturato. Il runtime raccoglie il drop prima che raggiunga il dispatcher, quindi il passaggio esce e viene rieseguito in seguito senza segnale per basare una pausa su. Il pattern FunctionAgent, che LlamaIndex documenta, aspetta dentro un tool ed è catturato in pieno.

Problemi comuni

Aggiungi additional_kwargs={"stream_options": {"include_usage": True}} al tuo LLM. Vedi Conteggi di token.
LlamaIndex non ha un campo di utilizzo standard. L’adapter prova diverse forme note, e un’integrazione che nomina i suoi contatori con qualcosa di nuovo non corrisponderà a nessuna di esse.Il dict grezzo è sempre spedito, quindi controlla usage nel payload per vedere come il tuo provider li ha nominati.Un usage popolato insieme a colonne di token vuote è intenzionale — è meglio di un numero confidentemente sbagliato.
Questo è il ciclo FunctionAgent, un set per iterazione. Filtra per nome di hook sul dashboard. Questi tempi dei passaggi sono di solito il motivo per usare questo adapter anziché uno solo per modelli.
Controlla in questo ordine: instrument() è stato eseguito prima dell’esecuzione; c’è un async with failproofai_sdk.session(): intorno all’await; llama-index-core è 0.14.23 o più recente; FAILPROOFAI_SDK_STRICT=1 è impostato, quindi un hook degradato genera un’eccezione anziché essere inghiottito.

Successivo

Come funziona

Coppie, id, ciclo di vita della sessione e consegna.

Leggi una traccia

Segui la causalità attraverso la sessione appena catturata.

Altri framework

LangGraph, CrewAI, Pydantic AI e agenti personalizzati.