路线图

面试 · 对比辨析型

星辉 2026-07-02 阅读 3 min 591 字 路线图
面试 · 对比辨析型 封面

考察目标:说清楚边界和取舍,避免概念混淆 约 10 题,覆盖 AI Agent 工程核心对比 说明:每题分「题干」(标题)与「参考答案」两段。


Q1:RAG vs Agent:知识获取 vs 任务执行;何时只需 RAG?何时必须 Agentic RAG?#

参考答案

RAGAgent
本质知识获取(检索 + 生成)任务执行(决策 + 工具调用)
决策一次性(检索完就生成)多步(思考→行动→观察→再思考)
工具通常无必有
状态无任务状态有任务状态、会话状态

何时只需 RAG

  • 知识问答("公司请假政策是什么")
  • 文档总结("总结这份 PDF")
  • 单跳检索(答案在一个文档里)

何时必须 Agentic RAG

  • 多跳问题("对比 A 和 B 公司 Q3 营收" → 多次检索)
  • 需要决策("信息够了吗?要不要再查")
  • 跨源整合(RAG + SQL + Web)
  • 任务导向("帮我订机票" → 不只查,还要执行)

Q2:Workflow vs Autonomous Agent:可控 vs 灵活;企业为何先做 workflow?全自主的风险?#

参考答案

WorkflowAutonomous Agent
流程固定步骤模型自主决策
可控性
灵活性
可预测
可审计

企业为何先做 workflow

  • 可预测、可审计(合规要求)
  • 失败可定位(每步明确)
  • 可灰度(按比例切流量)
  • 风险可控(每步有边界)

全自主的风险

  • 跑飞了不知道干啥去了
  • 出 bug 难定位(决策路径不可预测)
  • 越权风险(自主决策可能调不该调的工具)
  • 成本不可控(无脑烧 token)

实战策略:先 workflow 把可控场景做扎实,再逐步引入 Agent 自主决策到"受控区"(权限+预算+审批)。


Q3:LangChain vs LangGraph:组件 vs 状态图编排;复杂 Agent 为何需要 graph/state machine?#

参考答案

LangChainLangGraph
抽象组件链(Chain)状态图(Graph)
流程线性 / 简单分支复杂分支、循环、并行
状态强(stateful)
Checkpoint内置
适用简单 LLM 应用复杂 Agent 工作流

复杂 Agent 为何需要 graph/state machine

  • Agent 流程不是线性的(有分支、循环、并行)
  • 需要状态持久化(断点恢复)
  • 需要 HITL(人工审批插入点)
  • 需要 multi-agent 协作(多个节点)

LangChain 的 Chain 抽象无法表达这些复杂度,LangGraph 的 Graph + State 才能。


Q4:Claude Code vs Codex:coding agent 为何需要文件编辑/shell/测试/git diff?两者的托管形态与扩展机制各解决什么?#

参考答案

Coding Agent 必备能力

  • 文件编辑(read/write/edit)— 改代码
  • Shell 执行 — 跑测试、装依赖、git 操作
  • 测试循环 — 客观验证改对了
  • Git diff — 让人 review 改了什么

没有这些能力的"coding agent"只是聊天机器人,不能真的改代码。

先破一个常见误区:git worktree 隔离不是 Codex 独有——Claude Code 也原生支持 worktree,两边都能"多任务/多 Agent 并行不冲突"。真正的差异在托管形态扩展机制

维度Claude CodeCodex
worktree 隔离支持支持(不是差异点)
托管形态本地为主 + 远程混合更偏 cloud / remote execution environment(云端容器里跑,跑飞了不碰本地)
扩展机制hooks / subagents / skills(本地强控制、可编程拦截)更偏云端沙箱化的托管执行

Claude Code 扩展机制解决什么

  • Hooks:PreToolUse/PostToolUse 拦截,用代码强制规则(如阻止删生产代码)
  • Subagents:context 隔离,主上下文不被子任务污染
  • Skills:技能扩展,第三方能力(如 code-review 技能)

Codex 云端环境解决什么

  • 云端执行环境:任务跑在托管容器里,隔离性强、可规模化并行、跑飞了不影响本地机器

一句话:两者都能做隔离,取舍在"本地可编程控制(hooks/subagents/skills) vs 云端托管执行"这条主轴上。


Q5:MCP vs Function Calling:机制 vs 协议;FC 为何不足以解决企业级工具生态?#

参考答案

Function CallingMCP
本质模型能力(决策调用)协议(标准化通信)
范围单次调用工具发现、调用、资源暴露、双向原语
标准厂商私有开放标准(Linux Foundation / AAIF 治理)
跨平台否(OpenAI/Anthropic 格式不同)

FC 为何不足

  • 每个平台的 schema 格式不同,同一工具要写多遍适配
  • 没有"工具发现"机制(Agent 不知道有哪些工具可用)
  • 没有"资源"概念(无法暴露只读数据源)
  • 没有反向原语(Server 无法回过头请求宿主采样/追问用户)
  • 工具生态被平台割裂

MCP 在 FC 之上加了:标准化 schema、工具发现、Resources/Prompts、Client 端原语(Sampling/Roots/Elicitation,见 1-概念 Q5)、跨平台兼容。


Q6:Skills vs Tools vs Plugins:知识包 vs 可执行能力 vs 打包分发;边界怎么划?#

参考答案

ToolPluginSkill
本质一个动作一组相关工具打包完整任务方案
形态函数包/模块文件包
内容代码代码 + 配置知识 + 工具 + 流程模板
例子get_weather(city)"Jira 工具包"(5 个 tool)"代码 review"技能

边界判断口诀

  • Tool 是"一个动作"
  • Plugin 是"一组相关动作打包"
  • Skill 是"做某类任务的完整方案"(含知识/工具/流程)

举例

  • read_file(path) — Tool
  • "文件操作包"(read/write/list/delete)— Plugin
  • "代码 review"技能(含 review_checklist 知识 + 文件读写工具 + review 流程模板)— Skill

Q7:Agent Trace vs 普通日志:决策链 vs 系统事件;粒度过粗/过细各有什么问题?#

参考答案

普通日志Agent Trace
内容系统事件决策链(思考+行动+结果)
粒度request 级step 级、call 级
用途系统排查Agent 决策排查、转 eval case

粒度过粗(只记"任务失败"):

  • 无法定位失败原因(哪一步错了?模型还是工具?)
  • 无法转 eval case(不知道 input/output 对应关系)
  • 无法做 trajectory eval

粒度过细(记每个 HTTP 包、每个函数调用):

  • token 爆炸、存储成本高
  • 信噪比低,关键信息被淹没
  • 隐私风险(可能记录敏感数据)

实战策略:按 Run → Step → LLM·Tool Call 三层结构,关键节点必记,细节按需采样。


Q8:Guardrail vs Permission:行为风险 vs 资源访问;为何只做一个都不够?#

参考答案

GuardrailPermission
防什么行为风险(有害内容、违规主题)资源访问(越权、误操作)
时机输入/输出阶段工具调用阶段
维度内容合规操作权限
例子拦截 prompt injection阻止删除生产库

为何只做一个都不够

  • 只做 Guardrail:能拦有害内容,但拦不住"权限内的恶意操作"(用户有删文件权限,被注入后真删了)
  • 只做 Permission:能拦越权操作,但拦不住"权限内的不当内容"(用户有发邮件权限,被注入发了有害邮件)

正确做法:两者结合——Guardrail 管"内容对不对",Permission 管"操作能不能做",外加审计兜底。


★ Q9:MCP vs A2A:agent↔工具 vs agent↔agent;为什么两者都需要?#

参考答案

MCPA2A
通信方agent ↔ 工具/上下文agent ↔ agent
解决工具调用标准化(垂直)agent 协作标准化(水平)
类比人 ↔ 工具人 ↔ 人
提出方AnthropicGoogle(现由 Linux Foundation 治理)
状态(2026-07)事实标准,属 AAIFv1.0 stable、150+ 生产组织、签名 Agent Card + AP2 支付扩展,独立 LF 项目

两者同处 Linux Foundation 治理下(MCP 属其旗下 AAIF、A2A 为独立 LF 项目),构成"MCP 接工具(垂直)+ A2A 接 agent(水平)"两层栈,是企业 Agent 部署的默认架构。别再把 A2A 描述成"私有 / 待补齐"。

为什么都需要

  • 没有 MCP:工具生态被平台割裂,每个平台工具不能复用
  • 没有 A2A:多 Agent 协作只能靠私有协议,Agent 间无法跨系统协作、无法标准化能力发现与支付授权

判断口诀:调用的是"工具"(无自主决策)用 MCP;调用的是"另一个 Agent"(有自主决策、自己的上下文)用 A2A。

举例

  • Agent 调 search_web() 工具 — MCP
  • Agent 委托另一个 "code-reviewer" Agent 做 review — A2A

★ Q10:ReAct vs Plan-and-Execute vs Reflexion vs Tree-of-Thought:四种编排范式机制、适用、取舍?#

参考答案

这是资深必考的"编排范式谱系"。核心区别在于规划时机(边走边想 vs 先想好)与学习/搜索方式(是否跨尝试反思、是否单步内多路径搜索)。

范式机制适用主要取舍
ReAct交错 Reasoning + Acting:每步"思考→行动→观察"再决定下一步,无全局计划动态、需实时反馈的工具型任务(问答+检索、客服)灵活、对意外自适应;但易跑偏/循环、步数不可预测、无全局视野
Plan-and-Execute先一次性规划全部步骤,再逐步执行(可在偏离时重规划)步骤较确定、可预先分解的任务(报表流水线、批处理)有全局视野、规划只调一次 LLM 省钱;但对中途意外适应差、计划错则满盘错
Reflexion执行后自我反思失败原因,把教训写入记忆,下次重试改进(verbal self-critique / 语言化强化学习)可多次尝试、有明确成败信号的任务(coding、可判定 QA)显著提升成功率;但多轮反思增加成本/延迟,依赖"反思信号"可靠
Tree-of-Thought把推理展开成:多分支探索 + 评估打分 + 回溯选优需搜索/多路径的推理难题(规划、谜题、数学)质量高;但 token 爆炸、需评估函数、延迟高

一条取舍主线:反应式(ReAct,无计划)→ 有计划弱适应(Plan-and-Execute)→ 跨尝试学习(Reflexion)→ 单步内搜索(ToT)。越往后能力越强、也越贵。

追问·为什么不永远选最强的 ToT/Reflexion:因为成本/延迟随之爆炸——多分支或多轮重试会把单任务 token 翻几倍(呼应 3-原理 Q10 的 token 硬约束)。工程上按"任务是否可预先分解、是否有可判定成败信号、错误代价多大"来选,且常组合使用:外层 Plan-and-Execute 定骨架、子步用 ReAct 执行、失败用 Reflexion 重试。

追问·如何验证选型有效:同一批任务用不同范式跑,比较 pass@1、平均步数、平均成本/延迟、循环率;而不是只看"感觉更聪明"。