1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Instana × Traceloop で LangGraph + Gemini OSS Agent を可視化してみた

Last updated at Posted at 2025-06-05

2025年6月にGoogleから公開されたgemini-fullstack-langgraph-quickstartを題材に、LangGraph × Traceloop SDK を導入し、Instana UI でAI Agentのトレースを可視化する構成を検証してみました。

本記事ではLangGraphの基本、実装例、Instanaでの可視化内容まで含め、再現手順を詳しく紹介します。

🧠 LangGraphとは?+簡単な使い方

LangGraphはLangChainベースのエージェントフローを「状態遷移グラフ(Stateful Graph)」として構築できるライブラリです。

LangGraphでは以下のようなノードを定義し、複数の思考プロセス(例:検索→内省→回答生成)をフロー化することができます。

🧪 簡単な実装例

以下はユーザーの質問に対して、Google Search→ Reflection→ Answerの流れを行うLangGraph定義例です:

from langgraph.graph import StateGraph
from my_nodes import generate_query, web_research, reflection, finalize_answer

graph = StateGraph()
graph.add_node("generate_query", generate_query)
graph.add_node("web_research", web_research)
graph.add_node("reflection", reflection)
graph.add_node("finalize_answer", finalize_answer)

graph.set_entry_point("generate_query")
graph.set_finish_point("finalize_answer")
graph.add_edge("generate_query", "web_research")
graph.add_edge("web_research", "reflection")
graph.add_edge("reflection", "finalize_answer")

runnable = graph.compile()

LangGraph Studio(http://127.0.0.1:2024/)で可視化すると以下のように表示されます:

🖼️ フロービジュアル(例):

  • generate_query → web_research → reflection → finalize_answer

⚙️ 今回検証に使うGemini-fullstack-langgraph-quickstart構成と使用OSS

  • Frontend: React + Vite
  • Backend: FastAPI + LangGraph + Gemini API
  • Observability: Traceloop SDK + OTLP + Instana Agent
  • 可視化: Instana UI によるトレース

参考リポジトリ:https://github.com/google-gemini/gemini-fullstack-langgraph-quickstart

使用パッケージ:

langgraph>=0.2.6
langchain>=0.3.19
langchain-google-genai
fastapi
google-genai
traceloop-sdk

🛠️ セットアップ&起動手順(抜粋)

  1. Git clone & venv作成:
git clone https://github.com/google-gemini/gemini-fullstack-langgraph-quickstart.git
cd gemini-fullstack-langgraph-quickstart
python3.11 -m venv venv3.11
source venv3.11/bin/activate

2.1 gemini-fullstack-langgraph-quickstartフォルダの直下に.env ファイルを作成する。関連APIキー、Instana Agentキーを設定する

GEMINI_API_KEY=xxx
LANGSMITH_API_KEY=xxx
TRACELOOP_BASE_URL=http://localhost:4318
TRACELOOP_HEADERS=x-instana-key=xxxxx
OTEL_EXPORTER_OTLP_INSECURE=false

2.2 pyproject.tomlにdependenciesのところでtraceloop-sdkを追加する

dependencies = [
    "langgraph>=0.2.6",
    "langchain>=0.3.19",
    "langchain-google-genai",
    "python-dotenv>=1.0.1",
    "langgraph-sdk>=0.1.57",
    "langgraph-cli",
    "langgraph-api",
    "fastapi",
    "google-genai",
    "traceloop-sdk>=0.40.7,<0.41.0",
]

2.3. Traceloop SDK 初期化(backend/src/agent/graph.py)及び@Taskの計装

from traceloop.sdk import Traceloop
from traceloop.sdk.decorators import task

Traceloop.init(app_name="gemini_fullstack_langgraph_service", disable_batch=True)

# Nodes
@task(name="tk_generate_query")
def generate_query(state: OverallState, config: RunnableConfig) -> QueryGenerationState:
.....

@task(name="tk_continue_to_web_research")
def continue_to_web_research(state: QueryGenerationState):
.....

@task(name="tk_web_research")
def web_research(state: WebSearchState, config: RunnableConfig) -> OverallState:
.....

@task(name="tk_reflection")
def reflection(state: OverallState, config: RunnableConfig) -> ReflectionState:
.....

@task(name="tk_evaluate_research")
def evaluate_research(
    state: ReflectionState,
    config: RunnableConfig,
) -> OverallState:
.....

@task(name="tk_finalize_answer")
def finalize_answer(state: OverallState, config: RunnableConfig):
.....

3.パッケージインストール

Backend

cd gemini-fullstack-langgraph-quickstart/backend
pip install .

Frontend

cd gemini-fullstack-langgraph-quickstart/frontend
npm install

4.Instanaドキュメントに沿ってInstana Agentインストールいただければと思います。

Instana の OpenTelemetry 設定
configuration.yaml に以下を追加:

com.instana.plugin.opentelemetry:
  enabled: true

エージェントを再起動:

sudo systemctl restart instana-agent.service
netstat -ano | grep 4318

0.0.0.0:4318 が表示されれば成功!


5.Gemini-fullstack-langgraph-quickstart起動

cd gemini-fullstack-langgraph-quickstart
make dev

Langsmith及びFrontend UIでの確認

1.make devを実行した後で自動的にLangGraph Studio画面を開きます:
https://smith.langchain.com/studio/thread?baseUrl=http%3A%2F%2F127.0.0.1%3A2024&mode=graph
Screenshot 2025-06-05 at 15.07.11.png

2.次にhttp://localhost:5173/app/URLを入力し、Frontendを開いて、適当にPrompt入力し、Searchボタンを押します。

Screenshot 2025-06-05 at 15.12.01.png
Screenshot 2025-06-05 at 15.13.43.png


実行結果:Instana UIでの可視化

🖥️ Instanaで可視化される内容

  1. Instana UI にログイン
  2. 「アプリケーション」 > 「サービス」 > gemini_fullstack_langgraph_service を選択
  3. 「呼び出しの分析」でトレースの詳細を確認
    図1
    Screenshot 2025-06-05 at 16.42.48.png

図2
Screenshot 2025-06-05 at 16.43.29.png

図3
Screenshot 2025-06-05 at 16.43.51.png
Screenshot 2025-06-05 at 18.12.41.png


まとめ

LangGraph × Traceloop × Instanaの連携により、AIエージェントの実行フローを「リアルタイムでトレース & 可視化」できます。とくにLangGraphのような分岐・ステート型AIシステムでは、トレースベースの監視が非常に有効です。

Reference Links

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?