关键看点
- Agent vs LLM 应用核心区别:单次生成 → 可执行任务闭环(规划+工具+记忆+反馈)
- RAG 工程要点:文档切块+向量入库→问题向量化→Top-K 召回→重排→生成
- 幻觉缓解组合拳:RAG+工具查询+约束提示+引用校验+人工/规则兜底
- Function Calling 落地关键:工具注册→模型选择→后端校验执行→结果回填(校验不能省)
- 多轮对话设计:状态保存+上下文压缩+意图理解+动态决策(回答/检索/调用工具)
AI Agent 定义与 LLM 应用的区别
传统 LLM 应用多是「输入问题 → 输出回答」的单次生成模式。用户给一个 prompt,模型返回一个答案,仅此而已。
Agent 的核心是目标驱动,它能够:
- 规划步骤:把大问题拆成子任务
- 调用工具:通过 Function Calling 执行计算、查询数据库、调用外部 API
- 使用记忆:保存上下文和历史结论
- 根据反馈调整:工具返回结果后决定下一步行动
这套「规划 → 行动 → 反馈 → 调整」的循环,是 Agent 和单纯 LLM 调用的本质区别。
RAG 工作流程
RAG(Retrieval-Augmented Generation)本质是「先检索,再生成」。工作流分离线 和在线两阶段:
- 离线:文档解析 → 文本切块 → 向量化 → 入库向量数据库
- 在线:用户问题向量化 → Top-K 召回相关片段 → 必要时重排序 → 让模型基于片段回答
关键点:让答案有外部知识支撑,而不是让模型硬编。
LLM 幻觉问题如何缓解
幻觉无法彻底消除,只能通过工程手段降低概率。常用组合拳:
- RAG 提供依据:让模型参考真实文档回答
- 工具查询实时数据:不依赖模型知识,用 API 实时获取
- 约束提示词:限定回答格式和边界
- 引用来源:要求模型在答案中标注来源
- 答案校验:用规则或小模型验证输出是否合理
- 人工/规则兜底:高风险场景必须人工审核
LangChain / LangGraph 框架选��
这类框架的优势:
- 组件丰富,上手快
- 适合快速搭建 Agent 和 RAG 原型
劣势:
- 抽象层多,复杂业务里调试困难
- 定制和性能优化受限
工程建议:用框架验证思路可以,但核心链路最好保持可控和可观测——自己掌控关键逻辑,框架只做胶水层。
Function Calling 如何落地
Function Calling 让模型按约定格式选择工具和生成参数。落地流程:
- 注册工具 Schema:定义工具名称、参数、返回值
- 模型选择调用:根据用户意图决定调用哪个工具
- 后端校验参数:参数类型、范围、合法性校验(不能省)
- 执行工具:调用 API / 查询数据库 / 执行计算
- 结果回填:把执行结果返回给模型继续生成
多轮对话 Agent 设计
多轮对话的核心是状态管理:
- 保存会话状态:当前任务进度、关键信息
- 结合上下文理解意图:每轮输入要先理解用户真正想问什么
- 动态决策:决定是直接回答、做检索、还是调用工具
- 上下文压缩和过期:多轮越长上下文字越多,必须压缩或清理,否则会越聊越乱
Agent 记忆机制
记忆分两类:
- 短期记忆:当前会话和任务状态,用内存或 Redis
- 长期记忆:用户偏好、画像、历史结论,用向量数据库或持久化存储
设计原则:记忆要可更新、可删除、可解释,不能无限沉淀(隐私和成本问题)。
ReAct 框架原理
ReAct = Reasoning + Acting。核心思想:
- 模型一边思考,一边决定调用什么工具
- 工具返回结果后,模型继续推理下一步
- 适合需要外部信息的任务
工程注意点:要控制最大部署(max iterations),避免模型循环调用工具停不下来。
RAG 重排与 HyDE 优化
重排(Rerank):对 Top-K 召回结果重新精排,把最相关的内容放前面。
HyDE(Hypothetical Document Embedding):先让模型生成一个「假想答案」,再用假想答案去检索。适合用户问题太短或太模糊的场景。
优化效果要看评测数据,不能凭感觉调参。
文本相似度计算
简单实现思路:
- 文本向量化:用 Embedding 模型(OpenAI / Qwen / BGE)把文本转成向量
- 相似度计算:余弦相似度(Cosine Similarity)
- 阈值判断:设定阈值,高于阈值则认为相似
没有 Embedding 模型时,可以用 Jaccard 或 TF-IDF 做粗排。
总结
这10道题表面问的是 Agent、RAG、Function Calling 这些概念,实际考的是工程落地能力——能不能把模糊的技术思路变成可运行的代码闭环。面试时,与其背定义,不如讲清楚你实际做过的项目中,这些技术点是怎么落地的、踩过什么坑、怎么解决的。