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

エージェント イメージをビルドします

このガイドでは、CLI からエージェントイメージを構築する方法を学習できます。このビルド プロセスでは、エージェントのソースコードがクラウドストレージにアップロードされ、 Dockerイメージを生成するリモート ビルドジョブが開始されます。

エージェントイメージを構築するには、次の構文を使用します。

agentengine build [--label <str>] [--no-wait] [--context <name>] [--workspace <name>] [--all] [--json] [--upload-build-secrets]

このコマンドは、エージェントソースを tar.gzファイルとしてパッケージ化し、署名付きURLを介して Simple Storage Service(S3)バケットにアップロードし、 AWS CodeBuildジョブを開始して Elastic Container Register にDockerイメージを生成します( ECR)。

エージェントイメージを作成するときは、次の任意フラグを使用できます。

Flag
説明

--label

ビルド ラベル。デフォルトでは 、この値は branch@sha12形式でローカル Gitリポジトリから読み取られます。

--no-wait

ビルドジョブを開始した後、ビルド ステータスをポーリングせずに返すよう CLI に指示します。

--context

.agentengine/state.jsonファイルからの という名前のローカル コンテキスト。

--workspace

(MongoDB のみ) ルートagent.yaml で定義されている名前で特定のワークスペースを構築します。このフラグは--all と相互に排他的です。

--all

(MongoDB のみ) すべてのワークスペースを順番にビルドします。 CLI はソース アーカイブを一度作成し、各ワークスペースに対してアップロードとビルドの手順を実行します。すべてのビルドが開始されると、ターミナルステータスに達するまで各ビルドをポーリングします。このフラグは、--workspace と相互に排他的です。

--json

マシンが判読可能な単一のビルド結果を出力します。

--upload-build-secrets

ビルドが開始される前に、 で宣言された各 を同じ名前の環境変数からアップロードします。ビルド間で期限切れとなる有効期間の短いレジストリ トークン用にオプトインします。詳細については、「 プライベートartifact_repositories[].secret agent.yamlアーティファクト リポジトリ 」を参照してください。

エージェントソースをアップロードする前に、前のセクションで参照されている tar.gz アーカイブがビルドされます。このセクションでは、アーカイブ パッケージがどのディレクトリに保存されるか、また除外されるファイルについて説明します。

デフォルトでは 、agentengine build コマンドはエージェントディレクトリのみをパッケージ化します。ワークスペースまたは MongoDB構成ファイルにエージェントディレクトリがノードとしてリストされている場合は、代わりに ワークスペースまたは MongoDB ルートからの パッケージを使用します。次の表に示すように、リスティング要件はワークスペースのタイプによって異なります。

ワークスペース タイプ
メンバーシップ要件

rv ワークスペース

エージェントディレクトリは[tool.uv.workspace].members パターンと一致する必要があり、ワークスペースから除外してはならず、独自の pyproject.tomlファイルが必要です。メンバー パターンでは、* は単一のディレクトリレベルと一致し、** はサポートされていません。より深いメンバーを明示的に一覧表示します(agents/* や agents/*/* など)。

Monorepo

エージェントディレクトリは、ルート agent.yamlファイル内の agents[].path リストに書き込まれているとおりに正確に表示される必要があります。リストされたパスの下にネストされたディレクトリは、ノードではありません。

ワークスペースまたは MongoDB ルートを見つけるために、CLI は、エージェントディレクトリの親ディレクトリから上方向にルートをマークするファイルを検索します。検索は Git リポジトリのルートディレクトリで停止し、 ホームディレクトリには続行されないため、 コマンドはリポジトリ以外のファイルをパッケージできません。

エージェントディレクトリが Git サブモジュールまたはリンクされたワークツリーの場合、検索はその境界で停止しません。検索は親リポジトリまで続行され、前の表に記載されているメンバーシップ ルールによって、 コマンドがパッケージ化されるディレクトリが決定されます。

アーカイブ ルートにあるプロジェクトレベルの .agentengineignoreファイルは、CLI がアーカイブに圧縮するファイルを制御します。このファイルでは、グローバル、**、! 否定などの標準 .gitignore構文を使用します。 agentengine init コマンドは、次のデフォルトパターンでファイルを作成します。

  • .git

  • .venv*

  • __pycache__

  • .pytest_cache

  • .mypy_cache

  • .ruff_cache

  • node_modules

  • dist

  • build

  • .agentengine

  • *.pyc

  • .env

  • .env.*

  • .DS_Store

  • *.pem

  • *.key

ファイルが存在しない場合、CLI は agentengine init コマンドと同じデフォルトパターンを使用します。

次のファイルは常に除外されます。これを上書きするために、.agentengineignoreファイルで ! 除外を使用することはできません。

  • .env および .env.* ファイル

  • *.pem および *.key ファイル

  • 一般的な OpenSSH 秘密キー: id_rsa、id_dsa、id_ecdsa、id_ed25519、id_ed448

  • .git ディレクトリ

  • クラウドとツール認証情報ストア: .aws、.kube、.ssh、.netrc、.git-credentials、.azure、.config/gh、.docker/config.json、.config/gcloud

プロジェクト レベルの.npmrc ファイルは、この除外ファイルのセットには含まれません。プラットフォーム ビルドは、宣言されたプライベートnpmレジストリを解決するために.npmrc アーカイブから ファイルを読み取ります。このビルドでは、宣言されたプライベートpyproject.toml PyPI レジストリを解決するために も読み取られます。ビルドのためのプライベート レジストリ認証情報の構成方法については、「 プライベート アーティファクト リポジトリ 」を参照してください。

警告

ビルドには.npmrc pyproject.tomlファイルと ファイルが含まれるため、これらのファイルにレジストリ トークンや認証情報を保存しないでください。代わりに、artifact_repositories agent.yamlファイルで の認証情報を宣言します。詳細については、「 プライベート アーティファクト リポジトリ 」を参照してください。

エージェントがAWS CodeAtlas などのプライベート アーティファクト リポジトリでホストされているパッケージに依存している場合は、agent.yamlファイルの artifact_repositories ブロックでそれらのリポジトリを宣言します。 Atlas Agent Engine は、ビルド時に各エントリに という名前の Atlas Agent Engine シークレットからレジストリ認証情報を解決し、それをビルド環境に挿入します。認証情報はソースファイルに保存されず、実行中のポッドに公開されません。リポジトリを宣言しない場合、Atlas Agent Engine は、既存のツール構成を変更せずに使用して、パブリック レジストリからの依存関係を解決します。

レジストリ URL は、agent.yaml ではなく、プロジェクトツールに存在します。 Pythonエージェントの場合は、pyproject.toml の [[tool.uv.index]] エントリで各プライベートインデックスを宣言します。 agent.yaml の nameフィールドはインデックス名と一致する必要があります。 TypeScript エージェントの場合は、.npmrcファイルで各プライベート スコープ レジストリを宣言します。 agent.yaml の npm_scope を、レジストリにマッピングするスコープに設定します。次の例は、各言語に一致するツールファイルと agent.yaml エントリを示しています。

pyproject.toml
[[tool.uv.index]]
name = "corps-pypi"
url = "https://<domain>-<account>.d.codeartifact.<region>.amazonaws.com/pypi/<repo>/simple/"
explicit = true
agent.yaml
artifact_repositories:
- name: corps-pypi
type: pypi
secret: ARTIFACT_REPO_CORPS_PYPI_TOKEN
username: aws
scope: project
.npmrc
@acme:registry=https://npm.pkg.github.com/
agent.yaml
artifact_repositories:
- name: corp-npm
type: npm
secret: ARTIFACT_REPO_CORP_NPM_TOKEN
npm_scope: "@acme"
scope: project

完全なartifact_repositories スキーマの詳細については、 エージェント YAML スキーマ を参照してください。

ビルドが開始される前に、Atlas Agent Engine はプロジェクトツールに対して宣言されたリポジトリを検証します。検証に失敗した場合、ビルドは実行可能なエラーで停止します。ビルドする前に問題をキャッチするには、ローカルでagentengine agent validate を実行します。詳細については、「 構成の検証 」を参照してください。

宣言された各 artifact_repositories[].secret は、ビルドを開始する前に、Atlas Agent シークレットに宣言されたスコープに存在する必要があります。ビルド間で期限切れになる有効期間の短いレジストリ トークンの場合は、--upload-build-secrets フラグを使用して同じ名前の環境変数から各シークレットをアップロードします。次の例では、 AWS Codeアーティファクト トークンを最小化し、1 回のビルドコマンドでアップロードします。

export ARTIFACT_REPO_CORPS_PYPI_TOKEN="$(aws codeartifact get-authorization-token \
--domain my-domain --query authorizationToken --output text)"
agentengine build --upload-build-secrets

有効期間が長い認証情報の場合は、 を使用して各シークレットを 1 回設定し、agentengine secret set フラグなしでビルドします。シークレットのプロビジョニングの詳細については、「 クラウド シークレットのプロビジョニング 」を参照してください。

次の表では、エージェントのビルドを監視および管理するために使用できるビルド管理コマンドについて説明しています。

コマンド
説明

agentengine build logs <build_id>

指定されたビルドのビルドログを stdout にストリーミングします。

agentengine build list

ワークスペースのすべてのビルドを テーブル形式で一覧表示します。この表には、ビルドID、ステータス、ラベル、作成時間が含まれます。

agentengine build cancel <build_id>

指定された実行中またはキューに入れられたビルドをキャンセルします。このコマンドは、ビルドがすでに成功しているか失敗している場合はエラーを返します。

agentengine build promote <source_build_id>

ソースからイメージを再ビルドせずに、成功したビルドイメージを別のワークスペースにプロモートします。詳細については、「 ビルドのプロモート 」を参照してください。

agentengine build promote get <promotion_id>

指定されたビルドの昇格のステータスを返します。出力には、引き上げが失敗した場合、ターゲット ビルドIDと失敗の理由が含まれます。

Tip

コマンド フラグ

各ビルド管理コマンドは、ワークスペースとプロジェクトを指定するために --workspace-id と --project-id フラグを受け入れます。指定しない場合、CLI は .agentengine/state.jsonファイルからこれらの値を読み取ります。

ビルドをプロモートすると、Atlas Agent Engine は、ソースからイメージを再ビルドせずに、あるワークスペースから別のワークスペースにテストされたビルドイメージをコピーします。昇格されたイメージはソース イメージとバイト的に同一であるため、ターゲット ワークスペースで実行されるエージェントは、ソース ワークスペースでテストしたエージェントと同じになります。

注意

プラットフォームUIビルドの詳細ページには、昇格されたビルドの Build Logs セクションが表示されません。これは、昇格では新しいビルドではなく既存のイメージが再利用されるためです。

デフォルトでは 、ソースビルドには少なくとも 1 つの配置が成功している必要があります。これにより、イメージが配置可能であることが確認されます。この要件をバイパスするには、--force フラグを使用します。

ビルドをプロモートするには、次の構文を使用します。

agentengine build promote <source_build_id> [--workspace <name>] [--workspace-id <id>] [--project-id <id>] [--context <name>] [--force] [--yes] [--json]

CLI は、ソース ビルドをIDによって識別し、現在の組織内で解決します。別の組織内のプロジェクトにビルドを推奨することはできません。

ビルドを推奨する場合は、次のフラグを使用できます。

Flag
説明

--workspace

(MongoDB のみ) ルートagent.yaml ファイルで定義されている宛先ワークスペース名。

--workspace-id

宛先プラットフォーム ワークスペースID。

--project-id

宛先プラットフォームプロジェクトID。

--context

.agentengine/state.jsonファイルからの という名前のローカル コンテキスト。

--force

配置が成功する要件をバイパスします。このフラグには、ターゲットプロジェクトの PROJECT_OWNER ロールが必要です。

--yes

インタラクティブな確認プロンプトをスキップします。 CIパイプラインまたはその他の非対話型環境で コマンドを実行する場合は、このフラグを使用します。そうしないと、コマンドは インタラクティブターミナルの外部で失敗します。

--json

昇格結果をJSONとして出力します。

警告

昇格がソース ワークスペースからランタイムまたはプロジェクト構成をコピーすることはありません。シークレット、Atlas 接続構成、および Egress ポリシーは、ターゲット ワークスペースに転送されません。昇格したビルドを配置する前に、ターゲットプロジェクトとワークスペースでこれらの設定を構成します。

昇格が成功したら、ターゲットのワークスペースに昇格されたビルドを配置します。ビルドを配置する方法については、「 ビルドの配置 」を参照してください。

次のコマンドは、ビルドステータスをポーリングせずにエージェントイメージをビルドし、ビルド情報を一覧表示します。

agentengine build --no-wait && agentengine build list

ビルドが成功した場合、コマンド出力は次の例のようになります。

Initialising build...
build_id: <build_id>
Creating archive...
Uploading archive...
Starting build...
✓ Build started (build_id: ...)
URL: https://agentengine.mongodb.com/api/v1/workspaces/<workspace_id>/builds/<build_id>
BUILD_ID STATUS LABEL CREATED_AT
<build_id> running main@abc123def456 2026-04-01T10:30:00Z

エージェントイメージを構築したら、そのエージェントを本番環境に配置できます。エージェントを配置する方法については、 「ビルドの配置」ガイドを参照してください。