その他のエージェント AI フレームワークの探索
15 minutesこのワークショップの前のセクションでは、LangChain と LangGraph を使用して構築されたエージェント AI アプリケーションを OpenTelemetry で計装することに焦点を当てました。
このセクションでは、範囲を広げてその他の一般的なエージェント AI フレームワークを取り上げ、利用可能な計装アプローチの概要を説明します。
大まかに言うと、エージェント AI アプリケーションを OpenTelemetry で計装するには2つの主要なオプションがあります。最適なアプローチは、使用するフレームワークとアプリケーションに既存の計装が含まれているかどうかによって異なります。
適切な計装アプローチの選択
オプション 1: Splunk OpenTelemetry 計装(利用可能な場合に推奨)
Splunk は、以下を含む広く使用されているエージェント AI フレームワーク向けに OpenTelemetry 計装パッケージを提供しています:
- CrewAI
- LangChain/LangGraph
- LlamaIndex
- OpenAI SDK
- OpenAI Agents SDK
このオプションを使用する場合
以下の場合にこのアプローチを選択します:
- アプリケーションが上記のフレームワークのいずれかを使用している場合。
- 最小限の設定で Splunk Observability Cloud 向けに最適化された OpenTelemetry 計装が必要な場合。
- ゼロコードの計装体験を希望する場合。
仕組み
Zero-code instrumentation integrations の手順に従ってアプリケーションを計装します。
フレームワークによっては、以下が必要になる場合があります:
- 追加の Splunk OpenTelemetry パッケージのインストール
- 以下のようなオプション機能を有効にするための特定の環境変数の設定:
- LLM のプロンプトと補完のキャプチャ
- LLM レスポンスのセマンティック品質の評価
- Cisco AI Defense との統合
注: これは、ワークショップの前半で LangChain と LangGraph に使用したアプローチと同じであり、オプションのプロンプトおよび補完キャプチャも含まれています。
オプション 2: サードパーティ計装ライブラリ
フレームワークが Splunk OpenTelemetry 計装で直接サポートされていない場合は、より広範なフレームワークカバレッジを提供するサードパーティライブラリを使用できます。
一般的に使用されるサードパーティ計装ライブラリには以下があります:
このオプションを使用する場合
このアプローチは以下の場合に適しています:
- アプリケーションがオプション 1 に記載されていないエージェント AI フレームワークを使用している場合
- アプリケーションがサードパーティ計装ライブラリですでに計装されている場合
- 既存のコードの再計装を避けたい場合
仕組み
サードパーティライブラリは通常、独自のフォーマットまたは以前の OpenTelemetry スキーマでテレメトリを出力します。このデータを Splunk Observability Cloud と統合するには:
- 出力されたテレメトリを最新の OpenTelemetry セマンティック規約に変換する変換レイヤーを有効にします。
- OpenTelemetry Collector を以下のように設定します:
- 変換されたデータを受信する
- Splunk Observability Cloud にエクスポートする
手順の詳細については、以下を参照してください: Translate and collect data from AI applications instrumented with third-party libraries
まとめ
| シナリオ | 推奨オプション |
|---|---|
| サポートされているフレームワーク、最小限のセットアップ | Splunk OpenTelemetry 計装 |
| サポートされていないフレームワーク | サードパーティ計装ライブラリ |
| 既存のサードパーティ計装 | サードパーティ + OpenTelemetry 変換 |
CrewAI の例
CrewAI を使用した例を見ていきましょう。ワークショップで使用してきた旅行プランナーアプリケーションは、CrewAI を使用して書き直されています。ソースコードは ~/workshop/agentic-ai/crewai フォルダにあります。
CrewAI は宣言的なアプローチを使用してエージェントとタスクを定義することに注意してください。例えば、~/workshop/agentic-ai/crewai/config/agents.yaml ファイルでは、以下のようなエージェントが定義されています:
また、~/workshop/agentic-ai/crewai/config/tasks.yaml ファイルでは、以下のようなタスクが定義されています:
CrewAI アプリケーションを計装するために、以下のパッケージが requirements.txt ファイルに追加されていることに注目してください:
CrewAI の例をデプロイする
まず、新しい Docker イメージをビルドして CrewAI の例をデプロイしましょう:
このバージョンのアプリケーションには別の環境名を使用しましょう:
次に、以下のようにマニフェストファイルを使用して CrewAI アプリケーションをデプロイします:
Kubernetes でアプリケーションをテストする
新しいアプリケーション Pod が正常に起動し、古い Pod が存在しないことを確認します:
次に、以下のコマンドを実行してアプリケーションをテストします:
Splunk Observability Cloud でデータを表示する
Splunk Observability Cloud に戻り、CrewAI アプリケーションのトレースを表示しましょう。
APM に移動し、AI agents を選択します。環境名が選択されていることを確認してください(例: agentic-ai-crewai-$INSTANCE)。エージェント名が若干異なることに気づくでしょう:
APM -> AI trace data に移動し、最新のトレースを読み込みます。
トレースには、LangChain/LangGraph バージョンのアプリケーションでキャプチャしたものと同様の詳細が表示されるはずです:
CrewAI のトレースと LangChain/LangGraph のトレースで異なる点に気づきましたか?
ここをクリックして回答を表示
いくつかの違いがあります:
- エージェント名が異なります(
Hotel Booking Specialistとhotel_specialist) - CrewAI バージョンでは coordinator と plan synthesizer エージェントが表示されません
crewai推定サービスのスパンには、ウォーターフォールビューの一部としてエージェントの指示が含まれています

