本篇 10 题|覆盖初级到高级|图与控制流。先用自己的话回答,再核对参考要点,最后练习工程追问。

本篇目录
- AGT-031 为什么用状态图表达 Agent?
- AGT-032 条件路由如何避免非法分支?
- AGT-033 如何设计循环终止条件?
- AGT-034 什么任务适合并行分支?
- AGT-035 并行分支的结果怎样合并?
- AGT-036 子图有什么作用?
- AGT-037 如何实现流程中的中断与恢复?
- AGT-038 图节点应该包含多少工作?
- AGT-039 动态路由如何测试?
- AGT-040 什么时候不需要图框架?
AGT-031 为什么用状态图表达 Agent?
难度:中级
参考答案:图明确节点、条件分支和结束条件,便于测试与恢复。模型只负责部分路由,关键业务转移仍由确定性条件控制,降低隐式对话状态的歧义。
工程追问:哪些边应禁止模型直接选择?
AGT-032 条件路由如何避免非法分支?
难度:中级
参考答案:把模型选择限制在枚举范围,并由服务端根据状态验证。无法识别或前置条件不足时进入明确的错误或澄清分支,而不是随意默认执行。
工程追问:默认分支应该是什么?
AGT-033 如何设计循环终止条件?
难度:中级
参考答案:结合目标完成、预算耗尽、无进展、重复行动和不可恢复错误判断。终止原因应记录在状态中,不能仅依赖模型输出某个结束词。
工程追问:有进展但超过预算时怎么办?
AGT-034 什么任务适合并行分支?
难度:中级
参考答案:相互独立的检索、分析或只读检查可以并行。存在写依赖、共享锁或外部配额限制时需串行或受控并发,汇合时检查各分支结果。
工程追问:并行请求一定能降低总成本吗?
AGT-035 并行分支的结果怎样合并?
难度:中级
参考答案:使用确定性的合并规则,保留来源、状态与冲突。不能让最后写入覆盖全部结果;对相互矛盾的结论应显式裁决或请求补充证据。
工程追问:一个分支失败是否取消全部任务?
AGT-036 子图有什么作用?
难度:中级
参考答案:把可复用流程封装成有输入输出契约的单元,例如检索、审批或文档生成。子图仍需暴露错误和预算消耗,避免成为无法观测的黑盒。
工程追问:子图内部版本变化如何影响主图?
AGT-037 如何实现流程中的中断与恢复?
难度:高级
参考答案:在可恢复边界持久化状态,记录等待条件和执行位置。恢复时校验事件身份、状态版本和是否已经处理,防止重复推进。
工程追问:审批回复重复送达怎么办?
AGT-038 图节点应该包含多少工作?
难度:中级
参考答案:节点应围绕一个可重试且可验证的动作设计。长节点恢复成本高,过细节点增加持久化与编排开销,需要结合外部事务边界取舍。
工程追问:节点写入成功但检查点失败怎么办?
AGT-039 动态路由如何测试?
难度:中级
参考答案:构造状态与工具结果组合,覆盖正常、缺失、冲突和恶意输入,验证允许到达的节点及禁止路径。重要不变量可用确定性断言检查。
工程追问:怎样发现永远无法到达的节点?
AGT-040 什么时候不需要图框架?
难度:中级
参考答案:简单的一次检索或固定短流程可以直接函数组合。只有状态、恢复、分支和长期执行复杂度值得时才引入图框架,避免增加无实际收益的依赖。
工程追问:如何设计以后可迁移的接口?
复盘练习
任选一题,用“场景与约束 → 方案 → 验证方法 → 失败边界”组织一段回答。初级先讲清概念,中级补实现与测试,高级补成本、权限和故障取舍。难度标签是学习建议,同一题可继续深入。
延伸阅读
以下为本模块相关原始论文与官方文档,用于继续学习;本文为原创面试要点整理,具体框架行为以所用版本为准。