AI Agent 开发 - 面试题库


一、基础题 ⭐

Q1. 什么是 LLM?它的核心工作原理是什么?

答案:LLM(Large Language Model,大语言模型)是基于 Transformer 架构的深度学习模型,通过在海量文本上进行自监督预训练,学习语言的统计规律和语义表示。核心工作原理是 next-token prediction:给定一段上下文,模型计算词表中每个 token 的条件概率分布,采样或贪心选择下一个 token,自回归地生成文本。现代 LLM 通常采用 Decoder-only 架构,包含自注意力机制和前馈网络,通过缩放点积注意力捕捉长距离依赖关系。 关联知识点:Transformer 架构、自注意力机制、自回归生成

Q2. 什么是 Prompt Engineering?

答案:Prompt Engineering(提示工程)是设计和优化输入提示(Prompt)以引导 LLM 产生期望输出的技术和方法论。核心思想是通过精心构造的上下文、指令、示例和格式约束,激活模型内部已有的知识和推理能力,而无需修改模型参数。常见技巧包括:Zero-shot/Few-shot 提示、思维链(Chain-of-Thought)、角色设定、输出格式约束、分隔符使用等。好的 Prompt 能显著提升模型在特定任务上的准确率、一致性和可控性。 关联知识点:Few-shot Learning、Chain-of-Thought、In-context Learning

Q3. 什么是 RAG 架构?

答案:RAG(Retrieval-Augmented Generation,检索增强生成)是一种将外部知识检索与 LLM 生成相结合的架构。核心流程分为三步:首先将用户查询通过 Embedding 模型转化为向量,在向量数据库中检索相关文档片段;然后将检索到的上下文与原始查询拼接成 Prompt;最后交由 LLM 生成回答。RAG 解决了 LLM 的知识截止问题和幻觉问题,使模型能够基于最新、可信的外部数据作答,同时保持生成能力。 关联知识点:向量数据库、Embedding、知识增强、幻觉缓解

Q4. LangChain 的核心组件有哪些?

答案:LangChain 是一个用于构建 LLM 应用的框架,核心组件包括:(1)Models:封装 LLM 和 ChatModel 的调用接口;(2)Prompts:Prompt 模板管理,支持变量替换和组合;(3)Chains:将多个组件串联成可执行流程;(4)Agents:基于 LLM 决策能力动态选择工具的推理引擎;(5)Tools:外部工具接口,如搜索、数据库、API 调用;(6)Memory:对话历史管理,支持短期和长期记忆;(7)Vector Stores:向量存储和检索接口。这些组件通过模块化设计实现灵活组合。 关联知识点:模块化架构、工具调用、对话管理

Q5. 什么是 AI Agent?它与普通 LLM 调用有什么区别?

答案:AI Agent 是具备自主决策、工具使用和环境交互能力的智能系统。与普通 LLM 调用的核心区别在于:(1)自主性:Agent 能根据目标自主规划执行步骤,而非被动响应单次请求;(2)工具使用:Agent 可调用外部工具(搜索、代码执行、API)扩展能力边界;(3)循环推理:Agent 采用 ReAct 等模式,在思考-行动-观察循环中迭代推进任务;(4)状态管理:Agent 维护对话历史和任务状态,支持多轮交互。普通 LLM 调用是无状态的单轮生成。 关联知识点:ReAct 模式、工具调用、任务规划、状态管理

Q6. 什么是 Token?如何计算 Token 数量?

答案:Token 是 LLM 处理文本的基本单位,可以是词、子词或字符。不同模型使用不同的 Tokenizer(如 tiktoken、SentencePiece),将文本切分为 Token 序列。英文通常 1 token ≈ 4 个字符或 0.75 个单词;中文 1 token ≈ 1-2 个汉字。Token 数量直接影响模型的上下文窗口限制和 API 调用成本。计算方式:使用模型对应的 Tokenizer 库对文本编码后统计长度。理解 Token 有助于优化 Prompt 长度、控制成本和避免超出上下文窗口。 关联知识点:Tokenizer、上下文窗口、API 成本优化

Q7. RAG 中的 Embedding 模型起什么作用?

答案:Embedding 模型将文本映射为高维稠密向量,使语义相似的文本在向量空间中距离相近。在 RAG 中,Embedding 模型负责:(1)将知识库文档切块后编码为向量,存入向量数据库建立索引;(2)将用户查询编码为向量,通过相似度搜索(余弦相似度、内积等)检索相关文档。Embedding 质量直接决定检索效果,好的 Embedding 能捕捉语义而非字面匹配。常用模型包括 OpenAI text-embedding、BGE、M3E 等。 关联知识点:向量表示、相似度搜索、语义检索

Q8. 什么是 Few-shot Prompting?

答案:Few-shot Prompting 是在 Prompt 中提供少量输入-输出示例,引导 LLM 学习任务模式的方法。其原理是 In-context Learning:模型通过示例推断任务规则和输出格式,无需参数更新。示例设计要点:(1)覆盖典型场景和边界情况;(2)保持示例与真实输入的分布一致;(3)示例数量通常 3-5 个,过多会占用上下文窗口;(4)示例格式需清晰标注输入输出分隔。Few-shot 能显著提升模型在特定任务上的表现,尤其适用于格式约束强的场景。 关联知识点:In-context Learning、Prompt 设计、示例选择

Q9. LangChain 中的 Chain 和 Agent 有什么区别?

答案:Chain 是预定义的固定执行流程,按编排顺序依次执行各步骤,适合确定性任务;Agent 是动态决策引擎,由 LLM 根据当前状态自主选择下一步行动(调用哪个工具或结束),适合需要推理和灵活性的复杂任务。简言之,Chain 是”硬编码”的流水线,Agent 是”软决策”的智能体。Chain 的优势是可控性强、调试简单;Agent 的优势是灵活、能处理未见过的情况,但可能产生不可预期的行为。 关联知识点:执行流程控制、动态决策、任务编排

Q10. 什么是向量数据库?常见的向量数据库有哪些?

答案:向量数据库是专门用于存储和检索高维向量的数据库系统,支持高效的近似最近邻(ANN)搜索。核心功能包括:向量索引构建(HNSW、IVF、PQ 等算法)、相似度计算、元数据过滤、增量更新。在 AI 应用中,向量数据库主要用于 RAG 的知识检索、语义搜索和推荐系统。常见产品包括:Milvus(开源、分布式)、Pinecone(托管服务)、Chroma(轻量级、嵌入式)、FAISS(Facebook 开源库)、Weaviate(支持混合搜索)。选型需考虑数据规模、延迟要求和运维成本。 关联知识点:ANN 搜索、HNSW 索引、RAG 基础设施


二、进阶题 ⭐⭐

Q11. 什么是 Chain-of-Thought(CoT)提示?它为什么有效?

答案:Chain-of-Thought 是一种提示技术,通过在 Prompt 中展示逐步推理过程,引导 LLM 生成中间推理步骤而非直接给出答案。例如在数学题中展示”第一步…第二步…因此答案是…“。CoT 有效的原因:(1)将复杂问题分解为子问题,降低单步推理难度;(2)中间步骤为后续推理提供上下文锚点;(3)暴露推理路径便于调试和验证;(4)激活模型内部的逻辑推理能力。研究表明 CoT 在数学、逻辑、常识推理等任务上显著提升准确率,尤其对大参数规模模型效果更明显。 关联知识点:推理增强、问题分解、思维链

Q12. RAG 中文档切块(Chunking)的策略有哪些?

答案:文档切块是 RAG 预处理的关键步骤,策略包括:(1)固定长度切块:按字符数或 Token 数均匀切分,简单但可能截断语义;(2)语义切块:基于段落、标题、句子边界切分,保持语义完整性;(3)重叠切块:相邻块保留一定重叠(如 10-20%),避免关键信息被截断;(4)递归切块:先按大结构切分,再对过长块递归细分;(5)滑动窗口:固定窗口大小逐步滑动。选择策略需权衡检索精度和上下文完整性,通常推荐语义切块 + 适度重叠。 关联知识点:文本预处理、语义完整性、检索质量

Q13. LangChain 中的 Memory 机制如何实现?

答案:LangChain 的 Memory 组件用于管理对话历史,使 Chain 或 Agent 具备上下文感知能力。实现方式包括:(1)ConversationBufferMemory:直接存储完整对话历史,简单但可能超出上下文窗口;(2)ConversationBufferWindowMemory:仅保留最近 N 轮对话,控制长度;(3)ConversationSummaryMemory:使用 LLM 对历史对话生成摘要,压缩信息量;(4)VectorStoreRetrieverMemory:将历史存入向量数据库,按语义相似度检索相关记忆。Memory 通过 load_memory_variablessave_context 接口与 Chain 交互,实现状态的持久化和加载。 关联知识点:上下文管理、对话历史、记忆压缩

Q14. 什么是 ReAct 模式?它的工作流程是什么?

答案:ReAct(Reasoning + Acting)是一种结合推理和行动的 Agent 模式,核心思想是让 LLM 在生成文本推理的同时穿插工具调用,形成”思考-行动-观察”循环。工作流程:(1)Thought:LLM 分析当前状态,推理下一步行动;(2)Action:选择并调用工具(如搜索、计算器);(3)Observation:获取工具执行结果;(4)循环执行上述步骤,直到得出最终答案(Final Answer)。ReAct 通过交替推理和行动,使 Agent 能处理需要多步信息收集和逻辑推导的复杂任务,比纯推理或纯行动模式更有效。 关联知识点:Agent 架构、工具调用、多步推理

Q15. 如何评估 RAG 系统的效果?

答案:RAG 系统评估分为检索和生成两个层面:(1)检索评估:使用 MRR(Mean Reciprocal Rank)、NDCG、Hit Rate 等指标,衡量检索到的文档片段是否包含正确答案;(2)生成评估:使用 Faithfulness(忠实度,回答是否基于检索内容)、Answer Relevance(答案相关性)、Context Precision(上下文精确度)等指标;(3)端到端评估:人工标注测试集,计算准确率、BLEU、ROUGE;(4)自动化评估框架:如 RAGAS、DeepEval,通过 LLM-as-a-Judge 方式自动评分。评估需覆盖不同查询类型和边界情况。 关联知识点:评估指标、RAGAS、LLM-as-a-Judge

Q16. LangChain 中的 Tool 如何定义和使用?

答案:LangChain 的 Tool 是封装外部功能的接口,定义需包含:(1)name:工具名称,Agent 通过名称识别;(2)description:功能描述,指导 Agent 何时使用;(3)_run 方法:执行逻辑,接收输入返回结果。使用方式:将 Tool 列表传入 Agent,Agent 根据 LLM 的决策动态调用。LangChain 提供内置工具(搜索、终端、数据库等),也可通过 @tool 装饰器或继承 BaseTool 自定义。工具设计要点:描述清晰、输入输出格式明确、错误处理完善,避免 Agent 误用。 关联知识点:工具封装、Agent 决策、接口设计

Q17. 什么是 LLM 的幻觉(Hallucination)?如何缓解?

答案:幻觉是 LLM 生成看似合理但事实错误或无中生有内容的现象。产生原因:(1)训练数据中的噪声和矛盾;(2)自回归生成的误差累积;(3)模型过度自信地外推未知领域。缓解策略:(1)RAG:引入外部知识源,限制生成范围;(2)Prompt 约束:要求模型标注不确定性和引用来源;(3)温度控制:降低 temperature 减少随机性;(4)验证层:后处理检查事实一致性;(5)Fine-tuning:在高质量数据上微调。完全消除幻觉目前不可行,需多策略组合降低风险。 关联知识点:事实一致性、知识增强、生成控制

Q18. 如何优化 LLM API 调用的延迟和成本?

答案:优化策略包括:(1)缓存:对相似查询使用语义缓存,避免重复调用;(2)批量处理:合并多个请求为单次调用;(3)模型选择:简单任务使用轻量模型(如 GPT-3.5 而非 GPT-4);(4)Prompt 优化:精简 Prompt 长度,减少 Token 消耗;(5)流式输出:使用 streaming 降低首字延迟;(6)异步调用:非阻塞方式并发请求;(7)本地部署:高频场景使用开源模型本地推理;(8)监控分析:追踪 Token 消耗分布,识别优化空间。需根据场景权衡延迟、成本和质量的平衡。 关联知识点:性能优化、成本控制、缓存策略

Q19. 什么是 Function Calling?它与 Tool Use 的关系是什么?

答案:Function Calling 是 LLM 的一种能力,允许模型在生成文本时输出结构化的函数调用请求(函数名和参数),而非直接回答。工作流程:(1)在 Prompt 中声明可用函数及其参数 schema;(2)LLM 判断是否需要调用函数,若需要则输出 JSON 格式的调用请求;(3)外部系统执行函数并返回结果;(4)将结果反馈给 LLM 继续生成。Tool Use 是更广义的概念,Function Calling 是实现 Tool Use 的一种机制。OpenAI、Anthropic 等厂商均支持此能力,使 LLM 能与外部系统安全、结构化地交互。 关联知识点:结构化输出、工具调用、API 集成

Q20. LangChain 的 LCEL(LangChain Expression Language)是什么?

答案:LCEL 是 LangChain 的声明式编排语言,用于构建和组合 Chain。核心特性:(1)管道操作符 |:将组件串联为执行流,如 prompt | model | parser;(2)并行执行 RunnableParallel:并发执行多个分支;(3)批处理:原生支持批量输入处理;(4)流式输出:自动传递流式响应;(5)重试和回退:内置错误处理机制。相比传统 Chain 类,LCEL 更简洁、类型安全、易于调试。它统一了不同组件的接口,使复杂流程的构建和修改更加灵活,是 LangChain 推荐的开发方式。 关联知识点:声明式编程、流程编排、错误处理

Q21. RAG 中的检索策略有哪些?如何提高检索准确率?

答案:检索策略包括:(1)稠密检索:使用 Embedding 向量进行语义相似度搜索;(2)稀疏检索:基于 BM25 等关键词匹配;(3)混合检索:结合稠密和稀疏检索,加权融合结果;(4)多路召回:多个检索器并行召回后去重排序。提高准确率的方法:(1)优化文档切块策略;(2)使用 Query Expansion 扩展查询;(3)引入重排序(Reranker)模型对候选结果精排;(4)元数据过滤缩小范围;(5)Embedding 模型微调适配领域数据。混合检索 + 重排序是当前效果最佳的实践。 关联知识点:BM25、混合检索、重排序、Query Expansion

Q22. 什么是 Multi-Agent 架构?它的应用场景是什么?

答案:Multi-Agent 架构是由多个独立 Agent 协作完成复杂任务的系统设计。每个 Agent 承担特定角色(如规划者、执行者、审查者),通过消息传递或共享状态协调工作。优势:(1)专业化:不同 Agent 专注不同能力;(2)并行性:多 Agent 可并行处理子任务;(3)容错性:单个 Agent 失败不影响整体;(4)可扩展性:易于添加新角色。应用场景:复杂代码生成(规划+编码+测试)、多轮辩论式推理、工作流自动化(审批+执行+监控)。框架如 LangGraph、AutoGen 支持 Multi-Agent 编排。 关联知识点:Agent 协作、角色分工、工作流编排


三、高级题 ⭐⭐⭐

Q23. 如何设计一个生产级的 RAG 系统?

答案:生产级 RAG 系统设计要点:(1)数据管道:自动化文档采集、清洗、切块、Embedding 和入库流程,支持增量更新;(2)检索优化:采用混合检索(BM25 + 向量)+ Cross-Encoder 重排序,提升准确率;(3)查询理解:意图识别、Query 重写、多轮对话上下文管理;(4)生成控制:Prompt 模板管理、温度调优、引用来源标注、幻觉检测;(5)性能保障:向量索引预构建、缓存层、异步处理、限流降级;(6)监控评估:检索质量、生成质量、延迟、Token 消耗监控,建立反馈闭环;(7)安全合规:权限控制、敏感信息过滤、审计日志。 关联知识点:系统架构、性能优化、监控体系

Q24. LangChain Agent 的执行流程是怎样的?如何调试 Agent 行为?

答案:Agent 执行流程:(1)接收用户输入,加载 Memory 历史;(2)LLM 根据 Prompt 和可用 Tools 生成决策(Action 或 Final Answer);(3)若为 Action,解析工具名和参数,执行调用;(4)将 Observation 追加到历史,回到步骤 2 循环;(5)达到最大迭代次数或得到 Final Answer 后结束。调试方法:(1)启用 verbose 日志:查看每轮 Thought-Action-Observation;(2)Callback 机制:记录中间状态和耗时;(3)限制迭代次数:防止无限循环;(4)工具隔离测试:单独验证每个 Tool 正确性;(5)Prompt 审查:检查描述是否清晰无歧义;(6)单元测试:构造边界输入验证行为。 关联知识点:Agent 循环、调试技巧、日志追踪

Q25. 什么是 LLM 的 Fine-tuning?与 Prompt Engineering 如何选择?

答案:Fine-tuning 是在预训练 LLM 基础上,使用特定领域数据继续训练,调整模型参数以适配目标任务。与 Prompt Engineering 的对比:(1)成本:Fine-tuning 需要算力和数据,Prompt 工程成本低;(2)效果:Fine-tuning 对领域适配更彻底,能学习风格和格式,Prompt 依赖 In-context Learning;(3)灵活性:Prompt 可随时修改,Fine-tuning 需重新训练;(4)知识更新:Prompt 可注入新信息,Fine-tuning 知识固化。选择策略:优先 Prompt Engineering 验证可行性,效果瓶颈时考虑 Fine-tuning;需要强风格/格式控制或高频调用降低成本时选择 Fine-tuning。 关联知识点:模型微调、参数高效微调、技术选型

Q26. 如何保证 AI Agent 的安全性和可控性?

答案:安全性和可控性保障措施:(1)输入过滤:检测并拦截恶意 Prompt(Prompt Injection、Jailbreak);(2)输出审核:敏感词过滤、事实核查、格式验证;(3)工具权限:最小权限原则,工具调用前二次确认,限制危险操作;(4)沙箱执行:代码执行在隔离环境,限制资源访问;(5)行为约束:设置最大迭代次数、超时限制、回退策略;(6)审计追踪:完整记录 Agent 决策过程,便于事后审查;(7)红队测试:主动构造攻击用例验证鲁棒性;(8)人工审核:关键决策引入 Human-in-the-loop 审批。安全是多层次防御体系。 关联知识点:Prompt Injection、权限控制、Human-in-the-loop

Q27. RAG 系统中如何处理多轮对话和上下文依赖?

答案:多轮对话处理策略:(1)Query 重写:结合对话历史,将指代和省略的查询重写为完整独立的问题,如”它”替换为具体实体;(2)上下文拼接:将历史对话和检索结果共同构建 Prompt,使 LLM 理解上下文;(3)会话级检索:在向量检索时加入会话 ID 过滤,限定检索范围;(4)状态管理:维护对话状态机,跟踪用户意图和任务进度;(5)记忆压缩:对话过长时使用摘要或向量检索相关历史,避免超出上下文窗口;(6)意图识别:判断当前轮次是否依赖历史,独立查询直接检索。核心是平衡上下文完整性和 Token 消耗。 关联知识点:对话管理、Query 重写、状态追踪

Q28. 什么是 LangGraph?它与 LangChain 的关系是什么?

答案:LangGraph 是 LangChain 生态中的状态图编排框架,用于构建有环、多步骤的 Agent 工作流。与 LangChain 的关系:LangChain 提供基础组件(Models、Tools、Prompts),LangGraph 提供高级编排能力。核心概念:(1)State:定义工作流共享的状态结构;(2)Node:执行单元,接收状态并返回更新;(3)Edge:节点间的有向连接,支持条件边实现分支逻辑;(4)Graph:节点和边构成的执行图。优势:支持循环(如 Agent 的 Thought-Action-Observation 循环)、可视化、状态持久化、并行执行。适合构建复杂的多 Agent 协作和长流程任务。 关联知识点:状态机、图编排、循环工作流

Q29. 如何设计 Agent 的评估体系?

答案:Agent 评估体系设计:(1)任务完成率:是否达成目标,通过人工标注或自动化脚本判定;(2)效率指标:平均步数、工具调用次数、总耗时,衡量决策质量;(3)正确性:每步推理和工具调用的准确率;(4)鲁棒性:对异常输入、工具失败、网络超时的处理能力;(5)安全性:是否执行危险操作、是否泄露敏感信息;(6)成本:Token 消耗、API 调用费用;(7)可解释性:决策过程是否清晰可追溯。评估方法:构建标准化测试集(涵盖典型和边界场景),自动化执行并采集指标,建立回归测试防止退化。对于主观指标,采用 LLM-as-a-Judge 辅助评分。 关联知识点:评估体系、自动化测试、指标设计

Q30. AI Agent 在生产环境中常见的陷阱和最佳实践是什么?

答案:常见陷阱:(1)无限循环:Agent 陷入 Thought-Action 循环,需设置最大迭代次数和终止条件;(2)工具误用:工具描述不清导致 Agent 选错工具,需精确描述功能和使用场景;(3)上下文溢出:对话过长超出 Token 限制,需实现记忆压缩或截断;(4)幻觉传播:错误信息在循环中累积,需加入验证步骤;(5)延迟过高:多轮 LLM 调用累积延迟,需优化流程或并行化;(6)成本失控:未监控 Token 消耗,需设置预算告警。最佳实践:(1)从小规模验证开始,逐步增加复杂度;(2)完善的日志和监控;(3)设计降级和回退策略;(4)定期评估和迭代优化。 关联知识点:生产实践、故障排查、成本管控