iLang 与 A2A

A2A 负责 Agent 的发现和委派,iLang 负责 Agent 怎么理解自己收到的指令。层次不同,作用互补。

2026-09-14 更新 · 设计:Long Quan Zhu(Max,@SUN)

两个协议,两个层次

A2A(Agent-to-Agent 协议)和 iLang 处理的是多 Agent 技术栈里的不同部分。A2A 负责 Agent 之间怎么找到对方、怎么对话,iLang 负责 Agent 怎么理解要做什么。

维度A2AiLang
出自Google(现归 Linux 基金会)iLang Research(开放社区)
主要功能Agent 发现、能力协商、任务委派指令结构、行为定义、通信格式
层次Agent 协调层语义指令层
需要什么Agent Card 服务器、JSON-RPC 接口什么都不需要。本身就是文本,在 ChatGPT、Claude、Gemini、DeepSeek、Kimi、通义千问和智谱 GLM 上测过
格式JSON-RPC、Agent Card、Task 对象结构化文本:[VERB:@TARGET|mod=val] 和 ::GENE{}
解决什么Agent A 怎么找到 Agent B,把工作委派给它任何 Agent 怎么理解自己的指令和行为约束

什么时候用 A2A

你有多个 Agent,需要互相发现、协商能力、委派任务时,用 A2A。A2A 是协调层:它管 Agent 之间的握手,不管握手之后发生什么。

什么时候用 iLang

你需要 Agent 准确地照指令做事、行为保持一致、用结构化格式沟通时,用 iLang。iLang 工作在指令层:它定义 Agent 做什么、怎么表现,不管这个 Agent 是怎么被发现的,又是怎么接到委派的。

两者一起用

A2A 把 Agent 连起来,iLang 规定这些 Agent 之间怎么说。

Agent 之间怎样用 iLang 交接,见 Agent 通信协议。

例子:Agent A 用 A2A 发现了 Agent B(一个做数据分析的 Agent)。然后 Agent A 给 Agent B 发一条 iLang 指令链:

::GENE{analysis_rules|conf:confirmed|scope:task}
  T:conclusions_first
  T:include_confidence_intervals
  A:hedging_without_data⇒avoid

[READ:@SRC|path=quarterly_data.csv]
=>[STAT|grp=region,product]
=>[TRND|grp=quarter]
=>[FMT|fmt=md]
=>[OUT]

路由由 A2A 处理,指令内容由 iLang 处理。两个协议各干各的活。

主要区别一览

问题A2AiLang
能帮 Agent 互相找到吗?是,通过 Agent Card否,不在它的范围内
它定义 Agent 的行为吗?否是,通过 ::GENE{} 声明
它规定任务指令的结构吗?Task 对象(高层级)动词链(精确,逐步)
不搭基础设施也能用吗?否,需要服务器接口是,本身就是文本
开源吗?是(Linux 基金会)是(MIT 许可)

常见问题

iLang 和 A2A 有什么不同?

A2A 管 Agent 之间怎么找到对方、怎么对话:通过 Agent Card 和 Task 对象完成发现、能力协商和任务委派。iLang 管握手之后 Agent 怎么理解要做什么:任务用动词链,行为用 ::GENE{} 声明。本站的例子里,Agent A 通过 A2A 发现 Agent B,再给它发一条 iLang 链。路由由 A2A 处理,内容由 iLang 处理。

看 MCP、A2A 与 iLang 三方的完整对比 →