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
時指定配置模式。您可以在此處閱讀有關如何將組態架構新增至圖表的更多資訊。
以下影片展示如何編輯配置並開始新的運行:
當您開啟 LangGraph Studio 時,您將自動進入一個新的執行緒視窗。如果您已開啟現有線程,請按照下列步驟建立新線程:
+
開啟新的線程選單。以下影片展示如何建立線程:
要選擇一個線程:
New Thread
/ Thread
標籤,開啟執行緒清單下拉清單。以下影片示範如何選擇線程:
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 studio 中開啟的項目。.py
檔進行變更。以下影片展示如何從工作室開啟程式碼編輯器:
修改底層程式碼後,您也可以重播圖中的節點。例如,如果代理程式回應不佳,您可以在程式碼編輯器中更新代理節點實作並重新執行它。這可以使長期運行的代理的迭代變得更加容易。
LangGraph Studio 依靠 Docker Compose 來運行 API、Redis 和 Postgres,後者又創建了自己的網路。因此,要存取本機服務,您需要使用host.docker.internal
作為主機名稱而不是localhost
。有關更多詳細信息,請參閱#112。
預設情況下,我們嘗試使映像盡可能小,因此基礎映像中缺少一些依賴項,例如gcc
或build-essentials
。如果需要安裝其他依賴項,可以透過在langgraph.json
檔案的dockerfile_lines
部分新增其他 Dockerfile 指令來實現:
{
"dockerfile_lines": [
"RUN apt-get update && apt-get install -y gcc"
]
}
有關更多詳細信息,請參閱如何自訂 Dockerfile。