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×LangSmithで始めるAIワークフロー管理入門

Posted at

1. はじめに

1.1 AIワークフロー管理の重要性

近年、LLM(大規模言語モデル)を活用したアプリケーションは急速に普及しています。しかし、LLMは非決定論的な応答を返す性質や、複数の外部ツール・APIと組み合わせる複雑さゆえに、単純なコード構造では運用やデバッグが難しくなりがちです。これを「ウォーターフォール」的に一方向だけで処理を流すと、どこで何が起きたか追跡できず、品質や信頼性の担保も困難です。そのため、複数ステップにまたがる会話の文脈保持やエージェント同士の協調、実行パスの可視化・検証といった観点でのワークフロー管理が、AIアプリの成功には欠かせません。

1.2 LangChainエコシステムの位置づけ

LangChainは、LLMを扱う際の「入出力管理」「プロンプト設計」「モデル連携」を一貫して支援するOSSフレームワークです。これを基盤として、さらに高度なオーケストレーションや観測性(Observability)、評価(Evals)機能を提供するのがLangGraphLangSmithです。LangGraphが「どう動くか」を制御・管理し、LangSmithが「何が起きたか」を記録・分析する役割を担うことで、開発から運用までの一連のライフサイクルがスムーズになります。


2. LangGraphとは何か

2.1 LangGraphの概要

LangGraphは、LangChain社が開発するステートフルなエージェントオーケストレーションフレームワークです。従来のLangChainが直線的な「チェーン」処理を得意とするのに対し、LangGraphは複数のエージェント(またはチェーン)をグラフ構造で連携させ、条件分岐やループ、階層型ワークフローを表現できます。これにより、リアルワールドの複雑なタスクを可読性高く実装・管理できます。

2.2 LangGraphが得意とするシナリオ

  • 複数エージェントの協調
    専門性の異なるAIエージェントA→B→Cといったパイプライン処理や、Aが収集した情報をBが要約し、Cが承認を行うといった「役割分担型AIチーム」の構築に最適です。
  • 長期の文脈保持
    会話履歴や外部データをグラフ全体の状態として保持し、セッションを跨いだやり取りでも自然な文脈を維持できます。
  • 複雑フローの制御
    単純なシーケンス処理だけでなく、条件分岐や再試行、タイムトラベル(途中からやり直し)機能を活用し、堅牢なワークフローを実装可能です。

3. LangGraphの主要機能

3.1 ステートフルワークフロー(文脈保持)

LangGraphは各エージェントの内部状態や会話履歴を自動管理します。グラフ全体で共通のメモリを持つことで、複数ステップにわたる情報を一元的に参照・更新し、長期的なユーザー体験を実現します。

3.2 マルチエージェント&階層型制御

「単一」「並列」「階層」など多様な制御フローを一つのフレームワークで設計できます。Apache BeamやPregelに着想を得たインターフェースで、ノード(エージェント処理)とエッジ(情報の流れ)を直感的に定義可能です。

3.3 ヒューマン・イン・ザ・ループ

LangGraphには、人間が途中で介入できるチェックポイント機能があります。AIが生成したドラフトをレビュー・修正したり、エラー時に一時停止して状態を巻き戻したりできるため、品質管理が容易になります。

3.4 Studioによる可視化とデバッグ

専用のLangGraph Studioでは、グラフ構造をGUI上で確認・編集でき、実行時には各ステップの入出力を可視化。複雑なワークフローも一目で把握できるため、バグ検出や最適化がスムーズです。


4. LangGraphの導入と基本操作

4.1 インストールと環境準備

Python環境では、以下のコマンド一発で導入できます。

pip install -U langgraph

また、LangChainとの連携やAnthropicモデル呼び出しには追加で pip install -qU "langchain[anthropic]" が必要です。

4.2 単純なエージェント作成例

以下は、天気情報取得ツールを組み込んだ簡単なREACTエージェントの例です。

from langgraph.prebuilt import create_react_agent

def get_weather(city: str) -> str:
    return f"It's always sunny in {city}!"

agent = create_react_agent(
    model="anthropic:claude-3-7-sonnet-latest",
    tools=[get_weather],
    prompt="You are a helpful assistant"
)

response = agent.invoke({"messages":[{"role":"user","content":"What is the weather in Tokyo?"}]})
print(response)

このように、ツール呼び出しとLLMの応答をシームレスに組み合わせられます。

4.3 Studioでのワークフロー設計

  1. langgraph dev コマンドでローカルサーバを起動
  2. ブラウザで表示されたStudio UIにアクセス
  3. ノードとエッジをドラッグ&ドロップで配置し、各ノードに処理ロジックを紐付け
  4. 実行結果をステップごとに確認・デバッグ

これにより、コードとビジュアルの両面からワークフローを設計できます。


5. LangSmithとは何か

5.1 LangSmithの概要

LangSmithは、LLMアプリの**オブザーバビリティ(観測性)とEvals(評価)を一体的に提供するプラットフォームです。実行時のトレース(各ステップの入出力やツール呼び出し)を自動的に収集し、ダッシュボードで可視化。さらに、収集したデータをもとに自動/人手評価を行い、モデルやプロンプトの品質向上に活用できます。

5.2 なぜ観測(Observability)が必要か

LLMはバッチ処理ではなくリアルタイム対話が主体のため、従来のログ・メトリクスだけでは「どのプロンプトが原因で誤答したか」「どのAPI呼び出しで遅延が発生したか」などを特定しづらいです。LangSmithはツール呼び出しや関数実行まで含む詳細トレースを可視化し、ビジネスメトリクスと組み合わせて問題箇所の早期発見を助けます。


6. LangSmithの主要機能

6.1 トレース収集(入力・出力の自動記録)

SDKを組み込むだけで、LLMへの全リクエストと各ステップの結果がLangSmithに送信されます。OpenTelemetry準拠のため、他の監視ツールとも統合可能です。

6.2 ダッシュボード監視(コスト・レイテンシ・エラー率)

リアルタイムでリクエスト数/応答遅延/エラー率/コストなどのKPIをダッシュボードにまとめ、閾値超過時には通知を設定できます。運用中のサービス品質を一元管理可能です。

6.3 Evalsによるモデル評価

収集したトレースをデータセット化し、LLM-as-Judgeによる自動採点や、PM・ドメイン専門家による人手評価を実行。定量的なスコアリングで、モデルやプロンプトの改善ポイントを明確化します。

6.4 プロンプト管理&比較

Prompt Canvas機能で複数バージョンのプロンプトをチーム内で比較し、推薦コメントを付与。ヒストリーが自動保存されるため、ベストプラクティスの蓄積と共有が容易です。


7. LangSmithの導入と基本操作

7.1 アカウント作成とAPIキー設定

  1. LangSmith公式サイトで無料アカウント登録
  2. 設定ページからユニークなAPIキーを発行し、ローカル環境に保管(再表示不可)

7.2 SDKインストールと環境変数

pip install -U langsmith
export LANGSMITH_TRACING=true
export LANGSMITH_API_KEY=<YOUR_LANGSMITH_API_KEY>

(リージョン指定が必要な場合は LANGSMITH_ENDPOINT も設定)

7.3 トレースの有効化方法

LangChainと組み合わせる場合は、環境変数設定後に通常通りチェーンやエージェントを実行するだけで自動トレースが開始されます。LangSmith非依存時でも、@traceable デコレータで任意の関数呼び出しを記録できます。

7.4 評価ジョブの実行とダッシュボード設定

LangSmith UI上で「Evaluation」を作成し、トレースを紐づけた後、LLM-as-Judgeまたは人手評価を設定。スコアリング結果はダッシュボードで確認・エクスポート可能です。


8. 具体的ユースケース紹介

8.1 チャットボットのデバッグ事例

顧客対応チャットボットで「応答が意図と異なる」「外部APIがエラーを返却している」という課題を、LangSmithのトレースでステップごとに可視化。原因箇所のプロンプト改修やツール呼び出しの再試行ロジック追加で、平均応答品質が20%向上。

8.2 A/Bテストによるプロンプト比較

新旧2種のプロンプトを同一トラフィックで比較し、LangSmith上で正答率・ユーザー満足度を計測。改善版プロンプトの方が正答率で15%優れる結果が得られ、迅速に本番反映を実現。

8.3 タスク自動化ワークフローでの活用例

LangGraphで「出張申請→航空券検索→承認→経費登録」という4ステップをグラフ化し、運用中にLangSmithでエージェントが何秒で各ステップを完了したかを監視。特に承認ステップが遅延しがちなことが判明し、追加のリトライ処理を導入して全体処理時間を30%削減。


9. LangGraphとLangSmithの連携メリット

9.1 開発〜運用のワークフロー全体像

  • 設計・実装(LangGraph): グラフベースで複雑フローを安全に構築
  • デバッグ(LangSmith): 実行トレースの可視化・ステップ実行
  • 評価(LangSmith Evals): 定量・定性データによる品質担保
  • 運用(ダッシュボード): リアルタイムKPI監視&アラート

9.2 デバッグ・評価のフィードバックループ

LangGraphでワークフローをコード化し、LangSmithで問題箇所を特定 → 修正 → 再デプロイ、というサイクルを迅速に回せるため、継続的改善が容易になります。


10. 他ツールとの比較ポイント

10.1 LangChainとの違い

LangChainは「LLMチェーン構築の基本ツールキット」に対し、LangGraphは「複雑フローのオーケストレーション」、LangSmithは「観測性・評価機能」を補完。用途に応じて使い分けが必要です。

10.2 他のLLMOpsツール(Langfuseなど)との比較

LangSmithはLangChain公式の観測・評価プラットフォームという点で、OSSコミュニティとの親和性と更新頻度が高いのが強み。他ツールと比較しても、LangChainエコシステムとの連携がスムーズです。


11. 利用上の注意点とベストプラクティス

11.1 バージョン管理とドキュメント追跡

LangChain/LangGraph/LangSmithはいずれも急速に進化中です。ChangelogやGitHub Issuesを定期的に確認し、バージョン間の互換性や新機能を把握しましょう。

11.2 コスト&リソース管理

特にLangSmithのクラウド版は将来的に課金予定です。トレース量や評価回数に応じたコストが発生するため、使用量を常にモニターしつつ、不要なトレースはオプトアウト設定を検討するとよいでしょう。

11.3 セキュリティ・データ保護の留意点

トレースにはユーザー入出力や内部状態が含まれるため、機密情報(個人情報やAPIキーなど)は送信しないようプロンプト設計時にマスキングやフィルタリングを行いましょう。


12. まとめと今後の学習ステップ

12.1 まず試してみるべきハンズオン課題

  1. LangChainで簡単なチャットボットを作成
  2. pip install langgraph でLangGraph入門チュートリアルを実行
  3. LangSmithでトレースを有効化し、ダッシュボードを立ち上げる

12.2 参考リンク集

以上をステップに沿って進めれば、AIワークフローの設計から observability、評価までを自信を持って扱えるようになります。ぜひ手を動かして体感してみてください!

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?