AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

기존 LangGraph 에이전트 마이그레이션

이 튜토리얼에서는 기존 LangGraph 에이전트 MongoDB Atlas Agent Engine으로 마이그레이션 방법을 학습 수 있습니다. 이 튜토리얼에서는 프로젝트 에 MongoDB Atlas Agent Engine SDK를 추가하고, 에이전트 코드를 App 클래스로 래핑하고, 필요한 구성 파일을 생성하고, Atlas Agent Engine에 프로젝트 등록하는 방법을 보여줍니다.

시작하기 전에 다음 전제 조건 작업을 수행합니다.

  • agentengine CLI 설치하고 계정을 인증합니다. 자세한 학습 은 설치 및 인증을 참조하세요.

  • 기존 LangGraph 에이전트 프로젝트 내에서 pyproject.toml 파일 엽니다.

  • pyproject.toml 파일 에 requires 및 build-backend 키를 설정하는 [build-system] 차단 있는지 확인합니다. agentengine init 명령에는 이 차단 필요합니다. 프로젝트 루트에서 uv init --package를 실행 이 요구 사항을 충족하는 파일 생성할 수 있습니다.

  • Install uv.

  • 머신에서 Docker Desktop 또는 Docker Engine을 실행합니다.

다음 단계를 완료하여 플랫폼 SDK를 추가하고, 에이전트 코드를 업데이트 , Atlas Agent Engine에 프로젝트 등록하세요.

1

pyproject.toml 파일 로 이동한 후 프로젝트 루트에서 다음 명령을 실행 SDK 종속성을 추가합니다.

uv add agent-engine-runner-shared agent-engine-sdk-langgraph
2

다음과 같이 변경하여 플랫폼 SDK를 사용하도록 에이전트의 입력 모듈을 업데이트합니다.

  • agent_engine_sdk_langgraph에서 App를 가져오고 모듈 수준에서 App 인스턴스 생성합니다.

  • @app.tool() 데코레이터를 사용하여 각 도구를 등록합니다.

  • 에이전트 빌드 함수에 @app.entrypoint 데코레이터를 추가합니다.

  • app.llm() 메서드로 LLM을 래핑하여 플랫폼의 감사된 실행 경로를 통해 LLM 호출을 라우팅합니다.

  • 플랫폼의 MongoDB 지원 체크포인터를 사용하려면 체크포인터를 app.checkpointer()로 바꾸세요.

  • 모듈 하단에서 app.run() 메서드를 호출합니다.

다음 예시 마이그레이션된 전체 에이전트 모듈을 보여줍니다.

my_agent/main.py
from agent_engine_sdk_langgraph import App
from langgraph.graph import StateGraph, MessagesState
from langgraph.prebuilt import ToolNode
from langchain_openai import ChatOpenAI
app = App(app_name="my-agent")
@app.tool()
def lookup(query: str) -> str:
"""Search the knowledge base."""
return f"result for {query}"
@app.entrypoint
def build_agent():
llm = app.llm(ChatOpenAI(model="gpt-4o-mini"))
tools = app.get_tools()
def call_model(state: MessagesState):
return {"messages": [llm.invoke(state["messages"])]}
graph = StateGraph(MessagesState)
graph.add_node("agent", call_model)
graph.add_node("tools", ToolNode(tools))
graph.set_entry_point("agent")
graph.add_edge("tools", "agent")
return graph.compile(checkpointer=app.checkpointer())
app.run()
3

프로젝트 루트에서 다음 코드와 같이 에이전트 샌드박스에 대한 entrypoint 필드 와 네트워크 이그레스 정책이 포함된 agent.yaml 파일 생성합니다.

agent.yaml
entrypoint: my_agent.main:app
name: my-agent
framework: langgraph
sandboxes:
agent:
network:
egress_mode: deny_all

entrypoint 필드 module.path:attribute 형식의 App 인스턴스 점 야 합니다.

sandboxes.agent.network.egress_mode 필드 에이전트 샌드박스의 아웃바운드 액세스 정책을 선언합니다. 앞의 예시 플랫폼의 기본 정책을 제외한 모든 아웃바운드 트래픽을 차단합니다. 특정 대상에 대한 아웃바운드 액세스 활성화 방법을 학습 네트워크 이그레스 정책 관리를 참조하세요.

팁

사용 가능한 모든 agent.yaml 필드를 보려면 에이전트 계약 참조를 확인하세요.

4

다음 코드에 표시된 대로 프로젝트 루트에서 MongoDB 연결 문자열 과 LLM 제공자 API 키를 지정하는 .env 파일 생성합니다.

.env
MONGODB_URI=<your-mongodb-connection-string>
<PROVIDER>_API_KEY=<your-api-key>

중요

컨테이너 런타임에 .env 파일 에서만 시크릿을 읽습니다. 버전 관리 시스템에 시크릿을 커밋 하지 마세요.

5

프로젝트 루트에서 다음 명령을 실행 프로젝트 등록하고 로컬 개발 파일을 생성합니다.

agentengine init

CLI 는 조직 및 프로젝트 선택하거나 생성하는 과정을 안내한 다음 로컬 개발 파일을 생성합니다.

6

마이그레이션된 에이전트 올바르게 실행되는지 확인하려면 다음 명령을 실행 로컬 개발 환경을 시작하세요.

agentengine dev up

스택 이 준비되면 브라우저에서 http://localhost:3000를 열어 에이전트 와 상호 작용 합니다.

참고

UI 기본값 포트 3000가 아닌 다른 포트에서 실행 수 있습니다. URL 보려면 agentengine dev up 명령 출력의 ui 필드 확인합니다.

마이그레이션된 에이전트 가 로컬에서 실행되는지 확인한 후 다음 작업을 수행할 수 있습니다.

  • 시크릿을 프로비저닝하고 에이전트 이미지를 빌드 하려면 클라우드 시크릿 프로비저닝을 참조하세요.

  • 메모리 및 가드레일과 같은 플랫폼 기능을 추가하려면 에이전트에 메모리 추가를 참조하세요.