怎么考「什么是 Agent?和 workflow、和「调用一次大模型」的本质区别?

Q3-01Agent 定义与边界高频

谁在问:一面必问;简历写了 Agent 的候选人开场第一题,也是大厂/AI 创业公司通用的真伪探针

开场怎么问

你简历里写了 Agent。先跟我说说,你理解的 Agent 和一个 workflow,本质区别在哪?

换个问法

  • 我写段代码,调一次大模型让它返回 JSON,再按 JSON 去查库——这算 Agent 吗?
  • 现在什么都叫 Agent。如果只让你说一条判据,你会说哪一条?

五层追问链

左边照着问,右边对着听。最后一层是压力面,不必每个候选人都问到。

一条链中间有个 if-else 分支,分支条件是让 LLM 判断的——这算 Agent 吗?

期望
不算。LLM 参与判断 ≠ 模型持有控制权——分支候选集合是人预先闭合的,模型只是在既定选项里选一个,本质是个分类器。真正的分辨点是:模型能不能产生你没预设过的动作序列?能不能自己决定「再来一轮」?加一句实践判断:这类「LLM 做路由的 workflow」往往就是生产最优解,可测、可复现、成本恒定,别为了名分改造它。
信号
能落到「候选集合是否闭合」「能否自决再来一轮」的,是自己想过;答「用了 LLM 就算 Agent」或者拿框架名当判据(「用了 AgentExecutor 就是」)的,只读过教程。

Agent 的循环靠什么终止?只靠模型说「我答完了」够吗?

期望
正常终止是模型返回不带工具调用的最终答案,但代码侧必须有兜底:max_steps、时间预算、费用预算、重复动作检测(连续 N 次同工具同参数即中断)、工具连续失败熔断。死循环的典型形态是模型反复换措辞调同一个检索工具、两个工具互相等对方结果、工具报错文案不可操作导致无限重试。关键区分「中断」和「降级」:超限之后要有出口——回落固定管线、转人工、或返回「已得信息 + 未完成项」。
信号
说得出三种以上兜底并且区分中断与降级的,做过线上;只会答 max_iterations、追问「超限之后呢」回答「就报错」的,停在 demo。

你说 harness 决定一半能力,那 harness 里具体装了什么?挑两样说说你调过的。

期望
能列出组成——工具集与 schema 描述、上下文组装与压缩策略、工具结果的裁剪与回灌格式、错误消息设计、终止与重试、权限与人工确认、trace 与评测。然后挑两样讲改动前后的可量化差别:比如把工具报错从异常堆栈改成「参数 date 需 YYYY-MM-DD,你传的是『上周』」之后自愈率的变化;或者把工具从 20 个收敛到 8 个之后选择准确率的变化。加分项是承认反向代价:harness 越厚越贴当前模型,模型换代要拆一遍。
信号
举的是具体改动 + 观察到的指标变化(哪怕只是几十条样本的粗糙对比)的,是真调过;把 harness 说成「就是提示词」或只会复述那句口号的,是看过文章。

业务方问「这功能到底多久出结果、一次多少钱」,你怎么答?

期望
承认 Agent 步数是长尾分布,不能报平均值,要报 P50/P95 和上限——因为有 max_steps 和预算熔断,上限是可以承诺的。解释成本非线性:每一轮都要重发完整上下文,工具结果一旦进上下文就在后续每轮复利计费,所以「多两步」不等于多两步的钱。最终把不确定性转成「有上界的承诺」:设预算上限 + 超限降级路径。
信号
主动给上界并解释上下文累计计费的,算过账;报个平均值交差、或者答「这个说不准」的,没做过成本治理。

现在有条跑得挺稳的 workflow,产品经理要求「改造成 Agent,对外讲的时候更先进」。你怎么办?

期望
先别站队,先统一价值口径——现在的 badcase 长什么样?是「路径没覆盖到」(这类 Agent 化有收益)还是「某一步答得差」(改模型/改提示词就够了)。用 badcase 分类代替观点辩论。给量化条件:如果「需要预设外路径」的 badcase 占比很低(个位数百分比量级),Agent 化的收益抵不过成本方差和评测成本。给折中方案:外层保留 workflow 守住 SLA、审计和可复现,把 badcase 集中的那一步做成受限 agentic(工具白名单 + max_steps=3 + 超时回落固定路径),先小流量 A/B。对「要讲故事」的真实诉求也给出路:对外可以讲自治能力,但内部要有成功率、成本、时延三条线的对比数据,避免上线后被自己的 demo 反噬。底线一句话:不拒绝需求,拒绝的是没有评测就全量替换。
信号
先归因 badcase 再给方案、给出可回滚的小步走路径、并且照顾到业务方真实诉求的,是有协作经验的工程师;两种极端都扣分——直接顶回去说「这是伪需求」,或者立刻答应全量改造却说不出改完怎么证明更好。

危险信号

听到这些话,基本可以判定是背题而不是做过。

「Agent 有感知、规划、记忆、行动四大模块」——纯背定义,没有一条能拿来判定具体系统;追问「那 workflow 有没有记忆」立刻塌。
「用了 LangChain / AgentExecutor 就是 Agent」——用框架名代替概念。
「Agent 就是能调工具的大模型」——混淆 Function Calling 与 Agent。调一次工具就返回的仍然是 workflow(见 Q3-03)。
「Agent 更智能、更自动化」——形容词答案,没有边界。
全程只讲优点,说不出不可复现、成本长尾、轨迹调试——典型没上过线。
「我们的 Agent 每次都是先检索、再总结、再回复」——自曝是 workflow。此时正确姿势是主动承认并说明为什么这样设计更合适,硬撑必被后续追问打穿。

评分卡

  1. 抓住唯一硬判据:下一步由谁决定(控制权归属)
  2. 讲清三层递进:单次调用 / workflow / Agent
  3. 提到环境反馈回灌与终止条件的归属
  4. 能反向检验假 Agent(同输入是否同轨迹、路径能否枚举)
  5. 知道自治是连续谱,生产常见「骨架 + 局部 agentic」混合形态
  6. 说得出 Agent 化的工程后果(成本长尾、不可复现、按轨迹调试)
  7. 加分:知道 Agent = Model + Harness,能列 harness 组成
  8. 加分:主动说明自己项目落在哪一格并给出理由
参考答案与考察意图面试中途别看这一段

考察意图

面试官不是在等百科定义,他同时在做四件事:

  1. 验简历真伪。 转型候选人最高频的写法是「基于 XX 框架开发了智能客服 Agent」,一追问发现是固定三步管线。你能不能自己划清边界,直接决定后面简历深挖阶段你是被信任还是被拷打。
  2. 看有没有判据思维。 背「感知—规划—记忆—行动四要素」是读过;能给一条拿来就能判定一个具体系统的标准,才是自己想过。
  3. 看知不知道代价。 说清定义只是及格,说得出「因此它不可复现、成本有长尾、调试要看轨迹」才说明上过线。
  4. 埋钩子。 这题的答法决定他下一题是问 Q3-02(选型判断)还是 Q3-06(ReAct 循环实现)。

参考答案

图 2 · 60 分与 90 分差在哪:代价、演进、怎么验证

60

60 分答案(及格线)

三种形态的差别不在用了什么框架,在下一步由谁决定

  • 单次调用大模型:输入→输出一次映射,没有循环,也不碰外部世界。模型只是个函数。
  • Workflow(工作流):路径是我写死的。某个节点里也可能调模型(比如让它做意图分类),但所有可能走的路我都能提前画在一张图上,模型只是图里的一个算子。
  • Agent(智能体):模型在循环里自己决定下一步——调哪个工具、要不要再来一轮、什么时候停。路径是运行时长出来的,我提前画不出来。

配套三个差别:环境反馈会不会回灌进下一轮上下文;终止条件由谁判断;执行步数是恒定的还是不定的。

一句话收口:Workflow 是我编排模型,Agent 是模型编排我给它的工具。

90

90 分答案(有生产经验的回答)

在 60 分基础上补四层。

1. 给一张能当场画出来的判据表

判据 单次调用 Workflow Agent
下一步谁决定 无下一步 代码 / DAG 模型
可能路径 1 条 有限、可枚举 运行时生成、不可枚举
环境反馈 流向人定的下一节点 回灌上下文,影响下一次决策
终止 生成结束 走到终点节点 模型自判 + 代码兜底(步数/预算/超时)
成本与耗时 恒定 恒定或小方差 长尾分布,只能报 P50/P95
失败定位 看这次输出 看哪个节点挂了 看整条轨迹的哪一步决策错了

2. 反向检验,这是分水岭。 我判断一个系统是不是真 Agent,只问一句:同样的输入跑两次,轨迹会不会不一样? 永远一样就是 workflow,哪怕它是用 Agent 框架写的。生产里这种「用 AgentExecutor 包一条固定三步管线」的东西很多——白白付了不确定性的代价,没拿到不确定性的收益。

3. 自治是连续谱,不是二分。 真落地我一般写成「workflow 骨架 + 局部 agentic 节点」:外层固定流程守住 SLA 和可审计,只在真正需要探索的那一步(比如「这个问题该查哪几个数据源、查几轮」)放开让模型决定,并且配工具白名单和 max_steps。这样成本方差可控,出问题也能定位到具体那一格。

4. Agent = Model + Harness。 截至 2026-08,业内比较统一的说法是 Agent 的能力一半在模型、一半在 harness(LangChain 2026-03 那句「If you're not the model, you're the harness」)。同一个模型换一套 harness——工具集与 schema、上下文组装与压缩、错误反馈格式、重试与终止、权限与人工确认——任务成功率能差一个数量级。这也是「Agent 不就是套壳」这个说法不成立的原因:难的工程量全在 harness 里。模型变强确实会让 harness 变薄(早期要手写的 planner、self-critique 现在很多可以删),但不会消失——权限、预算、可观测、可回滚这些约束不属于模型。

(如果被追问「那你项目算哪一格」,老实答,并说清为什么选那一格。见 Q3-02。)

攒够了去组卷页一键生成可打印的面试题单