2026 年 11 月 10 日线上面试,岗位是前端开发工程师(Agent 应用方向,初中级),约 28 分钟。结果未当场告知。以下是根据录音整理的提问、现场反馈和事后复盘;“下次怎么讲”是复盘后的表达,不代表现场原话。
1. 对方透露的信息
面试官介绍,他们在做 ToB 产品 Evose,让企业接入 AI、搭建工作流。平台提供 Agent、Workflow、Chat Flow、知识库、工具和 Skill,用来组配和解决企业实际问题。如果入职,主要参与这个 AI 产品的开发。
公司对 AI 工具的使用比较开放,面试官提到可以报销 Codex 等工具的订阅和额度。
面试官的核心反馈是:用 AI 没问题,但必须把基础和原理搞清楚,才能指挥它。要理解 LLM、Skill、MCP、harness 如何工作,知道 AI 写了什么,并且能自己做决策。
2. 问了什么(按现场顺序)
- 自我介绍,大约 2 到 3 分钟。
- 许昌职业技术学院管理系统:项目做什么,负责哪些模块。
- 它和“群”有什么关系?解决什么问题,有哪些功能。
- 数据源是怎么来的。
- 从做过的项目里挑一个最能代表真实水平的,讲遇到的问题、解决办法和心得。
- 借助 AI 开发功能时,怎么搭建、打理项目的 harness,让 AI 更快实现目标。
- 项目里的
AGENTS.md有什么作用。 - 现在做 AI 开发常用什么工具;有没有用过 Claude Code。
- 用 Codex 时,它怎么知道要用某个 Skill,上下文是怎么载入的。
- 有没有自己接过 LLM,在页面上做简单的对话和模型回复。
- 前端对接模型时怎么发请求、后端返回什么、怎么渲染;有没有用 SSE。
- Vue 和 React 最大的不同;
useState是做什么的、为什么需要;Vue 的双向绑定和v-model。 - 反问:会接触什么业务、AI 工具怎么支持、后续学习建议。
3. 现场回答与复盘
开场
现场自我介绍偏短,2 到 3 分钟几乎只讲了实习做的专业群和低代码表单,社团平台和校园 RAG 是后来被追问才讲到的。专业群讲成了能走完选专业、审核、出培养方案,但没说清它尚未交付;国际化只说接触过,没说已经搁置。
下次开场可以先讲社团平台的权限和复杂交互,再讲校园 RAG 的知识库问答和来源展示,最后补充 ToB 低代码和复杂表单。项目状态要主动说明:专业群未交付,国际化搁置,AI 字段已提交但未使用。不能把实习和项目经历合起来说成两年工作经验。
许昌专业群
面试官两次打断,是因为我没有先讲背景、问题和功能。后来补充的内容是:给学校老师提供专业群搭建能力;在页面上选择负责的专业和领域,搭建专业流程,经管理员审核后生成培养方案。数据由第三方提供,后端定期拉取并同步到自己的数据库,再通过接口给前端。整个前端由我负责。
下次先按“背景、要解决什么、有哪些功能、我负责哪块”讲完整,再补一句这套系统尚未交付,不能说成已经上线。
社团平台(代表作)
现场讲了早期把数据交互集中在一个 Hook 上,交互要等两三秒,后来拆成五六个 Hook;也讲了刷新后按钮卡住和锁有关。但锁的机制说偏了,表现也不该说成白屏十几秒。
准确的说法是:登录回调还持有 lock:sb-127-auth-token,同时又要读取 session,形成了自己等待自己的死锁。修复时让回调先返回,等锁释放后再同步。实际表现是刷新后按钮假死。权限可以讲 RLS / RPC;签到只能校验身份和时间,客户端坐标仍可伪造。Expo 三屏尚未上线,不能讲成已上线功能。
下次先把背景、负责部分和一条真实踩坑讲完整,再提 AI 在定位或验证中起了什么作用。
AGENTS.md、harness、Skill
面试官问的是 AGENTS.md,现场只答了“约束不要乱写 any”,太窄。它在社团仓库里承载项目约定和审查规则,让生成代码按约定接受检查。
harness 和“Codex 怎么载入 Skill”是两道不同的问题。前者可以从项目约定、检查流程和工具边界讲;后者是可复用的操作说明由工具按规则载入上下文。没弄清楚的具体环节应如实说明,不靠模糊术语填空。
工具使用上,可以如实说目前 Codex 用得最多,Claude Code 试用过。重点应放在如何核验生成代码,而不只是列工具名字。
校园 RAG、模型对接与 SSE
现场真正的问题,是把主搜索和后来的 Agent 功能混成一句“没做 SSE”,还把模型用途和后端职责讲混了。
准确链路是:前端用 Next.js;主搜索请求 /api/search,等独立 search-service 返回完整 JSON 再渲染。检索、入库和混合检索(关键词加向量)都在这个服务里。可选的 LLM 补全是一次 Chat Completions,没有开启 stream,所以主搜索确实是等完整结果生成后显示。
项目里也有 SSE,但用于后来的 Agent 功能:/api/agent 返回 text/event-stream,前端通过 EventSource 接收检索、工具和整段答案等步骤事件,并非逐字输出 token。被问怎么发请求、后端返回什么时,先讲主搜索;被问到 SSE,再单独讲 Agent 这条链。千问三在仓库里用于 embedding / rerank,聊天模型由 LLM_MODEL 配置,不能说成接了千问三做流式输出。
还要准备三种情况:证据足够时返回答案和来源;证据不足时拒答或返回空结果,不编造;search-service 故障时明确提示检索失败。离线曾用 54 条黄金查询看 Recall@10、MRR、nDCG@10,但这个小集不能代表线上效果。检索指标好不等于答案正确;Agent 连接断开也不等于回答成功。
选择 Next.js 是为了在同一仓库里用 TypeScript 写页面和 BFF,把密钥与鉴权留在服务端,方便部署。长任务和检索放在独立 search-service。Vite 也能做交互端,Next.js 不是唯一选择,更不是因为主搜索必须流式出字。
React / Vue 基础
现场说 useState 是为了避免直接更新页面造成刷新和性能开销,这个解释不准确。useState 用来保存组件状态,调用 setter 后触发重新渲染。Vue 和 React 都能做组件化;被问到双向绑定时,对应 Vue 的 v-model。做过低代码表单,不宜说自己没用过 v-model。
4. 下次的答题顺序
项目题按“背景、要解决的问题、功能、我负责的部分、一个真实的坑”来讲。先解释机制,再说 AI 如何帮助定位或验证。
开场不能只讲实习。代表作优先社团平台或校园 RAG,不要还没讲完项目就把话题转成“我很会用 AI”。
反问可以围绕三点:入职后具体做 Evose 的哪一层;工具和模型额度如何支持;根据刚才的表现,最该先补哪块基础。


喜欢的话,留下你的评论吧~