你觉得这个面试的难点会在哪里

回复 joye: 我觉得最难的不是“懂多少 Agent 概念”,而是把 Agent 当成一个会失败、会失控、执行时间不确定的分布式系统,讲清楚怎么兜底。 单看这份 JD,它偏 Agent 基础设施 / 运行时,而不只是应用开发。我会把难点排成下面这个顺序;这是根据 JD 的判断,不代表对方一定这样问。 第一,断点恢复与外部副作用。这是最容易被追问穿的地方。 比如:Agent 已经调用 API 创建了订单,但还没保存执行结果,worker 就挂了。恢复后再调用一次,会不会重复下单? “存 checkpoint、失败重试”并没有解决这个问题。需要讲清楚状态持久化的边界、幂等键、外部结果核验,以及无法安全重试时怎么补偿或交给人处理。LLM 重新生成还可能选出不同的下一步,因此哪些结果要保存、哪些步骤允许重跑,也必须明确。 第二,高并发调度,而不是简单地把任务并行起来。 一个请求拆成十个子 Agent,每个又调用多个工具,很容易把模型额度、数据库连接或沙箱资源打满。 面试官可能会追问:不同租户怎么公平分配资源?长任务会不会饿死短任务?模型限流时怎么排队?用户取消任务后,已经启动的子任务怎么停?重试会不会形成雪崩? 难点是把准入、限流、背压、超时、取消和资源回收讲成一套机制,而不是分别报术语。 第三,沙箱安全与低延迟之间的取舍。 “放进 Docker 里执行”大概率不够。 用户代码能访问什么网络、文件和凭证?怎么限制 CPU、内存、进程数和运行时间?任务结束后如何清理?预热池降低启动延迟,又怎样避免上一个用户的数据残留? 这里同时考安全边界和系统工程。尤其要区分:模型被提示词诱导,是决策层风险;执行环境能不能阻止越权,是平台必须提供的硬边界。 第四,多 Agent 的状态一致性。 不是只问“用什么协议通信”,而是:谁有权修改任务状态?两个 Agent 同时更新同一份结果怎么办?消息重复、乱序、迟到怎么处理?一个子任务失败,整组任务继续还是撤销? 上下文、任务状态、长期记忆也不能混成一个存储问题。它们的生命周期、正确性要求和访问权限不一样。“Redis+向量库”只能回答用了什么,不能回答为什么可靠。 第五,性能与成本优化有没有证据。 JD 把延迟、Token、ROI、Trace 写在一起,我会预期他们追问: “你怎么知道慢在模型、排队,还是工具?” “换便宜模型后省了钱,但失败和重试变多了,还算优化吗?” 真正有说服力的是把成功率、尾延迟、单次成功任务成本关联起来,并能通过一条完整执行轨迹定位问题,而不是只说“加缓存、做摘要、接监控”。 对你而言,我最想确认的不是你会不会讲多 Agent 编排,而是能否从“正常情况下怎么跑”,继续讲到“跑了一半挂了、重复执行了、资源满了、用户取消了,系统怎么办”。 如果对方严格按这份 JD 面,分布式系统基础和生产故障处理,很可能比 Agent 框架熟练度更能拉开差距。 参考:Temporal 对 checkpoint 与执行恢复边界的讨论,正好对应第一个难点: https://temporal.io/blog/temporal-langgraph-plugin-durable-execution