Saltar al contenido principal

Integración con LangChain

TraceAgent ofrece un callback nativo para LangChain que captura automáticamente los pasos de las cadenas, las llamadas al LLM, el uso de herramientas y la actividad de los recuperadores.

Instalación​

pippip install trace-agent-sdk trace-agent-langchain
uvuv add trace-agent-sdk trace-agent-langchain

Uso básico​

from trace_agent_sdk import TraceAgentClient
from trace_agent_langchain import TraceAgentLangChainCallback

client = TraceAgentClient("http://localhost:8000")
run = client.start_run("langchain-agent", "Answer user question")

callback = TraceAgentLangChainCallback(run)
agent.invoke({"input": "What's the weather?"}, callbacks=[callback])

run.finish({"status": "success"})

Eventos capturados​

EventoDatos capturados
Inicio/fin de cadenaTipo de cadena, entrada, salida, duración
Llamada/respuesta del LLMPrompt, respuesta, recuento de tokens
Uso/resultado de herramientaNombre de la herramienta, parámetros, salida
Consulta del recuperadorConsulta, documentos recuperados
ErrorTipo de error, mensaje, traza de pila

Cómo se registran las herramientas y los modelos​

El callback informa de cada herramienta con una sola llamada al servidor, así que una ejecución de herramienta aparece una vez en la línea de tiempo con su nombre y duración reales, y se cuenta una vez en los totales de herramientas y errores de la ejecución. Una herramienta que falla cuenta como un solo error.

En cada llamada al modelo, el callback también recuerda el proveedor y el modelo, de modo que la ejecución los muestra (junto con su uso de tokens cuando el modelo lo informa).

El callback nunca ralentiza ni rompe tu cadena: si el servidor de TraceAgent está caído, la cadena sigue ejecutándose.

Con modelos locales​

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
base_url="http://localhost:5000/v1",
api_key="not-needed",
model="local-model"
)

callback = TraceAgentLangChainCallback(run)
agent.invoke({"input": "..."}, callbacks=[callback])
tip

Define la variable de entorno OPENAI_BASE_URL para no dejar el endpoint fijo en el código.

Variables de entorno​

VariableDescripción
TRACE_AGENT_BASE_URLURL del servidor para el callback
OPENAI_BASE_URLEndpoint compatible con OpenAI para modelos locales
OPENAI_API_KEYClave de API (usa cualquier valor con modelos locales)

¿Y ahora qué?​

💬 Comentarios