华为技术有限公司校招 AI 技术应用面试经验——求职精灵(finsight.work)

收藏 0 浏览 50
2026-10-14 14:16:07

一、面试总体概述

1.1案例背景

同一候选人 10.13 完成 AI 技术应用岗的技术一面与技术二面,两轮各约 1 小时,结果都在面试结束后十分钟内通知。一面所有问题围绕实习与项目展开,深挖 Agent 开发的 Harness 编排、记忆模块与技术选型,八股只涉及 Redis;手撕先给了一道非 hot100 的 hard(二分 + 贪心,未写出完整代码),换题后是字符串排列。二面不考八股,聚焦 AI 的安全应用与项目落地,并追问 AI Coding 工具的使用方法与 coding plan 选型,手撕为两个数组的交集。

1.2基本信息

公司华为技术有限公司
岗位AI 技术应用
招聘类型校招
面试时间2026-10-13
面试轮次2 轮
平均时长1 小时
题目数量共 11 题,均附参考答案
整体难度★★★☆☆ 中等
候选人背景经历 有实习经历,面试全程围绕实习与项目展开

1.3面试轮次与结构

#轮次类型时间时长
1技术一面技术面2026-10-13 上午 9 点多1 小时
2技术二面技术面未注明1 小时

1.4高频考点

考点分类出现轮次次数
手撕代码(二分 + 贪心 hard / 字符串排列 / 数组交集)算法与数据结构 · 手撕代码技术一面、技术二面3
Agent 应用开发(Harness 编排 / 记忆模块)项目经历 · Agent 开发技术一面2
AI Coding 工具与 coding plan 选型机器学习 / AI · 工程效率技术二面2
AI 的安全应用与项目落地机器学习 / AI技术二面2
Redis 基础基础八股 · 数据库技术一面1

1.5备考建议

优先级易失分点准备动作
P0非 hot100 的 hard 手撕写不出来就放弃表达按「二分答案 + 贪心判定」等套路做专项训练;场上先把单调性与判定函数讲清楚,再主动请面试官给提示
P0Agent 项目讲不出哪些是自己实现的准备一张 Harness 调用链图与记忆模块的读写流程图,能说清每一步由谁触发、失败怎么处理
P1AI 工具只会用、不会说整理常用 AI Coding 工具的适用场景与套餐差异,准备一个「使用前后耗时对比」的具体例子
P1偏项目就完全放弃八股Redis 等基础仍会抽查,按「数据结构 → 过期与淘汰 → 缓存穿透/击穿/雪崩 → 持久化与高可用」整理一页
P2题意不清时闷头硬写养成先复述题意与约束、确认边界再动手的习惯;存在多解时先讲清两种理解,再选一种实现

二、第 1 轮:技术一面

2.1面试形式与时长

轮次名称技术一面
面试类型技术面
时间2026-10-13 上午 9 点多
时长1 小时
本轮题量6 题

2.2重点考查维度

  • 项目经历 —— 本组 3 道题
  • 算法与数据结构 —— 本组 2 道题
  • 基础八股 —— 本组 1 道题

面试结束后约 10 分钟通知一面通过。所有问题围绕实习与项目展开,八股仅涉及 Redis。

看难题下的思路表达与临场调整,而不是非要写出完整代码;考察回溯模板的熟练度与去重细节;看是否真的自己实现过编排层,而不是只会调 API

2.3面试真题与参考答案

Q1手撕:一道非 hot100 的 hard(二分 + 贪心)算法与数据结构 · 手撕代码
考察重点看难题下的思路表达与临场调整,而不是非要写出完整代码
参考答案

具体题干没有完整留存,只留下「二分 + 贪心」这个考点,按这一套路给出通用解法。
这类题通常是「二分答案 + 贪心判定」:

  1. 把「求最优值」转成「判定可行性」:给定一个值 x,能否在限制下完成。
  2. 二分搜索答案区间 [lo, hi],按判定结果收缩边界。
  3. check(mid) 用贪心实现,保证 O(n)。
  4. 注意单调性前提与上下界取值,区间开闭要和判定条件一致。
def solve(a, k):
    def check(x):
        # 贪心:按容量 x 依次装填,看能否在 k 段内覆盖全部元素
        cnt, cur = 1, 0
        for v in a:
            if cur + v <= x:
                cur += v
            else:
                cnt += 1
                cur = v
        return cnt <= k
    lo, hi = max(a), sum(a)
    while lo < hi:
        mid = (lo + hi) // 2
        if check(mid):
            hi = mid
        else:
            lo = mid + 1
    return lo

现场策略:写不出完整代码时,先把单调性、判定函数与复杂度讲清楚,再主动请面试官给提示。

题干未完整记录,仅知考点为二分 + 贪心;本题最终未写出完整代码,思路经提示后基本正确。
二分答案贪心
Q2手撕换题:一道非 hot100 的 mid —— 字符串排列算法与数据结构 · 手撕代码
考察重点考察回溯模板的熟练度与去重细节
参考答案

「字符串排列」即输出字符串的全排列,典型回溯 + 剪枝。

def permutation(s):
    s = sorted(s)              # 排序后同层重复字符相邻
    res, used = [], [False] * len(s)
    def dfs(path):
        if len(path) == len(s):
            res.append("".join(path)); return
        for i, ch in enumerate(s):
            if used[i]:
                continue
            # 同层重复字符跳过,避免产生重复排列
            if i > 0 and s[i] == s[i - 1] and not used[i - 1]:
                continue
            used[i] = True
            path.append(ch)
            dfs(path)
            path.pop()
            used[i] = False
    dfs([])
    return res

要点:复杂度 O(n!),去重后为 O(n × 结果数),额外空间 O(n)。
动手前先问清「是否要求去重、是否按字典序输出」,条件不同实现与输出顺序都会变。

本题在换题后当场写出并通过。
回溯去重
Q3Agent 开发中 Harness 是怎么设计的项目经历 · Agent 开发
考察重点看是否真的自己实现过编排层,而不是只会调 API
参考答案

Harness 是模型与工具 / 环境之间的编排层,面试官想听你如何把「大模型 + 工具 + 状态」串起来,可以按四块讲:

  1. 工具层:工具注册与 schema 定义(参数校验、工具描述质量直接影响模型调对的概率),统一出入参结构。
  2. 循环控制:ReAct 式的 think → act → observe 循环,设置最大步数、超时与提前终止条件,避免死循环。
  3. 上下文与状态:多轮工具结果的裁剪与压缩(只保留必要字段),长结果落盘、按需回读。
  4. 稳定性与可观测:超时重试、幂等、异常兜底;每一步的输入输出都打日志,便于离线复现与评测。

讲的时候最好配一张自己画的调用链,说明每一步谁触发、失败怎么处理。

追问链(3 条)
工具调用失败与重试怎么处理上下文超长时怎么压缩怎么评测编排效果
AgentHarness工具编排
Q4记忆模块是怎么做的项目经历 · Agent 开发
考察重点考察长期记忆的存储、召回与评测设计
参考答案

记忆模块要区分「短期」与「长期」:

  • 长期:事实性信息抽成结构化 KV(用户偏好、关键结论),语义类内容写入向量库,按当前 query 召回 top-k 再拼进上下文。

再补三件事才算完整:

  1. 写入时机:什么时候写、写什么字段、如何合并同义或冲突信息。
  2. 召回策略:阈值过滤、时间衰减、rerank,避免召回噪音污染上下文。
  3. 评测:把「该记住的有没有记住、不该记的有没有混进来」做成可回归的用例集。
追问链(2 条)
记忆冲突时怎么处理向量库选型与召回精度怎么调
记忆模块向量检索上下文管理
Q5实习的产出、遇到的问题与技术选型项目经历
提问形式连续追问群考察重点以实习为核心验证项目真实性与个人贡献度
参考答案

三个子问题连着答,顺序建议:

  1. 产出:一句话说清业务价值 + 你独立负责的部分 + 可量化的结果。
  2. 问题:挑一个真实、有排查过程的问题(现象 → 假设 → 验证 → 定位 → 修复),重点讲你的定位路径。
  3. 选型:给出对比维度(性能、开发成本、可维护性、团队熟悉度),说明为什么选 A 不选 B,以及现在回看会不会改。

凡是简历与口述里出现的名词都要能往下展开一层。

追问链(3 条)
实习期间最核心的产出是什么遇到的问题怎么定位与解决关键技术选型为什么这么定
实习经历技术选型
Q6Redis 相关八股基础八股 · 数据库
提问形式维度式提问考察重点确认基础八股没有明显缺口,考察原理能否落到项目
参考答案

Agent / 应用类项目里的 Redis 一般围绕四块被问:

  1. 数据结构与场景:String 做计数与缓存、Hash 存对象、ZSet 做排行榜与延时队列、List / Stream 做队列。
  2. 过期与淘汰:EXPIRE / TTL、惰性删除 + 定期删除、maxmemory-policy 各类淘汰策略的取舍。
  3. 缓存一致性:穿透(布隆过滤器 / 空值缓存)、击穿(互斥重建 / 逻辑过期)、雪崩(过期时间打散、多级缓存)。
  4. 持久化与高可用:RDB 与 AOF 的差异、主从 + 哨兵 / Cluster 的取舍。

结合自己项目里的键设计与失效策略来讲,比背条目更有说服力。

Redis缓存

三、第 2 轮:技术二面

3.1面试形式与时长

轮次名称技术二面
面试类型技术面
时长1 小时
本轮题量5 题

3.2重点考查维度

  • 机器学习 / AI —— 本组 3 道题
  • 项目经历 —— 本组 1 道题
  • 算法与数据结构 —— 本组 1 道题

先面谈后手撕,全程没有八股。面试结束后约 3 分钟通知二面通过。帖中把本轮日期标注为「10.30 左右」,与标题日期不一致,故此处不填具体日期。

看是否理解大模型应用的风险面与工程化防护手段;验证项目是否真跑起来,以及你能否用数据描述结果;看是否有成型的 AI 辅助开发流程

3.3面试真题与参考答案

Q1AI 的安全应用怎么考虑机器学习 / AI · 安全
提问形式开放讨论考察重点看是否理解大模型应用的风险面与工程化防护手段
参考答案

可以按「输入 → 模型 → 工具 → 输出」四层讲:

  1. 输入层:Prompt 注入与越狱防护(系统提示与用户内容隔离、指令优先级、可疑内容过滤)、敏感信息脱敏。
  2. 模型层:输出内容审核与兜底话术、幻觉抑制(强制引用来源、结构化输出校验)。
  3. 工具层:工具调用做权限最小化与白名单,参数二次校验;涉及写操作时加二次确认或人工审批,防止模型被诱导执行危险动作。
  4. 输出层:日志留痕与审计、可回滚。

结合项目举一个你实际做过的防护点,比罗列风险更有说服力。

Prompt 注入权限控制
Q2项目的落地情况项目经历
提问形式开放讨论考察重点验证项目是否真跑起来,以及你能否用数据描述结果
参考答案

「落地」的关键词是可用的证据:

  • 谁在用:真实用户量 / 调用量 / 使用频次。
  • 效果:用指标说话(准确率、节省时长、人工介入率),并说明指标怎么测、基线是什么。
  • 稳定性:在线可用性、失败率、平均响应时间。
  • 迭代:上线后收到什么反馈、改了哪些。

项目还没上线就说明当前阶段(内测 / 灰度)、已验证的部分与下一步计划,不要夸大。

落地效果指标
Q3AI Coding 工具的使用方法机器学习 / AI · 工程效率
提问形式开放讨论考察重点看是否有成型的 AI 辅助开发流程
参考答案

面试官在判断你是不是真的把 AI 编进了工作流,可以按环节讲:

  • 需求与设计:用模型做方案对比、拆任务、写接口草稿。
  • 编码:补全与整块生成、重构、单测生成、跨文件改动。
  • 评审与排错:先让模型做一轮 review、给出报错的可疑点,再自己验证。
  • 规则约束:项目级规则文件(约定技术栈与代码风格),上下文只投喂相关文件而不是整个仓库。

配一个具体例子:某个改动原本要多久、用工具后多久、返工点在哪里。

AI Coding工作流
Q4购买了哪些大模型厂商的 coding plan机器学习 / AI · 工程效率
考察重点看是否长期、真实地使用,而不是临时应付
参考答案

这题不是考谁买得多,而是看你有没有形成稳定的使用习惯:

  • 说出实际在用的 1~3 家,以及各自擅长的场景(长上下文重构 / 代码补全 / Agent 式改动)。
  • 说明选择理由:成本、额度、上下文长度、是否支持团队协作与规则文件。
  • 说明组合方式:主力工具做日常开发,另一家处理长任务或做交叉验证。

没买过就如实说在用免费额度或自建方案,重点讲清你依赖它完成了什么。

coding plan工具选型
Q5手撕:两个数组的交集算法与数据结构 · 手撕代码
考察重点基础编码题,看边界与复杂度意识
参考答案

先确认真实条件:是否要求结果去重(LC 349)还是保留出现次数(LC 350),数组是否已排序、规模多大。条件不同解法不同。

# 去重版:哈希集合
# 时间复杂度 O(m+n)
def intersection(nums1, nums2):
    return list(set(nums1) & set(nums2))

# 保留出现次数版:哈希计数
# 时间复杂度 O(m+n),额外空间 O(min(m,n))
from collections import Counter

def intersect(nums1, nums2):
    cnt = Counter(nums1)
    res = []
    for x in nums2:
        if cnt.get(x, 0) > 0:
            res.append(x)
            cnt[x] -= 1
    return res

如果两数组已排序,可以用双指针做到 O(m+n) 且 O(1) 额外空间。
面试时先问清约束再动手,是最稳的做法。

哈希表双指针
备考提示
备考阶段,我发现很多同学容易陷入「不知道从哪准备」的困境。后来我向学员推荐了一款叫求职精灵的 AI 工具,上面收录了大量真实面经,还能直接搜到目标岗位的面试官常问什么、评分标准是什么。用它做 AI 模拟面试也特别方便,输入公司和岗位,系统自动生成仿真题目并给出反馈,练完之后心里更有底。感兴趣的同学可以直接访问 https://finsight.work/ 体验。

总结收尾

最后真心建议大家在备考阶段用一下求职精灵,网址是 https://finsight.work/ 。它能查岗位JD、一键修改简历、刷15万+道真题题库,还有AI模拟面试功能,整个备考流程基本都能覆盖,已经有超过6万学员用过,效果有口皆碑。别等到面试前一天才开始准备,现在就去用起来。机会永远留给有准备的人,希望读到这篇文章的每一位同学都能拿到心仪的offer。

以上内容整理自学员和应届同学反馈的真实面经,结合华为技术有限公司的最新考情整理,仅供参考学习。祝各位求职者顺利拿到心仪offer! 本文由求职精灵内容团队整理发布 | 官网:https://finsight.work/