Overview
本页列出了公开预览期间应用于MongoDB Atlas Agent Engine 的限制。每个限制也会显示在涵盖受影响功能的页面上。
重要
公开预览版限制
MongoDB Atlas Agent Engine 处于公共预览阶段。 MongoDB不建议在该平台上运行生产工作负载,并且在公共预览版期间不为平台可用性提供服务级别协议 (SLA) 或服务级别目标 (SLO)。
扩展和并发
Atlas Agent Engine 不会自动伸缩代理部署。 agent.yaml文件中的 scaling.replicas字段设置固定的沙箱数量,每个会话在其生命周期内保留一个代理沙箱和一个工具沙箱。因此,该字段设置部署可以同时提供服务的会话数。
scaling.replicas字段接受从 1 到 512 之间的值,如果省略,则默认为 4。当每个沙箱都被保留时,新的调用请求将失败并显示 pool full 错误。
512 并发沙箱限制适用于业务流程引擎,其范围仅限于一个项目,并且可以为多个代理提供服务。项目中所有代理的 scaling.replicas 值计入相同的上限。要运行的沙箱数量超过一个项目允许的数量,请将代理分布在多个项目中。
为防止调用请求耗尽池,请在请求之间重复使用会话 ID。股票会话ID的请求会重复使用一个预留,但省略会话ID的请求会使用一对新的沙箱。会话ID 的长度必须为 1 到 128 个字符,可以包含字母、数字、下划线 (_) 和连字符 (-)。在 agentengine invoke 命令的 --session 选项或API请求的 X-Session-ID 标头中传递会话ID 。
如果您的调用请求需要按会话隔离性,则无法重复使用会话ID。要同时为更多会话提供服务,请增加 scaling.replicas 值,或减少 scaling.agent_idle_ttl_seconds 和 scaling.tool_idle_ttl_seconds 值,以便空闲会话更快发布其沙箱。
由于Atlas助手引擎会在构建时对 scaling 值进行快照,因此您必须再次构建并部署代理才能使更改生效。要学习;了解有关这些字段的更多信息,请参阅代理合同参考。
编排引擎容量
编排引擎每秒最多可以为其项目中的所有代理提供服务50 个并发请求。
计算资源
您无法为代理或业务流程引擎配置计算资源。每个代理都有 0.5 vCPU 和 2 GB内存,每个编排引擎有 0.5 vCPU 和 512 MB 内存。这些值是固定的,不会随着工作负载的变化而变化。
如果您的工作负载需要不同的资源分配,联系MongoDB支持部门以获取帮助。
代理构建
平台对每个项目实施以下构建限制:
Limit | 值 |
|---|---|
并发活动构建 | 10 |
滚动 24 小时内的每日构建 | 100 |
如果超出构建限制,请求将返回 400 Bad Request 错误和 RESOURCE_LIMIT_EXCEEDED 消息。
GitHub 应用集成
Atlas Agent Engine GitHub 应用在公共预览期间不可用。您无法在 GitHub组织上安装该应用,因此无法在Atlas Agent Engine 用户用户界面中使用 Connect Repository 流、从 GitHub存储库创建工作区或接收 GitHub 应用 Webhook 事件。
要在公开预览期间创建和部署工作区,请改为从存储库的本地克隆运行agentengine deploy 命令。
秘密
该平台对密钥执行以下限制:
范围 | Limit |
|---|---|
每个项目 | 100 |
每个工作区 | 100 |
如果超过密钥限制,请求将返回 400 Bad Request 错误和 RESOURCE_LIMIT_EXCEEDED 消息。
组织、项目和工作区资源
每个组织最多可以有 100组织服务帐户。如果超过此限制,请求将返回 400 Bad Request 错误和 RESOURCE_LIMIT_EXCEEDED 消息。
下表列出了每个项目的资源限制:
Resource | Limit |
|---|---|
工作区 | 25 |
API 密钥 | 100 |
凭证提供程序 | 100 |
项目服务帐户 | 100 |
如果超出资源限制,请求将返回 400 Bad Request 错误和 RESOURCE_LIMIT_EXCEEDED 消息。
公共API稳定性
注意
公开预览期间的API稳定性
Atlas Agent Engine 公共API在公共预览期间可能会发生变化。如果没有向后兼容的迁移路径,端点、请求格式和响应格式可能会发生变化。固定您的自动化依赖的 agentengine CLI版本,并在升级之前查看发布说明。
服务账户
当服务帐户调用已部署的代理时, Atlas Agent Engine 会使用服务帐户自己的身份作为运行时内存身份。平台会忽略调用请求或 agentengine invoke --user-id 标志提供的任何最终用户 user_id 值。
自动轮流记录、提取、合并和 app.memory 操作会使用此已解析身份。因此,通过同一服务帐户进行身份验证的调用股票一个内存用户作用域。
此限制仅适用于服务帐户调用的已部署代理。独立运行的、项目范围的内存服务不受影响。此服务继续接受来自调用者的显式 user_id 和 session_id 值。
要按最终用户隔离内存,请从应用程序中调用独立运行内存服务,并将显式 user_id 和 session_id 值传递给每个调用。要学习;了解更多信息,请参阅使用独立内存服务。
安全性
秘密访问
代理可以访问权限其项目中的所有密钥。默认下,新密钥添加在项目级别,而不是工作区级别。您部署到现有项目中的代理可以访问权限项目中的每个密钥,包括其他代理使用的 MONGODB_URI。
要将密钥限制在一个工作区,请在调用 agentengine secret set 命令时附加 --workspace-scope 标志。
数据库访问
当您使用 agentengine atlas setup 命令创建Atlas连接时,该连接会授予对目标集群的readWriteAnyDatabase访问权限。
如果您需要更窄范围的数据库访问权限,请在Atlas中手动创建数据库用户。然后,使用范围为 MDB_AGENTIC_STORE_DB 和 MONGOMEM_DB_NAME 数据库的凭证设立MONGODB_URI 工作区密钥。
代理隔离
项目中部署的所有代理股票相同的编排引擎或代理控制平面。业务流程引擎不会对调用代理实施身份验证或授权。
如果您需要更强的代理隔离性,请将代理部署在独立的项目中。
工具隔离
默认默认下,工具在代理沙箱中运行。要改为在工具沙箱中运行工具,请将其列在 agent.yaml文件的 sandboxes.tool.tools字段中。您可以列出工具名称或与工具名称匹配的通配符模式。请求委派凭证的工具只能在工具沙箱中运行。
代理沙箱和工具沙箱将其工作负载相互隔离。示例,工具沙箱中的工具与代理沙箱中助手的控制流分开运行。但是,在同一沙箱中运行的工具并不是相互隔离的。
同一沙箱中的工具可以访问权限您为该沙箱配置的所有密钥和出口目标。 Atlas Agent Engine 不会限制单个工具的密钥或网络访问权限。在代理沙箱中运行的工具还会与代理代码股票代理沙箱的密钥和出口目的地。如果您的代理需要在工具之间隔离性,请勿将任一沙箱视为每个工具的安全边界。
如果您的代理使用工具沙箱,则每个会话在会话处于活动状态时都会保留一个工具沙箱。 Atlas助手引擎路由到工具沙箱的会话中的所有工具调用都在该沙箱中运行。 Atlas Agent Engine 不会为每个工具调用创建新的工具沙箱。如果会话空闲时间超过 scaling.tool_idle_ttl_seconds 值, Atlas助手引擎会释放其工具沙箱。当会话再次激活时,它会使用新的工具沙箱。
要配置沙盒密钥和出口目的地,请参阅代理 YAML 模式和管理网络出口策略。