LangGraph Studio는 복잡한 에이전트 애플리케이션의 시각화, 상호 작용 및 디버깅을 가능하게 하는 특수 에이전트 IDE를 제공하여 LLM 애플리케이션을 개발하는 새로운 방법을 제공합니다.
시각적 그래프와 상태 편집 기능을 통해 상담원 워크플로를 더 잘 이해하고 더 빠르게 반복할 수 있습니다. LangGraph Studio는 LangSmith와 통합되어 팀원과 협력하여 오류 모드를 디버깅할 수 있습니다.
베타 기간 동안 LangGraph Studio는 모든 플랜 계층의 모든 LangSmith 사용자에게 무료로 제공됩니다. 여기에서 LangSmith에 가입하세요.
여기를 클릭하거나 릴리스 페이지를 방문하여 LangGraph Studio의 최신 .dmg
파일을 다운로드하세요.
현재는 macOS만 지원됩니다. Windows 및 Linux 지원이 곧 제공될 예정입니다. 또한 실행되는 Docker 엔진에 의존하며 현재는 다음 런타임만 지원합니다.
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 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을 사용자 지정하는 방법을 참조하세요.