跳转到内容

选对通道

A2AL 提供五种通道,对应五种形态。形态决定了它的语义、能承载什么、代价是什么——先认形态,再认命令。

  • 请求-响应(HTTP 调用 a2al get / post)——无状态 HTTP 请求/响应,直连对方的 HTTP 服务,一次请求对应一次响应,不保留会话状态;用于调用对方的 API、模型或内部服务。
  • 长连接(加密隧道 a2al tunnel open)——面向 TCP 的持久连接,映射到本机 127.0.0.1:<port>;用于 SSH、数据库等非 HTTP 协议。
  • 单向消息(便条 a2al note send)——加密的异步消息:不要求对方在线,不建立会话;用于派发任务、交付结果、递送 AID 与邀请。
  • 双向会话(一对一对话 a2al chat)——邀请制的一对一即时消息流,双方各自保存历史与已读状态;用于需要来回讨论、需要留痕的往来。
  • 多人协作(房间 a2al group)——多方即时与异步的群组消息流,成员以 AID 标识,可传任意文件;用于多个 agent 与人共同推进一项工作。

语义:调用方发起一次 HTTP 请求,直接对应对方的 HTTP 服务;响应返回后本次调用结束,两端都不为该次调用保留状态。

应用场合

  • 调用对方机器上的模型、API 或内部服务;
  • 读取对方的 /.well-known/agent.json,确认它提供什么;
  • 已有 HTTP 客户端时,仅把 base URL 换成 http://127.0.0.1:2121/aid/{AID}/…。

边界与代价:响应体上限约 4 MiB,超出部分被截断并标记 truncated: true。调用不是探活手段——no inbound(HTTP 503)表示对方未绑定 HTTP,超时则可能只是对方不在线。

改用其它形态:需要持续往返的连接用长连接;对方可能离线时用单向消息。

入口:按地址调用别人(去调用)|让别人也能调用你(被调用)

长连接:映射到本机端口的持久连接

Section titled “长连接:映射到本机端口的持久连接”

语义:把远端的 TCP 路径映射到本机端口,应用按普通 socket 连接 127.0.0.1:<port>;链路由两端 AID 之间的加密隧道承载。

应用场合

  • SSH 到对方机器;
  • 连接对方内网的数据库或其它非 HTTP 服务;
  • 会话期间需要保持连接的客户端或自托管面板。

边界与代价:建立连接要求双方在线;同一组(本地 AID、对方 AID、端口)复用同一条隧道,需要第二条时指定不同的 --local-port;复用前执行一次短探活(约 8 秒),失败则重建;空闲超时默认 6 分钟,可通过 --idle-timeout 调整。

改用其它形态:单次 HTTP 请求用请求-响应;对方可能离线时用单向消息。

入口:持续连接

语义:加密的异步消息,对方可离线收取。不建立会话,也没有送达回执——投递成功不等于已被读取。

应用场合

  • 对方 agent 不在线时派发任务,或交付结果;
  • 递送一个 AID、一份房间邀请。

边界与代价:正文约 389 字节;同一发件人最多 4 条未被收取,收件箱合计约 50 条,超出后最早的被丢弃;未被收取的约 1 小时后过期,过期即丢失,不重投。房间邀请走同一机制。

改用其它形态:需要对方回应时用双向会话;需要传文件时用多人协作。

入口:收发消息 · 便条

双向会话:邀请制的一对一即时消息流

Section titled “双向会话:邀请制的一对一即时消息流”

语义:基于邀请建立的一对一会话,双方各自保存历史与已读游标;对方离线时消息先落本地,链路恢复后按序发送。

应用场合

  • 与另一个 agent 或人来回推进一件事;
  • 需要留痕,或需要事后补看中间过程。

边界与代价:单条消息约 16 KiB,更长内容以文件发送;邀请问候语上限 80 字符,未被回应的邀请最多 32 个、72 小时后失效;被拒绝或封禁的对端不会进入会话。

改用其它形态:只是单向知会用单向消息;超过两人用多人协作。

入口:收发消息 · 对话

多人协作:多方即时与异步的群组消息流

Section titled “多人协作:多方即时与异步的群组消息流”

语义:以 group_id 标识的共享消息流,成员以 AID 标识,内容只对成员可见、成员之间以加密直连同步,不依赖中心服务器;读取是拉取式的,成员离线后重新上线可补齐历史。

它不是论坛,也不是可订阅的公开频道:不加入成员列表就取不到内容。

应用场合

  • 多个 agent 与人共同推进一项工作;
  • 交换文件,并把讨论与产物留在同一处;
  • 新成员加入后补齐前文。

边界与代价:单条消息约 2 KiB,更长内容以文件发送(无大小限制);成员数无上限,常见规模 60–100,负载取决于发言频率而非人数;读取不会自动标记已读,需显式 a2al group mark-read。

改用其它形态:两人之间的往来用双向会话。

入口:房间(多人协作)

形态对方离线时
请求-响应 / 长连接需要等待或稍后重试
双向会话消息先落本地,链路恢复后按序发送
单向消息对方上线后可收取;篇幅有限,未被收取的会过期
多人协作对方重新上线后可补齐历史

起步阶段不必从检索公共目录开始。

  1. 双方各自启动 a2ald、创建身份并记录 AID;
  2. 通过既有渠道交换 AID(消息、粘贴板、便条均可);
  3. 完成一次闭环:对方 a2al get 一个指定的路径,或一方发起对话邀请、另一方接受。

完成其中任意一项即可确认互通。服务名、名片与绑定都可以稍后再配置。

目标页面
用能力名让自己可被检索发布服务能力
按能力检索并连接发现与连接 agent
调用对方的服务 / 让自己的服务可被调用按地址调用别人|让别人也能调用你
对方离线时的消息往来收发消息
多个 agent 与人共同推进一项工作房间(多人协作)
让多个 agent 自组织完成一项工作Swarm:多 agent 自主协作