用 ARD 和 Agent Registry 建立可治理的智能体发现目录

2026-08-25 32 预计阅读时间: 1 分钟
来源: aws.amazon.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:11 分钟

当组织里的智能体、工具和技能不断增加,真正困难的问题往往不再是“能不能调用”,而是“有哪些资源可用、谁负责、能否跨环境发现,以及是否符合治理要求”。AWS Agent Registry 提供集中化、可搜索的资源目录,并结合开放的 Agentic Resource Discovery(ARD)标准,让智能体资源发现从团队内部约定,逐步变成可跨环境协作的统一能力。

从“知道地址”到“能够发现”

传统集成通常依赖静态配置:开发者在代码、环境变量或文档中写入某个智能体或工具的名称与地址。规模较小时问题不明显,但资源一多,就会出现几类实际障碍:

  • 团队不知道已有资源,重复开发相同能力。
  • 测试、预发布和生产环境中的资源名称或版本不一致。
  • 调用方无法快速判断某个智能体是否经过审核,或者由哪个团队负责。
  • 资源迁移后,多个调用方仍然持有旧地址。

ARD 的核心价值可以理解为一套开放的资源发现约定:调用方根据能力、名称或其他元数据查找资源,再决定如何连接和调用。它把“资源在哪里”的问题从业务代码中抽离出来,也为跨环境发现提供了共同语言。

这里的资源不只包括完整的 agent,还可以包括工具和 skills。一个面向客服的智能体可能依赖订单查询工具、退款处理工具和知识库检索技能。将这些资源统一纳入目录后,搜索、所有权、版本和治理就能放在同一个视图中管理。

AWS Agent Registry 解决什么问题

AWS Agent Registry 可以作为组织级的集中目录,用于登记和搜索 agents、tools 与 skills。结合 ARD 后,目录不只是一个人工维护的网页或文档,而可以成为不同环境、不同团队和不同运行时之间的发现入口。

可以把这套组合拆成三层:

  1. 资源登记:记录资源名称、能力描述、版本、所属团队和运行环境。
  2. 资源发现:调用方按能力或元数据搜索,而不是硬编码某个具体实现。
  3. 治理控制:在资源被发现和接入时,检查状态、负责人、环境边界和使用策略。

这并不意味着注册表会自动解决所有运行时问题。发现到资源之后,仍然需要处理身份认证、网络连通性、权限授权、协议兼容、超时和版本升级。注册表负责让资源“可见、可查、可管理”,而不是替代完整的服务治理体系。

一个可改造的资源描述示例

下面是一个示意性的 ARD 风格 YAML,用于展示目录条目可以包含哪些信息。字段名称和具体接口应以实际采用的 ARD 实现及 AWS 环境为准;它可以作为设计内部资源元数据模型的起点。

将下面内容保存为 agent-resource.yaml,然后根据组织的注册接口或导入工具进行改造:

apiVersion: discovery.example/v1
kind: AgentResource
metadata:
  name: order-support-agent
  version: 1.3.0
  owner: commerce-platform
  environment: production
spec:
  type: agent
  description: "处理订单状态查询和退款政策问答"
  capabilities:
    - order-status.lookup
    - refund-policy.answer
  interfaces:
    - protocol: https
      endpoint: https://agents.example.internal/order-support
  dependencies:
    - name: order-query-tool
      version: ">=2.1.0 <3.0.0"
  governance:
    lifecycle: active
    dataClassification: internal
    reviewRequired: true
    auditContact: commerce-platform@example.com

这个示例中有几个字段值得保留:capabilities 让调用方可以按能力搜索;ownerauditContact 让问题能够回到明确的责任团队;environment 避免测试调用误连生产资源;dependencies 帮助评估版本兼容性;governance 则为审核、数据分类和生命周期管理提供入口。

如果组织需要自动发现,建议让 CI/CD 在部署或发布阶段同步资源元数据,而不是要求开发者手工修改目录。删除或下线资源时也应同步更新状态,避免目录中出现无法调用的“幽灵条目”。

搜索与接入流程可以这样设计

一个较稳妥的接入流程通常包括以下步骤:

  1. 资源团队提交 agent、tool 或 skill 的元数据。
  2. 注册表校验必填字段、版本格式和所属环境。
  3. 治理流程检查负责人、数据级别、权限和审核状态。
  4. 资源进入可搜索目录。
  5. 调用方按能力查询资源,并在本地执行权限和兼容性检查。
  6. 运行时通过目录返回的连接信息访问目标资源。

下面的 Python 示例不依赖 AWS SDK,演示调用方如何从一个本地目录中按能力选择资源。它适合先验证搜索逻辑;接入真实注册表时,只需把 resources 替换为 ARD 或 Agent Registry 的查询结果,并补充认证与网络策略。

from typing import Any

resources: list[dict[str, Any]] = [
    {
        "name": "order-support-agent",
        "type": "agent",
        "environment": "production",
        "lifecycle": "active",
        "capabilities": ["order-status.lookup", "refund-policy.answer"],
        "endpoint": "https://agents.example.internal/order-support",
    },
    {
        "name": "order-query-tool",
        "type": "tool",
        "environment": "production",
        "lifecycle": "active",
        "capabilities": ["order-status.lookup"],
        "endpoint": "https://tools.example.internal/order-query",
    },
]


def discover(capability: str, resource_type: str, environment: str) -> list[dict[str, Any]]:
    return [
        resource
        for resource in resources
        if resource["type"] == resource_type
        and resource["environment"] == environment
        and resource["lifecycle"] == "active"
        and capability in resource["capabilities"]
    ]


matches = discover("order-status.lookup", "agent", "production")
if not matches:
    raise RuntimeError("没有找到符合条件的生产环境 agent")

selected = matches[0]
print(f"使用资源: {selected['name']}")
print(f"调用地址: {selected['endpoint']}")

生产环境中不要仅凭搜索结果直接调用。调用方至少还应验证资源的审核状态、允许的数据范围、调用身份和目标环境。搜索结果可以缩小候选集合,但不能代替授权决定。

落地时要盯住的边界

目录新鲜度。 资源版本、端点和生命周期都可能变化。应定义注册、更新、下线的责任与自动化机制,并为过期条目设置告警或拒绝策略。

跨环境隔离。 “可发现”不等于“可调用”。开发环境可以发现测试资源,但不应因为目录暴露了生产端点就获得生产访问权限。

最小权限。 目录元数据本身也可能泄露内部能力、数据类型或服务拓扑。应控制谁可以搜索哪些字段,谁可以读取连接信息。

版本兼容。 发现机制只能找到候选资源,不能保证提示词、输入输出 schema 或依赖工具完全兼容。建议为能力定义稳定契约,并在注册阶段记录兼容版本。

责任归属。 没有 owner 的资源很快会变成无法维护的目录噪音。注册表条目应绑定团队、联系人、SLA 或生命周期状态。

采用清单

可以按以下顺序推进:

  • 先盘点现有 agents、tools 和 skills,统一资源命名与能力标签。
  • 为每个资源补齐 owner、环境、版本、端点和生命周期状态。
  • 用 ARD 兼容的元数据模型定义组织内部的最小字段集合。
  • 将发布、回滚和下线流程接入 CI/CD 或资源管理流程。
  • 让调用方优先按能力发现,再进行权限、环境和版本校验。
  • 记录发现结果与实际调用结果,定期清理不可用或无人负责的资源。

ARD 提供跨环境发现的开放基础,AWS Agent Registry 则可以承担组织级目录和治理入口。两者结合后的关键收益,不是多了一份资源清单,而是让智能体生态具备可搜索、可负责、可审计和可演进的管理边界。对于刚开始建设 agent 平台的团队,先把资源元数据和生命周期管理做扎实,再逐步扩大自动发现与跨环境接入范围,通常更容易控制复杂度。


相关推荐