🤖LLM&Agent
I. 核心概念(Agent 是什么?)
1. 什么是 AI Agent?它和传统 Chatbot 有什么区别?
简答:
定义: Agent 是一个以 LLM 为核心大脑,具备感知、规划、记忆、使用工具能力的自动化系统。
区别:
Chatbot (被动): 主要是对话,给出建议,不产生实际副作用。
Agent (主动): 能够拆解目标,主动调用外部 API(如搜索、发邮件、查数据库)来完成复杂任务。
2. 请解释 Agent 的核心架构(CoPlanner/Cognitive Architecture)?
简答:
通常引用 Lilian Weng 的博文架构,包含四个要素:
Brain (LLM): 负责推理、规划和指令生成。
Planning (规划): 将大目标拆解为子步骤(如 CoT, ReAct)。
Memory (记忆): 短期记忆(上下文)+ 长期记忆(向量数据库)。
Tools (工具使用): 调用外部 API 或计算器、解释器等执行动作。
3. 什么是 ReAct 模式?为什么它很重要?
简答:
ReAct = Reasoning(推理)+ Acting(行动)。
它是 Agent 最基础的运行模式。模型在执行任务时,先思考“我该做什么”,生成行动(调用工具),然后观察工具返回的结果(Observation),再根据结果进行下一步推理。这让模型能通过“试错”和“反馈”解决复杂问题。
II. 关键组件与实现(怎么做?)
4. LLM 是如何调用外部工具(Function Calling)的?
简答:
LLM 本身不能直接运行代码或发请求。
定义: 开发者在 Prompt 中描述工具的名称、功能和参数格式(通常是 JSON Schema)。
生成: LLM 决定调用工具时,会输出一个结构化的 JSON(包含函数名和参数)。
执行: 应用程序捕获这个 JSON,在本地运行对应的函数。
反馈: 将函数运行结果拼接到 Prompt 中,再次发给 LLM 继续对话。
5. 什么是 Chain of Thought (CoT) 和 Tree of Thoughts (ToT)?
简答:
CoT (思维链): 在 Prompt 中引导模型 "Let's think step by step",让模型展示推理过程,能显著提高处理复杂逻辑的准确率。
ToT (思维树): CoT 的进阶版。让模型生成多个可能的推理路径(分支),并对每个路径进行自我评估,选择最优路径继续,类似于搜索算法(BFS/DFS)。
6. Agent 的记忆机制(Memory)是如何设计的?
简答:
短期记忆: 直接利用 LLM 的 Context Window(上下文窗口),存储当前的对话历史。
长期记忆: 使用 向量数据库 (Vector DB)。将历史交互转化为 Embedding 存入库中,需要时通过语义相似度检索相关历史,注入到 Prompt 中。
总结记忆: 定期将长对话压缩总结(Summary),防止撑爆上下文。
7. 常见的 Agent 开发框架有哪些?有什么区别?
简答:
LangChain: 最老牌,组件丰富,胶水层,适合构建 RAG 和基础 Chain。
LlamaIndex: 专注于数据层,擅长处理 RAG、索引和数据检索。
AutoGen / CrewAI: 专注于 Multi-Agent(多智能体) 协作,让多个角色(如程序员、测试员、产品经理)互相对话来完成任务。
III. RAG 与数据增强(怎么懂知识?)
8. 什么是 RAG?为什么 Agent 需要 RAG?
简答:
RAG(Retrieval-Augmented Generation,检索增强生成)。
原理: 先从知识库中检索相关信息,拼接到 Prompt 中,再让 LLM 回答。
作用: 解决 LLM 的 幻觉问题(Hallucination) 和 时效性问题(训练数据截止),让 Agent 能基于私有数据回答。
9. 向量检索(Vector Search)虽然好,但有什么局限性?怎么优化?
简答:
局限: 基于语义相似度,有时会丢失关键词匹配(如搜专有名词、特定ID),且对“全文概括”类问题效果差。
优化(Advanced RAG):
混合检索(Hybrid Search): 向量检索 + 关键词检索(BM25),加权重排序(Re-rank)。
父子索引(Parent-Child Indexing): 检索小切片,送入大块上下文。
GraphRAG: 引入知识图谱,增强实体间的关联推理。
IV. 工程挑战与优化(怎么避坑?)
10. 如何解决 LLM 的“幻觉”问题?
简答:
Grounding(接地): 强制要求模型仅依据 RAG 检索到的上下文回答,并引用来源。
Self-Correction(自查): 让模型生成后,再加一步“请检查上述回答是否符合事实”,进行自我反思。
降低温度(Temperature): 设为 0,减少随机性。
11. Multi-Agent(多智能体)架构解决了什么问题?
简答:
解决了单体 Agent 注意力分散 和 上下文过长 的问题。
通过让不同的 Agent 扮演不同角色(Role-Playing),各司其职(例如一个负责写代码,一个负责运行代码并报错),可以处理更复杂的任务流程,且每个 Agent 只需维护自己的 Prompt 上下文。
12. Agent 开发中如何评估(Evaluation)效果?
简答:
这是一个难点。常用方法:
LLM-as-a-Judge: 用更强的模型(如 GPT-4)给弱模型的输出打分。
Ragas 框架: 评估 RAG 的检索准确性(Context Precision)和生成忠实度(Faithfulness)。
端到端测试: 设定固定任务集,检查工具调用是否成功,结果是否符合预期。