【AI Agent面试题】Agent 的自主性分级,怎么理解?
来源:互联网
时间:2026-07-17 07:26:58
这事儿其实挺有意思的——面试里一句“你这个系统算不算 Agent”,常常把气氛搞僵。有人觉得,调一次 API 的脚本就算 Agent,也有人坚持,必须能自己定目标的才算。实际上,这两端之间不是简单的“是或否”,而是一条连续的放权光谱。理解 Agent 的关键,就在于理解你到底把多少决策权交给了模型——从“每一步都写死”到“连目标都让它自己定”,逐级递进。下面这张分级表,就把这条光谱讲透了。

核心视角:Agent 是“把决策权交给模型”的程度
传统程序里,控制流由开发者用 if/else、循环、状态机写死;模型(如果有)不过是流水线上一个被调用的函数。而 Agent 的本质,是让大模型来接管一部分原本由代码把控的决策。交出去的决策越多、越关键,系统就越“自主”。
那么,这条放权光谱具体能拆成几级呢?按“模型能决定什么”来划分,可以清晰分成四级:
- :模型只填内容,流程一步都不能改;
固定链路
- :让模型决定“下一步走哪条路”;
模型选分支
- :让模型决定“调哪个工具、传什么参数、要不要循环”;
模型定工具
- :连“要做什么、拆成哪些子任务”都交给模型。
模型自定目标
每往上一级,你收获的是灵活性和处理开放问题的能力,付出的是可预测性、可测试性和安全边界。这就是贯穿全文的主线——
自主性 ↔ 可控性的权衡
逐级拆解:四级放权分别放的是什么
L1 固定链路(Fixed Chain)
L2 模型选分支(Routing)
L3 模型定工具(Tool-Calling Loop)
L4 模型自定目标(Autonomous / Planner)
# 同一个“查天气并提醒”任务,在不同级别下谁做主
L1 固定链路: get_weather(city) -> format(template) -> reply # 步骤写死
L2 选分支: if model.route()=="天气": weather_flow() else ... # 模型选路
L3 定工具: while not done: tool = model.decide(tools, history) # 模型定工具与循环
L4 自定目标: goal="照顾好我的出行"; model.plan_and_execute(goal) # 模型自定子目标
一张表看懂:自主性越高,可控性越低
把四级并排对比,那条“自主性 ↔ 可控性”的权衡就一目了然:
| 级别 | 谁做决策 | 模型能决定什么 | 典型形态 | 可控性 / 风险 |
|---|---|---|---|---|
| L1 固定链路 | 开发者 | 只填内容,不改流程 | 定长流水线、经典 RAG | 最可控,几乎可完全测试 |
| L2 模型选分支 | 开发者定路径,模型选 | 在封闭分支里选一条 | 意图路由、分类分发 | 较可控,分支可穷举 |
| L3 模型定工具 | 模型(在工具集内) | 调哪个工具、传什么参、是否循环、何时停 | ReAct、函数调用 Agent | 中等,需管控工具权限与停机 |
| L4 自定目标 | 模型主导 | 拆解子目标、规划、自评、衍生任务 | AutoGPT、自主多智能体 | 最难控,易跑偏、绕圈、失控 |
规律很清晰:级别越往上,能处理的问题越开放、越灵活,但可预测性、可测试性和安全边界越弱。L1 你能写单元测试断言每一步;到了 L4,同一个输入两次运行都可能走出完全不同的轨迹。
面试与实战怎么用这个框架
这套分级不是学术分类,而是工程选型的标尺。核心原则是:
用能解决问题的最低自主级别
- :任务路径可枚举 → L1/L2;需要动态调工具但目标明确 → L3;目标本身模糊、需要探索式拆解 → 才考虑 L4。
先问需求开放度
- :级别越高,越要补上工具白名单、参数校验、最大步数 / 预算上限、人在回路(human-in-the-loop)审批、可回滚设计。
为自主性配护栏
- :多数生产系统稳定跑在 L2–L3。盲目上 L4 换来的往往是难复现的 bug 和失控的成本。
别为“更 AI”而升级
一句话总结
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名