AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

既存の LongGraph エージェントの移行

このチュートリアルでは、既存の 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.

プラットフォーム 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 修飾子を追加します。

  • LM を app.llm() メソッドでラップして、プラットフォームの監査された実行パスを通じて LM 呼び出しをルーティングします。

  • チェックポイントを app.checkpointer() に置き換えて、プラットフォームのMongoDBベースのチェックポイントを使用します。

  • モジュールの下部で 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フィールドとエージェントサンドボックスのネットワーク Egress ポリシーを含む 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フィールドは、エージェントサンドボックスのアウトバウンド アクセス ポリシーを宣言します。上記の例では、プラットフォームの基本ポリシー以外のすべてのアウトバウンド トラフィックがブロックされます。特定の宛先へのアウトバウンド アクセスを有効にする方法については、「 ネットワーク Egress ポリシーの管理 」を参照してください。

Tip

利用可能なすべてのagent.yaml フィールドを表示するには、「 エージェント契約リファレンス 」を参照してください。

4

プロジェクトルートに、次のコードに示すように、 MongoDB接続文字列と LM プロバイダーの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フィールドを確認します。

移行したエージェントがローカルで実行されることを確認したら、次のタスクを実行できます。