개요
이 튜토리얼에서는 기존 LangGraph 에이전트 MongoDB Atlas Agent Engine으로 마이그레이션 방법을 학습 수 있습니다. 이 튜토리얼에서는 프로젝트 에 MongoDB Atlas Agent Engine SDK를 추가하고, 에이전트 코드를 App 클래스로 래핑하고, 필요한 구성 파일을 생성하고, Atlas Agent Engine에 프로젝트 등록하는 방법을 보여줍니다.
전제 조건
시작하기 전에 다음 전제 조건 작업을 수행합니다.
agentengineCLI 설치하고 계정을 인증합니다. 자세한 학습 은 설치 및 인증을 참조하세요.기존 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에 프로젝트 등록하세요.
에이전트 를 App 클래스로 래핑합니다.
다음과 같이 변경하여 플랫폼 SDK를 사용하도록 에이전트의 입력 모듈을 업데이트합니다.
agent_engine_sdk_langgraph에서App를 가져오고 모듈 수준에서App인스턴스 생성합니다.@app.tool()데코레이터를 사용하여 각 도구를 등록합니다.에이전트 빌드 함수에
@app.entrypoint데코레이터를 추가합니다.app.llm()메서드로 LLM을 래핑하여 플랫폼의 감사된 실행 경로를 통해 LLM 호출을 라우팅합니다.플랫폼의 MongoDB 지원 체크포인터를 사용하려면 체크포인터를
app.checkpointer()로 바꾸세요.모듈 하단에서
app.run()메서드를 호출합니다.
다음 예시 마이그레이션된 전체 에이전트 모듈을 보여줍니다.
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") def lookup(query: str) -> str: """Search the knowledge base.""" return f"result for {query}" 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()
agent.yaml 파일 만듭니다.
프로젝트 루트에서 다음 코드와 같이 에이전트 샌드박스에 대한 entrypoint 필드 와 네트워크 이그레스 정책이 포함된 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 필드를 보려면 에이전트 계약 참조를 확인하세요.
다음 단계
마이그레이션된 에이전트 가 로컬에서 실행되는지 확인한 후 다음 작업을 수행할 수 있습니다.
시크릿을 프로비저닝하고 에이전트 이미지를 빌드 하려면 클라우드 시크릿 프로비저닝을 참조하세요.
메모리 및 가드레일과 같은 플랫폼 기능을 추가하려면 에이전트에 메모리 추가를 참조하세요.