
大模型的使用方式可以分成三个层次,难度递增,能力也递增。

一、提示工程(Prompt Engineering)
提示工程就是设计有效的输入(Prompt),让模型输出想要的结果。
不需要训练模型、不需要微调,只需要学会"问问题"和"给指令"。
为什么需要提示工程?
同一个问题,不同的问法,得到的答案质量可能天差地别。
# 不好的提示
"写个代码"
# 好的提示
"请用 Python 写一个函数,实现二分查找,要求输入一个有序列表和一个目标值,返回目标值的索引,如果不存在返回 -1,请包含注释"
3. 提示工程的核心技巧
| 技巧 | 说明 | 示例 |
|---|---|---|
| 角色设定 | 给模型一个身份 | "你是一位资深 Python 工程师" |
| 明确格式 | 指定输出格式 | "请以 JSON 格式输出" |
| Few-shot | 给几个示例 | 先给 2-3 个输入输出示例 |
| 思维链 | 要求分步思考 | "请一步步分析" |
| 结构化的提示 | 用分隔符等组织 | 用 ### 上下文 ### 分隔不同部分 |
4. 一个完整的提示模板
你是一位专业的数据分析师,拥有 10 年经验。
### 数据 ###
[用户提供的数据]
### 任务 ###
请分析以上数据,回答以下问题:
1. 趋势是什么?
2. 异常点有哪些?
### 要求 ###
- 用中文回答
- 回答要简洁,每条不超过 50 字
- 对异常点给出可能的原因
### 输出格式 ###
{"trend": "上升", "anomalies": [{"date": "2024-01-01", "value": 100, "reason": "..."}]}
5. 提示工程的本质
提示工程就是用人类的语言,引导模型进行"条件生成"。
它是在不改变模型内部参数的情况下,通过输入来调整输出的方向。
二、RAG(检索增强生成)
RAG(Retrieval-Augmented Generation,检索增强生成)的核心思想是:在让模型回答问题之前,先从外部知识库中检索相关信息,然后把检索到的信息作为上下文提供给模型。
RAG 解决的问题
大模型的知识是"静态"的(训练数据截止到某个时间点),存在局限性:
-
不知道你的私有数据(公司文档、个人笔记)
-
不知道最新的信息(今天的新闻)
-
容易产生"幻觉"(编造不存在的知识)
RAG 通过"外挂知识库"来解决这些问题。
RAG 的工作流程

具体步骤:
-
将文档切块:把一篇长文档切分成小段落(chunk)
-
向量化存储:用 Embedding 模型把每个段落转成向量,存入向量数据库
-
检索:把用户的问题也转成向量,在向量数据库中搜索最相似的 K 个段落
-
增强生成:把检索到的段落作为上下文,加上用户的问题,一起发给大模型
代码示例(伪代码)
# 1. 文档处理
documents = ["公司成立于2020年...", "主营AI产品...", "客户包括..."]
chunks = split_into_chunks(documents) # 切块
vectors = embedding_model.encode(chunks) # 向量化
vector_db.store(vectors, chunks) # 存储
# 2. 检索
query = "公司做什么产品?"
query_vector = embedding_model.encode(query)
results = vector_db.search(query_vector, top_k=3) # 搜索
# 3. 生成
prompt = f"""
基于以下信息回答问题:
上下文:{results}
问题:{query}
"""
answer = llm.generate(prompt)
RAG 的优势
| 优势 | 说明 |
|---|---|
| 知识可更新 | 只需更新知识库,无需重新训练模型 |
| 可解释性强 | 可以展示"引用来源",知道答案从哪里来 |
| 成本低 | 比微调模型便宜得多 |
| 幻觉可控 | 模型基于提供的信息回答,减少编造 |
三、Agent(智能体)
Agent(智能体)指的是能够让大模型自主地调用外部工具、执行多步任务的系统。
如果说 RAG 是让模型"能查资料",那么 Agent 就是让模型"能动手干活"。
Agent 的核心能力

| 能力 | 说明 | 示例 |
|---|---|---|
| 规划(Planning) | 把复杂任务拆成子任务 | "帮我订票" → 查机票 → 选航班 → 填信息 → 支付 |
| 工具调用(Tool Use) | 调用外部 API | 查天气、发邮件、搜索、计算 |
| 记忆(Memory) | 记住之前的操作和结果 | 记住用户已经提供了哪些信息 |
| 反思(Reflection) | 根据结果调整计划 | 如果支付失败,尝试其他方式 |
Agent 的工作流程

Agent 的工具示例
# 定义一个工具(伪代码)
tools = [
{
"name": "get_weather",
"description": "获取城市天气",
"parameters": {"city": "string"}
},
{
"name": "send_email",
"description": "发送邮件",
"parameters": {"to": "string", "subject": "string", "body": "string"}
}
]
# Agent 自主决策
user_input = "明天北京天气怎么样?如果下雨,提醒我带伞"
# Agent 会:① 调用 get_weather("北京") → ② 判断是否下雨 → ③ 决定是否提醒
四、三者的关系

| 维度 | 提示工程 | RAG | Agent |
|---|---|---|---|
| 难度 | 低 | 中 | 高 |
| 数据依赖 | 无 | 需要知识库 | 需要工具集 |
| 能力边界 | 模型自身知识 | 模型 + 外部知识 | 模型 + 知识 + 工具 |
| 典型场景 | 通用问答、文案生成 | 私有文档问答、客服 | 自动化任务、数据分析 |
五、最后
| 层次 | 作用 | 一句话理解 |
|---|---|---|
| 提示工程 | 设计输入,引导输出 | "学会问问题" |
| RAG | 外挂知识库,增强回答 | "学会查资料" |
| Agent | 自主规划,调用工具 | "学会动手做" |
建议:
-
日常使用:先掌握提示工程就够了
-
企业场景:RAG 是落地最广的方案(客服、内部知识库、文档问答)
-
复杂任务:Agent 是最强大的形态,但也最复杂,建议从简单场景开始