diff --git a/docs/interview/index.md b/docs/interview/index.md new file mode 100644 index 0000000..654a4d7 --- /dev/null +++ b/docs/interview/index.md @@ -0,0 +1,3 @@ +# 面经 + +面试经验记录与总结。 diff --git a/docs/interview/qunar-ai-fullstack.md b/docs/interview/qunar-ai-fullstack.md new file mode 100644 index 0000000..396e984 --- /dev/null +++ b/docs/interview/qunar-ai-fullstack.md @@ -0,0 +1,198 @@ +# 去哪儿 AI 面 — AI 全栈方向 + +> 面试形式:双机位(手机也要开摄像头),共 8 轮问答,每轮内会提一个问题并根据回答进行追问 +> 以下内容仅根据回忆记录,未录音 + +--- + +## 1. 自我介绍 + +常规开场,简要介绍个人背景、技术栈和项目经历。 + +--- + +## 2. 语言选择(Java / TypeScript) + +选项只有 Java 和 TypeScript 两个,后续问题会根据选择的语言侧重点展开。 + +--- + +## 3. 垃圾回收 GC 过程 + +!!! note "💡 关键点" + - 对象从新生代 Eden → Survivor → 老年代的晋升路径 + - Minor GC / Major GC / Full GC 的触发条件 + - 分代收集模型:新生代(复制算法)、老年代(标记-清除 / 标记-整理) + +--- + +## 4. 三色标记的第一阶段 STW 在干什么 + +三色标记法将对象标记为白色(未访问)、灰色(已访问但子对象未全部访问)、黑色(已访问且子对象已全部访问)。 + +第一阶段 STW(Stop The World)的主要工作: + +- **根节点枚举**:暂停所有应用线程,扫描 GC Roots(栈帧中的局部变量、静态变量、常量池引用等) +- **建立初始引用关系**:确保在并发标记开始前,堆中对象的引用关系是一个一致的快照 +- **防止并发标记期间的遗漏**:如果没有这个 STW,并发标记可能会漏掉某些从 GC Roots 新建立的引用 + +!!! tip "追问方向" + - 为什么需要 STW?不 STW 会怎样? + - CMS 和 G1 在三色标记上的差异 + - 写屏障(Write Barrier)如何解决并发标记期间的引用变更问题 + +--- + +## 5. 最有成就感的项目 + +讲述一个完整的项目经历,重点包括: + +- **背景与目标**:为什么做这个项目,要解决什么问题 +- **技术选型与架构设计**:为什么选择当前方案 +- **关键难点与突破**:遇到了什么挑战,如何解决的 +- **最终成果**:量化的业务收益或技术指标 + +--- + +## 6. AI 提效成果 + +在项目开发过程中,AI 工具对效率的提升: + +- **代码生成与补全**:减少重复性编码工作 +- **文档与注释生成**:自动化的文档维护 +- **问题排查与调试**:利用 AI 分析日志和定位问题 +- **设计与架构讨论**:作为技术方案的验证伙伴 + +--- + +## 7. 如何确保 AI 生成格式化内容的可靠性 + +生成 JSON 等结构化内容时,确保键的准确性和嵌套层级的正确性: + +- **Schema 约束**:提供明确的 JSON Schema 或类型定义,约束输出格式 +- **结构化输出(Structured Output)**:利用模型的结构化输出能力,强制符合预定义 schema +- **分步生成**:先生成骨架,再填充内容,降低单次生成的复杂度 +- **后处理校验**:解析 JSON 进行 schema 校验,不通过则重试或修正 +- **Few-shot 示例**:提供目标格式的示例,让模型学习结构模式 + +--- + +## 8. Agent 场景与目标达成 + +讲述实际构建的 Agent 场景: + +- **场景定义**:Agent 要解决的具体问题 +- **工具链设计**:Agent 可调用的工具和能力 +- **任务分解与规划**:如何将复杂任务拆解为可执行步骤 +- **执行与反馈循环**:ReAct / Plan-and-Execute 等模式的应用 +- **目标达成评估**:如何判断 Agent 完成了任务 + +--- + +## 9. Agent 长期记忆管理 + +对于 Agent 长期记忆,应该放什么以及如何管理: + +**哪些东西应该放进来:** + +- 用户偏好与习惯 +- 历史交互中的关键决策和结论 +- 领域知识和经验 +- 任务上下文与状态 + +**管理策略:** + +- **淘汰机制**:类似 LRU(最近最少使用)/ LFU(最不经常使用),对记忆条目按访问频率和时间进行淘汰 +- **优先级判定**:高优先级记忆(用户明确要求记住的、频繁使用的)不易被淘汰 +- **分层存储**:短期记忆(当前会话)→ 中期记忆(近期交互)→ 长期记忆(持久化知识) + +--- + +## 10. 记忆部分冲突处理 + +当多条记忆之间存在部分冲突时: + +- **建立知识图谱**:将记忆中的实体和关系组织成图结构,便于推理和综合判断 +- **综合判断**:结合多条相关记忆的上下文、时间、来源进行加权分析 +- **置信度评估**:对每条记忆赋予置信度,冲突时优先采信置信度更高的记忆 +- **主动澄清**:当无法自动判断时,向用户确认 + +--- + +## 11. 两条记忆完全冲突 + +当两条记忆完全矛盾时,根据环境风险等级采取不同策略: + +| 环境类型 | 策略 | +|---------|------| +| **危险环境** | 直接输出两条冲突记忆,不做自动选择,由人工决策 | +| **安全环境** | 可配置优先级规则:按时间(新的优先)、按来源(权威来源优先)自动采纳 | + +!!! warning "核心原则" + 在高风险场景下,宁可暴露冲突也不做错误的自动选择。安全第一。 + +--- + +## 12. 如何评价是否达成目标 + +评估 Agent 目标达成情况的方法: + +- **打分量化**:定义评分维度(准确性、完整性、效率等),对结果进行 1-5 分量化评估 +- **Critic 架构**:引入独立的评估 Agent(Critic),对执行 Agent 的输出进行审查和打分 +- **参考标准对比**:将输出与预期标准进行对比,计算相似度或匹配度 +- **多轮迭代评估**:通过多轮交互逐步收敛,评估是否达到满意的最终状态 + +--- + +## 13. 如何应对 AI 幻觉 + +在项目中应对 AI 幻觉的策略: + +- **Context 工程**:提供精准、充分的上下文信息,减少模型需要"猜测"的空间 +- **Sub-agent 评估**:引入独立的子 Agent 对主 Agent 的输出进行事实核查 +- **Hook 机制**:基于 hook 进行必要的 CI 检查,在关键节点验证输出的正确性 +- **Skill 补充背景**:在未知领域使用 skill 注入领域知识,降低幻觉风险 +- **检索增强(RAG)**:将回答基于检索到的实际文档,而非模型的参数记忆 + +--- + +## 14. 如何遵守项目规范 + +确保 AI 遵守项目规范的方法: + +- **明确的规范文档**:将项目规范写入 CLAUDE.md 或类似配置文件 +- **软件工程实践**:瀑布模型、敏捷开发等流程规范的约束 +- **统一约定**:如统一返回类、命名规范、代码风格等,通过配置和示例固化 +- **自动化检查**:Lint、类型检查、测试等自动化手段兜底 + +--- + +## 15. AI 工具选择与可靠性保障 + +**使用的 AI 工具及原因:** + +- 选择标准:能力匹配、生态完善、可靠性高 +- 工具链搭配:不同工具在不同场景下的互补使用 + +**可靠性保障措施:** + +- **好的 Harness**:构建可靠的执行框架,管理工具调用和状态流转 +- **达成目标的标准**:明确的任务完成标准和验收条件 +- **Hooks 机制**:在关键节点插入检查和干预逻辑 +- **Sub-agent 审查**:独立的子 Agent 进行交叉验证 +- **Code Review**:人工或自动化的代码审查,确保输出质量 + +--- + +## 面试总结 + +这次去哪儿的 AI 面试整体考察深度不错,涵盖了: + +| 考察维度 | 题目 | +|---------|------| +| 语言基础 | GC 过程、三色标记 | +| 项目经验 | 有成就感的项目、AI 提效 | +| AI 工程实践 | 结构化输出、Agent 设计、记忆管理、幻觉应对 | +| 系统设计思维 | 冲突处理、目标评估、规范遵守、可靠性保障 | + +核心考察点在于 **AI 工程化能力** — 不只是会用 AI,而是如何可靠地将 AI 集成到实际项目中。 diff --git a/mkdocs.yml b/mkdocs.yml index 8a11faa..3b8123e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -84,6 +84,9 @@ extra_javascript: nav: - 首页: index.md + - 面经: + - interview/index.md + - 去哪儿 AI 面-AI 全栈方向: interview/qunar-ai-fullstack.md - 项目: - project/index.md - Open-API 计费平台: