Overview
在本教程中,您可以学习;了解如何将现有的 LangGraph代理迁移到MongoDB Atlas助手引擎。本教程展示了如何将MongoDB Atlas Agent Engine SDK 添加到您的项目,使用 App 类包装您的代理代码,创建所需的配置文件,以及在Atlas Agent Engine 上注册您的项目。
先决条件
在开始之前,请执行以下先决任务:
打开现有 LangGraph代理项目中的
pyproject.toml文件。确认您的
pyproject.toml文件具有用于设置requires和build-backend密钥的[build-system]区块。agentengine init命令需要此区块。您可以在项目根目录中运行uv init --package以生成满足此要求的文件。Install uv.
Tutorial
完成以下步骤以添加平台 SDK、更新代理代码并在Atlas Agent Engine 上注册项目。
使用 App 类包装您的代理。
通过进行以下更改来更新代理的入口模块以使用平台 SDK:
从
agent_engine_sdk_langgraph导入App并在模块级别创建App实例。使用
@app.tool()装饰器注册每个工具。将
@app.entrypoint装饰器添加到代理构建函数中。使用
app.llm()方法封装 LLM,通过平台的审核执行路径路由 LLM 调用。将您的检查点替换为
app.checkpointer()以使用平台的MongoDB支持的检查点。调用模块底部的
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 文件。
在项目根目录中,创建一个 agent.yaml文件,其中包含 entrypoint字段和代理沙箱的网络出口策略,如以下代码所示:
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 字段,请参阅代理合同参考。
后续步骤
确认迁移的代理在本地运行后,您可以执行以下任务:
要预配密钥并构建代理映像,请参阅预配 Cloud 密钥。