監視 LangGraph
LangGraph は、ステートフルなマルチエージェントワークフローを構築するために使用できるフレームワークです LangChain。 LangGraph 大規模言語モデル(LLM)である WatsonX,OpenAI, や Claude と統合します。
Instanaを使用して LangGraph 監視し、トレース、メトリクス、ログをキャプチャできます。 このデータは、AIエージェントの対話、実行パス、およびシステムパフォーマンスに関するリアルタイムの洞察を提供します。
LangGraph 非線形実行によるマルチエージェントワークフローを実現する。 したがって、LLMの相互作用とAPI呼び出しを追跡するには、分散トレースが必要です。 (OTel)と OpenTelemetry Traceloopを統合することで、ワーク OpenLLMetry, フローに LangGraph 計測機能を組み込み、スパンとトレースをキャプチャできます。これにより、Instana内で実行フローを可視化することが可能になります。 リアルタイムの可観測性は、リソース利用率とパフォーマンスの傾向を分析することで、ワークフローの最適化をさらに強化します。 この統合により、AI駆動の自動化を微調整することが可能となり、アプリケーション LangGraph-based の信頼性と効率性が向上します。
アプリケーションの LangGraph 計測
アプリケーションを LangGraph 計測するには、次の手順を完了してください:
環境がすべての前提条件を満たしていることを確認してください。 詳細については、 「前提条件」 を参照してください。
依存関係をインストールするには、次のコマンド LangGraph, を実行してください:
pip3 install langgraph langchain_ibm duckduckgo_searchサンプル LangGraph アプリケーションで使用されているモデルと WatsonX 検索ツールにアクセスするための以下の認証情報をエクスポートします。
export WATSONX_URL="<watsonx-url>" export WATSONX_PROJECT_ID="<watsonx-project-id>" export WATSONX_API_KEY="<watsonx-api-key>" export TAVILY_API_KEY="<tavily-api-key>"以下のコードを実行してサンプル LangGraph アプリケーションを生成します:
import os from langchain_community.tools.tavily_search import TavilySearchResults from langchain_community.tools import DuckDuckGoSearchRun from typing import Literal from langchain_core.messages import BaseMessage, HumanMessage from langgraph.prebuilt import create_react_agent from langgraph.graph import MessagesState, StateGraph, START, END from langgraph.types import Command from langchain_ibm.chat_models import ChatWatsonx from traceloop.sdk import Traceloop from traceloop.sdk.decorators import workflow # Initialize Traceloop Traceloop.init(app_name="langGraph_sample_app") # Define external tools tavily_tool = TavilySearchResults(max_results=10) duckDuckGoSearchRun_tool = DuckDuckGoSearchRun() # Define LLM parameters = { "decoding_method": "sample", "max_new_tokens": 600, "min_new_tokens": 1, "temperature": 0.5, "top_k": 50, "top_p": 1, } llm = ChatWatsonx( model_id="ibm/granite-3-2b-instruct", url="https://us-south.ml.cloud.ibm.com", project_id=os.getenv("WATSONX_PROJECT_ID"), apikey=os.getenv("WATSONX_API_KEY"), params=parameters, ) def get_next_node(last_message: BaseMessage, goto: str): if not last_message.content: return END return goto # Research agent and node research_agent = create_react_agent( llm, tools=[tavily_tool], state_modifier="You are a research assistant. Your ONLY job is to conduct thorough research. ", ) def research_node( state: MessagesState, ) -> Command[Literal["blogger", END]]: result = research_agent.invoke(state) goto = get_next_node(result["messages"][-1], "blogger") result["messages"][-1] = HumanMessage( content=result["messages"][-1].content, name="researcher" ) return Command( update={ "messages": result["messages"], }, goto=goto, ) # Writer agent and node writer_agent = create_react_agent( llm, tools=[duckDuckGoSearchRun_tool], state_modifier="You are a blog writer. Your task is to create a well-structured blog", ) def writer_node(state: MessagesState) -> Command[Literal["researcher", END]]: result = writer_agent.invoke(state) result["messages"][-1] = HumanMessage( content=result["messages"][-1].content, name="blogger" ) return Command( update={ "messages": result["messages"], }, ) # Define workflow graph workflow = StateGraph(MessagesState) workflow.add_node("researcher", research_node) workflow.add_node("blogger", writer_node) workflow.add_edge(START, "researcher") graph = workflow.compile() # Execute workflow events = graph.stream( { "messages": [ ( "user", "First, conduct a research on AI trend in 2025 " "Then, based on that research, create a well-structured blog post.", ) ], }, {"recursion_limit": 150}, ) # Print workflow execution steps for s in events: print(s) print("----")アプリケーション LangChain を実行するには、次のコマンドを実行してください:
python3 ./<langGraph-sample-application>.py
LangGraph 以下の例に示すような応答を生成します:

監視を設定すると、Instanaはアプリケーション LangGraph から以下のトレースとメトリクスを収集します:

LLMから収集されたメトリクスを確認するには、[ メトリクスの表示] を LangGraph, 参照してください。