阿里云 Agent 一面:Workflow、通信与配置热更新
本场面试题
- 固定工作流与 Agent 应怎样选择?
- 同机进程通信与跨主机通信应分别考虑什么?
- HTTP 与 RPC 的关系,以及服务间为何选 RPC?
- 本地 YAML、INI 配置热更新怎样实现得可靠?
面经与参考答法
问题选自作者自述的阿里云Agent一面记录。以下短答用于备面讲解,不代表作者当场作答。原记录标注4.10,面试年份未确认。
(1)固定工作流与 Agent 应怎样选择?
路径和条件能预先确定时,用代码固定步骤更便于测试、恢复和控制成本。任务需要根据新证据决定下一步时,可在明确权限与预算内让 Agent 选择工具。生产系统可以把检索、模型判断放在工作流节点中,同时由代码掌握校验、审批、重试和提交。不能把“用了模型”当作必须全流程自治的理由。
(2)同机进程通信与跨主机通信应分别考虑什么?
同机可选管道、消息队列、共享内存或本地 socket;共享内存能减少数据复制,但同步、内存生命周期和竞争成本仍需处理,不能不看负载就宣称最快。跨主机需网络通信,可比较请求响应、RPC和消息中间件的延迟、吞吐、契约与故障语义;本机共享内存通常不能直接跨机器使用。
(3)HTTP 与 RPC 的关系,以及服务间为何选 RPC?
HTTP 是通信协议,RPC 是远端调用的抽象,两者可以组合,例如 gRPC 通常使用 HTTP/2。选择时看接口契约、序列化、连接复用、流式传输、超时和兼容演进;二进制消息或连接策略可能改善特定负载,但“RPC天然快于HTTP”没有统一结论,需要同任务测量。
(4)本地 YAML、INI 配置热更新怎样实现得可靠?
先把文件解析成带版本的候选配置,完成语法、类型和业务校验,再一次性交换当前配置快照。监听需处理编辑器原子替换、重复事件、短暂半写与删除,加入去抖和失败保留旧版本;异步读取须防止旧结果覆盖新版本。测试新增、无效配置、快速连写、重命名、读失败和并发读。文件监听和参数刷新只是环节,不能把任意配置变更都热替换到正在运行的对象。