AGI围城
首页
基础知识
工程实践
所见所思
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

AGI围城

是的,这个世界还是很有趣的。
首页
基础知识
工程实践
所见所思
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 提示词工程

  • 大模型API调用

  • OpenAI工具

  • 嵌入向量

  • 检索增强生成(RAG)

  • LlamaIndex

  • LangChain

  • Agent

  • Workflow

  • Transformer

  • 微调

  • MCP

  • A2A

    • 1.A2A概述
    • 2.A2A核心架构
      • 2.1 整体架构
      • 2.2 核心对象解析
        • AgentAuthentication
        • AgentCapabilities
        • AgentCard
        • AgentProvider
        • AgentSkill
        • FileContent
        • FilePart
      • 2.3 Agent发现(通过Agent Card)
        • 开放式
        • 精选式(基于注册表)
        • 私有(基于API)
    • 3.A2A开发实践
    • 4.核心实现
  • 基础知识
  • A2A
xiao_sl
2025-05-18
目录

2.A2A核心架构

# 2.1 整体架构

A2A协议github地址: https://d8bzmrpxh3.feishu.cn/file/Y67JbEJfeoRlsfxoNCScIl9Znad (opens new window)

该文件是一个 JSON Schema 文件,用于定义A2A 协议(Agent-to-Agent Protocol)的数据结构和验证规则。$defs是此 JSON Schema 的核心部分,定义了多个对象、错误和数据结构。

a2a-1

# 2.2 核心对象解析

# AgentAuthentication

功能:用于描述Agent的验证方式

字段:

  • schemes: 验证方式。类型为字符串数组,必填
  • credentials:验证凭证,可以是字符串或 null,默认值为 null
{
  "schemes": ["OAuth", "APIKey"],
  "credentials": "some-token"
}
1
2
3
4

# AgentCapabilities

功能:Agent支持的能力范围

字段:

  • streaming: Agent是否支持streaming,boolean类型,默认值为false
  • pushNotifications:Agent是否支持推送通知,boolean类型,默认值为false
  • stateTransitionHistory:Agent是否支持状态转换历史,boolean类型,默认值为false

# AgentCard

功能:定义Agent的基本信息及相关属性

字段:

  • name:必填,Agent 名称
  • description:Agent 的描述,可以是字符串或者null
  • url:必填,Agent 的URL
  • provider:提供者信息、参考下文AgentProvider或null
  • version:必填,Agent 的版本
  • capabilities:必填,参考下文AgentCapabilities
  • authentication:认证信息、参考AgentAuthentication或null
  • defaultInputModes与defaultOutputModes:默认的输入/输出模式,字符串数组,默认值为["text"]
  • skills:必填,技能列表,参考AgentSkill
{
  "name": "MyAgent",
  "description": "This is a sample agent",
  "url": "https://myagent.example.com",
  "version": "1.0",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "stateTransitionHistory": true
  },
  "skills": []
}
1
2
3
4
5
6
7
8
9
10
11
12

# AgentProvider

功能:定义Agent的提供者信息,一般为组织/公司信息

字段:

  • organization:必填,组织名称
  • url:提供者的url地址,可以为string或空

# AgentSkill

功能:定义Agent的能力

字段:

  • id: 必填,技能的唯一标识符
  • name: 必填,能力名称
  • description: 能力描述
  • tags: 能力的标签,字符串数组或null
  • inputModes 与 outputModes: 技能支持的输入/输出模式,可以是字符串数组或null
{
  "id": "技能-123",
  "name": "翻译",
  "description": "将文本从一种语言翻译成另一种语言",
  "tags": ["语言", "翻译"],
  "examples": ["将'Hello'翻译成西班牙语"]
}
1
2
3
4
5
6
7

# FileContent

功能:描述文件内容,可以是Base64编码的字节数组或URL

字段:

  • name: 文件名,可以是字符串或者null
  • mimeType: 文件的MIME类型,可以是字符串或者null
  • bytes: Base64编码后的文件内容,可以是字符串或者null
  • uri: 文件内容的URI,可以是字符串或者null

# FilePart

功能:描述文件分片,组成FileContent,用于传递文件相关的数据,比如上传或者下载操作

字段:

  • type: 固定值,"file"
  • file: 参考FileContent
  • metadata: 文件的元数据,可以是对象或者null

# 2.3 Agent发现(通过Agent Card)

发现这些代理卡的方法多种多样。目前这个问题还是一个开放的讨论话题,主要有这么几类:

# 开放式

企业在一个众所周知的路径上托管他们的代理卡,具体为:https://domain/.well-known/agent.json。

客户端将使用 DNS 解析已知或发现的域名,向该路径发送简单的 GET 请求,并接收代理卡。

优势:网络爬虫和应用程序能够轻松发现已知或配置的代理,从而有效地将发现过程简化为"找到一个域名"

# 精选式(基于注册表)

企业应用程序将通过目录界面提供精选的 agents 注册表

# 私有(基于API)

私有的"agent 商店"或专有 agents,其中卡片通过自定义 API 交换。

Google不考虑将私有发现 API 作为 A2A 关注点

编辑 (opens new window)
#A2A
上次更新: 2025/12/19, 15:17:48
1.A2A概述
3.A2A开发实践

← 1.A2A概述 3.A2A开发实践→

最近更新
01
我是如何发现临时邮箱的?一个真实的故事
06-12
02
4.核心实现
05-26
03
3.A2A开发实践
05-22
更多文章>
Theme by Vdoing | Copyright © 2019-2025 AGI围城 | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式