Skip to main content
LangSmith Deployment에 에이전트를 배포할 때 서버는 run 및 thread 생성, 장기 메모리 저장소와의 상호작용, 구성 가능한 assistant 관리 및 기타 핵심 기능을 위한 라우트를 자동으로 노출합니다(모든 기본 API 엔드포인트 보기). FastAPI, FastHTML 및 기타 호환 가능한 앱을 포함한 자체 Starlette 앱을 제공하여 커스텀 라우트를 추가할 수 있습니다. langgraph.json 구성 파일에서 앱 경로를 제공하여 LangSmith가 이를 인식하도록 합니다. 커스텀 앱 객체를 정의하면 원하는 라우트를 추가할 수 있으므로 /login 엔드포인트를 추가하는 것부터 전체 풀스택 웹 앱을 작성하는 것까지 모든 것을 할 수 있으며, 모두 단일 LangGraph Server에 배포됩니다. 다음은 FastAPI를 사용하는 예제입니다.

앱 생성

기존 LangSmith 애플리케이션에서 시작하여 webapp.py 파일에 다음 커스텀 라우트 코드를 추가합니다. 처음부터 시작하는 경우 CLI를 사용하여 템플릿에서 새 앱을 만들 수 있습니다.
langgraph new --template=new-langgraph-project-python my_new_project
LangGraph 프로젝트가 있으면 다음 앱 코드를 추가합니다:
# ./src/agent/webapp.py
from fastapi import FastAPI

app = FastAPI()


@app.get("/hello")
def read_root():
    return {"Hello": "World"}

langgraph.json 구성

langgraph.json 구성 파일에 다음을 추가합니다. 경로가 위에서 만든 webapp.py 파일의 FastAPI 애플리케이션 인스턴스 app을 가리키는지 확인하세요.
{
  "dependencies": ["."],
  "graphs": {
    "agent": "./src/agent/graph.py:graph"
  },
  "env": ".env",
  "http": {
    "app": "./src/agent/webapp.py:app"
  }
  // Other configuration options like auth, store, etc.
}

서버 시작

로컬에서 서버를 테스트하세요:
langgraph dev --no-browser
브라우저에서 localhost:2024/hello로 이동하면(2024는 기본 개발 포트) /hello 엔드포인트가 {"Hello": "World"}를 반환하는 것을 볼 수 있습니다.
기본 엔드포인트 섀도잉 앱에서 생성한 라우트는 시스템 기본값보다 우선순위가 부여되므로 기본 엔드포인트의 동작을 섀도잉하고 재정의할 수 있습니다.

배포

이 앱을 그대로 LangSmith 또는 셀프 호스팅 플랫폼에 배포할 수 있습니다.

다음 단계

배포에 커스텀 라우트를 추가했으니 동일한 기술을 사용하여 커스텀 커스텀 미들웨어커스텀 lifespan 이벤트를 정의하는 등 서버의 동작 방식을 더욱 커스터마이징할 수 있습니다.
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I