LangGraph Studio は、複雑なエージェント アプリケーションの視覚化、対話、デバッグを可能にする特殊なエージェント IDE を提供することで、LLM アプリケーションを開発する新しい方法を提供します。
視覚的なグラフと状態を編集する機能により、エージェントのワークフローをより深く理解し、反復をより速く行うことができます。 LangGraph Studio は LangSmith と統合されているため、チームメイトと協力して障害モードをデバッグできます。
ベータ版の間、LangGraph Studio は、どのプラン層のすべての LangSmith ユーザーも無料で利用できます。ここからLangSmithにサインアップしてください。

ここをクリックするか、リリース ページにアクセスして、LangGraph Studio の最新の.dmgファイルをダウンロードします。
現在、macOS のみがサポートされています。 Windows と Linux のサポートは近日中に開始されます。また、Docker Engine の実行にも依存しています。現在、次のランタイムのみをサポートしています。
LangGraph Studio には、docker-compose バージョン 2.22.0 以降が必要です。続行する前に、Docker Desktop または Orbstack がインストールされ、実行されていることを確認してください。
LangGraph Studio を使用するには、LangGraph アプリがセットアップされたプロジェクトがあることを確認してください。
この例では、依存関係にrequirements.txtファイルを使用するサンプルリポジトリを使用します。
git clone https://github.com/langchain-ai/langgraph-example.git依存関係の管理に代わりにpyproject.tomlファイルを使用したい場合は、このサンプル リポジトリを使用できます。
git clone https://github.com/langchain-ai/langgraph-example-pyproject.git次に、関連する環境変数を含む.envファイルを作成します。
cp .env.example .env次に、 .envファイルを開いて、関連する OpenAI、Anthropic、および Tavily API キーを入力する必要があります。
すでに環境に設定されている場合は、次のコマンドを使用してこの .env ファイルに保存できます。
echo " OPENAI_API_KEY= " $OPENAI_API_KEY " " > .env
echo " ANTHROPIC_API_KEY= " $ANTHROPIC_API_KEY " " >> .env
echo " TAVILY_API_KEY= " $TAVILY_API_KEY " " >> .env注: LANGSMITH_API_KEY を .env ファイルに追加しないでください。これは認証時に自動的に行われますが、これを手動で設定するとエラーが発生する可能性があります。
プロジェクトをセットアップしたら、LangGraph Studio で使用できるようになります。飛び込んでみましょう!
LangGraph Studio デスクトップ アプリを初めて開くときは、LangSmith 経由でログインする必要があります。

認証に成功すると、使用する LangGraph アプリケーション フォルダーを選択できます。ドラッグ アンド ドロップするか、ファイル ピッカーで手動で選択できます。サンプル プロジェクトを使用している場合、フォルダーはlanggraph-exampleになります。
重要
選択したアプリケーション ディレクトリには、正しく構成されたlanggraph.jsonファイルが含まれている必要があります。構成方法の詳細については、こちらを参照してください。また、LangGraph アプリのセットアップ方法については、こちらを参照してください。

有効なプロジェクトを選択すると、LangGraph Studio は LangGraph API サーバーを起動し、グラフがレンダリングされた UI が表示されるはずです。

これでグラフを実行できるようになりました。 LangGraph Studio を使用すると、さまざまな入力と構成を使用してグラフを実行できます。
新しい実行を開始するには:
agentと呼ばれます。グラフのリストは、 langgraph.json構成内のgraphsキーに対応します。Inputセクションを編集します。Submitをクリックして、選択したグラフを呼び出します。次のビデオは、新しい実行を開始する方法を示しています。
特定のグラフ実行の構成を変更するには、 InputセクションのConfigurableボタンを押します。次に、 Submitをクリックしてグラフを呼び出します。
重要
Configurableメニューを表示するには、 StateGraph作成するときに必ず config スキーマを指定してください。グラフに構成スキーマを追加する方法の詳細については、ここを参照してください。
次のビデオは、構成を編集して新しい実行を開始する方法を示しています。
LangGraph Studio を開くと、自動的に新しいスレッド ウィンドウが表示されます。既存のスレッドが開いている場合は、次の手順に従って新しいスレッドを作成します。
+押して、新しいスレッド メニューを開きます。次のビデオは、スレッドの作成方法を示しています。
スレッドを選択するには:
New Thread / Thread <thread-id>ラベルをクリックして、スレッド リストのドロップダウンを開きます。次のビデオは、スレッドを選択する方法を示しています。
LangGraph Studio を使用すると、スレッドの状態を編集し、スレッドをフォークして、更新された状態で代替のグラフ実行を作成できます。それを行うには:
Forkをクリックして状態を更新し、更新された状態で新しいグラフ実行を作成します。次のビデオは、スタジオでスレッドを編集する方法を示しています。
グラフを段階的に実行したり、特定のノードの実行前後にグラフの実行を停止したりすることができます。これを行うには、割り込みを追加します。割り込みは、すべてのノード (つまり、エージェントの実行を段階的に実行) または特定のノードに設定できます。 LangGraph Studio の割り込みは、特定のノードの実行前と実行後の両方でグラフの実行が中断されることを意味します。
エージェントの実行を段階的に確認するには、グラフ内のすべてのノードまたはノードのサブセットに割り込みを追加します。
Interruptをクリックします。Interrupt on allクリックします。次のビデオは、すべてのノードに割り込みを追加する方法を示しています。
+ボタンが表示されるはずです。+クリックして、選択したグラフを呼び出します。Input /構成を追加し、 Submitをクリックしてグラフを実行します。次のビデオは、特定のノードに割り込みを追加する方法を示しています。
割り込みを削除するには、同じ手順に従い、ノードの左側にあるxボタンを押します。
ノード上で中断してグラフの状態を編集することに加えて、状態を手動で更新する機能を備えた人間参加型ワークフローをサポートしたい場合があります。これは、 agentノードとhumanノードを含む、 agent.pyの修正バージョンです。グラフの実行はhumanノードで中断されます。これにより、 humanノードの一部として入力を送信できるようになります。これは、エージェントにユーザー入力を取得させたい場合に便利です。これは基本的に、これをコマンドラインから実行していた場合のinput()の使用方法を置き換えます。
from typing import TypedDict , Annotated , Sequence , Literal
from langchain_core . messages import BaseMessage , HumanMessage
from langchain_anthropic import ChatAnthropic
from langgraph . graph import StateGraph , END , add_messages
class AgentState ( TypedDict ):
messages : Annotated [ Sequence [ BaseMessage ], add_messages ]
model = ChatAnthropic ( temperature = 0 , model_name = "claude-3-sonnet-20240229" )
def call_model ( state : AgentState ) -> AgentState :
messages = state [ "messages" ]
response = model . invoke ( messages )
return { "messages" : [ response ]}
# no-op node that should be interrupted on
def human_feedback ( state : AgentState ) -> AgentState :
pass
def should_continue ( state : AgentState ) -> Literal [ "agent" , "end" ]:
messages = state [ 'messages' ]
last_message = messages [ - 1 ]
if isinstance ( last_message , HumanMessage ):
return "agent"
return "end"
workflow = StateGraph ( AgentState )
workflow . set_entry_point ( "agent" )
workflow . add_node ( "agent" , call_model )
workflow . add_node ( "human" , human_feedback )
workflow . add_edge ( "agent" , "human" )
workflow . add_conditional_edges (
"human" ,
should_continue ,
{
"agent" : "agent" ,
"end" : END ,
},
)
graph = workflow . compile ( interrupt_before = [ "human" ])次のビデオは、中断されたときに状態の更新 (つまり、この例ではメッセージ) を手動で送信する方法を示しています。
LangGraph Studio を使用すると、プロジェクト構成 ( langgraph.json ) を対話的に変更できます。
スタジオから構成を変更するには、次の手順に従います。
Configureクリックします。これにより、既存のlanggraph.jsonに対応する値を含む対話型の構成メニューが開きます。Save and Restartをクリックして、更新された構成で LangGraph API サーバーをリロードします。次のビデオは、スタジオからプロジェクト構成を編集する方法を示しています。
LangGraph Studio を使用すると、グラフ コードを変更し、その変更をインタラクティブ グラフにライブで同期できます。
スタジオからグラフを変更するには、次の手順に従います。
Open in VS Codeをクリックします。これにより、LangGraph スタジオで現在開かれているプロジェクトが開きます。.pyファイルに変更を加えます。次のビデオは、スタジオからコード エディターを開く方法を示しています。
基礎となるコードを変更した後、グラフ内のノードを再生することもできます。たとえば、エージェントの応答が悪い場合は、コード エディターでエージェント ノードの実装を更新し、再実行できます。これにより、長時間実行されるエージェントの反復処理がはるかに簡単になります。
LangGraph Studio は、Docker Compose に依存して API、Redis、Postgres を実行し、独自のネットワークを作成します。したがって、ローカル サービスにアクセスするには、 localhostの代わりにhost.docker.internalホスト名として使用する必要があります。詳細については #112 を参照してください。
デフォルトでは、イメージをできるだけ小さくしようとするため、 gccやbuild-essentialsなどの一部の依存関係がベースイメージから欠落しています。追加の依存関係をインストールする必要がある場合は、 langgraph.jsonファイルのdockerfile_linesセクションに追加の Dockerfile 命令を追加することで実行できます。
{
"dockerfile_lines": [
"RUN apt-get update && apt-get install -y gcc"
]
}
詳細については、「Dockerfile をカスタマイズする方法」を参照してください。