汇川技术转正实习一面面经

发布于 2026-09-18 14:30 1284 字 7 min read

smile丶snow avatar

smile丶snow

大三/前端开发/百合汉化组成员/百合/日语/偶尔做动态壁纸

2026.08 - 至今
bilibili
bilibili公益平台
2026.06 - 2026.08
百度
前端数据平台
2026.03 - 2026.06
快手
快手前端电商
2025.12 - 2026.03
蓝色光标
前端开发实习生
汇川技术转正实习一面面经,重点围绕 Data Agent 开源项目、代码索引、AI 上下文治理、Agent 原理、SSE 会话管理以及前端基础展开。

汇川技术转正实习一面

面试时间

2026_0918-14:30

面试内容

  1. 做一下自我介绍
  2. 实习更换比较频繁,是什么原因?是学校事情还是其他考虑?
  3. 在这几家大厂实习,收获最大、最有价值的是什么?学到了什么?
  4. 这些 AI 相关的培训分享是百度、B 站都有吗?
  5. 结合经历分享一下,如何更好地使用 AI 进行开发?
  6. 代码索引优化是在哪一个项目里面实现的?
  7. 这套索引优化对 Codex、Cloud Code 这类工具是否生效?
  8. 详细展开讲一下 Data Agent 开源项目,是否是项目核心开发?
  9. 项目原本是后端人员用 AI 写的前端,你同样也是 AI 辅助编码,为什么你重构之后会更好?
  10. Data Agent 这个开源项目是哪家实习做的,还是在校参与的开源建设?
  11. 业务数据是怎么接入到 Data Agent 项目当中的?
  12. Data Agent 内部实现,是 Text-to-SQL 直接查询数据库吗?
  13. 有没有从 0 到 1 完整搭建过 Agent 整套代码?原理学习情况怎么样?
  14. 岗位上主要还是前端吗?后端接触多少?
  15. 会 Go 吗?学校课程学过 Java 吗?有没有写过 Web 应用?
  16. Data Agent 里的 AI 上下文治理详细讲一下
  17. SSE 流式渲染中,上一条请求还未结束,用户又发送新消息,如何处理中断和会话?
  18. 前端技术栈主要是 Vue 还是 React?
  19. 如果从 0 到 1 新建项目,什么场景选 Vue,什么场景选 React?
  20. 有没有用过 Webpack?为什么行业从 Webpack 转向 Vite?
  21. 做前端开发大概多长时间?
  22. Promise、async/await 的错误处理怎么做?
  23. 讲一个你遇到过最棘手的技术问题,以及如何解决
  24. 反问业务

业务信息

  • 业务方向:电梯物联网
  • AI 使用:阿里相关 AI 能力

面试复盘总结

1. 一面重点

这轮面试围绕三条主线展开:

  1. Data Agent 项目深度:项目背景、数据接入、Text-to-SQL、上下文治理和个人贡献。
  2. AI 辅助开发能力:代码索引是否能被 Codex、Cloud Code 等工具消费,以及 AI 生成代码为什么需要重构和验证。
  3. 全栈基础: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 链末尾统一处理,并区分业务错误、网络错误、超时和主动取消,避免所有错误都被当成普通失败提示。

© 2026 smile丶snow @YukiBloom
Powered by theme astro-koharu · Inspired by Shoka