AI宝库

AI宝库首页 › AI 资讯 › MoEngage 如何用 Agent Core Gateway 将 400 个A

MoEngage 如何用 Agent Core Gateway 将 400 个API 转换为 agent 工具

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

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

人工智能

MoEngage 如何用 Agent Core Gateway 将 400 个API 转换为 agent 工具

这篇文章与来自MoEngage的Nikhil Kumar和Shakir Khan共同撰写。

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

MoEngage是超过1 350个消费者品牌使用的代理客户参与平台,通过推、电子邮件、在线、短信、WhatsApp和RCS提供个性化的经验,它正面临着这一问题。 产品后方坐落了大约400个由25个工程团队所建造的内部REST API,运行于私人虚拟私人云层(VPC)中,跨越了7个AWS区域。 MoEngage将这些API区域隔离,agents所需的能力已在生产中运行。 让它可以安全到达才是最难的

在这个帖子中,我们走过MoEngage如何使用Agent Core Gateway,这是Amazon Bedrock Agent Core的一种能力,将这些私人API变成许可范围agent工具。 这种方法节省了MoEngage大约六个月的平台工程工作,现在登上一个新的API需要几个小时而不是几天。 没有产品团队写出Model Context 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隧道。 乘以七大区和作战地表的增速快于agents集。 每个新的API将意味着另一个网络变更请求,另一套安全审查,另一套需要维护的基础设施。

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

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

最后的制约是避免明显替代办法的制约。 一个自定义中心MCP服务器解决了20服务器的问题,但仍留下了MoEngage构建一个工具生成管道,一个政策文件格式,一个重命名的工具化名注册,以及断路器。 所有自定义代码,都归一个团队所有,没有一部让MoEngage的产品更好。

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

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

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

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

例如,一个运动QA机器人可以读取运动和分区工具,但不能称为写作操作:

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

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

语义搜索作为网关能力。 以x amz bedrock agentcore search能力,agent可以通过描述任务而不是给工具取名来找到工具。 它取消了对自定义发现层的需求。 它还移除了将脆弱重命名为副作用:如果 get segment user counts变成 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接收请求并评价了Cedar政策,以确定本主能看到或调用什么。 然后它通过在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-工具,search tools,曝光到模型上。 这个模式描述了它需要什么,网关的语义搜索返回候选人,完整目录不输入上下文。 agent的上下文包含了一个初始的工具定义,以及搜索后的少数相关定义,而不是它永远不会使用的几百个定义。

装入新的 API

一个团队将一个API作为agent工具新增一个块暴露在它现有的OpenAPI光谱上:

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

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

工具描述不是 API 描述。 API描述告诉开发者读取docs时,端点返回什么。 一个工具描述讲述一个模型何时可以到达这个工具以及要通过什么。 MoEngage发现,重新使用API描述逐字导致工具选择不佳。 模型选择了基于实施细节的工具(“退回一个标注清单”),而不是意图(“按地位或渠道寻找活动”)。 工具 description and param overrips 字段是特别存在的,可以给团队一个写模型-facting文本的位置,而无需更改其开发者-facing docs.

CI管线也处理所有事务

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

相关 AI 工具

相关免费羊毛

同源资讯

阅读原文(aws.amazon.com)

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

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

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