开篇引入
每年高考季,千万考生和家长都面临着一个共同的难题:面对数千所院校、数百个专业以及复杂的招录规则,如何科学地填报志愿?传统的“翻书查数据、凭经验报志愿”模式,因信息滞后、匹配度低、决策压力大等问题,早已显得力不从心-4。在这样的背景下,

很多开发者和学习者在接触这类应用时,往往陷入一个常见误区:只知道怎么调用API返回答案,却
本文将以报考AI助手为实战场景,由浅入深地拆解RAG与Agent两大核心技术,从痛点出发、讲清概念、对比差异、提供代码示例,并提炼高频面试考点。无论你是技术入门者、在校学生,还是正在备战面试的开发者,这篇文章都能帮你建立完整的技术知识链路。

一、痛点切入:为什么需要报考AI助手?
在理解技术之前,先看看没有AI时我们是怎么填报志愿的。
传统填报方式的流程
传统方式:依赖人工查询 + 经验判断 def traditional_volunteer_filling(score, province, major_preference): 1. 查阅厚厚的高考志愿填报指南(纸质版) 2. 手动查找往年分数线数据 3. 凭经验估算冲/稳/保院校 4. 人工排序志愿 return recommendation 基于有限信息和主观判断
三大痛点
信息不对称严重:数千所院校、上万个专业的招录规则复杂多变,普通家庭难以全面掌握-4。
数据时效性差:往年录取数据每年都在变,纸质资料一出版就已过时,无法接入当年最新的招生政策变化。
个性化缺失:传统方案无法结合考生的性格特点、职业倾向、家庭背景等多维度信息生成个性化方案-2。
这就是报考AI助手存在的根本原因——用技术手段解决信息获取、实时更新和个性化推荐三大难题。
二、核心概念讲解:RAG(检索增强生成)
标准定义
RAG(Retrieval-Augmented Generation,检索增强生成) 是一种将信息检索与文本生成相结合的技术框架-19。简单理解:RAG = 先检索资料,再让大模型基于资料生成答案。
关键词拆解
检索(Retrieval) :从知识库中找出与用户问题最相关的信息片段
增强(Augmented) :用检索到的信息“增强”大模型的上下文
生成(Generation) :基于增强后的上下文生成准确回答
生活化类比
把RAG想象成一个有参考答案的考试:传统的“裸调大模型”就像是让学生在没有教材的情况下闭卷考试——能写但容易写错。而RAG相当于先给学生一份相关的参考材料,再让他回答问题——准确率自然大幅提升。
核心价值
RAG为大模型“外接动态知识库”,在不重训/微调的前提下,低成本解决四大核心痛点-21:
| 痛点 | RAG解决方案 |
|---|---|
| 知识过期 | 连接实时/持续更新的知识库 |
| 私有数据不可用 | 安全接入企业内部文档 |
| 幻觉(胡说八道) | 基于检索到的事实生成回答 |
| 微调成本高 | 无需投入海量算力重训模型 |
三、关联概念讲解:AI Agent(智能体)
标准定义
AI Agent(人工智能智能体) 是能自主感知、思考、行动的任务执行体-44。它不只是回答问题,而是能够完成目标。
Agent的核心能力
一个典型的AI Agent需要具备-30:
记忆管理:记住上下文,支持多轮对话和长期任务
工具学习:调用外部工具(API、数据库、计算器)执行操作
规划推理:将复杂任务拆解成多个步骤,按序执行
自我反思:执行过程中检查效果,必要时调整策略
生活化类比
RAG 像一个聪明的图书管理员——你问问题,它能快速从书库中找到相关资料并给出答案
Agent 像一个全能管家——你说“帮我规划一次周末旅行”,它会:查天气→订机票→搜酒店→排行程→生成清单→全部帮你搞定
Function Calling:Agent的“手脚”
Agent能调用外部工具,依赖的是Function Calling(函数调用/工具调用) 能力。开发者向大模型注册工具函数后,模型能根据问题智能选择并调用哪个工具,附上正确参数,并将执行结果转化为最终答案-。
四、概念关系与区别总结
| 维度 | RAG | AI Agent |
|---|---|---|
| 核心目标 | 生成有质量、可信的文本回答 | 完成复杂目标或现实任务 |
| 本质定位 | “知道” ——知识增强 | “能做” ——行动执行 |
| 是否调用工具 | 不必须,主要做检索+生成 | 必须,依赖Function Calling |
| 典型场景 | 知识库问答、智能客服 | 自动订票、数据分析、多步骤任务 |
| 一句话概括 | 让大模型说话更靠谱 | 让大模型做事更能干 |
一句话总结:RAG让模型“知道”更多,Agent让模型“能做”更多。在报考AI助手中,RAG负责准确检索院校和专业信息,Agent负责规划填报策略、调用算法计算录取概率、生成完整方案-44。
五、代码/流程示例演示
下面用极简代码演示RAG的核心流程,以报考AI助手的知识库问答为例:
报考AI助手 - RAG核心流程极简演示 需要安装:pip install chromadb sentence-transformers from sentence_transformers import SentenceTransformer import chromadb 1. 初始化Embedding模型(将文本转为语义向量) embedder = SentenceTransformer('BAAI/bge-small-zh') 2. 构建知识库(院校专业信息) knowledge_base = [ "清华大学计算机科学与技术专业,2025年北京录取最低位次约前100名", "北京大学临床医学专业,五年制,录取分数通常在680分以上", "新高考省份采用'院校专业组'投档模式,每组单独划线", ... 更多院校专业数据 ] 3. 向量化并存入向量数据库(索引阶段) client = chromadb.Client() collection = client.create_collection("universities") embeddings = embedder.encode(knowledge_base) collection.add( documents=knowledge_base, embeddings=embeddings.tolist(), ids=[str(i) for i in range(len(knowledge_base))] ) 4. 用户提问(检索阶段) user_question = "清华大学计算机专业需要多少分?" query_embedding = embedder.encode([user_question]) 5. 语义检索Top-K相关片段 results = collection.query(query_embeddings=query_embedding.tolist(), n_results=2) 6. 构建增强提示词(生成阶段) retrieved_context = "\n".join(results['documents'][0]) prompt = f""" 基于以下参考资料回答问题。如果参考资料中没有相关信息,请回答"不知道"。 参考资料: {retrieved_context} 问题:{user_question} 回答:""" 7. 调用大模型生成答案(此处用模拟输出) print("检索到的相关片段:", retrieved_context) print("最终回答:清华大学计算机科学与技术专业,2025年北京录取最低位次约前100名")
关键步骤标注:
索引阶段(离线) :将知识库文本→切片→向量化→存入向量数据库
检索阶段(在线) :用户问题向量化→在数据库中语义→返回Top-K结果
生成阶段:检索结果+问题→构建Prompt→大模型生成回答
六、底层原理/技术支撑
RAG技术的底层依赖三大支撑点:
1. Embedding(嵌入向量)
Embedding是将文本转换为语义向量的核心技术。没有Embedding提供的语义量化能力,RAG就无法实现高效的“检索增强”-21。
2. 向量数据库
用于存储和检索向量数据,支持高效的相似度。常见方案包括Chroma、Milvus、Pinecone等-19。
3. 大语言模型(LLM)
负责最终的生成环节,基于检索到的上下文给出答案。当前主流模型包括GPT-4、Claude 3、Qwen等。
这三者构成了RAG的完整技术栈。关于Agent,其底层还依赖Function Calling、记忆管理、任务规划等更复杂的机制,这部分将在后续进阶文章中展开。
七、高频面试题与参考答案
Q1:什么是RAG?为什么需要RAG?
参考答案:
RAG(Retrieval-Augmented Generation,检索增强生成)是一种将信息检索与文本生成相结合的技术框架。它的核心思想是:在大模型生成回答之前,先从外部知识库中检索相关信息,将这些信息作为上下文传递给大模型。
需要RAG的原因(三个踩分点):
解决知识时效性问题:大模型训练数据有截止时间,RAG可接入实时更新的知识库
打通私有数据访问:企业内部的私有数据无法被公开LLM访问,RAG能安全地接入
降低幻觉风险:基于检索到的事实生成回答,准确率更高、结果可追溯-68
Q2:RAG和AI Agent有什么区别?
参考答案:
RAG 专注于“知识增强”,核心目标是让模型生成更准确、有依据的回答,属于被动问答型智能
AI Agent 专注于“行动执行”,核心目标是自主完成任务,属于主动执行型智能
一句话记忆:RAG让模型“知道”,Agent让模型“能做”-44
Q3:RAG的核心流程分为哪几个阶段?
参考答案(三个阶段):
索引阶段:将知识库文档切片→Embedding向量化→存入向量数据库
检索阶段:用户问题向量化→在数据库中进行相似度→返回Top-K相关片段
生成阶段:将检索结果与用户问题组合成Prompt→交给大模型生成答案-21
Q4:RAG出现漏召或召回错误时,怎么优化?
参考答案(三个优化方向):
加Rerank环节:在检索后加入重排序模型,对Top-K结果重新打分,过滤低相关结果
优化数据切片:检查切片策略是否合理,尝试重叠切片或按语义段落切片
Prompt层面兜底:明确告诉模型“如果参考资料中找不到答案,直接说不知道”-64
Q5:报考AI助手这种场景下,RAG和Agent分别扮演什么角色?
参考答案:
RAG 负责知识检索:当用户问“这个专业就业前景如何”时,从就业数据库、专业画像中检索相关信息-1
Agent 负责任务执行:规划志愿方案→调用录取概率计算模型→分析60多项因子→生成完整的填报方案,并将决策推演结果呈现给用户-2
结尾总结
核心知识点回顾
痛点驱动:报考AI助手的出现,源于传统志愿填报方式的信息不对称、数据时效性差和个性化缺失
RAG核心:检索增强生成 = 先检索资料 + 再让大模型基于资料生成答案,解决“知识过期”和“幻觉”问题
Agent核心:AI智能体能自主感知、思考、行动,让大模型从“会说话”进阶到“能办事”
两者关系:RAG让模型“知道”,Agent让模型“能做”,在报考AI助手中协同工作——RAG负责检索准确信息,Agent负责规划执行任务
易错点提醒
不要混淆RAG和微调:RAG是动态检索,微调是参数更新,两者适用于不同场景
Agent不等于ChatBot:Agent必须具备工具调用和任务规划能力,不是简单的对话模型
面试中讲RAG一定要说清“检索→增强→生成”三步流程,这是核心踩分点
下篇预告
下一篇将深入拆解 Agent的技术实现——记忆管理如何让Agent记住长上下文?Function Calling如何让模型调用外部工具?ReAct框架如何实现“思考-行动-观察”闭环?敬请关注。