LangGraph CLI는 LangGraph API 서버를 로컬에서 구축하고 실행할 수 있는 커맨드라인 도구입니다. 이 서버는 runs, threads, assistants 등 모든 API 엔드포인트를 제공하며, 체크포인팅 및 스토리지를 위한 관리형 데이터베이스와 같은 지원 서비스를 포함합니다.
LangGraph CLI는 schema를 따르는 JSON 설정 파일이 필요합니다. 주요 속성은 다음과 같습니다:
LangGraph CLI는 기본적으로 현재 디렉터리의 langgraph.json 설정 파일을 사용합니다.
Python
JS
Key
설명
dependencies
필수. LangSmith API 서버의 의존성 배열입니다. 다음 중 하나를 지정할 수 있습니다:
단일 마침표(".")는 로컬 Python 패키지를 찾습니다.
pyproject.toml, setup.py 또는 requirements.txt가 위치한 디렉터리 경로. 예를 들어, requirements.txt가 프로젝트 루트에 있으면 "./"로 지정합니다. local_package라는 하위 디렉터리에 있으면 "./local_package"로 지정합니다. "requirements.txt" 문자열 자체는 지정하지 않습니다.
Python 패키지 이름.
graphs
필수. 그래프 ID와 컴파일된 그래프 또는 그래프를 생성하는 함수가 정의된 경로의 매핑. 예시:
./your_package/your_file.py:make_graph에서 make_graph는 설정 딕셔너리(langchain_core.runnables.RunnableConfig)를 받아 langgraph.graph.state.StateGraph 또는 langgraph.graph.state.CompiledStateGraph 인스턴스를 반환하는 함수입니다. 런타임에 그래프 재구성하는 방법 참고.
auth
(v0.0.11에서 추가됨) 인증 핸들러 경로를 포함하는 인증 설정. 예시: ./your_package/auth.py:auth에서 auth는 langgraph_sdk.Auth 인스턴스입니다. 자세한 내용은 인증 가이드 참고.
base_image
선택 사항. LangGraph API 서버에 사용할 베이스 이미지. 기본값은 langchain/langgraph-api 또는 langchain/langgraphjs-api입니다. "langchain/langgraph-server:0.2"처럼 특정 버전으로 고정할 수 있습니다. 자세한 내용은 https://hub.docker.com/r/langchain/langgraph-server/tags 참고. (langgraph-cli==0.2.8에서 추가됨)
image_distro
선택 사항. 베이스 이미지에 사용할 Linux 배포판. "debian", "wolfi", "bookworm", "bullseye" 중 하나여야 합니다. 생략 시 기본값은 "debian"입니다. langgraph-cli>=0.2.11에서 사용 가능.
env
.env 파일 경로나 환경 변수와 값의 매핑.
store
BaseStore에 의미론적 검색 및/또는 TTL(Time-to-live)을 추가하는 설정. 다음 필드 포함:
index (선택): embed, dims, 선택적 fields 필드를 가진 의미론적 검색 인덱싱 설정.
ttl (선택): 항목 만료 설정. 선택적 필드: refresh_on_read(boolean, 기본값 true), default_ttl(float, 분 단위 수명; 신규 항목에만 적용; 기존 항목은 변경 없음; 기본값은 만료 없음), sweep_interval_minutes(integer, 만료 항목 확인 주기, 기본값 없음).
ui
선택 사항. 에이전트가 내보내는 UI 컴포넌트의 명명된 정의로, 각각 JS/TS 파일을 가리킵니다. (langgraph-cli==0.1.84에서 추가됨)
python_version
3.11, 3.12, 3.13 중 하나. 기본값은 3.11.
node_version
LangGraph.js를 사용하려면 node_version: 20을 지정하세요.
pip_config_file
pip 설정 파일 경로.
pip_installer
(v0.3에서 추가됨) 선택 사항. Python 패키지 설치 도구 선택자. "auto", "pip", "uv" 중 하나로 설정할 수 있습니다. 0.3 버전부터 기본 전략은 uv pip 실행이며, 더 빠른 빌드를 제공합니다. 드물게 uv가 의존성 그래프나 pyproject.toml 구조를 처리하지 못할 경우 "pip"로 지정해 이전 방식으로 되돌릴 수 있습니다.
베이스 이미지의 Linux 배포판은 image_distro 필드로 지정할 수 있습니다. 허용 값은 debian, wolfi, bookworm, bullseye입니다. Wolfi는 더 작고 안전한 이미지를 제공하므로 권장됩니다. langgraph-cli>=0.2.11에서 사용 가능합니다.
store 설정의 embed 필드는 문자열 리스트를 받아 임베딩 리스트를 반환하는 커스텀 함수를 참조할 수 있습니다. 예시 구현:
Copy
# embeddings.pydef embed_texts(texts: list[str]) -> list[list[float]]: """Custom embedding function for semantic search.""" # Implementation using your preferred embedding model return [[0.1, 0.2, ...] for _ in texts] # dims-dimensional vectors
BaseStore의 항목/메모리에 대한 기본 만료를 store.ttl 키로 설정할 수 있습니다. 항목이 마지막으로 접근된 후 얼마나 유지될지 결정합니다(refresh_on_read에 따라 읽기 시 타이머가 갱신될 수 있음). 이 기본값은 get, search 등 호출별로 오버라이드할 수 있습니다.ttl 설정은 선택적 필드를 가진 객체입니다:
refresh_on_read: true(기본값)이면 get 또는 search로 항목을 접근할 때 만료 타이머가 리셋됩니다. false로 설정하면 쓰기(put) 시에만 TTL이 갱신됩니다.
default_ttl: 항목의 기본 수명(분 단위). 신규 항목에만 적용되며, 기존 항목은 변경되지 않습니다. 설정하지 않으면 기본적으로 만료되지 않습니다.
sweep_interval_minutes: 시스템이 만료된 항목을 삭제하는 백그라운드 프로세스를 얼마나 자주 실행할지(분 단위). 설정하지 않으면 자동 스위핑이 발생하지 않습니다.
(v0.3.7에서 추가됨)LangGraph 서버의 API 버전을 api_version 키로 고정할 수 있습니다. 서버가 특정 API 버전을 사용하도록 보장하고 싶을 때 유용합니다.
기본적으로 클라우드 배포의 빌드는 최신 안정 버전을 사용합니다. api_version 키를 특정 버전으로 설정해 고정할 수 있습니다.
FROM langchain/langgraph-api:3.11ADD ./pipconf.txt /pipconfig.txtRUN PIP_CONFIG_FILE=/pipconfig.txt PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt langchain_community langchain_anthropic langchain_openai wikipedia scikit-learnADD ./graphs /deps/__outer_graphs/srcRUN set -ex && \ for line in '[project]' \ 'name = "graphs"' \ 'version = "0.1"' \ '[tool.setuptools.package-data]' \ '"*" = ["**/*"]'; do \ echo "$line" >> /deps/__outer_graphs/pyproject.toml; \ doneRUN PIP_CONFIG_FILE=/pipconfig.txt PYTHONDONTWRITEBYTECODE=1 pip install --no-cache-dir -c /api/constraints.txt -e /deps/*ENV LANGSERVE_GRAPHS='{"agent": "/deps/__outer_graphs/src/agent.py:graph", "storm": "/deps/__outer_graphs/src/storm.py:graph"}'
langgraph dockerfile 명령어는 langgraph.json 파일의 모든 설정을 Dockerfile 명령어로 변환합니다. 이 명령어를 사용할 때는 langgraph.json 파일을 업데이트할 때마다 다시 실행해야 변경 사항이 Dockerfile 빌드/실행에 반영됩니다.