在之前的文章中,我们深入探讨了 ReAct、Plan-and-Execute、Reflexion 和 LLMCompiler 四种主流 AI Agent 架构。但理论终归是理论,真正的挑战在于:当面对一个具体的业务场景时,我们该如何组合使用这些武器?

今天,我们就通过一个经典的实战案例——“智能旅行规划 Agent”,来一场架构设计的深度演习。

场景背景

假设我们要开发一个智能旅行助手。用户输入的需求非常模糊且约束众多:

“我想去五天旅行,总预算一万元,偏好自然风光。”

为了完成这个任务,Agent 需要拆解并执行四个核心子任务:

  1. 目的地筛选(去哪玩?)
  2. 机票比价(怎么去最划算?)
  3. 酒店预订(住哪里舒服且不超支?)
  4. 行程编排(每天怎么玩?)

这就引出了我们在系统设计中必须解决的三个灵魂拷问。

灵魂拷问一:四大任务,各选什么架构?

不同的任务特性决定了我们需要不同的“大脑”来处理。我们不能用一把锤子敲所有的钉子。

1. 目的地筛选:ReAct (边想边做)

  • 理由:这是一个探索性极强的任务。“喜欢自然风光”是一个主观概念。Agent 可能需要先搜索“适合5天的自然景点”,发现结果太多,然后决定反问用户“您更喜欢高山还是大海?”,或者结合当前的季节天气进行动态推理。这种需要与环境高频交互、根据反馈实时调整策略的场景,ReAct 的灵活性是无可替代的。

2. 机票比价:LLMCompiler (并行编译)

  • 理由:一旦目的地确定(例如锁定“云南”),查询“北京飞昆明”、“北京飞丽江”、“北京飞大理”的票价,这三个动作是完全独立的。如果使用串行架构,耗时将是三倍。而 LLMCompiler 擅长识别这种依赖关系,将独立任务分发出去同时执行,最后汇总结果,效率最高。

3. 酒店预订:Reflexion (反思优化)

  • 理由:这是一个高精度、强约束的任务。酒店涉及位置、价格、评分、库存等多维因素。如果第一次推荐的酒店用户不满意(比如“太偏了”或“超预算”),Agent 不能只是机械地换一家,而是需要“反思”:为什么刚才的推荐失败了?是不是我对“市中心”的理解有偏差?Reflexion 的“试错-反思”机制能确保最终方案的高质量。

4. 行程编排:Plan-and-Execute (规划执行)

  • 理由:这是一个逻辑严密的任务。行程必须遵循时间线性逻辑(第一天上午 -> 第一天下午 -> 第二天上午)。它不需要太多的发散思维,而是需要将确定的景点、交通、餐饮填入时间轴。Plan-and-Execute 模式能保证输出结构的稳定性,避免逻辑混乱。

灵魂拷问二:依赖关系如何处理?并行还是串行?

这是系统性能优化的关键。在这个场景中,任务之间存在复杂的DAG(有向无环图)依赖关系:

  • 必须串行的链路

    • 目的地筛选 → 机票/酒店查询。你必须先知道去哪,才能查票。
    • 机票+酒店确认 → 行程编排。只有确定了大交通和住宿地点,才能安排具体的游玩路线。
  • 可以并行的链路

    • 在目的地确定后,机票比价 和 酒店初筛 是可以同时进行的。
    • 在 机票比价 内部,查询不同航司、不同时段的价格也是并行的。

架构启示:我们需要一个强大的 Planner(规划器) 来构建这个 DAG 图。它不仅要生成任务列表,还要标记出哪些节点是“阻塞”的,哪些节点是“自由”的,从而调度 LLMCompiler 进行并行处理。

灵魂拷问三:加入“预算动态平衡”机制,架构如何调整?

这是最棘手的问题。用户说“预算一万”,但这不仅仅是一个数字,而是一个全局约束

  • 如果机票太贵(花了4000),剩下的钱就不够住好酒店了。
  • 如果为了住好酒店定了 expensive 的房型,可能就得缩减游玩项目。

这就引入了全局状态管理的需求。单纯的 Plan-and-Execute 往往是一次性的,很难处理这种“牵一发而动全身”的动态调整。

解决方案:引入 Global State + Reflexion 循环

我们需要对架构做两个关键调整:

  1. 建立全局预算账本 (Global Budget State)
    不再让每个子任务孤立运行。我们需要一个共享的内存空间(Memory),实时记录:总预算 - 已花费(机票+酒店) = 剩余可用预算

  2. 增加“财务审计”环节 (Financial Auditor)
    在 机票 和 酒店 任务完成后,插入一个检查点。

    • 场景模拟:Agent 查到了心仪的酒店,但发现加上机票后总价 1.2 万,超标 20%。
    • 触发 Reflexion:此时触发反思机制。Agent 不会直接报错,而是分析:“机票是刚性的,很难降价;所以必须降低酒店标准,或者更换性价比更高的民宿。”
    • 自动修正:Agent 带着“降低住宿预算”的新指令,重新执行酒店预订任务,直到总价落入 1 万元的安全区。

总结

通过这个“智能旅行规划”的案例,我们可以看到,构建一个优秀的 Agent 系统,绝不是简单地套用某一个公式。

  • 它是 ReAct 的灵活探索;
  • 它是 LLMCompiler 的极致效率;
  • 它是 Reflexion 的自我进化;
  • 更是 Plan-and-Execute 的稳健落地。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐