Observabilitas model besar memungkinkan Anda memantau aplikasi LangChain/LangGraph menggunakan agen Python. Agen Python adalah agen pengumpulan data observabilitas eksklusif dari Alibaba Cloud yang menyediakan instrumentasi otomatis berdasarkan standar OpenTelemetry. Topik ini menjelaskan cara menghubungkan aplikasi LangChain/LangGraph ke ARMS Application Monitoring untuk memahami status berjalan waktu nyata aplikasi AI Anda.
Ikhtisar framework
LangChain adalah framework untuk mengembangkan aplikasi yang didukung oleh model bahasa besar (LLM). Framework ini menyediakan kemampuan seperti pemanggilan model, manajemen prompt, integrasi tool, Generasi yang Diperkaya dengan Pengambilan Data (RAG), serta pembuatan agen untuk membantu developer membangun aplikasi LLM kompleks secara cepat.
LangGraph adalah framework orkestrasi agen dalam ekosistem LangChain. Framework ini menggunakan struktur graf untuk membangun aplikasi LLM yang mendukung penalaran multi-langkah dan kolaborasi multi-agen, sehingga memungkinkan fitur seperti alur kendali siklik, manajemen state, dan pemanggilan tool.
Setelah integrasi, kemampuan berikut dipantau secara otomatis:
-
Jejak eksekusi untuk rantai dan agen LangChain
-
Pemanggilan LLM (nama model, penggunaan token, dan konten input/output)
-
Pemanggilan tool (nama tool, parameter, dan hasil kembaliannya)
-
Jejak terkait retriever dan Generasi yang Diperkaya dengan Pengambilan Data (RAG)
-
Eksekusi dan transisi state node LangGraph
Metode integrasi
ACK dan ACS
Langkah 1: Instal ack-onepilot
-
Masuk ke . Pada halaman Clusters, klik nama kluster tersebut.
-
Di panel navigasi sebelah kiri, klik Add-ons, lalu cari ack-onepilot di pojok kanan atas.
-
Pada kartu ack-onepilot, klik Install. Konfigurasikan parameter—kami menyarankan menggunakan nilai default—lalu klik OK.
CatatanPastikan komponen ack-onepilot berada pada versi 5.1.1 atau lebih baru. Versi ditampilkan pada kartu komponen sebelum instalasi. Jika Anda telah menginstal versi yang lebih lama, klik Upgrade alih-alih Install.
Langkah 2: Modifikasi konfigurasi untuk observabilitas AI
-
Masuk ke Container Service for Kubernetes (ACK) console. Di panel navigasi sebelah kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster target. Di panel navigasi sebelah kiri, pilih . Prosedur yang sama berlaku untuk StatefulSets dan DaemonSets.
-
Buka namespace workload target Anda. Temukan workload tersebut, klik ikon More
di kolom Actions, lalu pilih Edit YAML. -
Tambahkan
labelsberikut ke level spec > template > metadata pada file YAML Anda. Kemudian, klik Update.labels: aliyun.com/app-language: python # Wajib untuk aplikasi Python. Menentukan bahwa ini adalah aplikasi Python. armsPilotAutoEnable: 'on' armsPilotCreateAppName: "deployment-name" # Nama tampilan aplikasi di ARMS.
Integrasi manual
Langkah 1: Unduh installer probe aliyun-bootstrap
Unduh installer probe dari PyPI.
pip3 install aliyun-bootstrap
Langkah 2: Konfigurasikan variabel lingkungan
Anda harus menambahkan secara manual variabel lingkungan berikut untuk aplikasi Python Anda:
# Metode 1: Tambahkan variabel lingkungan untuk semua proses di shell saat ini.
export ARMS_APP_NAME=xxx # Nama aplikasi.
export ARMS_REGION_ID=xxx # ID wilayah Akun Alibaba Cloud Anda.
export ARMS_LICENSE_KEY=xxx # Kunci lisensi Alibaba Cloud Anda.# Metode 2: Atur variabel lingkungan untuk satu proses
ARMS_APP_NAME=xxx ARMS_REGION_ID=xxx ARMS_LICENSE_KEY=xxx aliyun-instrument xxx.py
Anda dapat memperoleh kunci lisensi dengan memanggil operasi API. Untuk informasi selengkapnya, lihat bidang authToken dalam tanggapan operasi GetApplicationObservability.
Opsi: Instalasi Docker
Untuk lingkungan Docker, modifikasi Dockerfile Anda berdasarkan contoh berikut.
# Tambahkan variabel lingkungan
ENV ARMS_APP_NAME={AppName}
ENV ARMS_REGION_ID={regionId}
ENV ARMS_LICENSE_KEY={licenseKey}
## Lingkungan asli
Langkah 3: Instal agen Python
-
Untuk mempercepat instalasi, atur repositori mirror dengan menjalankan perintah berikut:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ && pip config set install.trusted-host mirrors.aliyun.com -
Instal agen tersebut.
aliyun-bootstrap -a install
Langkah 4: Jalankan aplikasi
Mulai dengan Agen Python ARMS
aliyun-instrument python app.py
Kode contoh
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:
"""Dapatkan informasi cuaca untuk kota tertentu"""
weather_data = {"Beijing": "Cerah 25°C", "Shanghai": "Berawan 22°C", "Hangzhou": "Hujan ringan 20°C"}
return weather_data.get(city, f"{city}: Data cuaca tidak tersedia")
@tool
def search_product(keyword: str) -> str:
"""Cari informasi produk berdasarkan kata kunci"""
products = {
"ECS": "Elastic Compute Service, menyediakan server cloud yang aman dan andal",
"RDS": "Relational Database Service, mendukung MySQL/PostgreSQL/SQL Server",
"OSS": "Object Storage Service, penyimpanan cloud berskala besar, aman, dan sangat andal",
}
return products.get(keyword, f"Tidak ditemukan produk untuk '{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, # Saat diaktifkan, respons streaming mencakup penggunaan token
)
agent = create_react_agent(llm, tools=[get_weather, search_product])
result = agent.invoke({"messages": [{"role": "user", "content": "Bagaimana cuaca di Beijing hari ini? Juga cari tahu apa itu ECS sebagai produk"}]})
for msg in result["messages"]:
if msg.content:
print(msg.content)
Lihat detail pemantauan
-
Di Konsol ARMS, buka halaman LLM Application Insights > App List, lalu klik nama aplikasi AI target Anda untuk melihat data pemantauan terperinci.

Referensi
Kumpulkan token usage dalam skenario streaming
Untuk mengumpulkan informasi penggunaan token dari pemanggilan streaming ChatOpenAI, aktifkan parameter 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, # Saat diaktifkan, respons streaming mencakup penggunaan token.
)
Kirim session_id dan user_id
Saat memanggil agent.invoke, Anda dapat mengirimkan session_id dan user_id dalam objek metadata konfigurasi untuk mengaktifkan analisis berbasis sesi dan pengguna:
result = agent.invoke(
{"messages": [{"role": "user", "content": "Halo"}]},
config={
"metadata": {
"session_id": "sess_abc123",
"user_id": "user_456",
},
},
)
-
session_id: Identifikasi sesi yang digunakan untuk menghubungkan pemanggilan multi-turn dalam sesi yang sama. -
user_id: Identifikasi pengguna yang digunakan untuk agregasi dan penyaringan per pengguna.