Skip to content

3. 智能体技能和 Agent Card

在 A2A 智能体能够做任何事情之前,它需要定义它做什么(其技能)以及其他智能体或客户端如何发现这些能力(其 Agent Card)。

我们将使用位于 a2a-samples/samples/python/agents/helloworld/helloworld 示例。

智能体技能

智能体技能描述了智能体可以执行的特定能力或功能。它是一个构建块,告诉客户端智能体擅长哪些类型的任务。

AgentSkill 的关键属性(在 a2a.types 中定义):

  • id:技能的唯一标识符。
  • name:人类可读的名称。
  • description:对技能功能的更详细解释。
  • tags:用于分类和发现的关键词。
  • examples:示例提示或用例。
  • inputModes / outputModes:输入和输出支持的媒体类型(例如,"text/plain"、"application/json")。

__main__.py 中,您可以看到 Helloworld 智能体的技能是如何定义的:


这个技能非常简单:它被命名为"Returns hello world",主要处理文本。

Agent Card

Agent Card 是 A2A 服务器提供的 JSON 文档,通常位于 .well-known/agent-card.json 端点。它就像智能体的数字名片。

AgentCard 的关键属性(在 a2a.types 中定义):

  • namedescriptionversion:基本身份信息。
  • url:可以访问 A2A 服务的端点。
  • capabilities:指定支持的 A2A 功能,如 streamingpushNotifications
  • defaultInputModes / defaultOutputModes:智能体的默认媒体类型。
  • skills:智能体提供的 AgentSkill 对象列表。

helloworld 示例定义其 Agent Card 如下:


这张卡片告诉我们智能体名为"Hello World Agent",运行在 http://localhost:9999/,支持文本交互,并具有 hello_world 技能。它还表明是公共认证,意味着不需要特定凭据。

理解 Agent Card 至关重要,因为它是客户端发现智能体并了解如何与之交互的方式。