
本文由 #公众号:一个正经的程序员 原创 作者:散淡样子 GitHub:https://github.com/LouisLiu00

现在的后端面试,早就跳出纯 CRUD、纯业务接口的范畴了。
很多公司的后端岗位描述看着很普通,只写微服务、业务开发,完全不提 AI,但面试大概率都会问到这几个核心知识点:Agent、RAG、MCP、Skill、Prompt。
很多人都疑惑:明明不是AI开发岗,为什么要考这些?
其实行业共识已经很明确了:现在没有完全脱离 AI 的后端开发。
企业根本不需要后端去训练大模型、调参优化模型效果,也不用做模型微调。但所有业务系统对接大模型后,产生的数据泄露、权限失控、模型乱输出、线上故障等问题,全部都要靠后端兜底解决。
简单说来:AI 负责智能应答、自动做事,后端负责把控边界、守住安全、稳住稳定性,不让 AI 闯祸。
今天就用大白话和极简落地代码,拆解这几个高频考点,不用背八股文,全是面试和做项目时能用的干货。
Agent:模型是打工调度员,决策权全在后端

别再迷信 Agent 全自动智能执行,真正的生产环境,绝对不会让 AI 自主操作核心业务。
自动删数据、自动退款、自动改订单、自动发福利,这些高危操作一旦交给 AI 自主执行,分分钟引发资损事故。
落地版 Agent 核心思路:模型只负责分析需求、规划步骤,所有真实业务操作,全部由后端接管校验执行。
极简工具路由管控代码:
// Agent 工具调用统一拦截
public ToolResult callTool(String userId, ToolCall call) {
// 校验工具是否合法
AgentTool tool = toolMap.get(call.getName());
if (tool == null) {
return ToolResult.fail("未知工具,禁止执行");
}
// 校验用户权限
if (!tool.hasPermission(userId)) {
return ToolResult.fail("权限不足");
}
// 高危操作二次确认
if (tool.isHighRisk() && !call.isConfirmed()) {
return ToolResult.fail("高风险操作,需手动确认");
}
return tool.execute(call.getArgs());
}模型没有事务、幂等和风险概念,容易重复调用、参数错乱。Agent 落地的核心从来不是智能,是可控、可拦截、可溯源。
RAG:根本不是检索知识,是管住模型别瞎编

绝大多数人面试答 RAG,只会死板背诵“检索增强生成”,面试官一听就知道是纸上谈兵。
线上落地 RAG,最大的坑从来不是检索不到内容,而是模型凭空编造信息,看似回答得有理有据,实则全是错的,也就是模型幻觉。
后端做 RAG 的核心逻辑很简单:知识库有内容就精准作答,没内容直接拒绝回答,绝不允许模型自由发挥。
给大家贴一段极简的核心代码,看懂就吃透 RAG 工程核心:
// 核心问答兜底逻辑
public String answerQuery(String userId, String question) {
// 带用户权限检索文档,避免跨权限查数据
List chunks = docIndex.search(question, userId, 5);
// 无知识库内容,直接降级
if (chunks.isEmpty()) {
return "暂无相关资料,无法解答";
}
// 组装强约束 Prompt
String prompt = buildStrictPrompt(question, chunks);
String res = llmClient.chat(prompt);
// 校验回答是否有资料依据,杜绝幻觉
if (!checkEvidence(res, chunks)) {
return "资料依据不足,建议转人工";
}
return res;
}说白了,RAG 的本质不是提升 AI 智商,是后端给模型划定回答边界,强制模型只做“有依据的回答”。
MCP:别背协议,重点是安全和审计

很多人面试被问 MCP,只会机械背诵“模型上下文协议”,这种回答基本拿不到高分。
MCP 的核心价值,是统一了模型和后端工具、上下文数据的交互标准,让 AI 可以标准化调用各类业务接口。
但标准化带来的最大问题就是权限失控,所以后端关注的重点从来不是协议本身,而是安全管控。
核心落地逻辑就三点:工具调用身份鉴权、敏感数据自动脱敏、全量操作日志审计。
比如查询用户信息的工具,通过 MCP 被模型调用时,后端必须拦截手机号、身份证、余额等隐私字段,同时记录调用人、调用时间、调用内容,方便后续合规排查,这才是 MCP 的工程落地重点。
Skill:就是给模型用的后端接口,校验必须更严

Skill 是几个概念里最简单的,没任何技术门槛,本质就是封装好的标准化后端业务能力。
我们平时写的查询订单、生成工单、统计用户数据的接口,普通人手动调用叫普通接口,交给 AI 模型自动调用,就叫 Skill。
最大的区别:人用接口会规避错误,模型传参极其随意,空参数、格式错乱、非法字段是常态。所以 Skill 的参数校验,要比前端调用的接口严格十倍。
// 模型调用 Skill 入参强制校验
public void checkOrderParam(Long userId, String orderNo) {
if (userId == null) {
throw new IllegalArgumentException("用户ID不能为空");
}
// 强制校验订单号固定格式
if (!orderNo.matches("OD\\d{12}")) {
throw new IllegalArgumentException("订单号格式错误");
}
}参数校验看着基础,但能杜绝 AI 多轮调用引发的连锁报错,是 Skill 稳定运行的关键。
Prompt:不是写话术,是可维护的配置规则

很多新手写 Prompt,喜欢直接把大段文本硬编码写在业务代码里,这是非常业余的写法。
后续改回答话术、加免责声明、调整输出风格,每次优化都要改代码、提版本、重新部署,维护成本极高。
工程化的 Prompt,是可版本、可配置、可清洗的模板,简单示例:
// 标准化 Prompt 模板
public String renderPrompt(Map params) {
// 读取配置中心的模板文本,不写死在代码
String template = config.getPromptTemplate("qa_v1.0");
// 清洗脏数据、替换变量
String cleanText = cleanIllegalChar(params.get("question"));
return template.replace("${question}", cleanText);
}Prompt 从来不是比拼文案功底,而是可迭代、可回滚、不用改代码就能优化的工程规则。
最后聊句实在的
后端岗考察 AI 相关能力,真不是企业刻意为难人。
大模型本身的出错概率很低,线上绝大多数 AI 相关事故,全是后端收口不到位导致的:权限混乱、数据泄露、参数异常、重复执行、无降级兜底。
未来容易被淘汰的后端,不是不懂 AI 的人,是只会写 CRUD、不会对接 AI、不懂风险管控的纯业务开发。
面试遇到这几个知识点,别死背概念,结合代码、聊落地、聊兜底、聊安全,绝对是高分答案。
你们面试后端,被这些 AI 新考点卡过吗?评论区聊聊~