前言:AI 技术演进背景
2023 年被称为"AI 元年",ChatGPT 的出现让大语言模型(LLM)走进了大众视野。 但很快,我们发现单纯的大模型还不够:
- ❌ 它不知道最新的新闻
- ❌ 它不能操作你的电脑
- ❌ 它无法完成复杂的多步骤任务
于是,Agent、RAG、Skill 这些技术应运而生。今天,我们就来聊聊这四大核心技术。
一、LLM:AI 的"大脑"
1.1 什么是 LLM?
LLM (Large Language Model),也就是我们要说的'大模型',比如 DeepSeek、GPT、Gemini 等。
它是谁?
它是整个 AI 系统的 '大脑'。它读过几乎全互联网的书,上知天文下知地理,能写诗、能写代码、能陪你聊天。
它的超能力
- ✅ 理解力 Max:能听懂你在说什么。
- ✅ 生成力 Max:能快速生成高质量的文本。
- ✅ 推理力 Max:能处理复杂的逻辑问题。
1.2 常见的 LLM 有哪些?
| 模型 | 公司 | 特点 |
|---|---|---|
| GPT | OpenAI | 综合能力最强,多模态支持 |
| Claude | Anthropic | 代码能力强,上下文超长 |
| Gemini | 多模态原生,免费额度多 | |
| DeepSeek | DeepSeek | 国产之光,性价比超高,推理能力强 |
| Llama | Meta | 开源可商用,本地部署 |
| 文心一言 | 百度 | 中文优化,国内可用 |
| 通义千问 | 阿里 | 开源版本多,生态丰富 |
| Kimi | 月之暗面 | 长文本处理能力突出 |
1.3 LLM 的局限性
虽然 LLM 很强大,但它有三大硬伤:

这就引出了我们今天要讲的另外三个技术:RAG、Skill、Agent。
二、RAG(检索增强生成):外挂知识库
2.1 什么是 RAG?
它是谁?
如果 LLM 是一个参加'开卷考试'的学生,那 RAG 就是他手边的 '教科书' 或者 '图书馆'。
为什么要用它?
当你要问 LLM 关于'你们公司最新的考勤制度'时,LLM 肯定不知道。 这时候,RAG 的作用就来了:
- 检索 (Retrieve):先去你们公司的文档库里,把'考勤制度'相关的段落找出来。
- 增强 (Augment):把这些段落和你的问题一起扔给 LLM。
- 生成 (Generate):LLM 看着这些资料,回答你的问题。
核心价值
- ✨ 解决幻觉:有据可查,不再瞎编。
- ✨ 数据私有化:不用把数据训练进模型,也能回答私有领域问题。
- ✨ 实时性:文档更新了,回答自然就更新了。
找到相关资料 -> 结合资料回答 -> 用户提问 -> 检索 RAG -> LLM 大脑 -> 最终答案
2.2 RAG 的工作原理

三步走:
1️⃣ 索引(Indexing)
- 把你的文档切分成小块
- 用 Embedding 模型转成向量
- 存入向量数据库(如 Chroma、Pinecone)
2️⃣ 检索(Retrieval)
- 用户提问也转成向量
- 在向量库中找最相似的文档块
- 返回 Top-K 个相关片段
3️⃣ 生成(Generation)
- 把检索到的内容 + 用户问题拼成 Prompt
- 发给 LLM 生成最终答案
2.3 RAG 的实际应用
- 📚 企业知识库问答:上传公司文档,员工随时提问
- 📖 智能客服:基于产品手册自动回答用户问题
- 🔍 论文检索:上传论文库,快速找到相关内容
- 💻 代码助手:基于项目代码库回答技术问题
2.4 代码示例
# 使用 LangChain 实现简单 RAG(新版 API)
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain_chroma import Chroma
from langchain_text_splitters import CharacterTextSplitter
from langchain_community.document_loaders import TextLoader
from langchain.chains import RetrievalQA
# 1. 加载文档
loader = TextLoader('公司手册.txt', encoding='utf-8')
documents = loader.load()
# 2. 切分文档
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
texts = text_splitter.split_documents(documents)
# 3. 创建向量库
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(texts, embeddings)
# 4. 创建检索器
retriever = vectorstore.as_retriever(search_kwargs={"k":3})
# 5. 创建问答链
qa_chain = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model="gpt-4", temperature=0),
chain_type="stuff",
retriever=retriever
)
# 6. 提问
query = "公司的年假政策是什么?"
answer = qa_chain.invoke({"query": query})
print(answer["result"])
三、Skill:给 LLM 配备"工具箱"
3.1 什么是 Skill?
它是谁?
它是 Agent 手里的 '锤子'、'扳手'、'计算器'。
为什么需要它?
LLM 虽然聪明,但它不擅长做某些具体的事情,比如:
- 精确数学计算(大模型算数很差,不如调个计算器)。
- 获取实时天气(需要调天气 API)。
- 操作 Excel(需要调 Python 脚本)。
- 画图(需要调绘图模型)。
Skill 就是把这些具体的能力封装成函数或 API,让 Agent 可以随时调用。
Skill(技能) 就是让 LLM 能够调用外部工具的能力。 如果说 RAG 是给 LLM"补充知识",那 Skill 就是给 LLM"赋予能力"。
3.2 常见的 Skill 类型
| 类型 | 示例 | 用途 |
|---|---|---|
| 搜索工具 | Google Search、Bing API | 获取实时信息 |
| 计算工具 | Python 解释器、Wolfram Alpha | 精确计算 |
| 数据库工具 | SQL 查询、MongoDB | 数据操作 |
| 文件工具 | 读写文件、处理 Excel | 文档处理 |
| API 工具 | 天气 API、股票 API | 获取外部数据 |
| 浏览器工具 | Puppeteer、Selenium | 网页操作 |
3.3 Skill 的工作原理
用户:"北京今天天气怎么样?"
↓ LLM 分析:需要获取实时天气信息
↓ LLM 决定:调用天气查询 Skill
↓ 执行 Skill:调用天气 API 获取数据
↓ LLM 生成:"北京今天晴,25°C..."
四、Agent:让 AI 成为"智能体"
4.1 什么是 Agent?
Agent,智能体。这是目前最让人兴奋的概念!
它是谁?
如果说 LLM 是'大脑',RAG 是'书',那 Agent 就是 '一个完整的人'。它不仅有大脑,还有 手(Tools) 和 耳目(Sensors)。
它能做什么?
Agent 不仅仅是'回答问题',它的核心是 '行动 (Action)'。 它能根据你的目标,自主拆解任务,调用工具,一步步完成工作。 Agent(智能体) 是 AI 的终极形态。
举个栗子 🌰: 你对 DeepSeek 说:'帮我订一张明天去北京的机票。'
- 纯 LLM:只能告诉你怎么订票,或者给你写一段订票的代码。
- Agent:
- 思考:需要先查航班,再选时间,最后支付。
- 行动 1:调用'携程 API'查询航班。
- 行动 2:发现余额不足(假设),调用'提醒工具'告诉你。
- 行动 3:最终帮你下单。
它不仅能理解、能生成,还能:
- 🧠 自主规划:分解复杂任务,制定执行计划
- 🔄 循环执行:多步骤任务自动推进
- 🛠️ 工具调用:灵活使用各种 Skill
- 💾 记忆管理:记住对话历史和中间结果
4.2 Agent 的核心架构
一个完整的 Agent 通常包含四大核心模块:Planning(规划)、Memory(记忆)、Tools(工具)、Action(执行),通过 ReAct 模式循环迭代完成任务。

4.3 ReAct:Agent 的经典范式
ReAct(Reasoning + Acting) 是 Agent 最常用的工作模式:
Thought(思考)→ Action(行动)→ Observation(观察)→ ... → Answer(回答)
示例:
用户:"苹果公司今年的营收是多少?"
Thought: 我需要搜索苹果公司最新的财务报告
Action: 调用搜索工具,搜索"Apple revenue 2024"
Observation: 找到 Apple 2024 Q4 财报,营收 xxx 亿美元
Thought: 我已经找到了答案
Action: 生成最终回答
Answer: 苹果公司 2024 年营收为 xxx 亿美元...
4.4 LangChain 实现 Agent
from langchain.agents import Tool, AgentExecutor, create_react_agent
from langchain_openai import ChatOpenAI
from langchain_community.utilities import SerpAPIWrapper
from langchain.chains import LLMMathChain
# 准备工具
search = SerpAPIWrapper()
llm = ChatOpenAI(model="gpt-4", temperature=0)
llm_math_chain = LLMMathChain(llm=llm)
tools = [
Tool(
name="Search",
func=search.run,
description="用于搜索实时信息"
),
Tool(
name="Calculator",
func=llm_math_chain.run,
description="用于数学计算"
)
]
# 创建 Agent
agent = create_react_agent(llm, tools)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
# 运行
agent_executor.invoke({"input":"苹果公司 CEO 是谁?他今年多大了?"})
五、四者关系:一张图看懂


💡 干货总结
| 概念 | 形象比喻 | 核心作用 | 关键词 |
|---|---|---|---|
| LLM | 大脑 🧠 | 理解、推理、生成 | 通用、思考 |
| RAG | 图书馆 📚 | 提供准确、私有的知识 | 检索、上下文 |
| Skill | 工具箱 🛠️ | 执行具体操作、弥补短板 | API、函数 |
| Agent | 完整的人 🤖 | 自主规划、完成复杂任务 | 规划、行动 |
六、实际应用场景
6.1 智能客服机器人
用户:"我的订单什么时候到?"
Agent 分析:需要查询订单信息
↓ 调用 Skill:查询订单数据库
↓ 获取结果:预计明天送达
↓ 生成回复:"您的订单预计明天送达..."
6.2 企业知识助手
用户:"公司的报销流程是什么?"
RAG 检索:从知识库找到报销手册
↓ LLM 理解:提取关键步骤
↓ 生成回复:分步骤说明报销流程
6.3 编程助手
用户:"帮我写一个 Python 爬虫"
Agent 规划:
1. 分析需求
2. 编写代码
3. 解释代码
↓ 调用 Skill:代码生成 + 代码解释
↓ 输出:完整代码 + 使用说明


