知识点思维导图
9 个知识节点
面试题(01) - 高频面试题:Agent
读完后,你应能完成以下任务:
- 绘制“面试题(01) - 高频面试题:Agent / 与进阶篇的分工”的关键对象与数据流,解释“准备深入追问时,请结合 53-57、63、75-76、82-83,把“Agent 能调工具”升级成“工具可控、上下文可管、状态可追踪、多 Agent 可交接”的回答。”,并用源码位置、日志或 Trace 标注证据。
- 为“面试题(01) - 高频面试题:Agent / 怎么用这一篇”设计正常与异常输入,验证“Agent 面试最大的误区是猛吹"自主智能"。”,输出首个偏差位置与回归测试结果。
- 实现“面试题(01) - 高频面试题:Agent / Q1:Agent 和普通 Chatbot 的区别是什么?”的最小代码或配置,检验“Agent 能决定调工具、看结果、再决定下一步,去完成任务。”,输出命令、结果与 Diff,并说明不适用边界。
一、与进阶篇的分工
本篇保留为 Agent 面试速记。准备深入追问时,请结合 53-57、63、75-76、82-83,把“Agent 能调工具”升级成“工具可控、上下文可管、状态可追踪、多 Agent 可交接”的回答。
二、怎么用这一篇
Agent 面试最大的误区是猛吹"自主智能"。面试官真正想听的是:你怎么让工具调用可控——权限、校验、确认、trace、停止条件。把这些讲透,比讲一百遍"智能体"都管用。
2.1 Q1:Agent 和普通 Chatbot 的区别是什么?
一句话答:Chatbot 只生成文本;Agent 能决定调工具、看结果、再决定下一步,去完成任务。
展开:Chatbot 输入一句输出一句,不碰外部系统。Agent 在模型外套了"决策-行动-观察"循环:模型判断要不要用工具、用哪个、传什么参数,后端执行后回填结果,模型再决定继续还是收尾。区别是"会不会行动",不是"智不智能"。
加分项:强调 Agent 价值在"可控地调用业务能力"而非"自主"。
2.2 Q2:Agent 和 Workflow 怎么选?
一句话答:步骤固定可预先编排用 Workflow;步骤依赖中间结果、需动态决策用 Agent。
展开:Workflow 把流程写死,先 A 再 B,可控、可预测、好排查。Agent 把"下一步做什么"交给模型,灵活但不可预测、难调试、有失控风险。生产里能用 Workflow 解决的就别上 Agent。
加分项:说出"能固定就别动态"这个取舍,比一味吹 Agent 强大更显成熟。
2.3 Q3:Function Calling 的完整流程是什么?
一句话答:后端把工具 schema 给模型,模型提出调用,后端校验权限/参数后执行,结果回填生成回答。
展开:1) 后端把工具定义发给模型;2) 模型返回想调的工具名和参数;3) 后端校验白名单→权限→参数→是否需确认;4) 全过了才执行真实函数;5) 结果回填生成回答;6) 前端展示 trace。模型只提议,执行永远在后端。
加分项:反复强调"模型只提议、后端才执行"这条边界。
2.4 Q4:ReAct 模式是什么?
一句话答:让模型按"Thought 想 → Action 做 → Observation 看结果"循环推进,直到能回答。
展开:ReAct = Reasoning + Acting。模型先输出思考(要查什么),再输出动作(调哪个工具),后端执行得到观察结果喂回模型,模型基于新信息再想下一步。多步任务靠这个循环逐步逼近答案,每步留痕便于排查。
加分项:能当场说出一轮 Thought/Action/Observation(跑 quiz.py --trace 照着记),比只说"边想边做"具体得多。
2.5 Q5:怎么防止 Agent 工具误调用/失控?
一句话答:白名单、参数校验、权限分级、写操作人工确认、最大步数上限、全程 trace 日志。
展开:六道闸——白名单(不能调没注册的工具)、参数 schema 校验、权限读写分级、写操作默认需确认、设最大步数和停止条件防死循环烧 token、每步记 trace。这些全在后端硬做,不靠 prompt 约束。
加分项:特别点出"最大步数 + 停止条件",很多人答工具调用会漏掉防死循环。
2.6 Q6:Agent 记忆怎么做?short-term 和 long-term 分别指什么?
一句话答:short-term 是当前会话的对话历史(放上下文);long-term 是跨会话的持久知识(存外部,用时检索)。
展开:short-term 是本轮 session 的 messages,直接拼进上下文,超长就截断或摘要。long-term 是用户偏好、历史结论等需跨会话记住的,存数据库/向量库,需要时检索回来拼进 prompt。本质上 long-term 记忆就是一个"针对用户的 RAG"。
加分项:把 long-term 记忆点破成"对用户画像的 RAG",体现你能把概念串起来。
2.7 Q7:多工具 Agent 怎么决定调哪个工具?
一句话答:把所有工具的名称和描述给模型,模型按用户意图选;后端再校验选得对不对。
展开:工具注册成一张表(名称+描述+参数 schema),description 写清适用场景,模型靠它路由。工具多了要注意描述别重叠(否则模型选错)、按场景分组、必要时先用分类步骤缩小范围。选择权在模型,执行前的校验权在后端。
加分项:提"工具描述重叠会导致选错"这个实际坑。
2.8 Q8:什么情况下不该用 Agent?
一句话答:流程固定、对延迟/成本敏感、要强确定性的场景,用 Workflow 或直接调接口更好。
展开:Agent 多轮调模型,慢、贵、不稳定。任务步骤明确(比如"查订单→发通知"固定两步),写死的 Workflow 又快又稳又好排查。Agent 的多步自主决策只在"下一步真要看上一步结果"时才划算。
加分项:敢说"大多数业务场景不需要 Agent",反而显得判断务实。
2.9 Q9:前端怎么展示 Agent 的执行过程?
一句话答:把后端返回的 toolTrace 渲染成步骤列表——计划、检索、工具调用、需确认、最终回答,分状态展示。
展开:Agent 不能只给最终答案,过程要可见。前端按 trace 类型渲染:plan(规划中)、rag(检索中)、tool(调用工具 X)、confirm(等确认)、final(生成回答),配合 SSE 流式逐步推送,用户能看到"它正在查订单"而不是干等。
加分项:从前端体验角度答工具调用,正是前端转 AI 的差异化优势。
2.10 Q10:模型把工具参数传错了怎么办?
一句话答:后端 schema 校验拦下,把错误信息回填给模型让它改,或字段名做归一化兜底。
展开:模型可能漏必填参数、拼错字段名(customerId vs customer_id)、给错类型。后端校验失败时不要直接报错给用户,而是把"缺少参数 X / 类型应为 Y"回填给模型让它重新生成。同时 schema 字段名和代码严格对齐,必要时加归一化。
加分项:提"把校验错误回填让模型自我修正",这是让 Agent 鲁棒的关键技巧。
三、动手实践:50 高频面试题 Agent —— 自测 quiz
Agent 方向高频真题库 + 命令行自测工具,外带一个 ReAct trace 演示。
3.1 运行
python3 quiz.py # 随机抽 5 题,回车看答案
python3 quiz.py --all # 通读全部题目和答案
python3 quiz.py -n 3 # 抽 3 题
python3 quiz.py --trace # 打印一个 ReAct 循环示例,看 Agent 怎么想
零依赖,纯标准库。
3.2 预期输出(--trace 模式)
ReAct 循环示例:任务 = 查客户 C1001 订单并总结风险
[Thought] 用户要查 C1001 的订单并总结风险。我得先拿到订单数据...
[Action] lookup_orders(customer_id='C1001')
[Observation] 返回 2 笔订单:O-0518 已发货(正常)、O-0520 退款中(高风险)。
[Thought] 拿到数据了。有 1 笔高风险退款,足够总结...
[Action] finish
[Answer] 客户 C1001 近期 2 笔订单,其中 O-0520 处于退款中、风险较高,建议优先跟进。
--trace 把"边想边做"从抽象概念变成你能照着说的具体步骤——面试被问 ReAct 时,照这个结构讲就行。
3.3 题库覆盖
Agent vs Chatbot vs Workflow、Function Calling 流程、ReAct、工具误调用防护、记忆、多工具路由、什么时候不该用 Agent、前端展示、参数纠错。共 10 题,答案与文章 50 正文一致。
四、总结
- 怎么用这一篇:Agent 面试最大的误区是猛吹"自主智能"。
- Q1:Agent 和普通 Chatbot 的区别是什么?:Agent 能决定调工具、看结果、再决定下一步,去完成任务。
- Q2:Agent 和 Workflow 怎么选?:Agent 把"下一步做什么"交给模型,灵活但不可预测、难调试、有失控风险。
- Q3:Function Calling 的完整流程是什么?:后端校验白名单→权限→参数→是否需确认;
- Q4:ReAct 模式是什么?:模型先输出思考(要查什么),再输出动作(调哪个工具),后端执行得到观察结果喂回模型,模型基于新信息再想下一步。
- Q5:怎么防止 Agent 工具误调用/失控?:展开:六道闸——白名单(不能调没注册的工具)、参数 schema 校验、权限读写分级、写操作默认需确认、设最大步数和停止条件防死循环烧 token、每步记 trace。
4.1 实现源码与运行边界
quiz.py
学完自测
选择所有正确答案;提交后逐项核对判断依据。