LangGraph 再入門 : 概要 & ローカルサーバの実行

LangGraph は2025年10月にバージョン 1.0 がリリースされましたが、その後も改良が加えられて現在では 1.1 が公開されています。
LangGraph は長期運用されるステートフルなエージェントを構築、管理そして配備するための強力な低位のオーケストレーション・フレームワーク及びランタイムです。

LangGraph 1.1 : 概要 | Get started – ローカルサーバの実行

作成 : クラスキャット・セールスインフォメーション
作成日時 : 04/06/2026
バージョン : 1.1.6

* 本記事は docs.langchain.com の以下のページを参考にしています :

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。

 

 

LangGraph 1.1 : 概要

LangGraph は Klarna, Uber, J.P. Morgan 等を含む、エージェントの未来を形作る企業から信頼されています – LangGraph は長期運用されるステートフルなエージェントを構築、管理そして配備するための強力な低位のオーケストレーション・フレームワーク及びランタイムです。

LangGraph は非常に低位で、全体としてエージェント オーケストレーション にフォーカスしています。LangGraph を使用する前に、モデルツール から始めて、エージェントを構築するために使用されるコンポーネントの一部に理解を深めておくことを勧めます。

ドキュメントを通して LangChain コンポーネントを一般的に使用しますが、LangGraph を使用するために LangChain を使用する必要はありません。あなたがエージェントを始めたばかりであるか、高位の抽象化を望む場合、一般的な LLM とツール呼び出しループ向けに事前構築されたアーキテクチャを提供する、LangChain の エージェント を使用することをすすめます。

LangGraph は、エージェント・オーケストレーションに重要な基盤となる機能: 永続化実行 (durable execution)、ストリーミング、human-in-the-loop 等にフォーカスしています。

ℹ️ これらの機能を利用するために 2 つの異なる API を公開しています : Graph API と functional API です。このドキュメントを通して主として Graph API を使用しますが、希望するなら functional API を自由に使用してください。

 

インストール

# pip
pip install --pre -U langgraph

# uv
uv add langgraph

次に、単純な hello world サンプルを作成します :

from langgraph.graph import StateGraph, MessagesState, START, END

def mock_llm(state: MessagesState):
    return {"messages": [{"role": "ai", "content": "hello world"}]}

graph = StateGraph(MessagesState)
graph.add_node(mock_llm)
graph.add_edge(START, "mock_llm")
graph.add_edge("mock_llm", END)
graph = graph.compile()

response = graph.invoke({"messages": [{"role": "user", "content": "hi!"}]})
print(response['messages'][-1].content)

出力例

hello world

 

中核的な利点

LangGraph は、長期運用、ステートフルなワークフローやエージェントのための低位のインフラのサポートを提供します。LangGraph はプロンプトやアーキテクチャの抽象化は行わず、以下の中核的な利点を提供します :

  • 耐久性のある実行 (Durable execution) : 障害時にも持続的に長期間実行できて、中断時点から再開できるエージェントを構築します。

  • Human-in-the-loop : 任意の時点でエージェントの状態を検査して変更することで、人間の監視を組み込みます。

  • 包括的なメモリ (Comprehensive memory) : 進行中の推論のための短期的な作業メモリと、セッションにまたがる長期メモリの両方を備えた、ステートフルなエージェントを作成します。

  • LangSmith によるデバッグ : 実行パスをトレースし、状態遷移を捕捉し、詳細なランタイムメトリクスを提供する視覚化ツールを使用して、複雑なエージェントの動作の深い洞察を得ます。

  • Production-ready 配備 : ステートフルで、長時間実行されるワークフロー特有な課題に対応するように設計されたスケーラブルなインフラを使用して、洗練されたエージェント・システムを信頼性をもって配備します。

 

LangGraph のエコシステム

LongGraph はスタンドアローンで使用できる一方で、任意の LangChain 製品とシームレスに統合されており、開発者にエージェントを構築するための完全なツールセットを提供します。LLM アプリケーションの開発の向上のために、以下を LangGraph と組み合わせてください :

  • LangSmith 可観測性 — リクエストのトレース、出力の評価、配備の監視を一元管理できます。LangGraph でローカル環境でプロトタイプを作成し、統合された可観測性と評価機能を活用して本番環境に移行することで、より信頼性の高いエージェントシステムを構築できます。

  • LangSmith 配備 — 長時間実行、ステーフルなワークフローのための目的に応じた配備プラットフォームにより、エージェントの配備とスケールを容易に行えます。エージェントの検索、再利用、構成設定、そしてチーム間での共有 – 更に Studio での視覚化されたプロトタイピングを使用して素早く反復できます。

  • LangChain – LLM アプリケーション開発の効率化のために統合と構成可能なコンポーネントを提供します。LangGraph 上に構築されたエージェントの抽象化を含みます。

 

LangGraph 1.1 : Get started – ローカルサーバの実行

このガイドは LangGraph アプリケーションをローカルで実行する方法を示します。

 

前提条件

始める前に、次を所持していることを確認してください :

  • LangSmith 用 API キー – サインアップは無料です

 

1. LangGraph CLI のインストール

# pip
# Python >= 3.11 is required.
pip install -U "langgraph-cli[inmem]"

# uv
uv add "langgraph-cli[inmem]"

 

2. LangGraph アプリケーションの作成

new-langgraph-project-python テンプレート から新しいアプリケーションを作成します。このテンプレートは独自ロジックで拡張可能な単一ノード・アプリケーションを実演します。

langgraph new path/to/your/app --template new-langgraph-project-python

Info : 追加のテンプレート – テンプレートの指定なしに “langgraph new” を使用する場合、利用可能なテンプレートのリストから選択可能なインタラクティブ・メニューが表示されます。

 

3. 依存関係のインストール

新しい LangGraph アプリケーションのルートで、edit モードで依存関係をインストールすると、ローカルの変更がサーバにより使用されるようになります :

cd path/to/your/app
# pip
pip install -e .

# uv
uv sync

 

4. .env ファイルの作成

新しい LangGraph アプリケーションのルートに .env.example があります。新しい LangGraph アプリケーションのルートで .env ファイルを作成して、.env.example ファイルの内容をそれにコピーして、必要な API キーを入力します :

LANGSMITH_API_KEY=lsv2...

 

5. LangGraph サーバの起動

LangGraph API server をローカルで起動します :

langgraph dev

出力例

INFO:langgraph_api.cli:

        Welcome to

╦  ┌─┐┌┐┌┌─┐╔═╗┬─┐┌─┐┌─┐┬ ┬
║  ├─┤││││ ┬║ ╦├┬┘├─┤├─┘├─┤
╩═╝┴ ┴┘└┘└─┘╚═╝┴└─┴ ┴┴  ┴ ┴

- 🚀 API: http://127.0.0.1:2024
- 🎨 Studio UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024
- 📚 API Docs: http://127.0.0.1:2024/docs

This in-memory server is designed for development and testing.
For production use, please use LangSmith Deployment.

“langgraph dev” コマンドは in-memory モードでエージェント・サーバを起動します。このモードは開発とテスト目的に適しています。本番環境での利用には、永続化ストレージ・バックエンドへのアクセスを備えたエージェント・サーバを配備します。For more information, see the Platform setup overview.

 

6. アプリケーションを Studio でテストする

Studio は、LangGraph API サーバに接続してローカルでアプリケーションを視覚化、操作、デバッグできる専用の UI です。”langgraph dev” コマンドの出力で提供される URL にアクセスすることで Studio でグラフをテストできます :

  • LangGraph Studio Web UI: https://smith.langchain.com/studio/?baseUrl=http://127.0.0.1:2024

ℹ️ For an Agent Server running on a custom host/port, update the baseUrl query parameter in the URL.

 

7. API のテスト

Python SDK (非同期)

  1. LangGraph Python SDK をインストールします :

    pip install langgraph-sdk
    

  2. メッセージをアシスタントに送信します (threadless 実行) :

    from langgraph_sdk import get_client
    import asyncio
    
    client = get_client(url="http://localhost:2024")
    
    async def main():
        async for chunk in client.runs.stream(
            None,  # Threadless run
            "agent", # Name of assistant. Defined in langgraph.json.
            input={
            "messages": [{
                "role": "human",
                "content": "What is LangGraph?",
                }],
            },
        ):
            print(f"Receiving new event of type: {chunk.event}...")
            print(chunk.data)
            print("\n\n")
    
    asyncio.run(main())
    

 
Python SDK (同期)

  1. LangGraph Python SDK をインストールします :

    pip install langgraph-sdk
    

  2. メッセージをアシスタントに送信します (threadless 実行) :

    from langgraph_sdk import get_sync_client
    
    client = get_sync_client(url="http://localhost:2024")
    
    for chunk in client.runs.stream(
        None,  # Threadless run
        "agent", # Name of assistant. Defined in langgraph.json.
        input={
            "messages": [{
                "role": "human",
                "content": "What is LangGraph?",
            }],
        },
        stream_mode="messages-tuple",
    ):
        print(f"Receiving new event of type: {chunk.event}...")
        print(chunk.data)
        print("\n\n")
    

 
Rest API

curl -s --request POST \
    --url "http://localhost:2024/runs/stream" \
    --header 'Content-Type: application/json' \
    --data "{
        \"assistant_id\": \"agent\",
        \"input\": {
            \"messages\": [
                {
                    \"role\": \"human\",
                    \"content\": \"What is LangGraph?\"
                }
            ]
        },
        \"stream_mode\": \"messages-tuple\"
    }"

 

以上