AI图鉴

AI图鉴首页 › AI 资讯 › MoEngage 如何将 400 个API 转换成带有 Agent Core G

MoEngage 如何将 400 个API 转换成带有 Agent Core Gateway 的 agent 工具

来源:AWS ML Blog · 发布时间:10-30 · 由 AI图鉴每小时自动聚合

MoEngage将7个AWS大区的大约400个私人REST API转化为授权范围agent工具,配有Amazon Bedrock Agent Core Gateway. 无人服务 MCP

人工智能

MoEngage 如何将 400 个API 转换成带有 Agent Core Gateway 的 agent 工具

此帖与来自MoEngage的Nikhil Kumar和Shakir Khan共同撰写。

当工程团队开始建设AI agents时,这些agents需要的能力通常已经作为内部API存在。 运动创建,分部查询,交付统计。 挑战不是建立新的功能。 挑战在于让数以百计的私人API安全地通过agents实现,而不将其暴露在公共互联网上,不给模型控制身份,不淹没带有数百个工具定义的背景windows.

MoEngage是超过1,350个消费者品牌利用代理客户参与平台,通过推、电子邮件、在线、短信、WhatsApp和RCS提供个性化体验。 产品背后坐落着大约400个内部REST API,由25个工程团队建造,运行于私人虚拟私人云层(VPC),跨越7个AWS区域。 且不会在公共互联网上曝光。 agents所需的能力已经在生产中运行。 让它可以安全地到达是困难的部分。

在这个帖子中,我们走过MoEngage如何使用Agent Core Gateway,一种Amazon Bedrock Agent Core的能力,将那些私人API变成允许范围agent工具。 这种方法使MoEngage节省了大约六个月的平台工程工作,现在登上一个新的API需要几个小时而不是几天。 没有产品团队写出Model Content Protocol(MCP)服务器代码,没有提供每个集成的网络,在路径的任何地方也没有公共终点。

为什么20个MCP服务器是错误的答案

模型背景协议(MCP)为agents提供了发现和调用工具的标准方法。 采用它的直截了当的途径是,每个团队都要暴露自己的MCP服务器。 MoEngage把费用计算出来了拒绝了

超过20个MCP服务器是指随着MCP的演化,20多个部署来监测,补丁,并保持协议兼容性。 跨域的agents,即读取运动,检查其部分,并检查发送数据,需要连接到几个服务器并进行调节。 而每个团队都需要与实际产品工作无关的MCP专业知识。

因此MoEngage确立了塑造之后一切的原则:单个工程团队不执行MCP. 团队建立REST API,并声明哪些操作应该是工具。 AI平台团队拥有MCP层端到端。 一个团队的责任以精心描述的OpenAPI spec结束。

这一原则立即产生了三个要求:agents连接一次而不是每次服务的中央工具表面,每agent授权执行服务器侧而不是通过惯例执行,私人连接不需要为每一个新的API重建。

从零开始建造这一切是一个选择。 一个自定义的中央 MCP 服务器可以解决20服务器的问题,但离开 MoEngage 构建一个工具生成管道,一个政策文件格式,一个重命名的工具化名注册,以及断路器。 所有自定义代码,都归一个团队所有

塑造建筑结构的四个制约因素

在评估任何解决方案之前,MoEngage定义了四个制约因素。 四者必须同时满足。 解决两个问题但打破第三个和第四个问题的解决办法是不可行的。

没有什么会得到一个公开的终点。 MoEngage内部的API从政策上讲是VPC-私人的。 任何需要披露这些内容的解决办法,即使是在额外认证之后,都是不启动的。 传统的工作方式是每个集成网络:一个NAT网关在这里,一个反向代理在那里,第三个是VPN隧道。 乘以7个大区和操作表面的生长速度快于agents集的生长速度。 每个新的API都意味着另一个网络变更请求,另一套安全审查,另一个需要维护的基础设施。

身份不可能是agent的决定。 每个内部API呼叫都包含租户,用户,角色,以及数据库背景。 如果上下文是一个大型语言模型(LLM)-可见工具参数,一个模型可能会弄错了或者被劝说修改。 MoEngage需要身份才能在结构上超出模型的能及范围

一个400个工具目录并不适合上下文窗口。 大约每个工具有50个符号的JSON schema,一个完整的工具/清单横跨整个庄园,在每个连接上传输超过20,000个符号。 这个象征性的预算是在agent做任何有用的事情之前花费的,它挤出上下文agent实际上需要解释这个任务。 客户端过滤( ADK 或 MCP SDK 中的工具过滤器) 并不修复此功能。 完整目录已经跨越了电线,agent不该看到写操作

最后一个限制因素是避免了明显的替代办法。 一个自定义的中央 MCP 服务器解决了20服务器的问题,但仍然离开 MoEngage 构建一个工具生成管道,一个政策文件格式,一个重命名的工具化名注册,以及断路器。 所有自定义代码都归一个团队所有

Agent Core Gateway如何绘制这些制约因素的地图

Amazon Bedrock Agent Core Gateway是一个完全管理的MCP服务器。 您将 OpenAPI 规格注册为目标,网关从中生成 MCP 工具,然后路由调用到辅助服务。 四个属性直接映射到MoEngage的制约因素。

OpenAPI in, MCP 工具退出。 没有MCP服务器可以构建或运行,也没有单独的文物可以与API同步。 已经维护的光谱小组是工具定义。 每个操作都成为名为Goal OperationId的工具,例如CampesAPI SearchCampaigns. 当光谱改变时,工具就会改变。 当一个团队新增作为终点时,工具出现。 当一个团队移除一个时,工具就会消失。 没有部署,没有协议专业知识,没有与AI平台团队的协调。

锡达政策,在编目序列化前进行评估。 Agent Core政策引擎使用部分评价来过滤每个主机的工具/列表。 每个agent认证为它自己的IAM角色,它的Cedar政策决定它能看到和调用哪些工具。 这使得400个工具可以使用。 而非事后客户端过滤

但无法使用写作操作:

机器人不在其工具/列表响应中看到写工具。 因为工具没有发送

管理着Amazon VPC Lattice上空的入侵。 该网关通过Core代理公司管理的Egress,而不是通过联网的MoEngage建设和运营,进入MoEngage的内部服务。 入境,网关只能通过与私人DNS的VPC接口端点才能到达。 没有公开途径。 登上一个新的API 新增目标,而不是网络地形变化。 这就是打破了7个大区问题。 网络存在一次,每个API都使用它。

语义搜索作为网关能力。 有了x amz bedrock agentcore search能力,agent可以通过描述任务而不是命名工具来找到工具。 它取消了自定义发现层的需要。 它还移除了重命名脆弱性作为副作用:如果 get segment user count变成 get segment size,agent搜索分区用户计数仍然发现它,因为匹配发生在描述而不是标识符上。

实际结构

从agent到内部API的请求流很短,每层都有特定的工作。 Agent服务通过一个VPC接口端点连接到Agent Core Gateway,该端点通过Amazon VPC Lattice至内部API的有管理的Egress对Cedar政策和路由工具呼叫进行评价。

下图显示元件如何连接。

agent服务运行于Amazon弹性计算云(Amazon EC2)或在一个容器中称为MCP客户端。 客户端可以是官方MCP SDK,LangChain,Google ADK,也可以是MoEngage自己的agent跑车。 客户端使用服务已经具备的AWS身份和访问管理(IAM)角色与SigV4一起签名请求。 请求通过HTTPS前往一个与私人DNS的VPC接口端点。 没有公开的跳跃。 Agent Core Gateway接收请求并评价雪松政策,以确定本主能看到或调用什么。 它然后将工具引用通过Amazon VPC Lattice上空的有管理的Egress引向内部API.

MoEngage做出了两个值得召唤的认证决定。

首先,他们选择了SigV4而不是JWT作为内部网关。 Agents是已经具有IAM角色的服务。 有了SigV4,他们可以签到他们已经拥有的证书。 没有新东西可以发行、旋转或储存。 MoEngage的单独的公共MCP服务器服务于来自Claude和其他客户端的经人验证的会话,在AgentCore运行时使用OIDC JWTs. 这是一个不同的表面,有不同的要求。

其次,身份旅行是作为头符,而不是作为工具参数。 租户,用户,角色,和数据库上下文由客户端库从一个小的身份对象转换成X-MOE-*头。 模型看不到它们,一个细节对于任何建造类似东西的人来说很重要:因为SigV4签名占据了授权信头,呼叫人前传的无记名标志必须移动到别处。 MoEngage将它宣传为专用的MoEngage前置标题。 信头的传播也被封顶,所以这套信头是故意的而不是积累的。

发现和执行有不同的身份要求。 列名和查询工具没有租户身份。 只有工具/电话才是如此。 这种分离使发现变得便宜,使审计线索变得毫不含糊。 每个具有身份的请求都是实际的数据访问。

即使Cedar将 agent 范围定义为目录的一个子集,子集也可以是大的。 MoEngage的客户端库向模型暴露了单一的meta工具,搜索工具。 这个模式描述了它需要什么,网关的语义搜索返回候选人,完整目录没有输入上下文。 agent的上下文包含了一个起始时的工具定义和少数在搜索后的相关定义,而不是它永远不会使用的几百个定义。

装入新的 API

一个团队将一个API 暴露为 agent 工具新增块到其现有的 OpenAPI 规格:

该区块的四个设计选择值得解释。

接触是明确的选择。 没有x-moe-mcp块的终点不是工具。 持续整合(CI)并不警告其缺失,因为对于大多数端点缺失都是正确的状态。 Cache-warmup 路线和迁移触发器不是agent工具,任何事物都不应该让一个团队把它们变成一个工具。 使用内外旗,一个团队可以将一个操作暴露给内部的agents,公共的MCP服务器,或者两者独立地曝光。

工具描述不是 API 描述。 API描述告诉一个开发者读取docs后返回的终点是什么。 一个工具描述讲述了这个工具何时到达和通过什么。 MoEngage发现,重复使用API描述逐字导致工具选择不佳。 模型选择的工具是根据执行细节(“退回一份标注清单”)而不是意图(“按地位或渠道寻找活动”)。 工具描述和param overrides 字段特别存在,可以给团队一个位置,在不更改其开发者-facing docs的情况下编写模型化文本。

CI管道也处理所有事务

本文由 AI图鉴自动抓取并翻译,版权归原作者所有;如需查看原文请点下方链接。

相关 AI 工具

相关免费羊毛

同源资讯

阅读原文(aws.amazon.com)

标题、摘要与正文均来自该信源的公开页面,版权归原作者所有;本站自动聚合与翻译,仅作出处跳转。

← 返回 AI 资讯列表AI工具图鉴首页

返回 AI图鉴首页 · 提交工具 · 商务合作 · 关于本站 · 598 款 AI 工具分类导航 · 每日 AI 热门项目与动态