这里写自定义目录标题
- 欢迎使用Markdown编辑器
- 一、为什么这四个技术点必须一起学
- 二、Prompt 工程:与大模型沟通的艺术
- 2.1 Prompt 的核心要素
- 2.2 进阶 Prompt 示例
- 生成一个适合你的列表
- 创建一个表格
- 设定内容居中、居左、居右
- SmartyPants
- 创建一个自定义列表
- 如何创建一个注脚
- 注释也是必不可少的
- KaTeX数学公式
- 新的甘特图功能,丰富你的文章
- UML图表
- 流程图
- FLowchart流程图
- 导出与导入
- 导出
- 导入
欢迎使用Markdown编辑器
你好! 这是你第一次使用# 大模型应用开发实战:从 Prompt 工程到 RAG、Agent 与 MCP 的完整指南
一、为什么这四个技术点必须一起学
很多开发者在把大模型应用到实际业务时,都会卡在几个关键环节:如何让模型理解更复杂的指令(Prompt)、如何让模型访问外部知识(RAG)、如何让模型自主完成任务(Agent),以及如何让模型与各种工具安全交互(MCP)。这四个技术点看似独立,实则环环相扣,构成了现代 LLM 应用的核心骨架。
如果你只学 Prompt 工程,做出来的应用只能"回答问题";加上 RAG,应用才能"知道答案";加上 Agent,应用才能"动手做事";再加上 MCP,应用才能"安全地连接外部系统"。本文按照这条从易到难的路径,带你一步步构建一个具备知识检索、自主决策和工具调用能力的智能应用。
二、Prompt 工程:与大模型沟通的艺术
Prompt(提示词)是你与大模型对话的"指令集"。它不仅仅是"问问题",更是一种结构化的编程。一个精心设计的 Prompt 能激发模型最强的能力,而一个糟糕的 Prompt 可能得到完全无关的回答。
2.1 Prompt 的核心要素
一个高质量的 Prompt 通常包含五个要素:
- 角色(Role):定义模型在对话中扮演的身份,如"你是一位资深 Java 架构师"。
- 任务(Task):清晰、具体地说明你希望模型完成什么。
- 上下文(Context):提供完成任务所需的相关背景信息。
- 格式(Format):指定输出结果的格式,如 JSON、Markdown、代码块等。
- 示例(Few-shot):提供少量输入-输出示例,让模型快速理解你的意图。
2.2 进阶 Prompt 示例
以生成 API 接口文档为例:
你是一位经验丰富的技术文档撰写助手。请根据以下用户需求,生成一份 API 接口文档。 【用户需求】 - 接口功能:用户登录 - - 方法:POST - - 路径:/api/v1/auth/login - - 请求参数:username(字符串,必填),password(字符串,必填) - - 成功响应:{"code": 200, "message": "success", "data": {"token": "xxx"}} - - 失败响应:{"code": 401, "message": "invalid credentials"} - 【输出要求】请以 Markdown 格式输出,必须包含"接口说明"、"请求示例"、"响应示例"和"错误码"四个章节。 - ``` 这个 Prompt 把角色、任务、上下文、格式全部明确下来,模型输出的文档质量会远超"帮我写个接口文档"这种模糊指令。 ### 2.3 提示词工程的最佳实践 在实践中,我总结了几条经验:一是把系统提示词(System Prompt)和用户提示词分离,系统提示词负责定义角色和规则,用户提示词负责具体任务;二是善用 Few-shot 示例,模型对示例的模仿能力远超对抽象描述的遵循能力;三是明确输出格式,特别是要求 JSON 输出时,要给出完整的字段结构,避免模型自由发挥导致解析失败。 ## 三、RAG:让模型访问外部知识 大模型的训练数据有截止日期,且不包含企业私有数据。RAG(检索增强生成)通过"先检索、后生成"的方式,让模型在回答问题时先到外部知识库中检索相关资料,再基于检索结果生成答案。 ### 3.1 RAG 的核心流程 一个标准的 RAG 系统分为离线数据预处理和在线检索生成两个阶段: **离线阶段(数据接入与处理):** 1. 多源文档解析:解析 PDF、Word、Excel、Markdown 等格式,提取表格、图表,甚至通过 OCR 识别扫描件。 2. 2. 智能文本分块(Chunking):将大文档切分成数百 Token 大小的片段,并保持适当的上下文重叠。 3. 3. 向量化(Embedding):利用 Embedding 模型将文本块转化为高维数学向量。 4. 4. 向量数据库存储:存入 Milvus、Qdrant、Pinecone 等向量数据库,用于后续的相似度匹配。 **在线阶段(检索与生成):** 5. 用户意图理解与查询优化:对用户输入进行清洗、扩展、纠错。 6. 2. 混合检索(Hybrid Search):结合向量检索(语义搜索)和全文检索(关键词/BM25),大幅提升召回率。 7. 3. 重排(Rerank):使用 Reranker 模型对候选片段进行精细化打分,剔除噪音。 8. 4. 上下文组装与 Prompt 注入:将用户问题与检索到的高质量片段打包成特定 Prompt,输入给 LLM。 ### 3.2 RAG 的进阶形态 传统 RAG 是"一问一答、一查了事",面对复杂问题时往往力不从心。进阶的 Agentic RAG 引入了多步骤的动态决策过程:自主规划(把复杂问题拆解成多个子问题)、迭代检索(发现资料不够时自主重写查询词,多搜几次)、自我反思(输出答案前检查结论是否完全由检索到的知识支撑)。这种"检索-阅读-反思-再检索"的动态循环,能显著提升复杂问题的回答质量。 ## 四、Agent:让模型自主完成任务 Agent 是具备一定自主性的系统,它不仅能"思考",还能"动手"。一个完整的 Agent 通常包含以下核心组件: - **规划与决策模块**:接收高层级目标,并将其分解为一系列可执行的子任务。 - - **工具调用能力**:调用外部工具,如执行网络搜索、查询数据库、运行代码、调用 API。 - - **记忆与状态管理**:记住自己的目标、已完成的步骤、获取到的中间结果以及工具调用的历史。 - - **观察与反馈循环**:执行一个动作后观察结果,并根据结果决定下一步行动,形成"思考-行动-观察"的循环。 通俗地讲,Agent 是一个能自己订计划、用工具、记笔记、并不断调整策略来完成复杂任务的"智能程序"。 ## 五、MCP:让模型安全地连接外部系统 MCP(Model Context Protocol)是 Anthropic 提出的开放协议,它解决了 Agent 与外部工具交互时的标准化问题。在没有 MCP 之前,每个工具都需要单独写适配代码,工具多了之后维护成本极高。MCP 定义了统一的协议,让模型可以通过标准化的方式发现工具、调用工具、接收工具返回结果。 MCP 的核心价值在于三点:一是标准化,一套协议连接所有工具;二是安全性,通过权限控制避免模型越权操作;三是可扩展性,新增工具只需要实现 MCP 协议,不需要改动 Agent 核心逻辑。 ## 六、综合实战:构建一个完整的智能应用 把四个技术点串起来,我们可以构建一个"智能客服"应用:用户提问后,系统先用 RAG 从企业知识库检索相关资料,再通过 Agent 判断是否需要调用外部工具(如查询订单系统),最后用 Prompt 工程组织答案输出。整个链路中,Prompt 负责"说清楚",RAG 负责"找得准",Agent 负责"做得到",MCP 负责"连得稳"。 这套架构已经成为 2026 年大模型应用开发的主流范式。建议开发者按照"先 Prompt、再 RAG、后 Agent、最后 MCP"的顺序逐步深入,每一步都动手实现一个可运行的小项目,才能真正掌握这套完整的技术栈。 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 ## 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 1. **全新的界面设计** ,将会带来全新的写作体验; 2. 在创作中心设置你喜爱的代码高亮样式,Markdown **将代码片显示选择的高亮样式** 进行展示; 3. 增加了 **图片拖拽** 功能,你可以将本地的图片直接拖拽到编辑区域直接展示; 4. 全新的 **KaTeX数学公式** 语法; 5. 增加了支持**甘特图的mermaid语法[^1]** 功能; 6. 增加了 **多屏幕编辑** Markdown文章功能; 7. 增加了 **焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置** 等功能,功能按钮位于编辑区域与预览区域中间; 8. 增加了 **检查列表** 功能。 [^1]: [mermaid语法说明](https://mermaid.js.org/intro/) ## 功能快捷键 撤销:<kbd>Ctrl/Command</kbd> + <kbd>Z</kbd> 重做:<kbd>Ctrl/Command</kbd> + <kbd>Y</kbd> 加粗:<kbd>Ctrl/Command</kbd> + <kbd>B</kbd> 斜体:<kbd>Ctrl/Command</kbd> + <kbd>I</kbd> 标题:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>H</kbd> 无序列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>U</kbd> 有序列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>O</kbd> 检查列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>C</kbd> 插入代码:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>K</kbd> 插入链接:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>L</kbd> 插入图片:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>G</kbd> 查找:<kbd>Ctrl/Command</kbd> + <kbd>F</kbd> 替换:<kbd>Ctrl/Command</kbd> + <kbd>G</kbd> ## 合理的创建标题,有助于目录的生成 直接输入1次<kbd>#</kbd>,并按下<kbd>space</kbd>后,将生成1级标题。 输入2次<kbd>#</kbd>,并按下<kbd>space</kbd>后,将生成2级标题。 以此类推,我们支持6级标题。有助于使用`TOC`语法后生成一个完美的目录。 ## 如何改变文本的样式 *强调文本* _强调文本_ **加粗文本** __加粗文本__ ==标记文本== ~~删除文本~~ > 引用文本 H~2~O is是液体。 2^10^ 运算结果是 1024. ## 插入链接与图片 链接: [link](https://www.csdn.net/). 图片:  带尺寸的图片:  居中的图片:  居中并且带尺寸的图片:  当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。 ## 如何插入一段漂亮的代码片 去[博客设置](https://mp.csdn.net/console/configBlog)页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 `代码片`. ```javascript // An highlighted block var foo = 'bar';生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
| 项目 | Value |
|---|---|
| 电脑 | $1600 |
| 手机 | $12 |
| 导管 | $1 |
设定内容居中、居左、居右
使用:---------:居中
使用:----------居左
使用----------:居右
| 第一列 | 第二列 | 第三列 |
|---|---|---|
| 第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants 是一个文本转换工具,主要功能是将普通的 ASCII 标点符号自动转换为更美观的印刷体标点符号。例如:
| 原始符号 | 转换后 | 说明 |
|---|---|---|
"引号" | “引号” | 直引号变弯引号 |
'单引号' | ‘单引号’ | 直单引号变弯单引号 |
-- | – | 两个连字符变短破折号 |
--- | — | 三个连字符变长破折号 |
... | … | 三个点变省略号 |
创建一个自定义列表
- Markdown
- Text-to-HTMLconversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。1
注释也是必不可少的
Markdown将文本转换为HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb NΓ(n)=(n−1)!∀n∈N是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息LaTeX数学表达式here.
新的甘特图功能,丰富你的文章
- 关于甘特图语法,参考 这儿,
UML图表
可以使用UML图表进行渲染,例如下面产生的一个序列图:
- 关于UML图表语法,参考 这儿,
流程图
- 关于Mermaid语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart.js的流程图语法:
- 关于Flowchart流程图语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到文章导出,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎