Todos os produtos
Search
Central de documentação

AgentLoop:Integre aplicações LangChain e LangGraph

Última atualização: Aug 20, 2026

A observabilidade de modelos grandes permite monitorar aplicações LangChain/LangGraph por meio do agente Python. Esse agente é uma solução proprietária da Alibaba Cloud para coleta de dados de observabilidade, com instrumentação automática baseada no padrão OpenTelemetry. Este tópico explica como conectar aplicações LangChain/LangGraph ao ARMS Application Monitoring para acompanhar o status de execução em tempo real das suas aplicações de IA.

Visão geral dos frameworks

LangChain é um framework para desenvolver aplicações impulsionadas por modelos grandes de linguagem (LLMs). Ele oferece recursos como invocação de modelos, gerenciamento de prompts, integração de ferramentas, geração aumentada por recuperação (RAG) e construção de agentes, ajudando desenvolvedores a criar rapidamente aplicações complexas com LLMs.

LangGraph é um framework de orquestração de agentes dentro do ecossistema LangChain. Ele utiliza uma estrutura de grafo para construir aplicações LLM que suportam raciocínio em múltiplas etapas e colaboração entre vários agentes, permitindo funcionalidades como fluxo de controle cíclico, gerenciamento de estado e chamadas de ferramentas.

Após a integração, os seguintes recursos são monitorados automaticamente:

  • Rastros de execução para cadeias e agentes do LangChain

  • Chamadas de LLM (nome do modelo, uso de tokens e conteúdo de entrada/saída)

  • Chamadas de ferramentas (nome da ferramenta, parâmetros e resultados retornados)

  • Rastros relacionados a recuperadores e geração aumentada por recuperação (RAG)

  • Execução e transições de estado dos nós do LangGraph

Métodos de integração

ACK e ACS

Etapa 1: Instale o ack-onepilot

  1. Faça login no . Na página Clusters, clique em no nome do cluster.

  2. No painel de navegação à esquerda, clique em em Add-ons e pesquise por ack-onepilot no canto superior direito.

  3. No cartão do ack-onepilot, clique em em Install. Configure os parâmetros — recomendamos usar os valores padrão — e clique em em OK.

    Nota

    Certifique-se de que o componente ack-onepilot esteja na versão 5.1.1 ou posterior. A versão é exibida no cartão do componente antes da instalação. Se você tiver uma versão anterior instalada, clique em em Upgrade em vez de Install.

Etapa 2: Modifique configurações para observabilidade de IA

  1. Faça login no console do Container Service for Kubernetes (ACK). No painel de navegação à esquerda, clique em em Clusters.

  2. Na página Clusters, clique em no nome do cluster desejado. No painel de navegação à esquerda, escolha Workloads > Deployments. O mesmo procedimento se aplica a StatefulSets e DaemonSets.

  3. Acesse o namespace da carga de trabalho alvo. Localize a carga de trabalho, clique em no ícone Mais p1029481 na coluna Actions e selecione Edit YAML.

  4. Adicione os seguintes labels no nível spec > template > metadata do seu arquivo YAML. Em seguida, clique em em 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

Integração manual

Etapa 1: Baixe o instalador do probe aliyun-bootstrap

Baixe o instalador do probe no PyPI.

pip3 install aliyun-bootstrap

Etapa 2: Configure variáveis de ambiente

Adicione manualmente as seguintes variáveis de ambiente à sua aplicação 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 obter a chave de licença, consulte o campo authToken na resposta da operação de API GetApplicationObservability.

Opcional: Instalação via Docker

Em ambientes Docker, modifique seu Dockerfile seguindo o exemplo abaixo.

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

Etapa 3: Instale o agente Python

  1. Para acelerar a instalação, defina o repositório espelho executando o seguinte comando:

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

    aliyun-bootstrap -a install

Etapa 4: Iniciar a aplicação

Iniciar com o agente Python do ARMS

aliyun-instrument python app.py

Código de exemplo

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)
                    

Visualize detalhes de monitoramento

  1. No console do ARMS, acesse a página LLM Application Insights > App List e clique em no nome da aplicação de IA desejada para visualizar os dados detalhados de monitoramento.

p1061009

Referências

Coletar uso de tokens em cenários de streaming

Para coletar informações de uso de tokens nas chamadas de streaming do ChatOpenAI, ative o 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.
)

Passar session_id e user_id

Ao chamar agent.invoke, passe session_id e user_id nos metadados do objeto config para habilitar análises baseadas em sessão e usuário:

result = agent.invoke(
    {"messages": [{"role": "user", "content": "Hello"}]},
    config={
        "metadata": {
            "session_id": "sess_abc123",
            "user_id": "user_456",
        },
    },
)
  • session_id: Identificador de sessão usado para correlacionar chamadas de múltiplas rodadas dentro da mesma sessão.

  • user_id: Identificador de usuário utilizado para agregação e filtragem por usuário individual.

Solucionar problemas comuns

Common issues for the Python agent