写在前面

欢迎大家关注Rocky的公众号:WeThinkIn 欢迎大家关注Rocky的知乎:Rocky Ding 《三年面试五年模拟》AIGC/LLM/AI Agent算法工程师/开发工程师求职面试秘籍独家资源:【三年面试五年模拟】WeThinkIn/AIGC-Interview-Book,欢迎大家Star~
Rocky最新撰写的10万字AI Agent(AI智能体)深入浅出全维度解析文章: 深入浅出完整解析AI Agent(AI智能体)的核心基础知识
AIGC/LLM/AI Agent算法岗/开发岗求职面试内推学习社群(涵盖AIGC、LLM大模型、AI Agent、传统深度学习、自动驾驶、机器学习、计算机视觉、自然语言处理、强化学习、大数据挖掘、具身智能、元宇宙、AGI等AI行业最新面试干货经验与核心知识)欢迎大家加入:https://t.zsxq.com/33pJ0
大家好,我是Rocky。
核心导读
这轮面试的问题看似分散,实际只在反复确认一件事:候选人是否能把大模型的概率性能力,放进一个可观测、可验证、可恢复的确定性工程系统中。项目题考察是否真正做过业务闭环;Harness、工具调用和长程任务考察运行时治理;上下文与摘要题考察状态管理;算法题则考察能否先固定题意边界,再将贪心直觉写成可证明、可测试的实现。
因此,高质量回答不应停在 RAG、ReAct、Memory 或 Function Calling 等名词上,而应始终说清楚五个问题:状态存在哪里,失败如何分类,副作用如何约束,结果由谁验证,系统效果怎样用指标证明。
项目
自我介绍
回答:
自我介绍建议在 60~90 秒内建立一条清晰主线:我是谁、做过什么与岗位最相关的事情、自己具体负责什么、结果如何验证,以及为什么适合当前岗位。Agent 开发岗位可以按“模型能力 + 工程系统 + 业务闭环”组织:先说明大模型应用或 AI Agent 方向,再挑一个最相关项目,用“业务问题 -> 系统架构 -> 个人贡献 -> 指标与复盘”讲清楚,最后落到当前岗位希望继续解决的问题。
项目介绍不能把团队成果全部归到自己名下。至少要明确:自己负责的模块、使用的模型/框架、关键技术决策、遇到的失败、如何验证以及上线边界。指标要说明是离线评测、灰度数据还是线上 A/B,不要把 Demo 演示或模型自评包装成线上收益。
一个合格的收束是:我不仅能调用模型 API,还能处理上下文、工具、检索、权限、超时、评测和回滚,因此更适合把 Agent 从“能跑通”推进到“可验证、可运维、可上线”。
请你详细介绍你的AI项目;
回答:
介绍 AI 项目建议使用“目标、输入、决策、执行、验证、结果”六段式。先说明项目解决的业务痛点和成功标准,再画出从用户请求到模型、RAG、工具、状态存储和最终输出的数据流;随后说明自己负责的边界、选择该方案的原因和没有采用的替代方案。
对于 Agent 项目,不能只说使用了 RAG、Function Calling、Memory 和 ReAct。需要把一次真实请求讲完整:模型如何判断意图,如何选择工具,工具参数如何校验,工具返回如何进入上下文,失败如何重试或降级,最终结果由什么 Verifier 判断正确。对于 RAG,还要交代文档解析、切分、索引、混合召回、Rerank、权限过滤、引用和上下文预算。
项目效果应同时覆盖质量和工程指标,例如任务成功率、工具调用正确率、引用准确率、幻觉率、P95 延迟、Token 成本、失败恢复率和人工接管率。若没有公开的真实指标,应明确说出评测口径和验证方法,不能补造数字。面试官真正想确认的是:你理解的是问题机制和系统闭环,而不只是记住了几个框架名。
你的项目中说到了面试评分,那么简历评分的内容是如何进行结构化输出的?从哪几个维度进行评分?
回答:
简历评分不能让模型直接输出一段自然语言分数,而应先定义评分协议,再让模型生成受 Schema 约束的中间结果。输入包括脱敏后的简历、目标岗位描述、评分规则版本和必要的上下文;输出至少包含总分、各维度分数、证据片段、扣分原因、置信度、缺失信息和改进建议。
一个可解释的评分结构可以包括:
可以采用如下结构化对象:
{
"rubric_version": "v1",
"total_score": 82,
"dimensions": [
{
"name": "岗位匹配度",
"score": 28,
"max_score": 35,
"evidence": ["…"],
"reason": "…",
"confidence": 0.86
}
],
"missing_information": ["…"],
"risks": ["…"],
"suggestions": ["…"]
}
工程上要用 JSON Schema 或函数调用约束字段、类型、取值范围和必填项;对模型输出做二次解析、数值校验和证据引用校验。总分最好由各维度确定性聚合,而不是让模型同时自由生成总分和分项分数。最后用人工标注的金标准评估评分与招聘专家的一致性、校准误差、不同学校/行业背景下的偏差和对文字包装的敏感性。评分系统应该帮助决策,不应把概率性模型分数伪装成绝对客观结论。
项目中的RAG知识用到了哪些?离线上传和在线问答环节如何进行?
回答:
RAG 知识应按业务需要选择,而不是把所有项目文件全部向量化。适合放入 RAG 的通常是岗位说明、面试题库、技术文档、项目规范、FAQ、版本说明和经确认的业务知识;用户隐私、权限策略、实时状态和高精度计算结果则应分别放在受控数据库或后端工具中,不能仅依赖向量库。
离线入库流程可以拆为:文件上传与病毒/权限检查 -> 格式解析和结构恢复 -> 清洗、去重、脱敏 -> 按标题、段落、表格和代码结构切分 -> 生成 Embedding 与 BM25/倒排索引 -> 保存文档版本、权限、来源位置和更新时间 -> 离线评测后发布索引版本。跨页表格、标题层级和代码块不能在解析阶段被简单打散。
在线问答流程通常是:识别用户意图 -> 对多轮问题做受约束的 query 改写 -> 关键词与向量混合召回 -> 权限和版本过滤 -> Rerank -> 按 Token 预算选择证据 -> 生成带引用的答案 -> 对引用、结构化字段和高风险事实做校验。BM25 适合精确术语、项目名和错误码,向量检索适合语义表达变化,二者结合比单一路径更稳健。
需要单独评估解析正确率、Recall@K、MRR/nDCG、引用准确率、答案正确率、拒答准确率、P95 延迟和 Token 成本。知识更新要采用版本化和原子切换,避免新索引指向旧正文或权限过滤失效。
八股
你如何理解Agent中Harness的概念?
回答:
Agent Harness 可以理解为包围模型、让模型能够稳定完成任务的运行时控制层。模型负责在当前上下文中生成判断或动作,但 Harness 负责提供上下文、工具、状态、权限、循环控制、预算、错误处理、验证和观测。它不是单纯的 Prompt 模板,也不是模型本身。
一个生产级 Harness 通常包含:
- Context 管理。 组织系统指令、用户请求、任务状态、历史摘要、检索证据和工具观察,并控制 Token 预算。
- Tool Runtime。 暴露版本化工具 Schema,完成参数校验、鉴权、超时、重试、幂等和副作用隔离。
- Orchestrator。 驱动 ReAct、Plan-and-Execute 或工作流状态机,限制步数、并发、成本和截止时间。
- Memory/RAG。 管理短期状态、长期记忆、文档检索和权限,而不是把所有内容无差别塞给模型。
- Verifier 与 Guardrail。 用测试、数据库状态、规则和人工审批判断动作是否可执行、结果是否达标。
- Observability。 记录 Trace、Prompt/工具版本、Token、延迟、错误、回放和指标。
因此,Agent 的可靠性不是由模型能力单独决定的,而是模型、Harness 和外部环境共同构成的系统属性。优秀 Harness 的判断标准是:面对工具失败、上下文超限、用户取消、权限变化和模型输出不规范时,系统是否仍能安全、可解释、可恢复地运行。
你的Agent里面运行了一个长程的任务,它假设平时只允许需要运行5分钟就能结束。然后你新运行了一次,它运行了15-20分钟,也就是说跟之前比有明显的延迟,然后你会怎么分析这个延迟是什么导致的?
回答:
先不要直接归因于模型变慢,而要用同一个 trace_id 把一次 Agent 任务拆成阶段和子调用,比较正常样本与异常样本的分布。至少记录总时长、排队时长、每次模型调用的首 Token/总耗时、输入输出 Token、工具等待、重试次数、上下文长度、并行度、节点、模型版本、Prompt 版本、RAG 召回数量和外部依赖状态。
可以按以下顺序定位:
重点关注几类 Agent 特有原因:模型陷入重复工具调用或重规划;上下文增长导致 Prefill 和压缩变慢;工具超时后指数重试;多个任务争抢同一锁或连接池;某个外部接口尾延迟升高;并发任务触发限流;任务状态未正确推进导致循环。每个怀疑都要用 trace 和对照实验验证,不能用“LLM 不稳定”作为结论。
如何解决上述这个问题?
回答:
解决方案要对应根因,并先控制用户影响。第一步是设置总 Deadline 和阶段预算,把 5 分钟假设变成可观测、可执行的 SLA:例如为排队、模型、每类工具和重试分别分配预算,任一阶段超时就进入降级或转人工,而不是无限运行。
第二步是控制 Agent 行为:为工具调用设置超时、取消和最大重试次数;对瞬时错误使用指数退避和抖动,对参数/权限错误不重试;用调用指纹和任务进展检测重复;为副作用工具使用幂等键;当计划失效时只允许有限次重规划。
第三步是降低关键路径:并行执行无依赖的子任务,使用流式输出和缓存,减少无关上下文,工具返回分页/摘要/Artifact,缩小 RAG 召回和 Rerank 范围,复用连接和 KV Cache,并把非关键审计/索引任务异步化。并行不能突破下游限流,也不能让有依赖的操作失去顺序。
第四步是做基础设施治理:连接池和线程池设置上限与背压,外部服务使用熔断、舱壁隔离和备用路由,模型服务按负载和上下文长度调度,监控 GPU/CPU/内存/GC/队列和 P99。修复后用固定回放、压力测试、长尾测试和小流量灰度验证,设置自动回滚阈值。
最终要证明的不只是平均耗时下降,还包括 P95/P99、任务成功率、重复调用率、超时率、Token 成本和错误恢复率没有恶化。长程 Agent 的性能优化,本质是把一个不可控的开放循环拆成有预算、有状态、有验证的有限执行图。
Agent在执行过程中,肯定不可避免地要去调用一些工具,这些工具都有固定地入参,需要模型结合上下文去提供,然后在这个过程中,如何去保障工具调用的可靠性?
回答:
工具调用可靠性不能依赖模型“自己多想几遍”,而应采用模型提出候选动作、运行时确定性校验、工具执行和结果验证的分层架构。
工具描述要短、清晰、互不重叠,并通过命名、示例和反例减少歧义。对于可由规则确定的路由,不必把选择权交给模型。可靠工具调用的核心是把“模型的概率性动作”包在“确定性接口、权限和验证”之内。
随着提问轮次的增加,上下文窗口会越来越大,该如何进行解决?
回答:
上下文治理的目标不是无限扩大窗口,而是在有限预算内保留当前任务真正依赖的信息。可采用“近期原文 + 结构化状态 + 阶段摘要 + 外部记忆 + 工具结果压缩”的组合。
先为系统约束、当前问题、工具 Schema、任务状态、证据和输出预留预算;再保留最近若干轮原文,解决指代和短期状态;将长期有效内容抽取为结构化状态,包括目标、硬约束、已确认事实、已完成步骤、未完成步骤、决策依据和证据引用;较早的原始内容放入可按语义、关键词、时间、实体和权限检索的记忆存储。
工具结果是上下文爆炸的主要来源之一。对网页、日志、代码构建输出和数据库结果采用字段投影、分页、去重、聚合、错误摘要和 Artifact 引用,避免把原始大结果全部回传模型。RAG 也要根据问题和置信度动态召回,不要把整个知识库放进 Prompt。
压缩和摘要要有版本、时间和来源,并对数字、否定、实体、权限和未完成事项做保真校验。长任务按阶段写入 checkpoint,下一阶段只载入相关状态。不能简单按轮数删除早期内容,因为最初目标和硬约束可能比最近的闲聊更重要。
衡量方案要同时看上下文 Token、压缩率、事实保真率、任务成功率、约束违反率、引用准确率、延迟和成本。上下文工程的本质是任务状态管理,而不是把聊天记录做成越来越长的字符串。
压缩或者摘要肯定会丢失信息,如何使得这个信息丢失最小化?
回答:
首先要区分“可丢失的表达”和“不可丢失的状态”。寒暄、重复日志、已经被确定性结果替代的探索过程可以压缩;用户目标、硬约束、授权、数字、时间、否定关系、实体、未完成事项、工具回执、关键决策依据和安全事件必须结构化保留。
推荐采用以下方法:
压缩模型的选择取决于错误成本:去重和格式归并可用规则或小模型,涉及复杂冲突和高风险事实时应使用更强模型或双重校验。系统不必保存模型私有 Chain-of-Thought,但必须保存可审计的决策摘要、行动结果和证据关系。最小信息损失不是字数最少,而是对未来决策的充分统计量尽可能完整。
算法
给定一个数n,如23121;给定一组数字A如{2,4,9},求由A中元素组成的小于n的最大数,如小于23121的最大数是22999。
回答:
先核对示例:22999 只由 2 和 9 组成,两者都属于 {2,4,9},并且 22999 < 23121,因此题面示例是自洽的。从这个结果还可以反推出题目默认允许数字重复使用,否则不可能连续使用多个 2 和 9。实际面试时还应确认:是否禁止前导零、0 能否作为单独结果,以及无解时返回 -1 还是其他约定。
本质上,这是一个“在数字字典中,构造不超过上界的字典序最大数”问题。为了自然处理“严格小于”,可以先将上界改为 n – 1,然后求由 A 构造的、不大于 n – 1 的最大数。对于与上界等长的候选数,从高位到低位优先选最大可行数字:
下面给出允许重复使用数字、禁止多位数出现前导零的 Python 实现:
from functools import lru_cache
def largest_number_less_than(n: int, digits: list[int]) –> int:
"""返回仅由 digits 中数字组成的、严格小于 n 的最大非负整数。
数字可重复使用,多位数不允许前导零,无解返回 -1。
"""
if n <= 0:
return –1
available = sorted(set(digits), reverse=True)
if not available or any(d < 0 or d > 9 for d in available):
return –1
upper = str(n – 1) # 把“< n”转换为“<= n – 1”
length = len(upper)
@lru_cache(None)
def build(pos: int, tight: bool) –> str | None:
if pos == length:
return ""
limit = int(upper[pos]) if tight else 9
for digit in available: # 从大到小,第一个可行解就是最大解
if digit > limit:
continue
if pos == 0 and length > 1 and digit == 0:
continue
suffix = build(
pos + 1,
tight and digit == int(upper[pos]),
)
if suffix is not None:
return str(digit) + suffix
return None
same_length = build(0, True)
if same_length is not None:
return int(same_length)
# 等长无解:从 length – 1 开始尝试更短的数。
max_digit = available[0]
non_zero = [digit for digit in available if digit != 0]
for shorter_length in range(length – 1, 0, –1):
if shorter_length == 1:
return max_digit
if non_zero:
return int(str(non_zero[0]) + str(max_digit) * (shorter_length – 1))
return –1
以 n=23121 和 A={2,4,9} 为例:第一位只能取 2,与上界相等;第二位在不超过 3 的数字中取最大的 2,此时前缀 22 已经严格小于 23;后三位因而全部填 9,得到 22999。
设 L 为 n 的位数,D=|A|。记忆化搜索只有 pos 和 tight 两类有效状态,时间复杂度为
O
(
L
D
)
O(LD)
O(LD),递归栈和构造结果所需空间为
O
(
L
)
O(L)
O(L)。若题目改为“每个数字只能使用一次”,则需要增加 used_mask 状态,问题和复杂度都会发生变化。
面试收束:这道题不是“每位尽量取大”这么简单,而是带上界约束的数位构造;贪心决定候选顺序,回溯或数位 DP 保证全局可行。
推荐阅读
Rocky一直在运营技术交流群(WeThinkIn-技术交流群),这个群的初心主要聚焦于技术话题的讨论与学习,包括但不限于算法、开发、竞赛、科研以及工作求职等。群里有很多人工智能行业的大牛,欢迎大家入群一起学习交流~(请添加小助手微信Jarvis8866,拉你进群~)
1. 深入浅出完整解析AI Agent(AI智能体)的核心基础知识
2025年可以说是AI Agent全面落地应用的元年,因此Rocky在持续撰写对AI Agent的全维度解析文章:
深入浅出完整解析AI Agent(AI智能体)的核心基础知识
2. 深入浅出完整解析扩散模型DDPM、DDIM、Score-Based、SDE、LDM、Classifier/Classifier-Free Guidance、Rectified Flow核心基础知识
Rocky对扩散模型的本质原理与和核心基础知识进行了全面系统的深入浅出分析讲解,同时不断跟进补充扩散模型的最新技术发展,希望能给大家带来帮助:
深入浅出完整解析扩散模型DDPM、DDIM、Score-Based、SDE、LDM、Classifier/Classifier-Free Guidance、Rectified Flow核心基础知识
3. 入浅出完整解析FLUX.2、Seedream(即梦)、Z-image、GLM-Image核心基础知识
Rocky对AIGC时代“中场时刻”之后的主流AIGC创作大模型的核心基础知识进行了全面系统的深入浅出分析讲解,力求让大家通俗易懂理解AIGC时代的技术浪潮的本质价值:
入浅出完整解析FLUX.2、Seedream(即梦)、Z-image、GLM-Image核心基础知识
4. 深入浅出完整解析FLUX.1 Kontext和FLUX.1 Krea核心基础知识
Rocky对FLUX.1 Kontext和FLUX.1 Krea的核心基础知识作了全面系统的梳理与解析:
深入浅出完整解析FLUX.1 Kontext和FLUX.1 Krea核心基础知识
5. 深入浅出完整解析DeepSeek系列核心基础知识
Rocky对DeepSeek系列模型的核心基础知识作了全面系统的梳理与解析:
深入浅出完整解析DeepSeek系列核心基础知识
6. 深入浅出完整解析Stable Diffusion 3(SD 3)和FLUX.1系列核心基础知识
Rocky对Stable Diffusion 3和FLUX.1的核心基础知识作了全面系统的梳理与解析:
深入浅出完整解析Stable Diffusion 3(SD 3)和FLUX.1系列核心基础知识
7. 深入浅出完整解析Stable Diffusion XL(SDXL)核心基础知识
Rocky对Stable Diffusion XL的核心基础知识作了全面系统的梳理与解析:
深入浅出完整解析Stable Diffusion XL(SDXL)核心基础知识
8. 深入浅出完整解析Stable Diffusion(SD)核心基础知识
Rocky对Stable Diffusion 1.x-2.x系列模型的核心基础知识做了全面系统的梳理与解析:
深入浅出完整解析Stable Diffusion(SD)核心基础知识
9. 深入浅出完整解析Stable Diffusion中U-Net的前世今生与核心知识
Rocky对Stable Diffusion中最为关键的U-Net结构进行了深入浅出的全面解析,包括其在传统深度学习中的价值和在AIGC中的价值:
深入浅出完整解析Stable Diffusion中U-Net的前世今生与核心知识
10. 深入浅出完整解析LoRA(Low-Rank Adaptation)模型核心基础知识
对于AIGC时代中的“ResNet”——LoRA模型,Rocky进行了深入浅出的全面讲解:
深入浅出完整解析LoRA(Low-Rank Adaptation)模型核心基础知识
11. 深入浅出完整解析ControlNet核心基础知识
AIGC图像创作开源社区已经形成以Stable Difffusion/FLUX为核心,ConrtolNet和LoRA作为首要AI辅助工具的变化万千的AIGC图像创作工作流。
ControlNet正是让AI图像创作社区无比繁荣的关键一环,它让AIGC图像创作过程更加的可控,更有助于广泛地将AIGC算法解决方案应用到各行各业中:
深入浅出完整解析ControlNet核心基础知识
12. 深入浅出完整解析Sora、Seedance、keling等AI视频大模型核心基础知识
AI绘画和AI视频是两个互相促进、相互交融的领域,2024年无疑是AI视频领域的爆发之年,Rocky对AI视频领域核心的Sora、Seedance、Keling等大模型进行了全面系统的梳理与解析:
深入浅出完整解析Sora、Seedance、keling等AI视频大模型核心基础知识
13. 深入浅出完整解析AIGC时代Transformer核心基础知识
在AIGC时代中,Transformer为AI行业带来了深刻的变革。Transformer架构正在一步一步重构所有的AI技术方向,成为AI技术架构大一统与多模态整合的关键核心基座,大有一统“AI江湖”之势。Rocky也对Transformer模型进行持续的深入浅出梳理与解析:
深入浅出完整解析AIGC时代Transformer核心基础知识
14. 深入浅出完整解析ComfyUI、Diffusers、Stable Diffusion WebUI等主流AIGC创作框架核心基础知识
AIGC创作框架正是AIGC算法工作流的运行载体,目前主流的AIGC创作框架有ComfyUI、Diffusers、Stable Diffusion WebUI等。在传统深度学习时代,PyTorch、TensorFlow以及Caffe是传统深度学习模型的基础运行框架,到了AIGC时代,Rocky相信ComfyUI就是AIGC时代的“PyTorch”、Stable Diffusion WebUI就是AIGC时代的“TensorFlow”、Diffusers就是AIGC时代的“Caffe”:
深入浅出完整解析ComfyUI、Diffusers、Stable Diffusion WebUI等主流AIGC创作框架核心基础知识
15. 深入浅出完整解析ComfyUI、Diffusers、Stable Diffusion WebUI等主流AIGC创作框架核心基础知识
在AIGC时代中,如何快速转身,入局AIGC产业?如何成为AIGC/LLM/AI Agent算法/开发工程师?如何在学校中系统性学习AIGC/LLM/AI Agent知识,斩获心仪的AIGC/LLM/AI Agent算法/开发offer?
Don‘t worry,Rocky为大家总结整理了全面的AIGC/LLM/AI Agent算法/开发工程师成长秘籍,为大家答疑解惑,希望能给大家带来帮助:
手把手教你成为AIGC/LLM/AI Agent算法/开发工程师,斩获AIGC/LLM/AI Agent算法/开发offer!
16. AIGC产业的深度思考与分析
2023年3月21日,微软创始人比尔·盖茨在其博客文章《The Age of AI has begun》中表示,自从1980年首次看到图形用户界面(graphical user interface)以来,以OpenAI为代表的科技公司发布的AIGC模型是他所见过的最具革命性的技术进步。
Rocky也认为,AIGC及其生态,会成为AI行业重大变革的主导力量。AIGC会带来一个全新的红利期,未来随着AIGC的全面落地和深度商用,会深刻改变我们的工作、生活、学习以及交流方式,各行各业都将被重新定义,过程会非常有趣。
那么,在此基础上,我们该如何更好的审视AIGC的未来?我们该如何更好地拥抱AIGC引领的革新?Rocky准备从技术、产品、商业模式、长期主义等维度持续分享一些个人的核心思考与观点,希望能帮助各位读者对AIGC有一个全面的了解:
深入浅出全面解析AIGC时代核心价值与发展趋势(2025年版)
17. AI算法工程师的独孤九剑秘籍
为了方便大家实习、校招以及社招的面试准备,同时帮助大家提升扩展技术基本面,Rocky将符合大厂和AI独角兽价值的算法高频面试知识点撰写总结成《三年面试五年模拟》之独孤九剑秘籍:
【三年面试五年模拟】AIGC时代的算法工程师的求职面试秘籍(持续更新中)
18. 深入浅出完整解析AIGC时代中GAN(Generative Adversarial Network)系列模型核心基础知识
GAN系列模型作为传统深度学习时代的最热门生成式Al模型,在AIGC时代继续繁荣,作为Stable Diffusion/FLUX系列大模型的“得力助手”,广泛活跃于AlGC图像创作的产品与工作流中:
深入浅出完整解析AIGC时代中GAN(Generative Adversarial Network)系列模型核心基础知识



