Overview
在本指南中,您可以学习;了解如何使用 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身份验证配置文件
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>
环境变量
您可以使用以下环境变量提供或覆盖凭证,而无需直接编辑配置文件:
变量 | 说明 |
|---|---|
| 预先获得的 OAuth访问权限令牌。具有最高优先级。 12 小时内有效。 |
| 服务帐户客户端ID。与 |
| 服务帐户客户端密钥。与 |
| 覆盖存储在配置文件中的Atlas基本URL 。 |
该命令按以下顺序解析凭证:
MONGODB_ATLAS_ACCESS_TOKEN,如果设立MONGODB_ATLAS_CLIENT_ID和MONGODB_ATLAS_CLIENT_SECRET,如果两者均已设立将配置文件存储在
~/.agentengine/atlas.json交互式提示(如果已连接终端)
命令事务语法和选项
对 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>]
命令标志
标记 | 说明 |
|---|---|
| 运行自动非交互式设置路径。当不存在匹配的资源时,该命令使用工作区ID派生的名称创建Atlas 集群、数据库用户和 Voyage API密钥。 |
| 以 |
| 在单一存储库项目中按名称定位特定工作区。 |
| 选择Atlas环境。 CLI会保存选定的环境与Atlas状态,并在后续相同工作区上下文中的Atlas命令中重复使用。 |
| 从 |
| 重置已保存的Atlas链接并重新运行引导式设置流程。使用此标志可在新环境中更新配置或预配资源。 |
| 直接针对特定组织ID 。 |
| 直接针对特定项目ID 。 |
| 直接针对特定的工作区ID 。 |
交互式流程
运行agentengine atlas setup 时, CLI将指导您完成以下步骤:
组织:通过编号菜单列出您的Atlas组织。选择现有组织或创建新组织。
项目:列出所选组织中的项目。选择现有项目或创建新项目。新项目会收到一个项目范围的服务帐户。
集群:列出所选项目中的集群。选择一个现有集群,或者,如果您的服务帐户具有集群创建者权限,请创建一个新集群。
数据库用户:使用代理用于连接到集群的凭证创建数据库用户。
Voyage AI API密钥:为助手的内存功能预配 Voyage AI API密钥。
密钥:将
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项目才能在没有提示的情况下继续。
您可以在运行命令之前设置以下环境变量来覆盖默认集群配置:
变量 | 说明 |
|---|---|
| 新集群的云提供商。默认值: |
| 新集群的 Cloud 地区 。默认值: |
| 集群层级。默认值: |
设置状态
agentengine atlas setup 命令在每次运行结束时显示所有资源的预配状态。要重新检查当前状态或重新运行完整设置流程,运行以下命令:
agentengine atlas setup --force
设置IP访问
使用以下命令将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 以选择一个项目。
完成Atlas设置
运行所有资源命令后,使用以下命令完成自动化驱动的设置流程:
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工作区状态标记为已链接。输出不包含密钥值。
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密钥选择。
Atlas集群命令
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可能需要几分钟才能完成集群的预配。
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 密钥写入。它不会写入本地文件。
Atlas Voyage API按键命令
agentengine atlas voyage-api-key 子命令列出Atlas Voyage API密钥并保存工作区的密钥选择。首先运行 agentengine atlas database-user save 以选择一个数据库用户。
列出 Voyage API密钥
使用以下命令返回已保存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文件中。
保存 Voyage API密钥
使用以下命令选择现有密钥或创建新密钥:
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密钥。要学习;了解操作方法,请参阅“预配云密钥”指南。