Overview
このガイドでは、MongoDB agent.yamlを設定して、単一のリポジトリから複数のエージェントを管理する方法を学習できます。 MongoDB はリポジトリルートで各エージェントの名前とサブディレクトリ パスを一覧表示する ファイルを使用します。 CLI は、ルート にagent.yaml agentsキーではなくentrypoint キーが含まれている場合に、mongorepo形式を自動的に検出します。
MongoDB Atlas を設定する前に、 MongoDB Atlas Agent Engine をインストールして認証していることを確認します。
ディレクトリ構造
MongoDB では、各エージェントのサブディレクトリにルート agent.yaml と単一エージェント agent.yaml が必要です。次の例は、2 つのエージェントを含む MongoDB のファイル構造を示しています。
my-repo/ ├── agent.yaml # Monorepo root file ├── .env # Shared secrets for the local dev stack ├── pyproject.toml # Shared Python dependencies (optional) ├── agents/ │ ├── chat/ │ │ ├── agent.yaml # Per-agent configuration file with entrypoint │ │ ├── pyproject.toml │ │ ├── .env # Per-agent secrets │ │ └── src/ │ └── search/ │ ├── agent.yaml # Per-agent configuration file with entrypoint │ ├── pyproject.toml │ ├── .env # Per-agent secrets │ └── src/ └── shared/ # Shared libraries, included in all builds
MongoDB Ops Manager の構成
次の手順は、必要な MongoDB ファイルを構成し、MongoDB を初期化する方法を示しています。
ルートagent.yaml ファイルを構成します。
リポジトリルートに agent.yamlファイルを作成します。 agents リストを使用して、各エージェントの名前とパスを宣言します。ルートファイルに entrypointフィールドを含めないでください。
agents リスト内の各エントリには次のフィールドが必要です。
フィールド | 必須 | 説明 |
|---|---|---|
| はい | エージェント識別子。このフィールドを、ハイフンを含む小文字の英数字値に設定します。先頭または末尾のハイフンは使用せず、名前が MongoDB 内で一意であることを確認してください。 |
| はい | リポジトリルートからエージェントのディレクトリまでの相対パス。 |
次のサンプルagent.yamlファイルは、chat と search という名前の 2 つのエージェントを含む MongoDB を構成します。
agents: - name: chat path: agents/chat - name: search path: agents/search
各エージェントのagent.yaml ファイルを構成します。
各エージェントのサブディレクトリに、単一エージェント形式を使用するagent.yaml ファイルを作成します。ファイルには、エージェントのアプリケーションオブジェクトを指すentrypoint フィールドと、エージェントが実行する内容とアクセスできるシークレットを定義するsandboxes フィールドが含まれている必要があります。使用可能なすべてのフィールドを表示するには、 プロジェクトの作成ガイドのエージェント.YAML フィールドのリスト を参照してください。
次のサンプルagent.yamlファイルは、 chatエージェントを構成します。
entrypoint: chat_agent.graph:app name: chat sandboxes: agent: secrets: ["*"] tools: [] tool: secrets: ["*"] tools: []
次のサンプルagent.yamlファイルは、 searchエージェントを構成します。
entrypoint: search_agent.graph:app name: search sandboxes: agent: secrets: ["*"] tools: [] tool: secrets: ["*"] tools: []
agent サンドボックスは、 割り込みツールなど、エージェントで実行する必要があるツール用です。 tool サンドボックスは、エージェントとは別に実行されるツール用です。各サンドボックスのツールを toolsフィールドに一覧表示します。各サンドボックスの secretsフィールドの下で シークレット アクセス を構成します。サンドボックスが選択されたシークレットのみを受け取る場合は、 ["*"] を特定のシークレット名のリストに置き換えます。
重要
各サブディレクトリには、エージェントのPython依存関係を宣言する pyproject.tomlファイルも含まれている必要があります。ファイルには、[project].name キーを設定し、requires キーと build-backend キーを設定する [build-system] テーブルを含める必要があります。これらの要件を満たすファイルを生成するには、エージェントサブディレクトリで uv init --package を実行します。
.envファイルを作成します。
MongoDB は 2 種類の .env ファイルを使用します。1 つはローカル 開発スタックがすべてのエージェント間で共有するシークレット用のルート .env と、そのエージェント独自のシークレット用に各エージェントサブディレクトリ内のエージェントごとの .env を使用します。ローカル環境を起動する前に、これらを手動で作成します。
リポジトリルートに、次の例に示すように、オーケストレーションエンジンとすべてのエージェントがローカル開発中に消費するシークレットを含む .envファイルを作成します。
MONGODB_URI=<your-mongodb-connection-string> <PROVIDER>_API_KEY=<your-api-key>
各エージェントのサブディレクトリに、エージェント固有のAPIキーなど、そのエージェントのみが消費するシークレットを含む .envファイルを作成します。
重要
バージョン管理にシークレットをコミットしないでください。
単一エージェントから MongoDB への移行
既存の単一エージェントリポジトリを単一エージェントに変換するには、エージェントファイルを サブディレクトリに移動し、プロジェクトを再初期化します。
次の手順は、mongorepo に移行する方法を示しています。
エージェントのサブディレクトリを作成し、ファイルを移動します。
以下のコマンドを実行して、エージェントのサブディレクトリを作成し、以下のファイルをそのサブディレクトリに移動します。
mkdir -p agents/<agent-name> mv agent.yaml pyproject.toml .env src/ agents/<agent-name>/
<agent-name> プレースホルダーをエージェントの名前 に置き換えます。
注意
ディレクトリ構造
上記の例では、agents/ディレクトリに サブディレクトリが作成されています。別のディレクトリ構造を使用できますが、ルート agent.yaml の path 値は対応する相対パスを指定する必要があります。
.agentengine/ディレクトリをエージェントのサブディレクトリに移動します。
agentengine init を実行すると、CLI は非表示の .agentengine/ディレクトリを生成し、.agentengine/state.jsonファイルにワークスペースの登録状態を含むようにします。 MongoDB では、各エージェントに独自の .agentengine/ディレクトリが必要です。
次のコマンドを実行して、既存のディレクトリをエージェントのサブディレクトリに移動し、エージェントのワークスペース登録を保持します。
mv .agentengine/ agents/<agent-name>/.agentengine/
重要
.agentengine/ディレクトリを移動しない場合、agentengine initを実行中とエージェントの新しいワークスペースが登録され、以前のワークスペース登録は孤立します。
ルートagent.yaml ファイルを作成します。
リポジトリルートに、前の「 MongoDB Atlas の構成 」セクションで説明されているように、agent.yaml キーを使用してエージェントを一覧表示する新しいagents を作成します。
次のステップ
MongoDB を設定したら、エージェントをビルドして配置できます。その方法については、次のガイドを参照してください。