对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs 菜单

设置Atlas资源

在本指南中,您可以学习;了解如何使用 agentengine atlas 命令为代理部署预配Atlas资源。这些命令使用本地存储的服务帐户配置文件直接调用Atlas Admin API ,不需要安装Atlas CLI 。

agentengine atlas 表面提供了两条设置路径:

  • 引导式设置:agentengine atlas setup 命令会提示您以交互方式选择Atlas组织、项目、集群、数据库用户和 Voyage API密钥。传递 --yes 标志可在没有提示的情况下自动创建所有资源。

  • 手动设置:agentengine atlas profile、agentengine atlas cluster、agentengine atlas database-user 和 agentengine atlas voyage-api-key 命令为脚本和桌面工具提供非交互式子命令。

开始之前,请确保您拥有Atlas帐户、至少一个Atlas组织的访问权限以及已初始化的代理项目。您必须在包含 agent.yaml文件的代理项目目录中运行agentengine atlas 命令。要设立项目,请参阅设置代理项目。要学习;了解完成此设置需要哪个Atlas角色,请参阅用于项目管理的Atlas角色。

由于以下原因, Atlas助手引擎不支持Atlas免费集群:

  • 免费集群不支持用于内存功能的搜索索引。

  • 免费集群存在存储限制,活动代理可能很快就会达到此限制。

重要

如果您的代理使用内存,请选择或创建Atlas Flex(最低要求)、M10、M20 或更集群层级存储内存数据。要学习;了解更多信息,请参阅为代理添加内存。

agentengine atlas setup 命令使用 ~/.agentengine/atlas.json文件中存储的凭证向Atlas进行身份验证。此文件存储一个或多个命名配置文件,以用于不同的环境或服务帐户。除非您使用 --profile 标志指定其他配置文件,否则该命令将使用 default 配置文件。

当您从有效的代理项目中运行agentengine atlas setup 时,如果不存在存储的配置文件或环境变量, CLI会提示您输入服务帐户客户端ID和密钥,并将它们另存为 ~/.agentengine/atlas.json 中的 default 配置文件。您还可以在运行命令之前使用以下模式手动创建文件。

注意

Atlas OAuth 委派

当您登录Atlas Agent Engine 时,该平台会自动从Atlas检索您的角色分配,并确定您可以访问权限哪些组织和项目。该平台使用Atlas OAuth 2.1 App Connections服务器授权对Atlas的访问权限。

~/.agentengine/atlas.json文件具有以下结构:

{
"version": 1,
"profiles": {
"default": {
"base_url": "https://cloud.mongodb.com",
"client_id": "<service-account-client-id>",
"client_secret": "<service-account-client-secret>"
}
}
}

您可以添加多个命名配置文件以用于不同的Atlas环境或服务帐户。要使用非默认配置文件,请传递 --profile 标志,如以下示例所示:

agentengine atlas setup --profile <profile-name>

您可以使用以下环境变量提供或覆盖凭证,而无需直接编辑配置文件:

变量
说明

MONGODB_ATLAS_ACCESS_TOKEN

预先获得的 OAuth访问权限令牌。具有最高优先级。 12 小时内有效。

MONGODB_ATLAS_CLIENT_ID

服务帐户客户端ID。与 MONGODB_ATLAS_CLIENT_SECRET 一起使用。

MONGODB_ATLAS_CLIENT_SECRET

服务帐户客户端密钥。与 MONGODB_ATLAS_CLIENT_ID 一起使用。

MONGODB_ATLAS_BASE_URL

覆盖存储在配置文件中的Atlas基本URL 。

该命令按以下顺序解析凭证:

  1. MONGODB_ATLAS_ACCESS_TOKEN,如果设立

  2. MONGODB_ATLAS_CLIENT_ID 和 MONGODB_ATLAS_CLIENT_SECRET,如果两者均已设立

  3. 将配置文件存储在 ~/.agentengine/atlas.json

  4. 交互式提示(如果已连接终端)

对 agentengine atlas setup 命令使用以下语法:

agentengine atlas setup [--yes] [--context <name>] [--workspace <name>] [--env <name>] [--profile <name>] [--force] [--org-id <id>] [--project-id <id>] [--workspace-id <id>]
标记
说明

--yes, -y

运行自动非交互式设置路径。当不存在匹配的资源时,该命令使用工作区ID派生的名称创建Atlas 集群、数据库用户和 Voyage API密钥。

--context <name>

以 .agentengine/state.json文件中的命名本地上下文为目标。

--workspace <name>

在单一存储库项目中按名称定位特定工作区。

--env <name>

选择Atlas环境。 CLI会保存选定的环境与Atlas状态,并在后续相同工作区上下文中的Atlas命令中重复使用。

--profile <name>

从 ~/.agentengine/atlas.json 中选择Atlas服务帐户配置文件。如果省略,设置将使用环境默认。

--force

重置已保存的Atlas链接并重新运行引导式设置流程。使用此标志可在新环境中更新配置或预配资源。

--org-id <id>

直接针对特定组织ID 。

--project-id <id>

直接针对特定项目ID 。

--workspace-id <id>

直接针对特定的工作区ID 。

运行agentengine atlas setup 时, CLI将指导您完成以下步骤:

  1. 组织:通过编号菜单列出您的Atlas组织。选择现有组织或创建新组织。

  2. 项目:列出所选组织中的项目。选择现有项目或创建新项目。新项目会收到一个项目范围的服务帐户。

  3. 集群:列出所选项目中的集群。选择一个现有集群,或者,如果您的服务帐户具有集群创建者权限,请创建一个新集群。

  4. 数据库用户:使用代理用于连接到集群的凭证创建数据库用户。

  5. Voyage AI API密钥:为助手的内存功能预配 Voyage AI API密钥。

  6. 密钥:将 MONGODB_URI 和 VOYAGE_API_KEY 保存为Atlas助手引擎密钥,以便部署的助手可以连接到Atlas 集群和 Voyage AI。

流程完成后, CLI会显示每个资源的预配状态。

注意

每个步骤中可用的选项取决于您的Atlas角色。如果您的服务帐户缺少所需权限, CLI将忽略用于创建新资源的选项,仅列出现有资源。

要在没有交互式提示的情况下自动创建所有Atlas资源,请将 --yes 标志传递给 agentengine atlas setup 命令。当工作区尚未初始化时,agentengine atlas setup --yes 命令会先运行 agentengine init,然后使用基于工作区ID 的名称创建以下资源:

  • Atlas cluster

  • 数据库用户名为 agent-engine-<workspace-id>

  • Voyage API密钥名为 agent-engine-<workspace-id>

当发现已保存的元数据或与这些生成的名称匹配的现有Atlas资源时,自动设置会停止。要创建一设立新的资源,删除冲突的资源并传递 --force。

自动设置会使用已保存的Atlas项目(如果存在)。否则,它需要一个可见的Atlas组织和一个可见的Atlas项目才能在没有提示的情况下继续。

您可以在运行命令之前设置以下环境变量来覆盖默认集群配置:

变量
说明

AGENTENGINE_ATLAS_CLUSTER_PROVIDER

新集群的云提供商。默认值:AWS。

AGENTENGINE_ATLAS_CLUSTER_REGION

新集群的 Cloud 地区 。默认值:US_EAST_1。

AGENTENGINE_ATLAS_CLUSTER_TIER

集群层级。默认值:FLEX。

agentengine atlas setup 命令在每次运行结束时显示所有资源的预配状态。要重新检查当前状态或重新运行完整设置流程,运行以下命令:

agentengine atlas setup --force

使用以下命令将Atlas Agent Engine 数据平面IP地址添加到Atlas项目IP访问列表,而无需运行完整的引导式设置流程:

agentengine atlas setup-ip-access [--context <name>] [--workspace <name>] [--env <name>] [--profile <name>] [--json] [--org-id <id>] [--project-id <id>] [--workspace-id <id>]

该命令将Atlas助手引擎连接所需的IP地址添加到已保存的Atlas项目的IP访问列表中。传递 --json 标志以接收机器可读的 {"configured": true} 响应。

提示

先决条件

此命令需要一个已保存的Atlas项目。首先运行 agentengine atlas setup 或 agentengine atlas profile save 以选择一个项目。

运行所有资源命令后,使用以下命令完成自动化驱动的设置流程:

agentengine atlas setup finalize [--context <name>] [--workspace <name>] [--env <name>] [--profile <name>] [--org-id <id>] [--project-id <id>] [--workspace-id <id>] --json

该命令会验证所选集群、数据库用户、Voyage API密钥、MONGODB_URI 和 VOYAGE_API_KEY 是否都存在,为Atlas助手引擎配置Atlas IP访问权限,并将Atlas工作区状态标记为已链接。输出不包含密钥值。

agentengine atlas profile 子命令管理自动化工作流程的服务帐户配置文件和Atlas项目选择。这些命令是非交互式的,需要 --json 标志。

使用以下命令从 ~/.agentengine/atlas.json文件中返回已保存的配置文件:

agentengine atlas profile list --json

以下示例显示了输出格式:

{
"schema_version": "1",
"status": "ok",
"profiles": [
{"name": "default", "base_url": "https://cloud.mongodb.com"}
]
}

使用以下命令验证服务帐户凭证并返回可访问的组织和项目:

agentengine atlas profile verify --json --input -

将 - 传递给 --input 标志,从而通过 stdin 传递JSON请求对象。该命令将返回所选配置文件名称、基本URL以及可访问的组织和项目的列表。输出不包括访问权限令牌和密钥。

使用以下命令将选定的Atlas组织和项目持久保存到工作区上下文中:

agentengine atlas profile save [--context <name>] [--workspace <name>] --json --input -

将 - 传递给 --input 标志,从而通过 stdin 传递JSON请求对象。该命令将Atlas环境、配置文件、组织和项目保存到工作区的 .agentengine/state.json文件。如果组织和项目选择没有更改,该命令将保留任何现有的集群、数据库用户和 Voyage API密钥选择。

agentengine atlas cluster 子命令列出Atlas集群并保存工作区的集群选择。首先运行 agentengine atlas profile save 以选择一个Atlas项目。

使用以下命令返回已保存Atlas项目中的集群:

agentengine atlas cluster list [--context <name>] [--workspace <name>] --json

以下示例显示了输出格式:

{
"schema_version": "1",
"status": "ok",
"atlas_state": {},
"clusters": [
{
"name": "my-cluster",
"kind": "REPLICASET",
"state_name": "IDLE",
"is_flex": false
}
],
"create_defaults": {
"name": "my-agent",
"provider": "AWS",
"region": "US_EAST_1",
"tier": "FLEX",
"label": "Flex"
},
"can_create": true,
"warnings": []
}

create_defaults对象提供新集群的建议配置。 can_create字段指示服务帐户是否有权在所选项目中创建集群。

使用以下命令选择现有集群或创建新集群:

agentengine atlas cluster save [--context <name>] [--workspace <name>] --json --input -

将 - 传递给 --input 标志,从而通过 stdin 传递JSON请求对象。要选择现有集群,请执行以下操作:

{"mode": "existing", "name": "my-cluster"}

要创建新集群:

{
"mode": "create",
"name": "my-agent",
"provider": "AWS",
"region": "US_EAST_1",
"tier": "FLEX"
}

如果在创建模式下省略 name字段, CLI会根据工作区ID生成名称。创建集群会请求在Atlas中预配并立即返回。 Atlas可能需要几分钟才能完成集群的预配。

agentengine atlas database-user 子命令列出Atlas数据库用户并保存工作区的用户选择。首先运行 agentengine atlas cluster save 命令以选择一个集群。

使用以下命令返回已保存Atlas项目中的数据库用户:

agentengine atlas database-user list [--context <name>] [--workspace <name>] --json

以下示例显示了输出格式:

{
"schema_version": "1",
"status": "ok",
"atlas_state": {},
"users": [
{"username": "my-user", "database_name": "admin"}
],
"create_defaults": {"username": "agent-engine-<workspace-id>"},
"can_create": true,
"warnings": []
}

当该命令找到名称与为工作区生成的默认名称匹配的现有用户时,会自动将该用户保存到 .agentengine/state.json文件中。当在当前会话之外预配资源时,这会使本地状态保持最新状态。

使用以下命令选择现有用户或创建新用户:

agentengine atlas database-user save [--context <name>] [--workspace <name>] --json --input -

将 - 传递给 --input 标志,从而通过 stdin 传递JSON请求对象。要选择现有用户,请包含密码,如以下示例所示:

{"mode": "existing", "username": "my-user", "password": "my-password"}

要创建新用户,请传递以下对象:

{"mode": "create", "username": "my-user"}

如果在创建模式下省略 username字段, CLI会根据工作区ID生成名称。对于新用户, CLI会自动生成密码。生成的密码不包含在命令输出中。

保存后,该命令会将 MONGODB_URI 作为项目范围的Atlas Agent Engine 密钥写入。它不会写入本地文件。

agentengine atlas voyage-api-key 子命令列出Atlas Voyage API密钥并保存工作区的密钥选择。首先运行 agentengine atlas database-user save 以选择一个数据库用户。

使用以下命令返回已保存Atlas项目中的 Voyage API密钥:

agentengine atlas voyage-api-key list [--context <name>] [--workspace <name>] --json

以下示例显示了输出格式:

{
"schema_version": "1",
"status": "ok",
"atlas_state": {},
"keys": [
{
"id": "key-id",
"name": "agent-engine-<workspace-id>",
"masked_secret": "voy...xxxx"
}
],
"create_defaults": {"name": "agent-engine-<workspace-id>"},
"can_create": true,
"warnings": []
}

当该命令找到名称与为工作区生成的默认匹配的现有密钥时,会自动将该密钥保存到 .agentengine/state.json文件中。

使用以下命令选择现有密钥或创建新密钥:

agentengine atlas voyage-api-key save [--context <name>] [--workspace <name>] --json --input -

通过将 - 传递给 --input 标志,从而通过 stdin 传递JSON对象。要选择现有密钥,请使用以下格式:

{"mode": "existing", "name": "my-key", "value": "<api-key-value>"}

要创建新密钥,请使用以下格式:

{"mode": "create", "name": "my-key"}

如果在创建模式下省略 name字段, CLI会根据工作区ID生成名称。创建密钥时, CLI会直接使用 Atlas 返回的密钥值。

保存后,该命令会将 VOYAGE_API_KEY 作为项目范围的Atlas Agent Engine 密钥写入。它不会写入本地文件。对于较低的Atlas环境,该命令还会以相同的方式写入 VOYAGE_URL 变量。

预配Atlas资源后,您可以为代理部署设立密钥,包括 LLM提供商API密钥。要学习;了解操作方法,请参阅“预配云密钥”指南。