网易 Agent 开发一面:ReAct 范式、工具调用与 Agent 效果评测
- 轮次
- 一面
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- 做个自我介绍,重点介绍 Agent 相关项目经历。
- 你的 Agent 项目整体架构是什么?核心模块有哪些?
- 项目中用了哪些框架(如 LangChain、Coze)?为什么选这个框架?优缺点是什么?
- 项目最大的技术挑战是什么?怎么解决的?有什么落地效果?
- 你提到的 Coze,拖拽式编排与 Agent 原生模式有何区别?你如何设计节点?
- 解释 Agent 的核心范式(ReAct、Plan-and-Execute、反应式等),它们的区别与适用场景。
- 什么是 Agentic Loop(感知—规划—行动—记忆闭环)?各环节的作用是什么?
- Agent 如何防止死循环?有哪些终止条件设计?
- 上下文管理与记忆机制怎么做?Working、Short-Term、Long-Term 记忆如何分层?
- 如何解决 Agent 的幻觉问题?有哪些校验与反思机制?
- 什么是 MCP?它和 Function Calling 的区别是什么?各自优缺点?
- Tool 调用流程是什么?如何设计 Tool 的 description 以提升调用准确率?
- 工具调用失败如何处理?重试、降级、参数修正分别怎么设计?
- RAG 的核心流程是什么?Chunking 策略、Query Rewrite、Rerank 怎么做?
- RAG 检索内容与模型自身知识冲突时,如何处理?
- 工具过多导致上下文过长,怎么优化?
- 设计 Agent 的 System Prompt 有哪些核心原则?需要包含哪些关键信息?
- 如何用 Few-shot、CoT 提升输出稳定性?怎么避免格式混乱?
- Prompt 如何做鲁棒性优化?反例提示、Schema 校验怎么落地?
- Multi-Agent 适用什么场景?为什么拆分多个 Agent 而不是用单 Agent?
- 多 Agent 如何分工(角色设计)?协作流程与通信机制是什么?
- 如何避免多 Agent 的幻觉放大?交叉验证与状态同步怎么做?
- 设计一个全自动化 AI 漫剧创作 Agent:整体架构、核心节点、关键流程是什么?
- 漫剧 Agent 如何保证人物设定、画风前后一致?用什么技术方案?
- 设计一个「可进化」的游戏 BOSS 战 Agent,能学习玩家打法并动态调整策略,架构怎么设计?
- 如何设计实验验证 Agent 效果(如漫剧质量、游戏 AI 体验),而不是单纯提升难度?
- 若要快速上线 Agent MVP,保留哪些核心功能?如何做功能取舍?
- 用过哪些 AI Coding 工具(Cursor、Codex、Claude)?解决过哪些实际问题?
- 开发中如何用 AI 提升效率?如何避免 AI 生成的代码污染主分支?
- Agent 部署时遇到哪些问题?性能优化、并发控制怎么做?
- 当用户反馈 Agent「很蠢」时,如何定位问题(可解释性)?
《参考解析》
Agent 范式:先分清楚「谁来定计划」和「计划有多长」
ReAct 是「想一步、做一步」的交错循环——模型输出一段推理,调一次工具,看结果再推理,直到给出答案;它的优势是能根据工具返回实时纠偏,代价是步数多、token 消耗大、长任务容易跑偏。Plan-and-Execute 则先让模型产出一份完整计划,再逐步执行(执行中允许重规划),适合步骤可预判、每步耗时长的任务,好处是全局视野和可并发,坏处是计划一旦基于错误假设,后面全错。反应式(纯路由/规则驱动)最轻,适合意图明确、分支固定的场景。选型标准其实就两条:任务的不确定性有多高、每一步是否依赖上一步的真实返回。Agentic Loop 的四个环节里,工程上真正难的是「记忆」——感知和行动是接口问题,规划是模型能力问题,只有记忆决定了它能不能跨轮保持目标一致。
防死循环与终止条件
不能只靠「最大轮数」这一道闸,那是兜底不是设计。可用的判据有几层:状态无进展(连续 N 轮的工具入参与返回哈希相同、或答案与上一轮语义重复)、预算耗尽(token / 时间 / 工具调用次数任一超限)、任务判定(Checker 或规则校验认为目标已达成、或明确判定不可达而提前退出)、以及重复动作熔断(同一工具同一参数连续调用直接拦下并提示换思路)。实践中把这几个信号都上报,让上层决定是压缩上下文重试、换策略(Replan)还是返回部分结果加一句说明——比直接抛「超出最大步数」的用户体验好得多。
工具调用:MCP、description 与失败处理
Function Calling 是模型厂商在推理层给的「按 schema 输出结构化调用」的能力,本质还是把工具定义塞进 prompt、把调用意图解析出来;MCP 则是把「工具、资源、提示模板」抽成一套标准化协议和进程边界,客户端与服务端解耦,换模型、换工具都不用改胶水代码——好处是复用与治理,代价是多一层进程/传输开销、调试链路变长、版本兼容要自己扛。description 写得好不好直接决定调用准确率:用「什么时候用它」而不是「它是什么」开头,参数含义、取值约束、返回结构、失败语义都写全,容易混淆的工具之间写清互斥关系(「查实时库存用 A,查历史库存用 B」),必要时给一两个调用示例,别把实现细节写进去。调用失败要分类型处理:参数格式错 → 按 schema 校验后让模型修正重试;业务错(查无此单)→ 把错误信息当观察结果回灌,让它换工具或换参数;超时 / 限流 → 指数退避重试、幂等键去重;依赖服务整体挂 → 降级到只读路径或返回「暂不可用 + 已调用步骤」,绝不能静默吞掉当成功。工具数量膨胀时,先做能力收敛(合并语义重叠的工具),再上分层检索:按用户意图召回 top-k 工具定义,或把工具按域分组、只暴露当前域,配合「工具目录 + 按需查询详情」的两段式调用。
记忆分层与上下文治理
Working memory 放当前这一轮循环的中间状态(工具原始返回、草稿);Short-Term 是本次会话的消息历史,要做滚动摘要 + 保留最近若干轮原文;Long-Term 是跨会话沉淀的事实、偏好、任务结论,落到库里按用户/项目维度检索,写入要过一遍「值不值得记」的判定,否则噪声会反过来污染检索。工程上比「分几层」更关键的是压缩策略:大结果不要原样塞回上下文(落盘只留引用与摘要),历史用带角色和时间的结构化摘要替换原文,超限时按「目标—约束—已完成动作—待办」重新生成状态块,而不是简单截断最早的几条。
幻觉抑制与效果评测
校验要在两个位置做:生成前给足依据(检索到的原文、schema、示例),生成后做机器可验的检查——结构化输出过 schema,涉及数字/枚举/引用的做规则比对,关键结论要求附出处并在引用不存在时驳回重生成;再叠一层自反思(让模型对着原始材料逐条核验自己的答案,只允许删改不允许新增)。评测是一整套:先建带标注的小规模金标集把「模型能不能做对」跑清楚,再用 LLM Judge 加人工抽检扩到几百条看稳定性,指标上要分开看成功率、正确性、步数/延迟、单次任务成本、以及失败模式分布;A/B 对照要固定其他变量、跑够样本量,别拿单次体验下结论。像漫剧质量、游戏 AI 体验这类主观目标,得先把「体验好」拆成可观测代理指标(人物一致性分数、镜头返工率、玩家胜率曲线与留存),否则实验设计出来一定只能测难度。
两道系统设计题:AI 漫剧 Agent 与可进化 BOSS Agent
漫剧 Agent 的骨架是「剧本 → 角色/场景设定卡 → 分镜 → 出图/出视频 → 剪辑合成 → 质检」的流水线,每一站都要落结构化产物,因为下游一致性靠的就是上游的显式约束而不是模型的记性。人物与画风一致性有三条路可叠:角色卡(外貌描述、发型服装、配色)作为前缀固定;以首帧/定妆图做参考图 + 角色 LoRA 保证跨镜头同一张脸;再叠一层自动质检——用人脸/特征相似度打分,低于阈值就重出,而不是只靠提示词祈祷。BOSS Agent 则是「离线学、在线用」:离线用玩家历史对局做行为聚类和模仿学习,建立「玩家风格 → 应对策略」的映射表;在线时用 bandit 或轻量策略网络根据当前局面选技能组合,并把结果回流更新;需要设难度护栏(保证可通关、避免瞬秒)和低延迟预算(决策必须在几十毫秒内出,复杂推理放离线),同时避免奖励作弊(只堆血量、只加攻击)。
Prompt 工程与上线取舍
System Prompt 该有的只有几类信息:角色与目标、可用工具与调用约束、输出格式与边界规则、安全与拒答口径、以及少量最关键的示例——写得越长越容易互相冲突,把可枚举的规则交给代码校验比塞进 prompt 可靠。Few-shot 用来锚定格式,CoT 用来稳定推理路径,但结构化输出必须靠 schema 强约束 + 失败重试,不能只靠「请输出 JSON」这句话。快速上线 MVP 时,砍的应该是范围而不是可靠性:保留一条端到端可用的主链路(一个核心场景、少量高价值工具、可观测的日志与失败回放),砍掉多 Agent 协作、自动重规划、自建评测平台这类「有了更好」的部分,用一个场景跑出数据再横向扩。AI Coding 提效的前提是分支隔离与人的验收——小步提交、feature 分支、CI 门禁,改完先读 diff 再看测试覆盖,别让生成的代码直接进主干。用户说「很蠢」时,定位顺序应该是:复现并留存 trace → 判断是理解错(意图识别/prompt)、查不到(检索召回)、做不到(工具/权限)、还是说不清(输出组织),四类问题的修法完全不同,先看数据再改 prompt,别凭感觉调。