上海联蔚数科 AI 工程实习生面经(Agent 八股)
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 自我介绍。
- 你现在用哪些 AI 工具比较多?
- 你用过哪些 Agent 开发框架?
- 你对 Agent 的理解是什么?
- 什么是 harness?
- Skills 和 MCP 的区别是什么?
- 你自己做过 Skills 吗?
- 如果 Skills 或 MCP 过多,你是怎么解决这个问题的?
- 你做过知识库吗?
- 你的 Coding Agent 是怎么做出来的?
- 你的 Coding Agent 都有哪些工具?
- 你的 Coding Agent 没有用框架,那你是怎么实现上下文压缩、记忆处理的?
- 你的多 Agent 是怎么做的?
- 你平时是怎么学习这些技术的?
- 反问:目前团队做什么业务?(答:做知识库或 Agent)
- 反问:如果我入职后会做些什么?(答:调研,做 Agent 相关)
《参考解析》
什么是 harness:Agent harness(也叫 agent runtime / 脚手架)指模型之外的那一整套运行时设施——它不产出智能,但决定智能能不能稳定落地。核心组成:① 主循环与终止条件(把模型输出解析成动作,执行,再把结果回灌,直到完成或触发上限);② 工具层(工具注册、参数校验、权限与沙箱、超时与重试);③ 上下文管理(系统提示、历史裁剪/压缩、文件与检索结果的按需注入);④ 状态与记忆(会话状态、工作区文件、长期记忆);⑤ 可观测与治理(轨迹记录、成本与步数上限、失败回放)。一句话概括:同一个模型换不同的 harness,任务成功率可以差很多,所以工程上的大部分收益来自 harness 而不是模型本身。
Skills 与 MCP 的区别:两者解决的不是同一层问题。MCP(Model Context Protocol)是连接协议,规定「模型/客户端怎么发现并调用外部能力」——server 暴露 tools / resources / prompts,客户端按协议握手、列清单、调用,解决的是「接得上」的问题,偏接口与传输层。Skills 更像打包好的作业指导书:一段说明(什么时候用、怎么做、有什么坑)+ 附带的脚本/模板/参考文件,模型按需读取并遵循,解决的是「做得好」的问题,本质是提示与流程的封装,通常不需要额外进程,走文件系统就能用。一个常见组合是:MCP 提供底层原子能力(查库、调接口、读文档),Skill 描述在什么场景下按什么步骤组合这些能力,以及验证和交付标准。
Skills / MCP 过多怎么办:思路是「不全部塞进上下文,按需加载」。① 建索引:只把每个能力的名字 + 一句话描述 + 触发条件放进上下文(渐进式披露),完整内容在执行时再读;② 路由:用一个检索/分类步骤按用户意图召回候选能力,缩小到 3~5 个再注入;③ 分层与去重:按领域归组(代码、数据、文档、发布),合并功能重叠的项,把高频组合固化成一个上层 Skill;④ 命名与描述治理:描述必须写清「什么时候用/不用」,这是路由准确率的关键;⑤ 限制并发与作用域:每个子任务只挂必要的能力,用子 Agent 隔离上下文;⑥ 用量数据驱动,长期没人用的能力下线。
不用框架怎么做 Coding Agent 与上下文压缩:Coding Agent 的最小实现就是「模型 + 工具 + 循环」:把工作区文件读写、grep/glob 检索、执行 shell、跑测试这些做成工具描述给模型,模型每轮输出一次工具调用,程序执行后把结果拼回消息列表,循环到模型给出最终答复或达到步数上限。上下文压缩的常用手段:① 工具结果截断(长输出只留头尾和匹配行,超长落盘给路径);② 分层摘要(把早期对话滚动总结成简短状态,保留决策与未完成事项,丢弃冗余输出);③ 结构化记忆(把任务状态、已改文件、待办写成外部文件,每轮按需读回,而不是一直挂在上下文里);④ 滑动窗口 + 关键信息置顶(系统提示、当前目标、最近若干轮完整保留);⑤ 按需检索历史(把旧轨迹存起来,需要时再检索)。监控 token 用量并在超阈值时主动触发压缩,比等到报错再截断可靠。
多 Agent 怎么做:先判断是否需要——多 Agent 的收益来自「上下文隔离」和「并行」,代价是通信与协调开销、以及错误放大。常见形态:① 主从(orchestrator + workers),主管拆解任务、分发给子 Agent、汇总结果,子 Agent 只拿自己那部分上下文;② 流水线(每个阶段一个角色,如检索 → 生成 → 校验);③ 对抗式(生成者 + 评审者,交叉验证)。工程要点是接口要结构化(子任务输入输出用 schema 约束,不要传自然语言长文)、状态放在共享存储而不是消息里、给每个子 Agent 明确边界与终止条件、汇总层必须做一致性校验(重复、冲突、遗漏),并限制重试与递归深度。如果任务本身是线性的、上下文也不大,单 Agent 加好工具通常更划算。
面试复盘:这场面试 25 分钟、几乎全是 Agent 概念题,实习与后端经历完全没问,面试官没开摄像头。原帖作者判断团队应该做 RAG / 知识库较多(反问时问过有没有做过知识库)。两点可直接借鉴:一是「自己动手做过」是这类岗位最有效的差异化——自研过 Coding Agent、自己写过 Skill,就有具体的实现细节可讲;二是被问「做过知识库吗」如果实际做过一定要说做过,反问阶段暴露信息差会很可惜。准备方向建议按「概念(harness/MCP/Skill/ReAct)→ 架构(单 Agent vs 多 Agent、记忆与压缩)→ 落地细节(工具设计、校验、评测)」三层梳理,每个概念都配一个自己做过的例子。