大模型系列(三):提示工程、RAG 与 Agent

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

一、提示工程(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 的工作流程

具体步骤:

  1. 将文档切块:把一篇长文档切分成小段落(chunk)

  2. 向量化存储:用 Embedding 模型把每个段落转成向量,存入向量数据库

  3. 检索:把用户的问题也转成向量,在向量数据库中搜索最相似的 K 个段落

  4. 增强生成:把检索到的段落作为上下文,加上用户的问题,一起发给大模型

代码示例(伪代码)

复制代码
# 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 是最强大的形态,但也最复杂,建议从简单场景开始

相关推荐
长谷深风11118 分钟前
Tool与Skill:AI能力设计的分水岭
java·人工智能·ai·大模型·aiagent
像风一样自由202034 分钟前
41.用FastAPI搭建一个RAG后端需要哪些接口
人工智能·大模型·fastapi·rag·智能体
也非非也1 小时前
DeepSeek没发公告,但它把Agent装进了你的电脑
人工智能·开源·agent·deepseek·dsh
weixin_666593991 小时前
从一句话建表看时空智能体的元数据治理架构——Harness、MCP、Skill如何协同
人工智能·agent·结构化数据·建库
VIP_CQCRE1 小时前
把 OpenCode 接入 Ace Data Cloud:让 VS Code、Cursor、Windsurf 统一调用 AI 编程模型
vscode·大模型·ai编程·opencode·acedatacloud
爱上纯净的蓝天1 小时前
只输出选项和概率的模型:判别层的接口契约与阈值工程
人工智能·大模型·llm·模型评估·架构设计
DeepAgent2 小时前
AI Agent 工程实践(49):一次真实优化——从 Agent v1 到 v2
开发语言·人工智能·agent
民乐团扒谱机2 小时前
【微科普】节拍检测从入门到迁移:西方SOTA模型怎么识别Beat,中国戏曲民乐又该怎么训练?
深度学习·大模型
素男3 小时前
对上的,和没对上的——两篇之间那条链
人工智能·agent·self-becoming·ai长期记忆·ai自我介绍
七夜zippoe4 小时前
多模态 Agent 入门:让 Agent 看懂图片、听懂语音、生成内容
ai·agent·多模态·看懂·听懂·生成内容