Todos los productos
Search
Centro de documentos

AgentLoop:Integración de aplicaciones LangChain y LangGraph

Última actualización: Sep 06, 2026

La observability de modelos grandes le permite monitorear aplicaciones LangChain/LangGraph mediante el uso del agente de Python. Este agente es un recopilador de datos de observability propietario de Alibaba Cloud que proporciona instrumentación automática conforme al estándar OpenTelemetry. En este documento se describe cómo conectar aplicaciones LangChain/LangGraph a ARMS Application Monitoring para comprender el estado de ejecución en tiempo real de sus aplicaciones de IA.

Descripción general del framework

LangChain es un framework para desarrollar aplicaciones impulsadas por modelos de lenguaje grandes (LLM). Ofrece funciones como invocación de modelos, gestión de prompts, integración de herramientas, generación aumentada por recuperación (RAG) y construcción de agentes, lo que permite a los desarrolladores crear rápidamente aplicaciones LLM complejas.

LangGraph es un framework de orquestación de agentes dentro del ecosistema LangChain. Utiliza una estructura de grafos para construir aplicaciones LLM que admiten razonamiento en varios pasos y colaboración entre múltiples agentes, lo que habilita funciones como flujo de control cíclico, gestión de estado y llamadas a herramientas.

Una vez completada la integración, se monitorean automáticamente las siguientes capacidades:

  • Trazas de ejecución para cadenas y agentes de LangChain

  • Llamadas a LLM (nombre del modelo, uso de token y contenido de entrada/salida)

  • Llamadas a herramientas (nombre de la herramienta, parámetros y resultados devueltos)

  • Trazas relacionadas con recuperadores y generación aumentada por recuperación (RAG)

  • Ejecución y transiciones de estado de los nodos de LangGraph

Métodos de integración

ACK y ACS

Paso 1: Instale ack-onepilot

  1. Inicie sesión en la . En la página Clusters, haga clic en el nombre del clúster.

  2. En el panel de navegación izquierdo, haga clic en Add-ons y, a continuación, busque ack-onepilot en la esquina superior derecha.

  3. En la tarjeta ack-onepilot, haga clic en Install. Configure los parámetros (se recomienda mantener los valores predeterminados) y, después, haga clic en OK.

    Nota

    Asegúrese de que el componente ack-onepilot tenga la versión 5.1.1 o posterior. La versión se muestra en la tarjeta del componente antes de la instalación. Si ya cuenta con una versión anterior instalada, haga clic en Upgrade en lugar de Install.

Paso 2: Modifique las configuraciones para AI observability

  1. Inicie sesión en la Container Service for Kubernetes (ACK) console. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre del clúster de destino. En el panel de navegación izquierdo, elija Workloads > Deployments. El mismo procedimiento aplica para StatefulSets y DaemonSets.

  3. Vaya al espacio de nombres de la carga de trabajo de destino. Localice la carga de trabajo, haga clic en el ícono More p1029481 en la columna Actions y, a continuación, seleccione Edit YAML.

  4. Agregue las siguientes labels al nivel spec > template > metadata en su archivo YAML. Después, haga clic en Update.

    labels:
      aliyun.com/app-language: python # Required for Python applications. Specifies that this is a Python application.
      armsPilotAutoEnable: 'on'
      armsPilotCreateAppName: "deployment-name"    # The display name of the application in ARMS.

    image

Integración manual

Paso 1: Descargue el instalador del probe aliyun-bootstrap

Descargue el instalador del probe desde PyPI.

pip3 install aliyun-bootstrap

Paso 2: Configure las variables de entorno

Debe agregar manualmente las siguientes variables de entorno para su aplicación de Python:

# Method 1: Add environment variables for all processes in the current shell.
export ARMS_APP_NAME=xxx   # The application name.
export ARMS_REGION_ID=xxx   # The region ID of your Alibaba Cloud account.
export ARMS_LICENSE_KEY=xxx   # Your Alibaba Cloud license key.
# Method 2: Set environment variables for a single process
ARMS_APP_NAME=xxx ARMS_REGION_ID=xxx ARMS_LICENSE_KEY=xxx aliyun-instrument xxx.py

Para obtener la clave de licencia, consulte el campo authToken en la respuesta de la operación de API GetApplicationObservability.

Opcional: Instalación en Docker

Para entornos Docker, modifique su Dockerfile con base en el siguiente ejemplo.

# Add environment variables
ENV ARMS_APP_NAME={AppName}
ENV ARMS_REGION_ID={regionId}
ENV ARMS_LICENSE_KEY={licenseKey}
## Original environment

Paso 3: Instale el agente de Python

  1. Para acelerar la instalación, configure el repositorio espejo ejecutando el siguiente comando:

    pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ && pip config set install.trusted-host mirrors.aliyun.com
  2. Instale el agente.

    aliyun-bootstrap -a install

Paso 4: Inicie la aplicación

Inicio con el agente de Python de ARMS

aliyun-instrument python app.py

Código de ejemplo

import os
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
from langchain_core.tools import tool
@tool
def get_weather(city: str) -> str:
    """Get weather information for a specified city"""
    weather_data = {"Beijing": "Sunny 25°C", "Shanghai": "Cloudy 22°C", "Hangzhou": "Light rain 20°C"}
    return weather_data.get(city, f"{city}: No weather data available")
@tool
def search_product(keyword: str) -> str:
    """Search product information by keyword"""
    products = {
        "ECS": "Elastic Compute Service, providing secure and reliable cloud servers",
        "RDS": "Relational Database Service, supports MySQL/PostgreSQL/SQL Server",
        "OSS": "Object Storage Service, massive, secure, and highly reliable cloud storage",
    }
    return products.get(keyword, f"No product found for '{keyword}'")
llm = ChatOpenAI(
    model="qwen-plus",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    api_key=os.environ.get("DASHSCOPE_API_KEY"),
    streaming=True,
    stream_usage=True,  # When enabled, streamed responses include token usage
)
agent = create_react_agent(llm, tools=[get_weather, search_product])
result = agent.invoke({"messages": [{"role": "user", "content": "What's the weather like in Beijing today? Also look up what ECS is as a product"}]})
for msg in result["messages"]:
    if msg.content:
        print(msg.content)
                    

Consulte los detalles del monitoreo

  1. En la ARMS console, vaya a la página LLM Application Insights > App List y haga clic en el nombre de su aplicación de IA de destino para consultar los datos detallados del monitoreo.

p1061009

Referencias

Recopile el uso de token en escenarios de streaming

Para recopilar información sobre el uso de token a partir de llamadas de streaming de ChatOpenAI, habilite el parámetro stream_usage:

llm = ChatOpenAI(
    model="qwen-plus",
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    api_key=os.environ.get("DASHSCOPE_API_KEY"),
    streaming=True,
    stream_usage=True,  # When enabled, streamed responses include token usage.
)

Pase session_id y user_id

Al llamar a agent.invoke, puede pasar session_id y user_id en los metadatos del objeto config para habilitar el análisis basado en sesión y usuario:

result = agent.invoke(
    {"messages": [{"role": "user", "content": "Hello"}]},
    config={
        "metadata": {
            "session_id": "sess_abc123",
            "user_id": "user_456",
        },
    },
)
  • session_id: Identificador de sesión que se utiliza para correlacionar llamadas de varios turnos dentro de la misma sesión.

  • user_id: Identificador de usuario que se emplea para la agregación y el filtrado por usuario.

Solución de problemas comunes

Common issues for the Python agent