外观
Agent 与 Workflow:谁决定下一步
核心答案:判断依据是控制权。 Workflow 的主要路径由代码预先规定;Agent 允许模型根据观察选择下一步行动与工具。两者可以嵌套。LangGraph 官方模式说明采用这一划分。
“Agent = 一个大模型”不准确;模型只提供推断能力,应用还需要上下文、工具目录、执行器、状态和停止条件。反过来,“调用了模型就是自主 Agent”也会夸大系统能力。
用教材任务比较
| 场景 | 决策来源 | 适合方式 |
|---|---|---|
| 生成后必须独立评审 | 业务流程 | Workflow 固定边 |
| 问题未解决且未达上限,继续修订 | 程序条件 | Workflow 条件边 |
| 选择查询哪个术语、是否补充资料 | 模型对信息缺口的判断 | 有边界的 Agent 决策 |
| 人工通过后生产素材 | 审核结果与依赖关系 | 程序调度 |
生成与评审角色分开,不等于两个完全自治的机器人。准确描述本项目时,可以说“由 LangGraph 编排的双角色生成与评审流程,角色内部具有受限的工具调用能力”。
最小例子:给自主决策加预算
python
calls = ["lookup_term", "lookup_term", "finish"]
allowed = {"lookup_term", "finish"}
seen = []
for action in calls[:3]:
assert action in allowed
if action == "finish":
break
seen.append(action)
assert len(seen) == 2这里的调用序列是明确标注的输入样例,不是模型推理结果。可观察点是程序限制了工具集合和最大步数。替换成真实模型输出后,白名单与预算仍由代码掌握。
选型与代价
教材交付有强顺序要求:未经审核不能发布、修订必须有上限、同一版本素材不能混用。因此外层流程适合确定编排。过度自主会增加路径数量、测试难度和成本波动。完全固定的流程则可能无法针对资料缺口主动补查,这是引入局部 Agent 决策的理由。
评审循环还必须定义失败出口,例如转人工、保留问题清单或终止。while True 配合“直到满意”不是可运维设计。节点重跑可能再次产生外部副作用,是否使用 Agent 不改变这一事实。完整流程见系统架构。
自测与误区
把输入改成三个连续 lookup_term,观察程序在预算耗尽后结束;接着设计明确的“预算耗尽”状态,而非假装已完成。解释程序应记录哪些内容,才能区分成功停止与被上限截断。
面试时要能回答:哪几条边固定、哪些判断由模型做、模型判断错误由谁兜底。只回答“用了 ReAct”没有说明这些边界。双 Agent 也不能保证两次错误独立;同模型、同资料可能出现共同盲点。
官方资料与版本边界
- Workflows and agents:控制路径差异。
- Thinking in LangGraph:节点、状态与错误分类。
核验日期:2026-11-03。这里采用工程语境定义;业界对 Agent 的命名并不完全统一。面试中先描述实际决策权,再使用标签,避免用名称替代实现。