自我介绍面试官你好我叫XXX主攻Java后端 AI工程化方向。技术栈覆盖MySQL、Redis、MQ、Spring、LangChain、LlamaIndex、RAG、MCP等擅长将AI能力落地到真实业务系统。曾主导开发“高校私有文档智能检索系统”基于RAG架构支持师生快速查询历史课件与资料提升教学效率另参与“短信短链广告效果归因平台”通过短链缩短短信成本30%并结合点击/转化数据帮助企业优化投放策略。长期在CDN平台撰写技术博客累计浏览量超20万持续输出AI工程化实践与架构思考。我希望将我的Java工程能力与AI系统设计经验结合参与构建下一代智能Agent系统推动AI从“能跑”到“好用”。拷打agent项目react是怎么设计的多轮对话是怎么实现信息传递的每个agent在每轮对话中的记忆是怎么样的在我们的系统中ReAct 是通过Prompt 模板 Tool Registry 状态机来实现的。每一轮 Agent 会先输出 Thought思考过程然后决定 Action调用哪个工具系统执行工具后返回 Observation再拼接到上下文中进入下一轮。整个流程是循环直到满足终止条件如生成最终答案或达到最大轮数。多轮对话的信息传递分为三层短期上下文使用滑动窗口如最近 6 轮或 4096 tokens直接拼进 Prompt中期记忆对较早的对话做摘要summary再注入上下文长期记忆将历史对话和用户偏好存入向量库通过语义检索召回相关内容在每个 Agent 的每一轮对话中记忆可以分为四部分System Prompt角色定义、工具说明、输出格式短期记忆Working Memory当前对话窗口WindowMemory / Turn Buffer长期记忆Long-term Memory用户画像历史关键对话向量检索之前任务的执行结果执行记忆Episodic Memory本轮已经调用的工具工具返回结果中间思考轨迹ReAct 设计我们通过 Prompt 模板显式引导模型输出 Thought / Action / Observation并在代码中维护一个 Agent Loop直到满足结束条件。多轮对话传递采用三层记忆短期用滑动窗口维护上下文中期用摘要压缩长期通过向量数据库存储历史对话和文档。Agent 每轮记忆每一轮 Agent 都会拿到系统提示词 当前窗口上下文 检索到的长期记忆 本轮工具执行记录形成一个完整的状态对象再送入模型。长短期记忆的理解在我的理解中Agent 的短期记忆主要对应当前上下文窗口包括系统提示词、最近几轮对话、工具调用结果等通常由 WindowMemory 或 Turn Buffer 维护特点是容量有限、实时性强。长期记忆则是外部持久化存储我们会把用户画像、历史关键对话、行为日志、文档知识等存入向量数据库在需要时通过语义检索召回并注入到当前 Prompt 中。这和传统深度学习里的 LSTM 长短记忆不同LSTM 是在模型参数内部维护隐状态而 Agent 的长期记忆更多是外部知识库 检索增强更可控、可解释、可更新。RAG是怎么实现的reader和splitter的策略是什么RAG主要是检索生成增强主要过程是数据导入-文档分块通过语义分块和关键词分块-向量嵌入设计统一的BaseExcuter接口然后定义md_excuterpdf_excuter等执行计划实现可插拔的向量嵌入-存储向量数据库Milvus向量数据库-检索前处理技术HyDE假设性文档-索引优化技术通过关键词检索BM25语义检索FIASS的混合检索策略-索引后处理技术通过重排序选出最相关的Top-K个记录-文档评估这一些列流程实现一个完整的RAG系统。reader策略是1.格式匹配PDF。word等不同的文档用专属的解析器2.结构化读取设置统一的结构化数据方便后续进行统一的读取splitter1.按语义分割通过标点符号或段落分割优先表证语义的完整性2.按固定长度分割设置固定的token分片再通过滑动窗口解决边界丢失问题3.混合检索按关键词加语义检索召回效率不好怎么优化切割方案多路召回query rewrite1.我们可以考虑使用混合检索的方法使用语义加关键词的混合检索技术2.也可以使用HyDE伪文档生成技术使用大模型基于用户的问题生成一段假设型文档将该文档用于向量检索找到最相似的真实文档基于这些文档生成最终答案3.优化的多路召回引入多维检索范式让它不仅局限于查询本身而是通过查询扩展多个相关维度。例如关键词的检索基于向量相似度的检索基于知识图谱的检索通过多角度数据源进行检索能捕获更多与用户意图相关的文档从而大大减少漏照的可能性。并对这些候选段落进行更细致的相关打分和重排。提升重排的准确率MCP的stdio和sse有什么区别维度stdioSSE通信方式标准输入输出HTTP Server-Sent Events部署范围本机进程跨网络 / 云端是否流式通常是同步阻塞支持流式响应扩展性差单机好分布式典型场景CLI Agent / 本地工具插件云端 Agent / 多轮推理 / 多步工具在我的理解中MCP 的 stdio 和 SSE 本质上是两种通信模式。stdio 更适合本地 Agent通过标准输入输出在同一台机器上进行工具调用实现简单、无网络开销但不具备分布式能力。而 SSE 基于 HTTP 的服务器推送机制支持跨网络、跨节点的云端 Agent 部署能够流式返回中间结果非常适合分布式集群和多轮推理场景。我们在实际项目中会根据部署形态选择本地调试用 stdio线上服务用 SSE。传统调api vs 使用mcp的体感差异传统 API每个工具一套接口参数、鉴权、错误处理全都要手写多工具组合时编排成本高MCP统一 A2A / 工具描述规范工具即插件Agent 只关心能力支持流式、状态保持、可观测体感差异传统 API 是“我在适配系统”MCP 是“系统在服务我”第二个项目实现幂等幂等性是指同一请求被多次执行系统状态和结果保持一致。在我的项目中我主要通过 Redis 的StringRedisTemplate#setIfAbsent即 SET NX来实现。请求进来时我会生成一个唯一的业务 Key尝试写入 Redis写入成功 → 执行业务写入失败 → 说明请求已处理过直接返回同时会给 Key 设置合理的过期时间避免死锁。极端情况下数据库也会通过唯一索引做兜底校验。事务中MySQL崩了锁怎么释放MySQL 崩溃后锁的释放主要依赖 InnoDB 的崩溃恢复机制如果事务还没提交就崩溃重启时会通过undo log 回滚事务并释放对应的行锁如果事务已提交但数据页还没刷盘重启时会通过redo log 重放保证数据不丢所以无论哪种情况崩溃恢复完成后锁都会被正常释放不会出现永久死锁那你们项目里用的 Redis 分布式锁MySQL 崩溃了怎么办MySQL 的锁由 InnoDB 自动回收但 Redis 分布式锁必须依赖过期时间 TTL或看门狗机制否则会永久死锁。改成用户操作5次怎么改如果要限制用户最多操作 5 次我会用 Redis 来做分布式计数。设计 Key 为业务:用户ID每次请求进来先INCR如果是第一次就设置过期时间比如一天。如果计数超过 5直接拒绝请求。这种方式能保证原子性和高性能避免并发问题。极端情况下Redis 不可用可以用数据库做兜底校验RAG 在智能云盘中用什么向量库如何做文档切分向量库我们用的是Milvus线上规模在百万级文档以内性能和稳定性都满足需求。文档切分我们是按类型分策略Markdown按标题层级切保证语义完整PDF按页 段落切避免跨页断裂通用策略每块控制在 300–600 token设置 10–20% 的滑动窗口 overlap防止上下文丢失切分后的 chunk 会带上 meta文档ID、页码、标题层级方便召回后溯源。MCP 在项目中具体怎么用的和 LangChain 有什么区别在项目中MCP 主要作为Agent 与外部工具之间的统一通信协议本地调试用 stdio线上服务用 SSE工具通过 MCP 暴露能力描述Agent 只关心“要做什么”不关心接口细节和 LangChain 的区别在于LangChain 更偏向开发框架Chain / Agent / Memory 的编排MCP 更偏向通信与能力描述标准类似“工具侧的 OpenAPI”实际我们是LangChain MCP 组合使用LangChain 负责流程编排MCP 负责工具接入。Milvus 建索引用的 IVF / HNSW我们主要用IVF_FLAT和HNSW两种数据量千万级以内、QPS 较高 → IVF_FLAT召回稳定、构建快对召回质量要求极高、数据规模中等 → HNSW更高召回率内存占用更大参数上会做离线评估选RecallK vs QPS的 Pareto 最优点。向量维度和 embedding 模型怎么选一般遵循三条原则模型优先选定 embedding 模型后维度自然确定如 bge‑base 是 768 维对齐上下游向量库、索引类型、检索算法要和维度匹配业务权衡高精度场景 → 大模型 高维成本/延迟敏感 → 小模型 低维如 384 维实际我们做过 A/B最终选了bge‑base 768 维 IVF在成本和效果之间取得平衡。附加题Vibe Coding 大模型提示词链路设计帖子→广告投放JSON当然可以。这道题本质上不是考察你对某个具体技术细节的掌握而是考察你在面对陌生、复杂、开放性业务场景时如何借助大模型进行“问题拆解 思维引导 交互迭代 降本增效”。下面我从多个维度为你逐层拆解 实战策略 操作路径 高分要点帮你彻底吃透这道“行为面试 人机协作 工程思维”的综合题。先明确题目本质目的建立认知框架题干核心关键词“设计提示词链路”、“大模型根据输入输出指定格式JSON”、“帖子 → 广告投放”、“没理解可问大模型”、“看你如何跟大模型交互”、“考察问题思考和降本增效”这不是编程题而是“AI协作思维题”“产品工程化思维题”“Prompt工程实战题”。你要展示的是✅ 如何把模糊需求转化为可执行步骤✅ 如何利用大模型弥补自己知识盲区✅ 如何设计清晰、可迭代、可验证的提示词链路✅ 如何在有限时间内“低成本试错 高效产出”✅ 如何与大模型“对话式协作”而不是单向指令二、逐层拆解题干目的把“复杂场景”拆成可操作模块输入是什么“帖子” → 可能是社交媒体帖子、论坛内容、用户UGC、商品描述等。→ 你要先确认帖子的内容结构有没有标题、正文、标签、作者、发布时间是否有隐含意图输出是什么“指定格式的JSON” → 用于“广告投放”→ 你需要明确JSON结构如广告位、受众标签、预算、创意素材、投放时间等→ 举例{ ad_slot: feed_top, target_audience: [25-35岁, 女性, 美妆兴趣], creative: { title: 夏日清爽防晒霜限时8折, image_url: xxx.jpg, cta: 立即抢购 }, budget: 5000, schedule: 2025-06-01T09:00:00 }中间链路是什么“提示词链路” → 指的是你通过一系列Prompt引导大模型完成从“理解帖子”→“提取意图”→“匹配广告策略”→“生成结构化JSON”的全过程。你和大模型的互动方式→ 不是“一次问完”而是“分步引导 反馈修正 试错优化”→ 类似产品原型迭代先搭骨架 → 填内容 → 验证 → 优化 → 输出成品实战操作路径目的给你可复用的“人机协作流程”假设你完全没接触过这个场景但你在20分钟内要跑通一个可演示、可解释、有逻辑闭环的方案。✅ 第一步澄清需求主动提问 利用大模型辅助你说“第一次接触”面试官说“很正常”说明他期待你“主动提问 合理求助”。你可以这样启动“我理解这是一个从用户帖子中自动识别广告投放策略并结构化输出的任务。为了确保方向正确我想先确认几个点帖子的典型样例有哪些比如是小红书笔记微博动态还是商品评论输出JSON需要包含哪些必填字段有没有模板或示例广告投放策略的决策依据是什么比如是根据内容关键词用户画像还是平台规则”→ 如果面试官不给你马上转向大模型“大模型请帮我梳理一个典型‘帖子转广告投放’的场景示例包括输入帖子文本和对应的JSON输出格式最好带注释。”这是你第一次“用大模型补认知盲区”面试官会看到你的主动性✅ 第二步设计提示词链路核心环节不要一次性写个超长Prompt要“分阶段 模块化 有反馈机制”阶段1内容理解 → 提取关键信息Prompt示例“请从以下帖子中提取1核心产品/服务2用户意图/情绪3潜在受众特征4是否有促销/限时/优惠暗示。输出为结构化列表。”阶段2策略匹配 → 转化为广告参数Prompt示例“基于上一步提取的信息匹配适合的广告位如信息流顶部、评论区插播等、受众标签、创意方向和预算建议。请按以下模板输出{ad_slot, target_audience, creative_direction, budget_range}”阶段3格式化输出 → 转为指定JSONPrompt示例“将以上结果按照以下JSON schema输出不要加任何解释或额外文字{...}”可选阶段4验证/优化 → 让大模型自我检查Prompt示例“请检查以上JSON是否满足以下要求1所有字段非空2budget为数字3audience是数组4cta存在且合理。如有错误请修正并说明原因。”✅ 第三步实际跑通 展示协作过程你不是写代码而是“演示你如何和大模型对话”把你的“思考-提问-修正”过程说出来“我先让大模型帮我理解帖子内容 → 然后让它匹配广告策略 → 接着强制它输出JSON格式 → 最后让它自我校验一遍。刚才第一次输出JSON缺了schedule字段我就追加一句‘请补充投放时间字段默认为明天上午9点’ → 它马上修正了。这样虽然不是一次到位但通过多次交互我可以低成本地逼近理想结果。”→ 这个过程体现了迭代思维 试错成本低 人机协同 可控性强如何体现“降本增效”高分关键这是面试官明确提到的考察点你可以这样说“这个任务如果纯靠人工标注规则引擎需要大量人力做特征工程且泛化能力差。通过大模型提示链路我们只需要定义好输入输出结构和中间判断逻辑就能让模型自动处理海量帖子。同时提示词可复用、可微调、可记录——下次遇到类似场景直接复用模板小改即可边际成本趋近于零。这就是‘降本’——省人力、省时间‘增效’——快速部署、持续优化、支持多场景迁移。”→ 如果能举例说明“某个字段从人工判断变成模型自动判断”加分加分项展示“工程化思维”面试官想看到你不是“玩AI玩具”而是“能落地的工程师”。你可以补充“这个链路可以封装为API服务输入帖子→返回JSON前端或投放系统直接调用。”“可以加个‘置信度’字段当模型不确定时打标记转人工审核。”“未来可引入强化学习根据广告点击率反馈优化提示词。”“用LangChain或LlamaIndex框架可以模块化管理这些Prompt步骤。”如果时间紧张简化版操作流程救命方案20分钟不够那就走“最小闭环”用大模型生成1个“帖子 对应JSON”样例补认知写一个三步Prompt链Step 1: 提取关键信息Step 2: 匹配广告策略Step 3: 格式化输出指定schema实际跑一次展示“对话过程”说一句“如果线上跑不通我会记录bad case反向优化Prompt而不是改模型或重写逻辑。”总结这道题满分回答的关键词“不是懂不懂技术而是会不会用AI解决问题”你必须展现出 主动澄清 善于求助大模型补知识盲区 拆解复杂任务 → 模块化Prompt设计 人机协作 → 多轮交互 反馈修正 降本增效 → 可复用、可迁移、边际成本低 工程思维 → 可封装、可监控、可迭代 表达清晰 → 边做边讲让面试官看到你的“思维路径”✍️ 附赠模拟面试回答稿可用于口头表达“这个题一开始确实有点懵因为是第一次接触‘帖子转广告投放’这种具体业务链路。但我理解面试官想考察的是——面对陌生复杂需求时我能不能借助大模型来思考、拆解、执行并优化。我第一步是先向大模型提问让它给我一个典型输入输出示例帮助我建立认知。接着我把整个流程拆成三步1从帖子中提取关键要素2根据要素匹配广告策略3格式化成JSON。每一步我都写独立的Prompt确保清晰可控。我不是一次就成功而是跑了一遍后发现字段缺失就追加Prompt让它补全。这个过程虽然迭代了几次但整个成本非常低——不需要写代码不用训练模型只要改提示词就能优化。我觉得这才是真正的‘降本增效’——通过AI协作把原本需要大量人工规则的工作自动化、可复用、可扩展。未来还可以加入置信度判断、反馈闭环、A/B测试Prompt版本持续优化效果。而且整个过程我都边做边跟大模型对话就像和同事讨论方案一样这也正是面试官想看到的人机协同能力。”如果你能这样层层展开哪怕技术细节不完美也能拿下高分。因为你在展示的是思维、方法论、工程意识和AI协作能力——这才是AI时代工程师的核心竞争力。需要我帮你模拟写一份具体的Prompt链路脚本/JSON模板/对话记录也可以继续提我可以给你完整可复制的“操作手册”。加油你完全有能力把这题变成你的加分项。