汇川技术转正实习一面
面试时间
2026_0918-14:30
面试内容
- 做一下自我介绍
- 实习更换比较频繁,是什么原因?是学校事情还是其他考虑?
- 在这几家大厂实习,收获最大、最有价值的是什么?学到了什么?
- 这些 AI 相关的培训分享是百度、B 站都有吗?
- 结合经历分享一下,如何更好地使用 AI 进行开发?
- 代码索引优化是在哪一个项目里面实现的?
- 这套索引优化对 Codex、Cloud Code 这类工具是否生效?
- 详细展开讲一下 Data Agent 开源项目,是否是项目核心开发?
- 项目原本是后端人员用 AI 写的前端,你同样也是 AI 辅助编码,为什么你重构之后会更好?
- Data Agent 这个开源项目是哪家实习做的,还是在校参与的开源建设?
- 业务数据是怎么接入到 Data Agent 项目当中的?
- Data Agent 内部实现,是 Text-to-SQL 直接查询数据库吗?
- 有没有从 0 到 1 完整搭建过 Agent 整套代码?原理学习情况怎么样?
- 岗位上主要还是前端吗?后端接触多少?
- 会 Go 吗?学校课程学过 Java 吗?有没有写过 Web 应用?
- Data Agent 里的 AI 上下文治理详细讲一下
- SSE 流式渲染中,上一条请求还未结束,用户又发送新消息,如何处理中断和会话?
- 前端技术栈主要是 Vue 还是 React?
- 如果从 0 到 1 新建项目,什么场景选 Vue,什么场景选 React?
- 有没有用过 Webpack?为什么行业从 Webpack 转向 Vite?
- 做前端开发大概多长时间?
- Promise、async/await 的错误处理怎么做?
- 讲一个你遇到过最棘手的技术问题,以及如何解决
- 反问业务
业务信息
- 业务方向:电梯物联网
- AI 使用:阿里相关 AI 能力
面试复盘总结
1. 一面重点
这轮面试围绕三条主线展开:
- Data Agent 项目深度:项目背景、数据接入、Text-to-SQL、上下文治理和个人贡献。
- AI 辅助开发能力:代码索引是否能被 Codex、Cloud Code 等工具消费,以及 AI 生成代码为什么需要重构和验证。
- 全栈基础:Agent 原理、SSE 会话管理、Java/Go 后端接触情况和前端工程基础。
2. Data Agent 怎么讲
介绍 Data Agent 时,不要只说“用户提问后生成 SQL”。更完整的链路是:
自然语言问题 -> 意图识别 -> 语义层映射 -> SQL 生成 -> 安全校验 -> 数据查询 -> 图表或文本回答
其中语义层负责把业务概念映射到真实的数据表、字段和指标,避免模型只根据字段名猜测。生成 SQL 后还需要进行只读限制、权限校验、参数校验、超时控制和错误修正,不能让模型输出直接无保护地执行。
3. AI 上下文治理
Data Agent 或代码 Agent 的上下文治理,核心是让模型在正确的时间读取正确的信息:
- 按任务筛选相关模块、数据表、字段和业务规则。
- 将模块 README、代码索引、接口定义和历史决策作为结构化上下文。
- 区分长期规则、当前任务信息和临时执行结果。
- 控制上下文大小,减少无关内容和重复内容。
- 记录模型调用、工具调用和最终结果,便于复盘和评测。
上下文治理的目标不是让模型读得越多越好,而是在成本、完整性和准确性之间取得平衡。
4. SSE 中断与会话处理
上一条 SSE 请求未结束时,用户又发送新消息,需要先明确会话和请求的身份:
conversationId -> messageId -> requestId -> AbortController
新请求到达后,可以由前端通过 AbortController 取消旧请求,服务端也根据 requestId 或版本号拒绝旧请求继续写入当前会话。每个事件应携带会话 ID、消息 ID、序号和结束状态,前端只接收当前会话、当前请求版本的事件,避免旧响应覆盖新消息。
5. 前端基础追问
Webpack 与 Vite 的对比可以从开发体验和构建机制回答:Webpack 在大型项目、复杂 Loader/Plugin 体系和成熟生态上仍然有优势;Vite 开发阶段基于原生 ESM,按需编译,启动和热更新更快,生产构建再交给 Rollup 等工具处理。选择时需要结合项目规模、生态兼容性和团队迁移成本。
Promise、async/await 的错误处理需要覆盖同步异常、异步拒绝和请求取消:使用 try/catch 捕获 await 错误,必要时在 Promise 链末尾统一处理,并区分业务错误、网络错误、超时和主动取消,避免所有错误都被当成普通失败提示。