Overview
このチュートリアルでは、既存の LingGraphエージェントをMongoDB Atlas Agent Engine に移行する方法を学習できます。このチュートリアルでは、 MongoDB Atlas Agent Engine SDK をプロジェクトに追加する 方法、エージェントコードを Appクラスでラップする方法、必要な構成ファイルを作成する方法、Atlas Agent Engine にプロジェクトを登録する方法を紹介します。
前提条件
開始する前に、次の前提条件タスクを実行してください。
agentengineCLI をインストールし、アカウントを認証します。詳しくは、「 インストールと認証 」を参照してください。既存の LgGraphエージェントプロジェクト内の
pyproject.tomlファイルを開きます。pyproject.tomlファイルに、requiresキーとbuild-backendキーを設定する[build-system]ブロックがあることを確認します。agentengine initコマンドにはこのブロックが必要です。プロジェクトルートでuv init --packageを実行して、この要件を満たすファイルを生成できます。Install uv.
マシンでDocker Desktop またはDocker Engine を実行します。
Tutorial
プラットフォーム SDK の追加、エージェントコードの更新、Atlas Agent Engine にプロジェクトを登録するには、次の手順を実行します。
エージェントをApp クラスでラップします。
プラットフォーム SDK を使用するようにエージェントのエントリ モジュールを次の変更で更新します。
agent_engine_sdk_langgraphからAppをインポートし、モジュール レベルでAppインスタンスを作成します。@app.tool()修飾子を使用して各ツールを登録します。エージェント構築関数に
@app.entrypoint修飾子を追加します。LM を
app.llm()メソッドでラップして、プラットフォームの監査された実行パスを通じて LM 呼び出しをルーティングします。チェックポイントを
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ファイルを作成します。
プロジェクトルートに、次のコードに示すように、entrypointフィールドとエージェントサンドボックスのネットワーク Egress ポリシーを含む 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フィールドは、エージェントサンドボックスのアウトバウンド アクセス ポリシーを宣言します。上記の例では、プラットフォームの基本ポリシー以外のすべてのアウトバウンド トラフィックがブロックされます。特定の宛先へのアウトバウンド アクセスを有効にする方法については、「 ネットワーク Egress ポリシーの管理 」を参照してください。
Tip
利用可能なすべてのagent.yaml フィールドを表示するには、「 エージェント契約リファレンス 」を参照してください。
次のステップ
移行したエージェントがローカルで実行されることを確認したら、次のタスクを実行できます。
シークレットをプロビジョニングしてエージェントイメージを構築するには、「 クラウドシークレットのプロビジョニング 」を参照してください。
メモリや文字列などのプラットフォーム機能を追加するには、「 エージェントへのメモリの追加 」を参照してください。