考察点
这道题出自腾讯大模型岗面试,两问都有明确指向。第一问考的是你对 LLM 应用编排模式的本质理解——Anthropic 那篇 Building Effective Agents 把这对概念讲清楚后,基本是各厂标配考点;第二问考技术视野,MCP 和 A2A 是 2025 年以来 Agent 生态最重要的两个协议,简历上写了 Agent 就默认你该了解。追问常往「你项目里用的哪种」「两个协议会不会冲突」走。
参考答案
Workflow 与 Agent 的本质区别
一句话版本:Workflow 的路径是人预定义的,LLM 只负责其中的局部决策;Agent 的路径是模型自己动态决定的,人只给目标和工具。
展开讲三个维度的差异:
- 控制权归属。Workflow 里流程图是开发者画的:第一步检索、第二步让 LLM 改写、第三步再检索——分支条件、循环次数都是代码写死的,LLM 是被调用的组件。Agent 里开发者只提供工具集和目标描述,下一步做什么由模型在每轮循环里自己决策,跑几步、调几次工具事前不知道。
- 确定性与灵活性。Workflow 行为可预测、可测试、可调试,badcase 能精确定位到某个节点;Agent 能处理事先枚举不了的开放任务,但行为有随机性,同样输入可能走不同路径,调试和评测都难一个量级。
- 成本结构。Workflow 的调用次数和延迟基本固定,成本可预估;Agent 的 token 消耗随任务复杂度浮动,一个疑难任务可能跑十几轮,成本是 Workflow 的数倍到几十倍。
实际系统的正确姿势是光谱而不是二选一:确定性高的主干用 Workflow,其中开放的节点(意图理解、内容生成、工具选择)嵌 LLM 决策;只有真正开放性强的任务才上完全自主的 Agent。Anthropic 在那篇 Agent 构建指南里的观点我很认同:先写最简单的方案,能 Workflow 不 Agent,复杂度要换来明确的能力提升才值得加。
选型时我用三个问题判断:任务路径能枚举吗?能,Workflow。中间步骤需要理解开放语义吗?需要,该节点用 LLM。任务整体的下一步依赖上一步结果且无法预知吗?是,才考虑 Agent 循环。
MCP:解决「模型怎么接工具」
MCP(Model Context Protocol,Anthropic 2024 年底开源)标准化的是Agent 宿主和工具/数据源之间的接口。之前每个工具都要为每个 Agent 框架手写适配:schema 怎么写、怎么调用、结果怎么返回,M×N 的重复劳动。MCP 把工具方实现为 MCP server(暴露 tools、resources、prompts 三类能力),Agent 应用作为 MCP client 按统一协议对接,一次实现处处可用。2025 年以来主流模型厂商和工具生态基本都接入了,等于 Agent 世界有了「USB 接口」。
要注意的点:MCP 解决的是连接标准化,不解决工程可靠性——参数校验、权限控制、超时重试、危险操作确认,这些在 MCP 架构下照样要做,只是收口到了 client 侧或 gateway 层。
A2A:解决「Agent 和 Agent 怎么协作」
A2A(Agent2Agent,Google 2025 年提出)标准化的是另一个方向:多个独立 Agent 之间的通信。场景是企业里已有多个各自成型的 Agent——客服 Agent、数据分析 Agent、运维 Agent,它们需要互相委托任务。A2A 定义了 Agent 怎么暴露自己的能力名片(Agent Card,描述会干什么、怎么调用)、怎么发起任务、异步任务的状态流转(长任务跑几个小时,需要提交-轮询-回调的模式)、以及结果怎么回传。
两者的关系:互补不冲突
这是容易被追问的点,我的理解是:
- MCP 是垂直的:一个 Agent 向下连接工具和数据的协议。
- A2A 是水平的:Agent 与 Agent 之间对等协作的协议。
一个典型的多 Agent 系统里两者同时存在:主 Agent 通过 A2A 把「查上季度销售数据」委托给数据 Agent,数据 Agent 内部再通过 MCP 调数据库工具完成任务。边界也清晰:工具没状态、调用即返回,用 MCP;对方是自主实体、任务是长周期异步的,用 A2A。
工程上我对多 Agent 协作保持谨慎:协议降低了对接成本,但跨 Agent 的调试、错误传播、成本归因都比单 Agent 难得多,协作链路越深,定位一个 badcase 要翻的日志越多。能在一个 Agent 里挂工具解决的,不拆成两个 Agent 对话。
可能的追问
- 你项目里 Workflow 和 Agent 怎么混用的? 答:举自己的真实结构,比如「主干是状态机式的 Workflow,意图识别和内容生成节点是 LLM,只有排障诊断这类开放任务进了 Agent 子循环」——关键是讲出每个选择背后的确定性判断。
- MCP 有什么安全风险? 答:server 返回的内容可能携带 prompt injection(恶意工具描述或返回数据诱导模型);对策是工具白名单、server 来源可信化、返回内容当数据不当指令,危险工具加人工确认。
- 多 Agent 相比单 Agent 加更多工具,优势在哪? 答:上下文隔离(每个 Agent 窗口只装自己领域的上下文)、独立迭代(团队边界)、专业 prompt 和工具的聚焦;代价是编排和调试复杂度,所以要权衡。