
1. 先搞清楚“AI Infra 项目”在简历里到底意味着什么如果你正在准备AI或后端开发的面试想把“AI Infra”AI基础设施项目写进简历那首先要明白面试官想看到什么。他们不是想听你罗列一堆技术名词而是想确认你是否真的理解如何把零散的AI能力比如大模型、知识库、工具调用整合成一个稳定、可扩展、能解决实际问题的工程系统。一个典型的误区是把“我用过LangChain调了API”或者“我搭了个RAG demo”就当作AI Infra项目。这远远不够。真正的AI Infra项目核心是工程化和端到端。它意味着你需要考虑从用户请求接入、路由决策、知识检索、模型调用、工具执行到最终结果返回、日志监控、错误处理的完整链路。你写在简历上的“LLM网关 RAG LLM-Wiki结合 MCP、Skills”恰好是这条链路上几个非常关键且能体现你工程深度的组件。LLM网关这是流量的总入口和调度中心。它解决了模型厂商切换、负载均衡、限流降级、统一鉴权、成本核算和监控埋点的问题。写这个说明你考虑过生产环境的稳定性和可运维性。RAG这是让大模型“说真话”、减少幻觉的核心技术。但难点不在于调用检索接口而在于知识库的构建、更新、索引优化和检索质量评估。你如何处理多源异构数据如何做分块Chunking和向量化如何平衡召回率与精度如何做冷启动和增量更新LLM-Wiki这可以理解为你基于RAG构建的一个具体应用场景比如内部知识库问答它考验的是你将RAG能力产品化的能力包括前端交互、会话管理、溯源展示等。MCP这是Model Context Protocol一个由Anthropic等公司推动的协议旨在标准化LLM与外部工具/数据源的连接方式。了解并应用MCP表明你关注行业前沿标准致力于构建更开放、可插拔的AI应用架构而不是写死一堆API调用。Skills可以理解为封装好的、可供LLM调用的具体工具能力如计算器、查天气、执行数据库查询。集成Skills体现了你构建智能体的思路让LLM不仅能回答问题还能执行动作。所以当你的简历上出现这个组合时面试官会默认你具备构建一个微服务化、插件化、具备知识增强和工具调用能力的AI应用后端的潜力。接下来你需要用项目细节证明这一点。2. 如何设计你的“端到端”项目架构与核心流程一个能经得起深挖的项目必须有清晰的架构图和核心数据流。不要只写“我用了Spring Boot和Milvus”要讲清楚它们是如何协作的。2.1 分层架构设计一个建议的分层架构如下接入层LLM网关。可以使用开源的LLM Gateway项目如OpenAI格式兼容的网关或基于Spring Cloud Gateway/Kong自行封装。核心是统一API入口/v1/chat/completions并在这里实现认证、路由根据请求头或内容分发到不同下游服务、限流、日志和基础监控。应用服务层对话服务处理普通的聊天对话直接调用底层LLM API如OpenAI、通义千问、DeepSeek等。通过网关路由过来。RAG问答服务处理需要知识库辅助的问答。这是核心内部会调用检索模块。工具调用服务处理需要执行Skills的请求。根据LLM生成的工具调用请求遵循Function Calling格式路由到具体的Skill执行器。能力层检索模块封装向量数据库如Milvus, Qdrant, Weaviate的交互、文本分块、向量化使用BGE、text2vec等嵌入模型逻辑。向上为RAG问答服务提供retrieve(query, top_k)接口。Skills执行引擎一个Skills的注册中心与执行器。Skills可以本地实现如一个计算函数也可以是远程服务。MCP Server可以在这里被集成作为一个标准化的Skill供给源。你的服务可以充当MCP Client调用这些标准化工具。LLM调用客户端封装对多个LLM供应商API的调用处理不同的API格式、错误重试、Token计数等。数据层向量数据库存储文档块向量。关系型数据库存储用户对话历史、Skill执行日志、知识库元数据等。对象存储存储原始的PDF、Word等知识库源文件。2.2 核心数据流一次RAGTool Call的请求假设用户问“我们公司Q3的销售额是多少顺便帮我计算一下环比增长率。”请求接入请求到达LLM网关网关进行鉴权、限流后根据路径或内容特征将请求路由到“RAG问答服务”。意图识别与路由RAG服务首先可能用一个轻量级分类模型或规则判断这个问题需要知识库查销售额还是需要工具计算增长率。更常见的做法是全部交给LLM做规划。服务会组装一个包含系统指令、可用Skills描述的Prompt给LLM。LLM规划与工具调用LLM返回一个结构化响应可能包含两部分a) 需要检索“Q3销售额”的相关信息b) 需要调用“计算器”Skill参数是销售额数据。并行执行RAG分支服务从LLM响应中提取检索Query如“Q3 销售额”发送给检索模块。检索模块从向量库中找到相关文档片段返回给服务。Tool Call分支服务从LLM响应中提取要调用的Skill名称和参数调用Skills执行引擎。引擎找到本地计算器Skill或通过MCP调用远程计算服务执行计算并返回结果。结果合成RAG服务将检索到的文档片段和工具执行结果再次组装成Prompt发送给LLM进行最终答案的合成。LLM生成自然语言回答“根据财报Q3销售额为500万元。Q2销售额为400万元环比增长率为25%。”响应返回最终答案经由RAG服务、网关返回给用户。这个流程清晰地展示了LLM作为“大脑”RAG提供“记忆”Skills提供“手脚”的协作模式。在简历或面试中画出这个流程图并讲解比你罗列十项技术都有用。3. 关键组件的落地细节与避坑指南3.1 LLM网关不只是代理做什么统一入口路由到不同的下游服务自有模型、OpenAI、Azure、RAG服务、工具服务。关键实现路由策略基于请求头X-Model-Type或基于Prompt内容关键词进行路由。Fallback机制当主用模型如GPT-4超时或失败自动降级到备用模型如GPT-3.5-Turbo。这需要在网关层面维护模型列表和健康状态。Token计数与成本核算在网关处统一计算请求和响应的Token数关联到用户或部门用于成本分摊。可以使用tiktoken等库。监控告警集成Prometheus暴露指标请求量、延迟、错误率、Token消耗配置Grafana看板和告警规则。避坑点注意不要将业务逻辑如RAG检索放在网关中。网关应保持轻量只做流量管控。复杂的业务路由最好放在后端的业务服务里网关只做初步分流。3.2 RAG系统质量比功能更重要核心挑战检索质量直接决定最终答案质量。很多人只关注了“搭起来”没关注“好不好用”。关键实现文本分块不要简单按固定字符数切割。对于中文尝试按标点、段落或使用语义分割模型。对于表格、代码需要特殊处理以保持结构。向量模型选型不要盲目使用通用的text-embedding-ada-002。针对中文领域BGE、text2vec系列模型通常有更好表现。需要在自己的业务语料上做小规模测试看相似问题能否召回正确答案。检索优化混合检索结合向量检索语义和关键词检索如BM25提升召回率。重排序初步检索出10个片段后使用一个更精细的交叉编码器模型如bge-reranker对它们进行重排序选出最相关的3个送入LLM可以显著提升精度并节省Token。知识库更新设计一个流水线支持增量更新。新文档入库后能自动触发分块、向量化、索引更新并让旧缓存失效。避坑点数据清洗90%的RAG问题源于脏数据。PDF解析乱码、HTML标签未去除、无关广告文本等都会污染向量空间。必须花时间做数据预处理。评估体系搭建一个简单的评估流程。准备一批标准问题Q和参考答案A用你的RAG系统跑出答案A‘使用LLM如GPT-4自动评判A’与A的相关性、准确性。没有评估优化就是盲目的。3.3 MCP与Skills集成实现动态能力扩展MCP是什么你可以把它理解为AI版的“USB协议”。一个MCP Server对外提供一组标准化的工具比如数据库查询、画图、发送邮件任何兼容MCP Client的AI应用如Claude Desktop、你的服务都能发现并调用这些工具而无需为每个工具单独开发集成代码。如何集成在你的“Skills执行引擎”中集成一个MCP Client。这个Client可以主动连接到你配置的MCP Server例如一个提供公司内部数据库查询的MCP Server。MCP Server启动时会向Client声明自己提供的工具列表名称、描述、参数schema。当你的服务需要为LLM提供工具选项时它不仅可以列出本地Skills还可以从MCP Client获取远程工具列表一并组装进Prompt。LLM选择调用某个MCP工具时你的服务通过MCP Client将参数转发给对应的MCP Server执行并返回结果。Skills设计本地Skills应设计成无状态、功能单一的函数或微服务。例如# 一个简单的计算器Skill示例 class CalculatorSkill: name “calculator” description “执行数学计算支持加减乘除和括号。” parameters {...} # JSON Schema定义参数 def execute(self, expression: str) - str: try: # 安全警告生产环境必须使用安全的eval替代方案如ast.literal_eval或自定义解析器 result eval(expression) return str(result) except Exception as e: return f“计算错误: {e}”避坑点安全性这是最大的坑。尤其是执行计算、代码、系统命令的Skill必须进行严格的输入验证、权限控制和沙箱隔离。永远不要相信LLM直接生成的、未经清洗的参数去调用系统命令。工具描述给LLM的工具描述description和parameters必须清晰、准确、无歧义。模糊的描述会导致LLM错误调用。4. 从Demo到简历如何提炼亮点并准备面试问答项目跑通只是第一步如何表达才是关键。4.1 简历项目描述公式不要写“负责LLM网关和RAG系统的开发。” 要写“主导设计了公司AI中台的智能问答架构通过引入LLM网关统一了多模型接入与流量管控使模型切换成本降低70%搭建了基于混合检索与重排序的RAG管道在内部知识库场景下将答案准确率从60%提升至85%通过集成MCP协议实现了外部工具的动态插拔支持业务方快速上线新的AI能力。”要点技术栈 你做的具体设计/决策 可量化的结果提升效率、降低成本、提高准确率、支持业务规模。即使没有真实线上数据也可以用“通过压测系统支持QPS达到…”“通过人工评估准确率提升至…”来表述。4.2 预设面试问题与回答思路问你的RAG系统检索效果不好怎么办答我会启动一个排查链路。首先检查输入看用户问题是否清晰是否需要query改写。其次检查数据看被检索的文档块质量是否分块不合理或包含噪音。然后检查模型评估使用的向量模型是否适合当前领域考虑微调或更换。接着检查检索过程是否可以考虑引入混合检索或重排序。最后检查LLM合成看提供给LLM的上下文是否过多或过少调整上下文窗口和Prompt指令。我们建立了基于LLM-as-Judge的自动评估流程来辅助这个过程。问LLM网关如何做负载均衡和熔断答负载均衡方面对于同一个模型如GPT-4我们配置了多个API-KEY网关采用轮询或加权随机策略分发请求避免单个KEY限流。熔断方面我们集成了Resilience4j或Sentinel为每个下游模型服务设置独立的熔断器。当请求失败率或慢调用比例超过阈值熔断器会打开后续请求快速失败并定期进入半开状态试探恢复。同时网关会实时监控各模型服务的延迟和错误码用于动态调整路由权重。问MCP和你们自己写的Skills有什么区别怎么选答MCP是一种标准化协议适合将已有的、复杂的、独立的外部服务如内部CRM系统、数据分析平台暴露给LLM。它的优势是解耦和标准化服务提供方只需实现MCP Server所有MCP Client都能用。而我们自己写的Skills通常是轻量的、通用的、无状态的工具函数如计算、格式化、简单查询更适合内嵌在应用内部延迟更低控制更强。选型上对于公司核心业务系统我们推荐其提供MCP接口对于通用小工具我们内部实现为Skill。问如何保证工具调用的安全性答这是一个多层防御体系。第一层权限控制在网关和业务服务层校验用户身份和权限决定其能否调用特定Skill。第二层输入验证与清洗对LLM传来的参数进行严格的Schema校验和内容过滤如防SQL注入、命令注入。第三层沙箱隔离对于执行代码或命令的高风险Skill必须在独立的、资源受限的容器或沙箱环境中运行。第四层操作审计所有工具调用必须记录详尽的日志谁、何时、调用什么、参数、结果用于事后审计和问题追踪。把这个项目的每个环节都想深一层从“能用”到“好用”、“稳定”、“安全”你简历上的这个“AI Infra项目”就不再是空中楼阁而是一个能充分展示你全栈工程能力和AI应用思维的王牌案例。面试时你就有的讲了。