AI Agent 面试 - 高频拷打题合集(牛客热帖 3.1W 浏览)

来源:牛客网热帖 "Agent面试拷打!" 2025-03-24 | 浏览量 31000+

这些是当前面试中实际在问的题目,适合逐题准备。


一、Agent 架构与设计

1. 你理解的 Agent 架构是什么?一个 Agent 系统一般由哪些模块组成?

参考答案:

  • Agent 本质是 LLM + 感知 + 规划 + 行动 + 记忆 的闭环系统,能自主完成多步骤任务

  • 核心模块:**Brain(LLM)**负责推理与决策;Planning 负责任务分解与路径规划;Memory 提供上下文与历史信息;Tool Use 执行外部操作(API/数据库/搜索);Observation 接收工具返回并反馈给 LLM

  • 典型架构参考:OpenAI Function Calling 模式、LangChain Agent、AutoGPT 循环架构

  • 控制流一般是 循环式:Perceive → Think → Act → Observe → Think → ... 直到任务完成或达到最大轮次

  • 工程层面还需要:Guardrails(输出校验/安全过滤)、日志与可观测性错误重试与降级策略

2. Tool 是怎么设计的?什么样的功能应该做成 Tool?

参考答案:

  • Tool = 一个有明确输入输出的函数,通过 JSON Schema 描述参数,让 LLM 能理解何时调用、如何传参

  • 适合做成 Tool 的场景:LLM 本身做不好的事——实时数据查询、精确计算、外部系统操作(下单/发邮件)、文件读写

  • 设计原则:单一职责(一个 Tool 做一件事)、参数语义清晰(description 写给 LLM 看)、返回值结构化(便于 LLM 解析)

  • 要做好 错误处理:Tool 执行失败时返回有意义的错误信息而非直接抛异常,让 LLM 能据此调整策略

  • 工程实践:Tool 数量控制在 10-20 个以内,太多会导致 LLM 选择困难;可以用 Tool Router 或分层 Agent 解决工具过多问题

  • 安全方面:高危操作(删除/支付)需加 人工确认环节(Human-in-the-loop)

3. Memory 分几种?Short-term / Long-term memory 怎么实现?

参考答案:

  • 短期记忆(Short-term):当前对话的上下文窗口,直接放在 prompt 的 message history 里;受 token 限制,需要做截断或摘要

  • 长期记忆(Long-term):跨会话持久化,通常存向量数据库(如 Pinecone/Milvus),每轮对话结束后将关键信息 embedding 后存入

  • 工作记忆(Working Memory):当前任务的中间状态,如 scratchpad、变量存储,用于多步推理过程中保持上下文

  • 短期→长期的转化:会话结束时用 LLM 提取摘要/关键事实,写入长期存储;下次会话开始时检索相关记忆注入 prompt

  • 实现方案:短期用 Redis/内存;长期用向量库 + 结构化数据库(用户画像/偏好用关系型存储更合适)

  • 关键挑战:记忆的遗忘与更新——旧信息可能过时,需要有机制覆盖或衰减

4. Agent 是怎么做任务规划的?是 ReAct 还是 Plan-Execute?

参考答案:

  • ReAct(Reasoning + Acting):每一步都 Thought → Action → Observation 交替进行,边想边做,适合探索性任务和步骤不确定的场景

  • Plan-and-Execute:先一次性生成完整计划(步骤列表),再逐步执行,适合结构化任务(如"帮我订机票+酒店+行程规划")

  • 实际生产中常用混合方案:先粗粒度 Plan,执行过程中遇到异常再用 ReAct 动态调整(Adaptive Planning)

  • Plan-and-Execute 的优势:减少 LLM 调用次数、可以做进度展示、支持人工审批

  • ReAct 的优势:灵活、能处理意外情况、不需要预知所有步骤

  • 高级方案:Tree of Thought(多路径探索)、Reflection(执行后自我反思并修正计划)

5. 多 Agent 协作是怎么做的?

参考答案:

  • 常见协作模式:主从模式(Orchestrator + Worker Agents)、管道模式(顺序传递)、辩论模式(多 Agent 讨论达成共识)

  • 典型框架:CrewAI(角色分工)、AutoGen(多 Agent 对话)、LangGraph(图状态机编排)

  • 通信机制:共享 Blackboard(共享状态空间)、消息传递(Agent 之间直接对话)、中央协调器分发任务

  • 工程要点:每个 Agent 要有明确的角色定义和能力边界,避免职责重叠导致冲突

  • 实际案例:代码生成场景 → Planner Agent 拆需求 + Coder Agent 写代码 + Reviewer Agent 审查 + Executor Agent 运行测试

  • 挑战:多 Agent 的成本控制(每个 Agent 都消耗 token)、一致性保证(多个 Agent 对同一事实的理解要一致)、死循环检测


二、RAG 全链路

6. 你做 RAG 的完整流程是什么?(数据 → 切分 → embedding → 向量库 → 检索 → 重排 → 生成)

参考答案:

  • 数据采集与清洗:从 PDF/网页/数据库等多源提取文本,去噪、去重、格式统一

  • 文档切分(Chunking):按语义段落切分(优于固定长度),保留标题/元数据;常用 RecursiveCharacterTextSplitter,chunk 间加 overlap

  • Embedding:用 text-embedding-3-small/BGE/M3E 等模型将 chunk 向量化,存入向量数据库(Milvus/Qdrant/FAISS)

  • 检索(Retrieval):用户 query embedding 后做 ANN 近似最近邻搜索,召回 top-K 相关 chunk

  • 重排(Rerank):用交叉编码器(如 bge-reranker、Cohere Rerank)对召回结果精排,显著提升相关性

  • 生成(Generation):将 rerank 后的 top-N chunk 作为 context 注入 prompt,LLM 据此生成答案

  • 后处理:引用溯源(标注答案来自哪个 chunk/文档)、幻觉检测、格式化输出

7. Chunk 大小怎么确定?为什么?

参考答案:

  • 没有万能值,需要根据文档类型和检索场景实验调优,通常 256-1024 token 是常见区间

  • 太小(<128 token):语义不完整,检索到也没用;太大(>2000 token):噪声多,embedding 质量下降,检索精度降低

  • 经验值:FAQ/知识库 → 256-512 token;技术文档/法律合同 → 512-1024 token;长篇叙述 → 按段落/章节切

  • Overlap 很重要:通常设 10-20% 的重叠,避免关键信息被切断

  • 进阶方案:语义切分(按段落/主题边界切,而非固定长度)、多粒度索引(同时建粗粒度和细粒度索引)

  • 评估方法:用标注好的 QA 对,比较不同 chunk 大小下的 Recall@K 和最终回答质量

8. 向量召回不准怎么办?

参考答案:

  • Query 改写/扩展:用 LLM 将用户原始 query 改写为多个变体,或做 HyDE(生成假设性答案再检索)

  • 多路召回融合:向量检索 + BM25 关键词检索 + 知识图谱检索,结果做 RRF(Reciprocal Rank Fusion)合并

  • 优化 Embedding 模型:换更强的模型(如 BGE-large、GTE);或在领域数据上 fine-tune embedding 模型

  • 优化切分策略:检查是否因为 chunk 切分不当导致语义破碎,调整 chunk 大小和 overlap

  • 添加元数据过滤:利用文档标题、分类、时间等元数据做 pre-filter,缩小检索范围

  • 引入 Rerank:向量粗召回 + 交叉编码器精排,效果提升通常很显著(10-30% MRR 提升)

9. 如何做 rerank?用什么模型?

参考答案:

  • Rerank 是对向量粗召回的 top-K 结果做交叉编码器精排,将 query 和每个 candidate 拼接后打分

  • 常用模型:Cohere Rerank API、bge-reranker-v2-m3(开源最强之一)、cross-encoder/ms-marco-MiniLM

  • 工作原理:交叉编码器同时看 query 和 doc,能捕捉细粒度语义交互,远优于双塔模型的独立编码

  • 实践要点:粗召回 50-100 个,rerank 后取 top 3-5 个喂给 LLM;rerank 增加 50-200ms 延迟,但值得

  • 轻量替代:用 LLM 本身做 rerank(把候选列表给 LLM 让它排序),效果好但成本高,适合离线场景

  • 还可以做 多阶段 rerank:向量召回 → 轻量 reranker → 重型 reranker,平衡效果与延迟

10. 如何评估 RAG 效果?指标是什么?

参考答案:

  • 检索质量指标:Recall@K(标注相关文档在 top-K 中的命中率)、MRR(平均倒数排名)、NDCG

  • 生成质量指标:Faithfulness(答案是否忠于检索到的文档,不编造)、Answer Relevancy(答案是否回答了问题)、Correctness(答案正确性)

  • 端到端指标:用户满意度、任务完成率、人工评分

  • 自动化评估框架:RAGAS(Retrieval-Augmented Generation Assessment)、TruLens、DeepEval

  • 评估数据集构建:从真实用户 query 中采样,人工标注 ground truth 答案和相关文档

  • 关键:分段评估,分别看检索准不准、生成好不好,定位瓶颈在哪个环节

11. RAG 和微调怎么取舍?

参考答案:

  • RAG 适合:知识频繁更新、需要引用溯源、数据量大但标注少、需要快速上线

  • 微调适合:特定领域的语言风格/格式要求、任务模式固定(如分类/抽取)、需要内化领域知识减少推理延迟

  • 组合方案最优:微调让模型学会领域"语感"和输出格式,RAG 提供实时知识——二者不矛盾

  • 成本对比:RAG 主要成本在检索基础设施和 embedding 计算;微调成本在训练数据标注和 GPU 训练

  • 决策框架:先上 RAG(快、灵活),效果不够再加微调;微调不能解决"模型不知道"的问题,RAG 可以

  • 反模式:不要用微调来"记住"事实——事实会变,微调后很难更新

12. 多路召回怎么做?

参考答案:

  • 核心思路:用不同检索方式互补盲区,每路召回一批候选,最后融合排序

  • 常见组合:向量检索(语义匹配)+ BM25/ES(关键词匹配)+ 知识图谱(结构化关系查询)

  • 融合策略:**RRF(Reciprocal Rank Fusion)**最简单有效,按排名倒数加权合并;或学一个融合模型做 learned fusion

  • 实现方式:各路检索独立并行执行,结果汇总后统一 rerank

  • 示例场景:"华为 Mate 60 电池容量"——向量检索可能召回相关但不精确的段落,BM25 能精确匹配"Mate 60"+"电池容量"关键词

  • 工程注意:各路召回量要平衡(如向量 top-50 + BM25 top-30),避免某一路完全主导结果

13. 如何降低 RAG 的延迟?

参考答案:

  • Embedding 缓存:对高频 query 缓存 embedding 结果,避免重复计算

  • 向量索引优化:用 HNSW/IVF-PQ 等近似索引替代暴力搜索;合理设置 nprobe/ef_search 平衡精度与速度

  • 异步并行:检索和 rerank 与 LLM 预热并行执行;多路召回并行请求

  • Streaming 输出:LLM 用流式返回,用户无需等全部生成完,体感延迟大幅降低

  • 缩减 context 长度:rerank 后只取 top-3 而非 top-10,减少 LLM 输入 token 数

  • 模型选择:embedding 用轻量模型(如 text-embedding-3-small);rerank 用蒸馏后的小模型;生成用速度快的模型(如 GPT-4o-mini)

  • 预计算:对文档库中的高频问题预生成答案,命中时直接返回


三、LLM 工程问题

14. 如何解决幻觉问题?

参考答案:

  • RAG 兜底:所有事实性回答都基于检索到的文档,prompt 中明确要求"仅基于提供的上下文回答"

  • 引用溯源:要求模型输出时标注信息来源([1][2]),便于用户验证,也约束模型不编造

  • 自我一致性检查:同一问题多次采样,取一致性最高的答案(Self-Consistency)

  • 后处理校验:用另一个 LLM 或规则引擎检查答案是否与 context 矛盾;对关键字段做事实核查

  • Prompt 约束:加入"如果你不确定,请说不知道"、"不要编造信息"等指令

  • 结构化输出:用 JSON Schema 约束输出格式,减少自由发挥空间

15. 如何降低模型幻觉?

参考答案:

  • 与上题有重叠,但侧重系统层面的策略:

  • 温度调低:temperature 设 0-0.3,减少随机性

  • 知识注入:通过 RAG 或 System Prompt 注入准确信息,减少模型依赖自身参数记忆

  • Fine-tune on domain data:让模型学会在特定领域的正确表达模式

  • Chain-of-Thought:要求分步推理,中间步骤暴露后更容易发现逻辑错误

  • Grounding:将关键实体链接到知识库,生成前先查证

  • 拒绝回答机制:训练或 prompt 让模型在低置信度时主动拒答,而非硬编一个答案

16. 如何让模型输出稳定格式?

参考答案:

  • JSON Mode / Structured Output:OpenAI 支持 response_format: { type: "json_object" },强制输出合法 JSON

  • Function Calling:通过定义函数参数的 JSON Schema,模型输出自动符合 schema

  • Few-shot 示例:在 prompt 中给 2-3 个完整的输入→输出示例,模型会模仿格式

  • Pydantic / Instructor 库:自动重试 + 校验,输出不合规时带着错误信息让模型修正

  • 后处理正则兜底:对 LLM 输出做正则提取/修复(如补全缺失的括号、去除 markdown 代码块标记)

  • 减少 temperature:降低随机性,格式一致性更好

  • 明确的格式指令:prompt 中详细说明输出格式要求,用模板框住

17. 如何做自动化 Prompt 优化(A/B test / eval)?

参考答案:

  • 构建评测数据集:收集真实用户 query + 标注的理想答案(golden dataset),至少 50-100 条覆盖各场景

  • A/B 测试框架:同时运行两版 prompt,按流量比例分流,对比关键指标(准确率/用户满意度/任务完成率)

  • 自动评估:用 LLM-as-Judge(GPT-4 评分)、RAGAS 指标、或领域特定的自动评分器

  • DSPy / PromptFlow:用编程方式定义 prompt pipeline,自动搜索最优 prompt 组合

  • 版本管理:每个 prompt 版本有唯一 ID,关联到评测结果,可追溯回滚

  • 持续迭代:上线后持续收集 bad case,补充到评测集,驱动下一轮 prompt 优化

  • 注意:不要只看平均分,要关注尾部 case(worst 10%),那些才是用户真正会投诉的


四、系统设计

18. 如果一个 Agent 系统 QPS 很高,你怎么设计架构?

参考答案:

  • 异步任务队列:用 Kafka/RabbitMQ 解耦请求接收与 Agent 执行,削峰填谷

  • Agent 无状态化:状态存 Redis/DB,Agent Worker 可水平扩容

  • LLM 调用池化:维护 API Key 池或自部署模型的多实例负载均衡,避免单点限流

  • 分级处理:简单查询走规则/缓存直接返回,复杂任务才走完整 Agent 链路

  • 限流与排队:按用户/租户做 rate limiting,超限排队而非拒绝

  • 预计算热点:高频问题(如"退货政策")预生成答案缓存,命中率高的可省掉 LLM 调用

19. 向量检索很慢怎么办?

参考答案:

  • 索引类型选择:HNSW(内存型,延迟低)适合百万级;IVF-PQ(量化压缩)适合千万-亿级

  • 缩小搜索范围:先用元数据(类目/时间/租户)做 pre-filter,再在子集中做向量搜索

  • 分片 + 并行查询:数据分片到多个节点,并行查询后合并结果

  • 降维:用 PCA 或 Matryoshka Embedding 将 1536 维降到 256-512 维,搜索速度成倍提升

  • GPU 加速:用 FAISS-GPU 或 Milvus GPU 索引,适合大批量请求

  • 结果缓存:高频 query 的检索结果缓存(TTL 可设较长,知识库不常变)

20. LLM 调用很慢怎么办?

参考答案:

  • Streaming 输出:首 token 延迟通常 200-500ms,流式返回让用户感知更快

  • 模型降级:非关键场景用小模型(GPT-4o-mini/Qwen-7B),关键场景用大模型

  • Prompt 精简:减少 system prompt 和 context 长度,token 少 = 生成快

  • 并行调用:多个独立的 LLM 请求并行发出(如同时生成摘要和分类)

  • 缓存:对相同输入缓存 LLM 输出(Semantic Cache —— 语义相似的 query 也命中缓存)

  • 自部署推理优化:vLLM/TGI + continuous batching + KV cache + 量化(AWQ/GPTQ),吞吐量提升 3-10x

  • 预生成:可预判的请求提前生成并缓存

21. 如何做缓存?

参考答案:

  • 多层缓存架构:L1 本地内存缓存(热点数据)→ L2 Redis 分布式缓存 → L3 持久化存储

  • 缓存什么:Embedding 结果、向量检索结果、LLM 完整回复、Rerank 结果

  • Semantic Cache:不只精确匹配 query,用 embedding 相似度判断——语义接近的 query 复用缓存答案(GPTCache)

  • 缓存策略:TTL 根据数据更新频率设定(知识库不常变→长 TTL;实时数据→短 TTL 或不缓存)

  • 缓存失效:知识库更新时主动清除相关缓存;用 version tag 标记数据版本

  • 注意:带个性化因素的请求(用户画像不同→答案不同)需要把用户特征也纳入缓存 key

22. 如何做降级?

参考答案:

  • LLM 降级链:GPT-4o 超时/限流 → 降级到 GPT-4o-mini → 降级到本地小模型 → 降级到规则引擎/模板回复

  • RAG 降级:向量检索超时 → 降级到 BM25 关键词检索 → 降级到热门 FAQ 匹配

  • 功能降级:复杂 Agent(多步推理)降级为单轮问答;个性化推荐降级为热门推荐

  • 熔断器模式:用 Circuit Breaker(如 Hystrix 思路),连续失败 N 次自动熔断,一段时间后半开试探

  • 用户提示:降级时要告知用户"当前服务繁忙,为您提供简化回答",管理预期

  • 预案演练:提前定义好各级降级策略并做压测验证,不要等线上出问题才临时想

23. 如何控制成本?(LLM 很贵)

参考答案:

  • 模型分级调用:简单任务用便宜小模型,只对复杂任务调用大模型(Router 模型自动分流)

  • 缓存复用:Semantic Cache 命中率高时可省 50%+ 的 LLM 调用

  • Prompt 压缩:去掉冗余的 context、用 LLMLingua 等工具压缩 prompt、减少 few-shot 示例数量

  • 批处理:非实时场景攒批调用,利用 Batch API(OpenAI Batch API 半价)

  • Token 预算控制:每次请求设 max_tokens 上限;每用户/每天设 token 消耗配额

  • 自部署模型:高 QPS 场景自建推理服务(vLLM + 开源模型),长期成本远低于 API

  • 监控与告警:实时监控 token 消耗和费用,异常飙升时自动告警并限流

24. 如何设计一个高并发的 RAG 系统架构?

参考答案:

  • 整体架构:API Gateway → 请求队列 → RAG Worker 集群 → 向量数据库集群 + LLM 服务池

  • 检索层:向量数据库(Milvus/Qdrant)多副本部署 + 读写分离;ES 集群做 BM25 检索;结果缓存 Redis

  • 计算层:Embedding 服务独立部署,GPU 推理 + 动态扩缩容;Rerank 服务独立部署

  • 生成层:LLM 调用走负载均衡(多 API Key 或多推理实例),支持降级链

  • 数据层:文档入库走异步 Pipeline(上传 → 解析 → Chunk → Embed → 入库),不影响在线服务

  • 弹性伸缩:基于 QPS/延迟指标做 HPA(K8s 水平自动扩缩),峰谷差异大时效果显著

  • 可观测性:全链路 Tracing(每个请求的检索耗时、rerank 耗时、LLM 耗时一目了然),便于定位瓶颈


五、业务场景设计(电商方向)

25. 做一个类似 TikTok Shop / 淘宝的 AI 导购助手,怎么设计?

参考答案:

  • 架构:用户输入 → 意图识别(闲聊/商品咨询/下单/售后)→ 路由到对应子 Agent → 调用 Tool → 生成回复

  • 核心能力:自然语言商品搜索、多轮对话澄清需求、个性化推荐、比价、下单引导、售后处理

  • 对话管理:维护对话状态机(浏览→意向→决策→下单→售后),不同阶段用不同策略

  • 知识基础:商品库 RAG + 用户画像 + 实时库存/价格 API + 平台规则知识库

  • 个性化:根据用户历史行为(浏览/购买/收藏)调整推荐策略和话术风格

  • 安全与合规:不能虚假宣传、价格要实时准确、敏感商品需合规审查

26. 电商 Agent 里需要哪些 Tool?

参考答案:

  • 商品搜索 Tool:接收自然语言查询,调用商品搜索 API(关键词+向量混合检索)

  • 商品详情 Tool:根据商品 ID 获取详情(价格/规格/库存/评价摘要)

  • 购物车/下单 Tool:添加购物车、创建订单(需人工确认环节)

  • 订单查询 Tool:查询订单状态、物流信息

  • 用户画像 Tool:获取用户偏好/历史购买/浏览记录

  • 优惠券/促销 Tool:查询可用优惠、计算到手价

  • 售后 Tool:发起退换货、查询售后进度

  • 推荐 Tool:基于当前对话上下文调用推荐引擎获取个性化推荐

27. 电商 Agent 的 Memory 应该存什么?

参考答案:

  • 会话级(短期):当前对话中提到的需求偏好("要红色的""预算500以内")、已推荐过的商品(避免重复)、对话阶段状态

  • 用户级(长期):尺码偏好、品牌偏好、价格敏感度、购买周期(如每月买猫粮)、过往投诉与满意点

  • 场景上下文:当前浏览的商品页、来源渠道(直播间/搜索/推荐位)、时间上下文(节日/大促期间话术调整)

  • 存储方案:短期用 Redis Hash(session_id → 状态);长期用户画像存关系型 DB + 向量库(用于相似用户匹配)

  • 隐私注意:用户数据脱敏存储,遵守数据保护法规,提供数据删除能力

28. 做一个"自动运营 Agent"(自动生成活动、改价、发券),怎么设计?

参考答案:

  • 架构:数据感知层(监控销量/库存/竞品价格)→ 策略决策层(LLM 分析 + 规则引擎)→ 执行层(调用运营 API)→ 效果反馈层

  • 核心 Tool:价格调整 API、优惠券创建/分发 API、活动页生成工具、数据看板查询 API

  • 安全机制必须有人工审批环节——改价/发券属于高风险操作,Agent 只生成方案,人工确认后执行

  • 策略引擎:基于历史数据训练价格弹性模型;设置改价上下限(如降幅不超过 30%);大促节奏自动编排

  • 反馈闭环:执行后持续监控效果(转化率/GMV/ROI),自动生成复盘报告,优化下次策略

  • 防护栏:预算硬上限、单日操作次数限制、异常检测(如短时间内大量发券触发告警)

29. 电商商品库做 RAG,embedding 用什么字段?

参考答案:

  • 核心字段:商品标题 + 商品描述/卖点 + 类目路径 + 关键属性(品牌/材质/适用人群)

  • 拼接策略:将多个字段拼成一段结构化文本再 embedding,如:"【标题】xxx【类目】xxx【卖点】xxx【规格】xxx"

  • 不建议 embedding 的:纯数字字段(价格/库存)→ 用结构化过滤更合适;SKU 编码等无语义内容

  • 富文本处理:商品详情中的图片描述/评价摘要也可以纳入,提升语义覆盖

  • 多向量方案:标题单独一个 embedding(用于短查询匹配)+ 详情一个 embedding(用于长查询匹配),检索时分别召回再融合

  • 元数据索引:价格区间、品牌、类目等作为 filter 字段,配合向量检索做 hybrid search

30. 用户问"适合送男朋友的礼物",RAG 怎么做?

参考答案:

  • 这是一个模糊意图 query,直接向量检索效果差,需要多步处理:

  • Query 理解与扩展:用 LLM 将模糊 query 展开为多个具体 query("男士手表推荐""男生数码好物""男朋友生日礼物清单")

  • 多路召回:向量检索(语义匹配"礼物""男生")+ 类目检索(男装/数码/运动/护肤)+ 标签检索(标记为"礼物""男士"的商品)

  • 用户画像加权:如果知道男朋友的年龄/兴趣,做个性化过滤和排序

  • 场景化 Rerank:用 LLM 对召回结果做"送礼适合度"重排,考虑价格档次、包装、实用性等维度

  • 结果组织:按场景/价位分组呈现("200以内实用好物""500+轻奢礼物""数码控最爱")

  • 补充交互:Agent 可以反问澄清——"他平时喜欢运动还是数码?预算大概多少?"

31. 如何把"推荐系统"和"RAG"结合?

参考答案:

  • 定位互补:推荐系统擅长"猜你喜欢"(基于行为协同过滤),RAG 擅长"你问我答"(基于语义检索)

  • 融合架构:用户 query → RAG 检索相关商品 + 推荐引擎返回个性化推荐 → 结果融合排序 → LLM 生成自然语言推荐理由

  • 推荐作为 RAG 的 pre-filter:先用推荐模型缩小候选集(与用户兴趣匹配的 top-1000),再在候选集内做向量检索

  • RAG 增强推荐解释:推荐系统给出商品,RAG 检索相关评价/卖点,LLM 生成"为什么推荐这个给你"的解释文案

  • 特征共享:用户的对话意图(RAG 侧提取)可以作为推荐系统的实时特征输入

  • 冷启动解决:新用户没有行为数据时,通过对话(RAG)快速收集偏好,弥补推荐系统冷启动问题

32. 如何做个性化 RAG?

参考答案:

  • 用户画像注入:将用户画像(偏好/历史/标签)作为额外 context 注入 prompt,引导 LLM 生成个性化回答

  • 检索个性化:query embedding 时融入用户向量(如 query_vec + α * user_vec),让检索结果偏向用户兴趣

  • Rerank 个性化:在 rerank 阶段加入用户特征,同样的 query 不同用户看到不同排序

  • 知识库分层:全局知识库(所有用户共享)+ 用户私有知识库(个人收藏/历史对话/个人笔记)

  • 动态 prompt 适配:根据用户身份/等级调整语气和推荐策略(如新客 vs VIP 客户)

  • 隐私保护:个性化数据需加密存储,遵循最小必要原则,用户可控制和删除个人数据

33. 设计一个电商 AI 导购 Agent,支持:商品推荐、对话购物、查询订单、售后问题、个性化推荐、高并发

参考答案:

  • 整体架构:API Gateway(限流/鉴权)→ Intent Router(意图分类)→ 子 Agent 集群 → Tool 层 → 数据层

  • 意图路由:轻量分类模型(或 LLM)识别意图后路由——商品咨询→导购 Agent;订单查询→订单 Agent;售后→售后 Agent;闲聊→通用 Agent

  • 导购 Agent:商品 RAG(多路召回+rerank)+ 推荐引擎融合 + 用户画像个性化 + 多轮对话澄清

  • 订单/售后 Agent:主要是结构化查询 + 规则引擎(退货政策/退款流程),LLM 负责自然语言交互

  • 高并发设计

    • 无状态 Agent Worker + K8s HPA 弹性扩缩
    • 多层缓存(Semantic Cache + Redis + 本地缓存)
    • LLM 调用池化 + 降级链(大模型→小模型→模板回复)
    • 向量库多副本 + 读写分离
    • 异步消息队列削峰
  • 个性化:短期 session memory(当前对话偏好)+ 长期 user profile(历史行为画像),两层记忆融合

  • 监控与安全:全链路 Tracing、token 消耗监控、敏感词过滤、价格一致性校验、人工兜底通道(转人工客服)


🔗 原始链接