Skip to content

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 也不能保证两次错误独立;同模型、同资料可能出现共同盲点。

官方资料与版本边界 ​

核验日期:2026-11-03。这里采用工程语境定义;业界对 Agent 的命名并不完全统一。面试中先描述实际决策权,再使用标签,避免用名称替代实现。

学习复现系统 · 事实、实验与假设分开记录