# 1. 线性、条件分支、并行、路由和人工介入节点如何映射成显式状态机 A 线性步骤映射为状态链,分支映射为条件边,并行映射为分支-汇合模式,人工介入映射为挂起态并等待审批事件 ✓ 正确答案 B 并行分支不需要汇合点,各自结束即可 C 状态机中的转移不需要守卫条件,模型可以自由跳转 D 人工介入节点不需要考虑审批超时
# 2. Checkpoint、恢复、重试、补偿和去重如何保证长任务在进程重启后继续执行 A Checkpoint 用于重试,重试用于恢复,二者等价 B 只要做了 checkpoint,就不需要去重机制 C 补偿与去重是同一机制的两种叫法 D Checkpoint 原子化保存状态供恢复,重试处理瞬时失败,补偿撤销已生效副作用,去重用幂等键防止重复执行,协同保证长任务续跑 ✓ 正确答案
# 3. 中间产物应保存什么版本、来源和幂等信息,如何避免重复执行副作用节点 A 幂等键可以用随机数生成,只要不重复即可 B 中间产物只需要保存最新一份内容即可 C 中间产物记录版本、来源与幂等键,副作用节点执行前查登记表、成功后登记,保证副作用只生效一次 ✓ 正确答案 D 重试时所有副作用节点都应重新执行
# 4. Agent 长任务(数小时、数天)应如何持久化,检查点(checkpoint) A checkpoint 应保存状态、上下文、工具会话与产物引用四类信息,事件驱动加定时兜底写入,并原子持久化 ✓ 正确答案 B checkpoint 写入频率越高越好,每一步都写 C checkpoint 只需要保存任务 ID 和当前步骤号 D 长任务恢复时不需要对账外部系统状态
# 5. Agent 任务暂停后如何从中断点恢复(context 重建、模型重连、工具状态同步) A 任务暂停后恢复就是重新发送一次用户请求 B 工具状态不需要恢复,重新调用即可 C 恢复需要重建模型上下文、重连模型会话并同步工具状态,对账已完成副作用后从断点续跑 ✓ 正确答案 D 恢复后不需要检查计划是否仍然有效
# 6. Agent 的中间结果(生成的内容、工具调用返回值)应存放在事务数据库还是对象存储,二者边界 A 所有中间结果都应放入事务数据库,保证一致性 B 小体积结构化数据进事务数据库,大体积内容进对象存储,数据库保存引用与元数据,两者组合管理 ✓ 正确答案 C 大体积中间结果放进数据库最方便查询 D 对象存储支持事务回滚,可以替代数据库
# 7. 如何检测无进展循环、工具来回调用和状态振荡,并触发安全终止 A 用状态指纹检测无进展、识别重复调用子序列检测来回振荡,先轻干预无效后再安全终止并保留现场 ✓ 正确答案 B 检测到循环应该立即终止并丢弃所有状态 C 无进展循环与工具来回调用无法区分,只能统一超时 D 只要步数没超就不会死循环
# 8. 单 Agent 与多 Agent 在上下文同步、Token 消耗、调试和故障隔离上如何比较 A 单 Agent 比多 Agent 更容易定位故障节点 B 多 Agent 的 Token 消耗一定低于单 Agent C 多 Agent 不需要跨 Agent 追踪消息 D 单 Agent 上下文天然一致但故障面大,多 Agent 需显式同步上下文、Token 消耗更高但故障隔离好 ✓ 正确答案
# 9. Agent 任务被人工取消(cancel)时应如何优雅终止正在进行的工具调用和模型流 A 取消就是立即杀掉任务进程 B 优雅取消先停模型流与工具调度,收尾已发生副作用并登记现场,再标记 cancelled 释放资源 ✓ 正确答案 C 取消后不需要记录取消原因 D 已提交的第三方异步任务必须强制终止
# 10. Agent 状态机中的“并行分支”如何同步汇合,避免某个分支拖垮整体 A 慢分支应该无限等待,直到完成 B 并行分支必须全部成功才能汇合,这是唯一策略 C 汇合点登记各分支完成状态,支持严格/部分/超时三种汇合策略,并用超时与隔离防止慢分支拖垮整体 ✓ 正确答案 D 失败分支的异常会自动传染给其他分支
# 11. Workflow 的“幂等性”应做到哪一层(请求层、节点层、副作用层) A 请求层防重复提交、节点层防节点重放、副作用层防外部重复生效,三层组合才完整 ✓ 正确答案 B 节点层幂等与副作用层幂等是同一件事 C 只要请求层做了幂等,下面两层就不需要了 D 幂等只对失败重试有意义,对正常执行无意义
# 12. 持久化的 Agent 状态如何支持“时间旅行”调试,又避免回放时重复触发副作用 A 只保留最新 checkpoint 就足够支持时间旅行 B 时间旅行就是重新跑一遍任务,没有区别 C 回放执行应该与真实执行一样调用真实外部系统 D 时间旅行基于历史 checkpoint 时间线 fork 回放,回放时复用副作用记录并 dry-run,避免重复触发真实副作用 ✓ 正确答案
# 13. 跨进程、跨机的 Agent 任务(多副本部署)如何用分布式锁防止重复执行 A 用分布式锁实现任务领取唯一性,配合续租、归属校验与持久化状态兜底,防止多副本重复执行 ✓ 正确答案 B 分布式锁只有 Redis 一种实现 C 锁设了过期时间就一劳永逸,不需要续租 D 拿到锁的任务不需要再写持久状态
# 14. Agent 工作流中的错误传播策略,哪些错误重试、哪些回退、哪些直接失败 A 所有错误都适合重试 B 错误处理应该全部交给全局 try-catch C 参数非法这类错误重试几次也能成功 D 瞬时错误指数退避重试,路径失败回退到备选方案,持久错误直接失败并保留现场,策略显式建模在状态机边上 ✓ 正确答案
# 15. 长任务(>1 小时)应如何定期回报进度(heartbeat) A 心跳丢失一次就应判定任务失败 B 长任务不需要心跳,用户等着即可 C 心跳要包含所有中间产物内容 D 心跳携带存活、进度与关键事件信息,定时加事件驱动发送,供用户展示、监控告警与锁续租使用,与 checkpoint 职责分离 ✓ 正确答案
# 16. 任务队列(Queue)与工作流引擎(Workflow Engine)在 Agent 长任务编排上如何分工,何时仅靠队列即可、何时需要状态机与 DAG A 队列负责异步执行与重试,工作流引擎负责状态与依赖编排;有依赖图或长生命周期时用引擎,独立短任务仅用队列 ✓ 正确答案 B 队列可以完全替代工作流引擎 C 工作流引擎不处理人工节点 D 长任务用队列就够了,不需要状态管理
# 17. 长任务为何需要异步提交、状态查询、通知、取消和过期清理,而不能保持一个 HTTP 连接 A 长任务完成后只能靠客户端轮询发现 B 只要把网关超时调大,长任务就可以保持 HTTP 连接 C 长任务应采用异步提交返回任务 ID,配合状态查询、事件通知、取消与过期清理,避免长连接超时与资源占用 ✓ 正确答案 D 异步提交后任务结果不需要清理
# 18. Time-travel 回放如何帮助定位错误节点,回放时怎样避免再次触发真实副作用 A 回放定位错误就是从头到尾重跑一次任务 B 利用每步快照二分定位异常节点,回放时复用历史副作用结果并以 mock 与只读防护隔离外部调用 ✓ 正确答案 C 回放时应该真实调用外部系统以验证结果 D 回放不需要环境隔离,直接在生产执行
# 19. 为什么“自动恢复”不一定好,应如何让用户感知任务仍在运行而非“卡死” A 自动恢复永远优于人工确认,越自动越好 B 自动恢复可能掩盖故障与产生不可预期副作用,应按风险分级,并让用户实时感知进度与恢复事件 ✓ 正确答案 C 反复失败的任务应该一直自动重试 D 用户不需要知道任务是否曾中断恢复
# 20. 持久化的 Agent 状态如何与外部系统状态(数据库、第三方 API)保持一致,防止状态漂移与重复副作用 A 以外部系统为单一事实源,外呼带幂等键,配合写序约定、定期对账与幂等补偿防止漂移与重复副作用 ✓ 正确答案 B 双写只要顺序固定就不会漂移 C 对账发现差异时全部自动回滚即可 D Agent 状态是权威,外部系统应以它为准
# 21. 事件溯源与状态机快照两种持久化在 Agent 场景下各有哪些工程取舍 A 事件溯源保留完整历史支持审计与回放,快照读取恢复简单高效,Agent 场景常采用"事件为权威 + 定期快照压缩"的混合方案 ✓ 正确答案 B 快照可以回答"状态当时为什么是这样" C 事件溯源不需要管理事件 schema 演进 D 事件溯源的优势是读取当前状态快
# 22. LangGraph Durable Execution、CrewAI Flows 与 AutoGen Actor 模型应按哪些需求选型 A 三种框架的抽象本质相同,随便选即可 B AutoGen 不支持多 Agent 对话 C LangGraph 适合确定性图与断点恢复,CrewAI Flows 适合事件驱动流程,AutoGen 适合消息并发协作,按任务结构与需求匹配选型 ✓ 正确答案 D CrewAI Flows 是唯一支持持久化的方案
# 23. Agent 任务的 SLA 应如何定义(成功率、延迟、成本) A SLA 的延迟指标应该用平均值衡量 B 成功率只要模型不报错就算成功 C SLA 按成功率、延迟分位数与成本三维定义,按任务类型分层设阈值,并配套监控、告警与违约复盘闭环 ✓ 正确答案 D 复杂任务与简单任务应使用相同 SLA 阈值
# 24. Agent 任务回滚(rollback)应做到什么粒度,整个任务、单步、状态变更 A 回滚粒度越粗越好,实现简单 B 整个任务回滚适合整体失败,单步回滚适合修正错误节点后重跑,变更级回滚最小粒度撤销局部变更,按场景分层选择 ✓ 正确答案 C 所有回滚都必须回到任务初始状态 D 回滚不需要考虑已生效副作用的补偿