MoEngage的内部系统里运行着约400个REST API,由25个工程团队构建,分布在7个AWS Region的私有VPC中。这些API覆盖Campaign创建、人群分群查询、投递统计等核心功能,服务超过1350个消费品牌,触达push、email、in-app、SMS、WhatsApp、RCS等渠道。当MoEngage决定让AI Agent调用这些能力时,他们发现:功能本身早已存在于生产环境中,缺的是一条安全通道。

以上信息来自AWS官方博客,该博客由MoEngage工程师Nikhil Kumar和Shakir Khan与AWS合写。作为厂商联合发布的案例,读者需注意其天然的推广立场。但抛开立场,这篇博客的技术细节密度足够高,值得逐层拆解——它揭示的问题,是每一个拥有大量内部API的企业在Agent化过程中都会遇到的。

1. 问题的三重结构:公网暴露、身份控制、上下文膨胀

AWS博客开篇就定义了核心矛盾:挑战不在于构建新功能,而在于让数百个私有API在不暴露到公网、不让模型掌控身份凭证、不撑爆上下文窗口的前提下,被Agent安全调用。

这三个约束条件相互交织。MoEngage的内部API按策略运行在VPC私有网络中,不暴露公网端点。传统的变通方案是逐个集成配置网络——为每个API配NAT Gateway、反向代理或VPN隧道。但乘以7个Region,运维面积的增长速度会超过Agent数量的增长速度。每接入一个新API就意味着一轮新的网络变更申请和安全审查。

身份控制问题更为根本。MoEngage的每个内部API调用都携带租户(tenant)、用户、角色和数据库上下文。如果这些身份信息作为LLM可见的工具参数暴露给模型,模型可能出错,也可能被Prompt注入攻击诱导篡改。博客明确指出:MoEngage需要身份信息在结构上处于模型不可触及的范围内,由调用服务注入,而非作为模型可操控的参数。

上下文膨胀则是规模带来的工程问题。400个API意味着数百个工具定义的JSON Schema。如果全部注入Prompt,上下文窗口的大量token会被工具描述占据,模型在数百个选项中选择正确工具的精度也会下降。

2. 为什么20个MCP Server是错误答案

Model Context Protocol(MCP)为Agent提供了发现和调用工具的标准化方式。最直接的采纳路径是让每个团队各自暴露一个MCP Server。MoEngage评估了这条路径后否决了它。

据AWS博客描述,MoEngage面对的局面是:超过20个MCP Server意味着超过20个独立部署需要监控、打补丁,并在MCP协议演进时保持兼容。跨领域Agent——那些真正有用的Agent,比如读取一个Campaign、检查其分群、再查看投递统计——需要同时连接多个Server并进行协调。而每个团队都需要掌握与其产品工作无关的MCP专业知识。

MoEngage由此确立了一个架构原则:各工程团队不实现MCP。团队构建REST API并声明哪些操作应成为工具。AI Platform团队端到端地拥有MCP层。一个团队的责任止于一份描述良好的OpenAPI规范。

这个原则看似简单,但它立刻派生出三个工程需求:Agent只需连接一次的中心化工具表面(而非每个服务各连一次);在服务端强制执行的逐Agent授权(而非靠约定);无需为每个新API重建的私有连接。

从架构决策的角度看,MoEngage面临的是经典的”Build vs. Buy”选择。自建一个中央MCP Server可以解决20个Server的问题,但MoEngage需要自行构建工具生成管线、策略文件格式、工具别名注册表和熔断器。博客将这些统称为”无差异化的繁重工作”——不会让Agent更智能,也不会让客户的Campaign更好。MoEngage估算,采用AgentCore Gateway节省了约6个月的平台工程投入,新API的接入时间从数天缩短到数小时。

3. 架构拆解:OpenAPI规范作为工具描述的标准化入口

AgentCore Gateway的核心设计思路是将已有的API元数据转换为Agent可理解的工具定义,而转换的输入格式是OpenAPI规范。

这个选择具有工程上的合理性。OpenAPI(前身为Swagger)是REST API描述的事实标准,大多数成熟的工程团队已经维护着OpenAPI文档。MoEngage的25个工程团队不需要学习新的工具描述格式,只需确保其OpenAPI规范足够准确和完整。Gateway负责将OpenAPI中的端点定义、参数类型、请求/响应Schema转换为MCP工具定义。

这种”规范即工具”的方式将工具化的成本从”每个团队编写MCP Server代码”降低到”每个团队维护OpenAPI文档”。后者是大多数API团队已经在做的事情,增量工作量极小。博客中提到,没有任何产品团队编写了MCP Server代码,也没有为每个集成配置网络。

但这种方式的前提是OpenAPI规范的质量。如果规范中的描述不够精确——比如参数名含糊、缺少语义说明、枚举值不完整——Agent在工具选择和参数填充时就会出错。换言之,OpenAPI规范的质量直接决定了Agent工具调用的准确率。这是一个隐含的治理成本,博客并未深入讨论。

4. 私有连接:VPC Lattice如何消除逐API的网络配置

MoEngage的四个硬性约束中,第一条就是”任何东西都不得获得公网端点”。AgentCore Gateway通过私有连接模式(Private connectivity patterns)解决这一问题。

据AWS Networking & Content Delivery博客描述,AgentCore Gateway支持针对私有网络中后端目标的私有连接模式。具体而言,Gateway通过VPC Lattice建立到后端服务的私有出口通道,Agent的请求从Gateway出发,经由VPC Lattice到达目标VPC中的API服务,全程不经过公网。

这种架构的关键优势在于:网络连接是Gateway层面的基础设施能力,而非每个API集成都需要单独配置的。MoEngage不需要为每个新接入的API申请NAT Gateway、反向代理或VPN隧道。新API只需在Gateway中注册其OpenAPI规范和后端目标地址,私有连接由Gateway的基础设施层统一处理。

对于MoEngage这样跨7个AWS Region运营的企业来说,这一点的运维价值是显著的。按传统方式,每个Region中每个新API的接入都意味着一轮网络变更——安全组规则、路由表、可能的跨账户VPC Peering或Transit Gateway配置。乘以7个Region和400个API,网络配置的组合爆炸是真实的运维负担。

AWS的多账户Agent构建博客进一步描述了AgentCore Gateway在多账户场景下的支持能力。企业级AWS部署通常采用多账户架构——安全账户、日志账户、工作负载账户相互隔离。Agent需要跨账户调用不同团队的API时,权限边界和网络连通性都需要在账户层面处理。AgentCore Gateway在这一场景中充当了跨账户的统一工具访问层。

5. 权限隔离:Cedar策略引擎与”模型不持有凭证”原则

身份和权限是这个架构中最敏感的部分。博客明确阐述了MoEngage的立场:身份不能是Agent的决定。每个内部API调用携带的租户、用户、角色和数据库上下文,如果作为LLM可见的工具参数存在,模型可能出错或被诱导篡改。

这意味着Agent调用工具时,身份信息必须由Gateway在服务端注入,而非由模型在Prompt中生成。模型看到的工具定义中不包含租户ID、用户凭证等参数——这些参数对模型”结构性不可见”。身份上下文由调用方的客户端库把Identity对象转换为X-MOE-*请求头后注入(而非由Gateway附加),Gateway负责评估Cedar策略并经VPC Lattice路由到后端API。

在访问控制层面,AgentCore Gateway使用Cedar策略语言实现细粒度的权限管理。Cedar是Amazon开源的策略语言和评估引擎,其设计目标是表达”谁可以对什么资源执行什么操作”这类授权逻辑。在AgentCore Gateway的场景中,Cedar策略定义了每个Agent(或每个Agent背后的用户角色)可以调用哪些工具。

这种设计的安全含义需要仔细理解。传统的API网关(如Kong、Apigee)也支持访问控制,但它们的授权粒度通常是”哪个客户端可以调用哪个API端点”。AgentCore Gateway的Cedar策略需要处理的是Agent场景特有的问题:同一个Agent可能根据不同用户的权限,被允许调用不同的工具子集。一个营销分析师角色的Agent可能只能读取Campaign统计,而一个Campaign经理角色的Agent可以创建和修改Campaign。这种角色-工具映射需要在Gateway层面集中管理,而非分散在每个后端API的认证逻辑中。

笔者判断,Cedar策略在这里的价值不仅是技术层面的访问控制,更是组织层面的权限治理。当400个API分属25个团队时,每个团队独立管理自己的API访问控制是自然的。但当这些API被统一暴露为Agent工具时,需要一个跨团队的、集中的权限视图。Cedar策略文件可以作为这个集中视图的载体——AI Platform团队可以审查和管理所有Agent的工具访问权限,而不需要逐个联系25个团队。

6. 上下文膨胀:400个工具定义如何不撑爆上下文窗口

当工具数量达到数百级别时,一个纯粹的工程问题浮出水面:如果将所有400个工具的Schema定义注入Agent的Prompt,会消耗大量上下文窗口token,同时模型在数百个选项中选择正确工具的准确率也会下降。

这是一个被广泛讨论但缺少标准化解决方案的问题。一些Agent框架采用分层工具选择——先让模型选择工具类别,再在类别内选择具体工具。另一些框架采用工具描述压缩——用更短的描述替代完整Schema。AgentCore Gateway的方案是语义搜索(semantic search):Agent可以用自然语言查询Gateway中的工具,Gateway返回语义最相关的工具子集,而非一次性加载全部工具定义。

这种”动态工具筛选”机制的工程意义在于:它将工具选择从模型的上下文窗口内移到了Gateway的服务端。模型不需要在Prompt中看到400个工具的完整定义,而是先描述它需要什么能力(比如”查看某个Campaign的投递统计”),Gateway通过语义搜索返回最相关的几个工具定义,模型再从这个小得多的候选集中选择。

这种方式有效缓解了上下文膨胀,但引入了一个新的准确率依赖:语义搜索本身的召回率。如果语义搜索未能返回正确的工具,模型就无法选择它。语义搜索的质量取决于工具描述的语义丰富度(回到OpenAPI规范质量的问题)以及搜索引擎的嵌入模型质量。这是一个需要持续优化的环节。

MCP协议在这个架构中扮演的角色也需要理清。据AWS博客描述,AgentCore Gateway支持MCP 2026-07-28规范。MCP提供了Agent发现和调用工具的标准化协议,使得不同的Agent框架(无论是Amazon Bedrock Agents、LangChain还是其他框架)都可以通过统一的协议与Gateway交互。Gateway在这里充当了MCP Server的角色——但它是唯一的MCP Server,背后聚合了所有25个团队的400个API。

这种”单一MCP Server聚合多后端”的模式,与MoEngage最初否决的”20+个MCP Server”形成对比。前者将MCP协议的复杂性集中在一个由AI Platform团队维护的组件中,后者将其分散到每个产品团队。集中化的代价是AI Platform团队成为单点瓶颈——所有新工具的接入、所有策略变更、所有协议升级都需要经过这个团队。博客提到新API接入时间从数天缩短到数小时,这在一定程度上缓解了瓶颈问题,但随着Agent数量和复杂度的增长,这个团队的负载是否可持续,是一个需要观察的问题。

7. MoEngage的业务上下文:Merlin AI与Agent化战略

理解MoEngage为什么投入如此大的工程努力,需要看其业务战略。据PRNewswire报道,MoEngage于2026年6月3日发布了Merlin AI Custom Agents,具备完整可见性、营销人员定义的Guardrails和开放MCP架构。这表明Agent化是MoEngage产品战略的核心方向,而非实验性项目。

将400个内部API工具化,是Merlin AI Custom Agents能力的基础设施层。营销人员通过Agent执行的操作——创建Campaign、查询分群、分析投递效果——最终都需要调用这些内部API。AgentCore Gateway在这个链条中充当的角色,用博客的表述来说,是让Agent请求安全地到达已经在生产环境中运行的能力。

从商业角度看,MoEngage选择AWS AgentCore Gateway而非自建,节省的6个月平台工程时间有明确的机会成本含义:这6个月可以用于构建差异化的Agent能力——更好的Campaign优化逻辑、更精准的用户分群模型——而非重复造轮子式的基础设施工作。

8. 可复制性与未决问题

MoEngage的场景——大量私有API、多团队、多Region、私有网络——是企业级IT的常态而非特例。金融、电信、零售等行业的大型企业普遍面临类似的API规模和网络隔离要求。从这个角度看,AgentCore Gateway提供的是一种可复制的模式:以OpenAPI规范为输入、以Cedar策略为权限层、以VPC Lattice为网络层,将企业已有的API资产转化为Agent工具。

但这个案例也留下了几个未被充分讨论的问题。

工具版本管理。 400个API不会静止不动。当某个团队更新了API的接口定义——新增参数、废弃字段、变更响应格式——Gateway中的工具定义需要同步更新。如果Agent已经学会了调用旧版本的工具,版本不一致可能导致运行时错误。博客没有详细讨论工具版本管理的机制。

跨团队Schema治理。 25个团队各自维护OpenAPI规范,规范的质量和风格可能参差不齐。有的团队可能提供详尽的参数描述和示例,有的可能只有最基本的类型定义。这种不一致性会直接影响Agent的工具选择准确率和参数填充质量。需要一个跨团队的Schema治理流程,但博客未涉及这一层面。

Agent行为审计。 当Agent通过Gateway调用数百个API时,如何追踪和审计Agent的行为链?一个Agent在一次对话中可能连续调用十几个工具,涉及Campaign创建、分群查询、投递配置等多个领域。如果某次调用导致了非预期的结果(比如向错误的用户群发送了Campaign),需要能够回溯Agent的完整决策链和每一步的工具调用参数。这种审计能力对于面向1350+品牌客户的SaaS平台来说尤为关键。

语义搜索的冷启动与长尾工具。 语义搜索解决了上下文膨胀问题,但对于使用频率极低的长尾工具,搜索引擎可能缺少足够的使用信号来优化排序。如果一个工具的描述与用户意图的语义匹配度不高,它可能被持续忽略,形成”工具发现的长尾困境”。

厂商锁定风险。 MoEngage选择AgentCore Gateway意味着其Agent工具层深度绑定AWS。如果未来MoEngage需要支持非AWS环境的Agent(比如客户要求在Azure或GCP上运行),这一层的迁移成本需要评估。MCP协议本身是开放的,但Gateway的Cedar策略、VPC Lattice连接、语义搜索等能力都是AWS特有的。

9. 从400到N:一个工程范式的边界

MoEngage的案例提供了一个清晰的工程范式:企业不需要为Agent重建能力,而需要为已有能力构建安全的访问层。AgentCore Gateway在这个范式中扮演的角色,准确地说,是”基础设施胶水层”——它不提供AI能力,而是将已有的API能力、网络隔离、身份管理和工具发现粘合在一起。

这个范式的适用边界也很清楚:它适用于已有大量成熟REST API、已有OpenAPI规范、运行在AWS上的企业。对于API资产较少、尚未标准化API描述、或运行在多云/混合云环境的企业,这个范式的直接可复制性会打折扣。

笔者判断,MoEngage案例中最具普遍意义的设计决策是”模型不持有凭证”原则。无论使用什么Gateway产品,无论API规模是40个还是400个,将身份信息从模型的可操控范围中移除,是Agent安全架构的基本要求。这一原则的重要性会随着Agent能力的增强和自主性的提高而持续上升——当Agent可以自主决策调用哪些工具、以什么参数调用时,确保它无法伪造或篡改身份,是防止灾难性错误的最后一道结构性防线。

再次提醒:本文核心案例来自AWS与MoEngage联合发布的官方博客,属于厂商合作案例,读者在评估其技术方案的普适性时需考虑这一立场因素。

主题分类:企业AI落地

参考资料

  1. How MoEngage turned over 400 APIs into agent tools with AgentCore Gateway — AWS & MoEngage, 2026-10-29
  2. How AgentCore Gateway supports the MCP 2026-07-28 spec — AWS, 2026-07-28
  3. MoEngage Launches Merlin AI Custom Agents With Full Visibility, Marketer-Defined Guardrails, and Open MCP Architecture — PRNewswire / MoEngage, 2026-06-03
  4. Build a multi-account AI agent with AgentCore Gateway and MCP — AWS, 2026-09-24
  5. Private connectivity patterns for Amazon Bedrock AgentCore Gateway Targets — 2026-06-03