编排别人家的 Agent:路由、容错与推送
把第二天的集中编排搬到 A2A 上,去调四个团队的 Agent。按技能路由,找不到就报错而不是随便找一个;超时就重试,但重试必须复用同一个消息编号,让对方不做两遍;某个团队挂了,交一份写明缺什么的诚实结果;用户取消时把取消传到每一个下游;最后用推送代替一直挂着的连接,并挡住推送地址里的 SSRF。
今日目标
- 能按技能路由到远端 Agent,并用消息编号去重让超时重试不重复干活
- 能在下游部分失败时交出一份写明缺什么、为什么缺的结果,并把取消传到每一个在途的远端任务
- 能实现推送通知的登记与投递,并说出推送地址为什么是 SSRF 入口、服务端要在哪两处挡
前五天你一次只跟一个远端 Agent 打交道,今天四个团队一起上。编排的逻辑第二天就写完了,今天多出来的全是「对方不在你的进程里」带来的事。读完回到页面顶部把三条目标勾掉。
小白版讲解
找外包:按资质找人、催单不能让人家重做一遍、有一家黄了也得交差
年会筹备交给了四家外包:会展公司管场地,餐饮公司管吃饭,车队管接驳,财务外包核价。你是总协调,四件事立刻冒了出来。
第一,找谁。你不会因为「王经理上次办得不错」就把订餐交给王经理——他是会展公司的。你按营业执照上的经营范围找:谁的资质里有餐饮服务,订餐就给谁;翻遍通讯录也没有,就告诉老板「这件事没人能接」,而不是随手塞给会展公司。
第二,催单。你给餐饮公司发了订单,半天没回音。你不知道是对方没收到,还是收到了、订好了、只是回电没打过来。再发一遍是对的,但要报同一个订单号——否则对方当成新单,订了两份。
第三,有一家黄了。车队突然联系不上。你给老板的汇报不能是「全都安排好了」,也不能自己编一句「接驳就用场地班车吧」——你不是车队,不知道那天有没有车。你该交的是:场地、餐饮、场地费都定了,接驳没着落,原因是车队联系不上。
第四,老板说年会取消了。你挂掉自己的电话不够,得挨个通知已经开工的外包:别订了,别排车了。
跨团队编排就是把这四件事写成代码。编排逻辑本身——先定场地,再带着说明书派第二轮,最后汇总——第二天已经写完了,今天一行不改,只是每一件委派从一次函数调用变成了一次跨网络的 A2A 调用。
面试题库
远端调用超时重试,会不会让对方把同一件事做两遍?怎么设计?When a remote call times out and you retry, can the other side end up doing the same work twice? How do you design against it?
国内高频海外高频进阶#a2a#idempotency#retry🔒 解锁本章后查看答题要点。
四个下游里挂了一个,编排方该交出什么样的结果?One of four downstream agents is down. What result should the orchestrator deliver?
国内高频海外高频深入#multi-agent#partial-failure#reliability🔒 解锁本章后查看答题要点。
推送通知有哪些安全风险?服务端该怎么防?What are the security risks of push notifications, and how should the server defend against them?
国内高频海外高频深入#a2a#push-notifications#ssrf🔒 解锁本章后查看答题要点。
用户取消了,怎么把取消传到每一个下游?The user cancels. How do you propagate the cancellation to every downstream agent?
国内高频海外高频进阶#a2a#cancellation#multi-agent🔒 解锁本章后查看答题要点。
