深色
风格
视觉表达
S 循环切换
经典
稳定的技术默认风格
信号流
突出动态流向
蓝图
工程评审
编辑风格
适合发布与上线说明
动态
演示
导出
导出图表
便携、整洁的输出
E
分享
分享卡片
1200×630 PNG
路径分享卡片
1200×630 PNG
可达范围分享卡片
1200×630 PNG
复制分享卡片
复制 PNG 到剪贴板
复制图表
复制 PNG 到剪贴板
图像
PNG
无损图像
JPEG
紧凑图像
WebP
现代图像格式
矢量与动效
SVG
可编辑矢量图
WebM
6 秒动效
ai4j A2A 实现机理(ai4j-agent · a2a 包)
←
引导视图
探索此系统
沿精选路径逐步查看,而不改变源图表。
节点
下一步
→
▶
播放故事
#
复制此刻
显示全部
ai4j A2A 实现机理(ai4j-agent · a2a 包)
由 Archify 生成的架构图。
宿主 Agent · ReAct / CodeAct · ai4j 进程 · 客户端角色 · 调用方
宿主 Agent
ReAct / CodeAct
调用方
A2ATool · ToolExecutor 包装 · ai4j 进程 · 客户端角色 · a2a
A2ATool
ToolExecutor 包装
a2a
A2AClient · discover · send · SSE · push · ai4j 进程 · 客户端角色 · a2a
A2AClient
discover · send · SSE · push
a2a
外部 Agent(A2A 对端) · 任意 A2A 实现 · 互为客户端/服务端 · 架构组件
外部 Agent(A2A 对端)
任意 A2A 实现 · 互为客户端/服务端
CardHandler · AgentCard · GET /.well-known/* · 双卡缓存 · ai4j 进程 · A2AServer 服务端角色(JDK HttpServer) · 无鉴权
CardHandler · AgentCard
GET /.well-known/* · 双卡缓存
无鉴权
TaskHandler · JSON-RPC · POST / · 鉴权 → 方法分发 · ai4j 进程 · A2AServer 服务端角色(JDK HttpServer) · 鉴权入口
TaskHandler · JSON-RPC
POST / · 鉴权 → 方法分发
鉴权入口
workerExecutor · ≤32 线程 · 状态迁移 · ai4j 进程 · A2AServer 服务端角色(JDK HttpServer) › 鉴权后内域(X-API-Key / Bearer) · a2a
workerExecutor
≤32 线程 · 状态迁移
a2a
内存任务表 A2ATaskRecord · ConcurrentHashMap ≤1024 · ai4j 进程 · A2AServer 服务端角色(JDK HttpServer) › 鉴权后内域(X-API-Key / Bearer) · 唯一事实源
内存任务表 A2ATaskRecord
ConcurrentHashMap ≤1024
唯一事实源
Agent / AgentSession · run / runStreamResult · ai4j 进程 · A2AServer 服务端角色(JDK HttpServer) › 鉴权后内域(X-API-Key / Bearer) · ai4j 运行时
Agent / AgentSession
run / runStreamResult
ai4j 运行时
SseSink 扇出 · text/event-stream · ≤64 · ai4j 进程 · A2AServer 服务端角色(JDK HttpServer) › 鉴权后内域(X-API-Key / Bearer) · 流式
SseSink 扇出
text/event-stream · ≤64
流式
PushNotificationDelivery · ≤16 线程 · 公网 HTTPS · ai4j 进程 · A2AServer 服务端角色(JDK HttpServer) › 鉴权后内域(X-API-Key / Bearer) · 推送
PushNotificationDelivery
≤16 线程 · 公网 HTTPS
推送
外部回调端点(调用方所有) · HTTPS 回调 endpoint · 架构组件
外部回调端点(调用方所有)
HTTPS 回调 endpoint
AgentToolCall → execute
sendTask(message)
① 调用对端
② 对端发现本端:GET /.well-known/agent-card.json
③ 对端调用本端:POST JSON-RPC
registerTask · Get/List/Cancel
startTask
transition + artifact + latch
run / runStreamResult
publish statusUpdate / artifactUpdate
publish → 回调投递
④ SSE 回订阅方:data:{task|statusUpdate|artifactUpdate}
POST · X-A2A-Notification-Token
ai4j 进程 · 客户端角色
ai4j 进程 · A2AServer 服务端角色(JDK HttpServer)
鉴权后内域(X-API-Key / Bearer)
就绪
章节 01 / 01
引导章节
图表指南
探索此系统
×
正在检查已编译语义
01
查找任意节点
搜索标签、职责、类型和稳定 ID。
/
02
追踪路径
查看两个语义节点如何按编写方向连接。
R
03
查看完整系统
打开带实时视口和稳定节点的语义雷达。
M
04
比较语义类型
统计角色、显示流量并比较直接编写的连接。
L
05
播放引导故事
浏览已编写的章节和真实关系。
P
06
进入演示模式
让实时图表占满视口,同时不改变导出。
F
E
导出
T
主题
S
风格
0
重置
+
放大
-
缩小
Esc
关闭
查找节点
×
⌕
/
没有匹配的节点
语义护照
已验证来源
编写可达范围
上游
0
下游
0
×
复制链接
关系
路径探测
选择起点节点
查找起点
复制链接
清除
在图表中选择两个语义节点
←
▶
旅程
→
总览
先选择来源,再选择目标;方向很重要。
语义透镜
比较系统角色
×
最多选择两种语义类型。选择一种可显示其真实流量;选择两种只比较直接编写的关系。
选择一种类型以检查其节点和相连关系。
复制链接
清除
语义雷达
正在构建总览
打开雷达
×
点击节点
拖动平移
语义雷达需要更多地图可见空间。
路径
地图
透镜
阅读
100%
协议面与任务生命周期
• 角色对称:A2AClient/A2ATool 调任意对端 Agent;A2AServer 同时被任意 A2A 客户端调用——同一 JSON-RPC 协议面
• 方法:SendMessage · SendStreamingMessage · GetTask · ListTasks · CancelTask · SubscribeToTask · PushConfig CRUD
• 发现 /.well-known/agent-card.json(回退 agent.json);别名 /tasks/send · /message:send · /message/send 同步 run 不入任务表
• TaskState:SUBMITTED→WORKING→{INPUT|AUTH_REQUIRED}→COMPLETED/FAILED/CANCELED/REJECTED;内存表 ≤1024,CancelTask→future.cancel(true)
事件扇出、推送与限额
• SSE:首帧完整 Task 快照(锁内注册防丢帧)→ statusUpdate / artifactUpdate;每任务 ≤64 订阅
• Push ≤32 配置/任务:同事件体 POST,X-A2A-Notification-Token + AuthenticationInfo;回调默认仅公网 HTTPS(SSRF 防护)
• 线程池 HTTP 64 · worker 32 · callback 16;请求体 / SSE 事件 ≤1MB;A2ATool=远端 Agent→ToolExecutor;A2ASkillMapper→AgentCard.skills