如何把 AWS AgentCore 与 Azure AI Foundry Agent 联邦到同一网关:Jarvis Registry 跨云 Agent 联邦实战指南
【免费下载链接】jarvis-registryConnect any AI copilot or autonomous agent to your enterprise tools — through a single, secure MCP/Agent gateway with built-in identity, access control, and full observability.项目地址: https://gitcode.com/gh_mirrors/ja/jarvis-registry
跨云 Agent 联邦,一次配置搞定
在企业 AI 落地中,Agent 往往分散在不同云平台:一部分跑在 AWS AgentCore,一部分在 Azure AI Foundry。客户端(Copilot、自主 Agent)需要为每个云写不同的发现与鉴权逻辑,维护成本很高。Jarvis Registry是一个开源的 MCP / A2A Agent 网关与注册中心,它通过"联邦(Federation)"机制,把 AWS AgentCore 与 Azure AI Foundry 中的 MCP 服务器和 A2A Agent 自动同步进同一个网关,实现统一目录、统一鉴权、统一共享和全链路可观测。
核心价值一句话:一个安全网关,管住两个云的 Agent。
为什么需要跨云 Agent 联邦?
- 🌐资源分散:AgentCore 上的 MCP 运行时和 Foundry 里的 Agent 各自为政,客户端无法统一发现
- 🔐鉴权复杂:AWS 用 IAM / 角色假设,Azure 用 Entra ID RBAC,客户端需要写两套鉴权
- 📋治理缺失:导入的外部 Agent 默认应该"私有",管理员审核后才能共享给团队
- 📊观测困难:跨云调用缺少统一日志、指标与追踪
Jarvis Registry 的联邦模块(核心实现在 registry/src/registry/services/federation/)把这些问题收敛到一处:同步、规范化、鉴权推断、共享管控、向量索引重建全部由网关完成。
三步完成跨云 Agent 联邦配置
第一步:在 UI 中创建联邦连接
管理员在注册中心前端进入联邦管理页面,选择 Provider 类型(AWS AgentCore / Azure AI Foundry / GitHub),填写连接参数。创建表单源码位于 MainConfigForm.tsx。
AWS AgentCore 需要填:
- Region:如
us-east-1 - AGENTCORE_ASSUME_ROLE_ARN:Jarvis 的 Pod 会通过 STS 假设该角色访问 AgentCore 控制面
- Resource Tags Filter(可选):如
env:production, team:platform,只导入标签完全匹配的运行时
Azure AI Foundry 需要填:
- Project Endpoint:
https://{account}.services.ai.azure.com/api/projects/{project} - Tenant ID / Client ID / Client Secret(可选):默认使用托管身份,改用服务主体时三者一起填写
表单说明与完整流程详见 docs/features/agentcore-federation.md 与 docs/features/foundry-ai-federation.md。
第二步:自动同步与元数据规范化
保存后,Jarvis Registry 校验连接并建立联邦链接,然后自动拉取资源:
| 云来源 | 导入的资源 | 规范化要点 |
|---|---|---|
| AWS AgentCore | MCP 服务器 + A2A Agent | 自动推断每个运行时的鉴权模式(IAM 或 JWT),存到资源级runtimeAccess |
| Azure AI Foundry | A2A Agent | 处理非标准 AgentCard 发现路径(如agentCard/v0.3),并记录 Entra ID RBAC 前置条件 |
同步采用"版本感知、最小写入"策略:首次同步插入、版本不变跳过、版本变化更新、消失即删除,并同步重建 Weaviate 向量索引,保证语义搜索可用。完整同步策略与 API 契约见 docs/design/federation-api.md。
第三步:审核后共享,治理与本地资源一致
联邦导入的资源不会自动对所有用户可见。管理员可以:
- 先保持私有,用于验证
- 共享给特定用户或用户组
- 验证通过后,发布给所有具备 VIEW 权限的用户
共享面板、ACL 强制(认证 → RBAC → ACL 三层)与本地 MCP 服务器、本地 Agent 完全一致,安全设计详见 docs/design/security-design.md。
客户端如何消费联邦资源?
同步完成后,外部资源与本地资源在同一目录里呈现,客户端无需感知它来自哪个云:
- 统一注册中心端点:Copilot 与 Agent 通过同一个网关入口发现并调用 MCP 服务器 / A2A Agent
- 鉴权透明:网关在调用时按资源的
runtimeAccess配置自动完成 AWS STS 假设角色或 Entra ID 令牌获取,客户端只面对网关自己的认证 - 语义搜索:基于重建后的向量索引,Agent 可按技能、描述、标签找到正确的工具
A2A Agent 的发现与管理界面参考 docs/img/a2a-discovery.png,网关层面的访问控制效果见 docs/img/mcpgw-ac-1.png。
如何验证与排查跨云同步?
- 同步状态:联邦列表 / 详情页展示
syncStatus(idle / pending / syncing / success / failed)、统计(mcpServerCount、agentCount、toolCount、importedTotal)与lastSync摘要,失败原因会保留在errorMessages中 - 部分成功语义:只要至少一个资源完整导入,作业整体记为
success,同时保留失败资源明细,方便定位(如403 Forbidden的 Agent 会被排除) - 手动验证脚本:
- scripts/azure_foundry_sync.py — 走生产代码路径创建 Foundry 联邦并触发同步
- scripts/azure_foundry_execute.py — 读取已同步的 A2A Agent 并实际发起一次调用
- scripts/verify/check_federation_metadata.py — 校验联邦元数据
小结:一套网关,两个云,一个目录
| 关注点 | Jarvis Registry 的做法 |
|---|---|
| 跨云发现 | AgentCore / AI Foundry 联邦自动导入,标签过滤 |
| 鉴权治理 | 控制面(发现)与数据面(调用)鉴权分离,资源级自动推断 |
| 共享管控 | 与本地资源一致的 ACL 模型,先私有、后共享、再发布 |
| 检索与观测 | 向量索引自动重建 + 请求日志、OTel 追踪、Prometheus 指标 |
如果你也在做多云 Agent 治理,从 docs/features/agentcore-federation.md 的创建表单开始,再对照 docs/design/federation-api.md 理解 API 契约,就能快速把两个云的 Agent 收敛到同一个安全网关后面 🚀
【免费下载链接】jarvis-registryConnect any AI copilot or autonomous agent to your enterprise tools — through a single, secure MCP/Agent gateway with built-in identity, access control, and full observability.项目地址: https://gitcode.com/gh_mirrors/ja/jarvis-registry
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考