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?

LangGraphで構築したAI エージェントをDatadogで監視する方法と見え方

Posted at

はじめに

今年はまさに AI Agent元年 と言える一年だったと思います。

Datadogでも運用を支援するAI Agent機能 Bits AI SRE Agent と、 AI Agentを監視する Agent Monitoring 機能 のPreview提供を7月から開始し、多くのお客様に検証、導入いただいています。
そのような中で私自身も一年を通してAI Agentど真ん中で走り抜けた一年だったと実感しています。

そこで今回は、AI Agentを監視する Agent Monitoring 機能 について、設定方法から実際の見え方までを見ていきたいと思います。

可愛い後輩くんからの圧を受けながら(!?)、プレッシャーと寒さに震えつつ頑張って書いていきたいと思います。笑
image.png

1. Agent Monitoringで何ができるか

Agent Monitoringでは、AI Agentの動作を グラフベースで可視化 できます。

以下のような観点をグラフベースで可視化することにより、ブラックボックスになりがちなAI Agentの内部処理を把握できます。

また、Datadogの LLM Observability が提供する以下のような機能も併せて活用可能です。

  • フレームグラフによる可視化
  • LLM as a judge による自動評価
  • ダッシュボードによる可視化
  • アラート通知
  • APMなど他のテレメトリーデータと紐付けた分析
  • ExperimentsやDataset, Playgroundなどの開発向け機能

これらについて実際の設定から見え方までを見ていきたいと思います。

2. 利用するサンプルアプリケーション

今回は皆さんもお手元で検証いただけるよう、アプリケーションコードがGithub上で公開されているみのるんさん「AIエージェント開発 / 運用 入門」 Chapter4(LangGraphベースのAI Agent)を使用させていただきます。(みのるんさん、いつもありがとうございます!)

対象のAI Agentは、LangGraphで構築されており、以下のToolsを呼び出して使用します。

  • TavilyエンジンによるWeb検索
  • Amazon SNS(メール通知)

対象アプリケーションのコードはこちらの2_graph_agent.pyです。

書籍自体も基礎の概念から実際に手元で動かすところまでカバーされていておすすめなので、ぜひ見てください。

image.png

3. Agent Monitoring の設定

では、実際の設定を見ていきたいと思います。
DatadogのAgent Monitoringを有効化するために必要な追加設定は たった2つ です。

3-1. Python アプリ側の設定

アプリケーションコード(2_graph_agent.py) に以下を追記します。

from ddtrace.llmobs import LLMObs

LLMObs.enable(
    ml_app=os.getenv("ML_APP_NAME"),
    api_key=os.getenv("DD_API_KEY"),
    agentless_enabled=True,
)

3-2. Datadog用環境変数を追加

.envファイルに以下を追記します。

# Datadog LLMObs用
ML_APP_NAME=<任意のアプリケーション名>
DD_API_KEY=<DatadogのAPI Key>

以上で、AI AgentのデータがDatadogに送信され、可視化されます。

なお、今回はセキュリティの観点から.envに追記する手法を取りましたが、Pythonファイルに全て直書きする形でも可能です。

from ddtrace.llmobs import LLMObs

LLMObs.enable(
    ml_app=os.getenv("<任意のアプリケーション名>"),
    api_key=os.getenv("<DatadogのAPI Key>"),
    agentless_enabled=True,
)

また、アプリケーションコードには一切手を加えずに、起動コマンドで有効化することも可能です。

DD_API_KEY=<DatadogのAPI Key DD_LLMOBS_ENABLED=1 \
DD_LLMOBS_ML_APP=<任意のアプリケーション名> ddtrace-run python 2_graph_agent.py

設定方法のオプション詳細についてはこちらの公式ガイドを参照ください。

4. 可視化される内容

Agent Monitoring を有効化すると、以下の情報が可視化されます。

  • Toolsの呼び出し状況
  • 各ステップの処理時間
  • トークン(コスト)の使用量
  • Input / Output の内容

以下が実際にサンプルアプリに対して上記設定を下だけで見える画面イメージです。
ブラックボックス化されたAI Agent の内部処理を一目で把握できます。
image.png
image.png

5. Overview Page による自動分析

LLM Observability では、データを送るだけで Overview Page が自動生成されます。

こちらの画面により、初動解析に必要な以下のような情報が自動的に整理されるため、効率的に調査できます。

  • 処理時間のボトルネック
  • エラー箇所
  • コスト最適化ポイント
  • セキュリティチェックの結果

image.png
image.png

6. LLM as a judge による自動評価

Datadog では LLM as a judge による自動評価も利用できます。
設定は次の 2 点だけです。

  1. 評価用モデルの認証情報を設定
  2. 有効化したい評価項目を選択

設定方法については以下の記事で取り上げていますので、こちらの記事のDatadog側の設定を参照ください。

試しに幾つかの評価手法を有効化します。(ここで選んだ評価手法はクリック操作で有効化可能です。)
*評価用に設定したモデルの呼び出しにはモデル側のコストが別途発生するため、その点はご注意ください。
image.png

続いてInput内容を変更してどのように自動評価されるか見ていきます。
今回のサンプルアプリ(2_graph_agent.py)はInputがハードコードされているので、書き換えます。
L70のquestion = "LangGraphの基本をやさしく解説して"を修正する形です。

例えば機密情報を引き出そうとした場合、以下のように自動でInputの悪さやPrompt Injectionの可能性を検出します。
image.png

またOverviewページに戻ってみると、アプリケーション全体の評価結果をみることができます。
image.png
image.png

さらに、クリック操作でMonitorを作成し、セキュリティリスクや予期せぬ品質低下があった場合に、通知を受け取るように設定することも可能です。
image.png
image.png

自前でLLM用の評価ロジックの作成とメンテナンスをし続けるのはなかなか大変だと思うので、モデルの指定と機能の有効化のみでここまでの機能が利用できるのはありがたい機能な気がしています。

7. APM と AI Agent の統合監視

Datadog の良さの1つとして、ここまで見てきたAI Agent の可視化と APM / Metrics / Logs などの他のデータを自動連携できる点が挙げられます。

具体的には、以下のようにPythonとしてのAPIやSNSなどの呼び出しと、LLMアプリのInput / Outputを紐付けて可視化できます。
image.png

こちらの機能を利用するためのAPMを有効化する方法を見ていきます。

7-1. Datadog Agent の導入(APM利用時飲み必要)

.env に以下を追加します。

DD_ENV=dev
DD_VERSION=1.0
DD_HOSTNAME=codespaces-taka2-datadog

*今回参考にした「AI エージェント 開発 / 運用 入門」で利用されているGithub codespaceではhostnameを指定しないとDatadog Agentがホスト名を取得できずエラーとなるため、DD_HOSTNAMEを定義していますが、通常は不要です。

Datadog Agent を起動します。

docker run -d --name datadog-agent \
  --env-file ./.env \
  -p 8126:8126 \
  -p 8125:8125/udp \
  datadog/agent

7-2. アプリケーション起動時に ddtrace-run を付与

APM を通じてトレースを送信するため、アプリ起動コマンドに ddtrace-run を付けて実行します。

ddtrace-run python 2_graph_agent.py

以上3ステップで、先ほどまで見ていたLLMの画面の中に"View in APM"というボタンが追加されます。
このボタンを押すことで、APMの画面に遷移可能です。
image.png

もしくは左ペインのAPMから直接APMのトレースデータを見ることも可能です。
image.png

外部API(今回はapi.tavily.com)やSNSなどのAWSのマネージドサービスの呼び出しを自動検出することで、把握が難しいアプリケーションが呼び出す外部サービスのパフォーマンスも合わせて確認できる点が良いです。

8. まとめ

DatadogのAgent Monitoringを活用することで、比較的簡単な設定で以下が実現できることを見てみました。

  • AI Agent の処理の可視化
  • LLM as a judge による自動評価
  • プロンプトと実行フローの分析
  • APM / Logs / Metrics を含めた統合監視

これ以外にも以下のような機能の提供がされており、AI Agentに対する幅広いニーズに応えうる機能になってきている印象です。

  • Experiments / Playground / Datasets の開発支援機能
  • クラスターマップ機能
  • AI Guard機能(現在Private Preview版として一部のお客様にのみ提供中)

興味がある場合にはこちらのページからリクエストをあげて検証してみていただけたらと思います。

イベントのご案内

12/16(木)に東京国際フォーラムで開催予定のDatadog Live Tokyoというイベントにおいて、17:05から株式会社ヌーラボ 二橋さんと一緒に、
AI Agent で実現する AIOps ― Bits AI SRE 国内活用事例 ― というタイトルでお話しさせていただく予定です。

今回ご紹介したAI Agentを可視化するのとはまた別の視点となりますが、ご興味のある方はぜひご参加いただけたらと思います。

image.png

image.png

最後までお読みいただきありがとうございました。
今年一年が皆さんにとって実りある良い一年であったら幸いです。来年も激動の一年となりそうですが、楽しみつつ乗り切っていきたいと思います!

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?