目录

一.技术理论学习

一、Prompt(提示工程)

二、CoT(Chain-of-Thought,链式思考)

三、RAG(Retrieval-Augmented Generation,检索增强生成)

四、Agent(智能体)

五、MCP(Model Context Protocol,模型上下文协议)

六、技术关联与协同逻辑

二.实验场景:企业智能采购助手

🛠️ 实验步骤拆解

第一步:角色设定与指令接收 (Prompt Engineering)

第二步:意图理解与逻辑拆解 (Agent + CoT)

第三步:查阅公司规章 (RAG)

第四步:连接业务系统 (MCP)

第五步:执行与反馈 (闭环)

📊 技术协同总结表

三.技术选型(工具栈)

💻 核心代码实现

🧠 代码运行原理解析

Prompt (人设)

Agent + CoT (思考)

RAG (检索)

MCP (工具调用)

📌 总结


一.技术理论学习

一、Prompt(提示工程)

Prompt是用户与大模型交互的核心方式,本质是通过设计精准的输入指令,引导模型生成符合预期的输出。其核心逻辑在于“指令即代码”——大模型的输出质量高度依赖输入的结构化程度。

  • 基础原则:清晰性(避免模糊表述)、具体性(明确任务边界)、上下文关联(提供必要背景)。例如,与其问“总结这篇文章”,不如说“用3句话总结这篇关于气候变化的论文,重点突出研究方法和结论”。
  • 进阶技巧:角色设定(“假设你是一名资深医生,解释糖尿病并发症”)、分步引导(“第一步列出关键数据,第二步分析趋势,第三步给出建议”)、示例驱动(Few-shot Prompting,提供1-3个输入输出示例,让模型模仿逻辑)。
  • 应用场景:内容创作(文案、代码生成)、信息提取(从长文本中抓取关键实体)、任务拆解(将复杂需求分解为可执行的子指令)。
二、CoT(Chain-of-Thought,链式思考)

CoT是一种通过引导模型显式展示推理过程来提升复杂任务准确率的技术,核心是“让模型像人类一样逐步思考”。

  • 核心机制:将复杂问题拆解为中间推理步骤,通过序列化输出降低逻辑错误。例如,解决数学问题时,模型会先列出已知条件,再推导公式,最后计算结果,而非直接给出答案。
  • 实现方式
    • Zero-shot CoT:通过添加“让我们一步一步思考”等触发词,激活模型的内在推理能力(适用于大参数模型,如GPT-4)。
    • Few-shot CoT:提供包含完整推理链的示例(如“问题→步骤1→步骤2→答案”),让模型学习推理模式,准确率提升更显著。
  • 价值:在数学推理、逻辑分析、多步骤决策等任务中,准确率可提升2-4倍,同时增强结果的可解释性(用户可追溯推理路径)。
三、RAG(Retrieval-Augmented Generation,检索增强生成)

RAG通过“检索+生成”的双阶段架构,解决大模型知识截止和事实性错误问题,核心是“用外部知识库为模型‘补课’”。

  • 工作流程:用户提问→将问题转化为向量→在外部知识库(如企业文档、数据库)中检索相关片段→将检索结果与问题拼接为增强Prompt→模型基于最新信息生成答案。
  • 优势
    • 实时性:无需重新训练模型,即可接入最新数据(如产品手册、市场报告)。
    • 准确性减少模型“幻觉”,答案基于可验证的检索内容。
  • 应用场景:智能客服(调用产品知识库)、企业知识问答(员工查询内部政策)、专业领域辅助(医生参考最新病例)。
四、Agent(智能体)

Agent是具备“感知-决策-行动”闭环能力的自主系统,核心是“让大模型从‘被动回答’变为‘主动做事’”。

  • 核心组成
    • 大脑(LLM):负责任务拆解、逻辑推理和决策。
    • 记忆模块:短期记忆(当前对话上下文)+长期记忆(向量数据库存储的历史经验)。
    • 工具调用:通过API、插件或MCP协议连接外部系统(如查询天气、发送邮件、操作数据库)。
    • 反思机制:对行动结果进行校验(如“代码是否通过测试?”),必要时调整策略。
  • 工作流程:用户指令→Agent拆解任务(如“规划旅行”=查天气+订酒店+生成攻略)→调用工具执行子任务→整合结果并输出。
  • 价值:实现复杂任务的自动化(如自动化办公、多步骤数据分析),突破大模型“仅能生成文本”的能力边界。
五、MCP(Model Context Protocol,模型上下文协议)

MCP是连接大模型与外部工具/数据的标准化通信协议,核心是“解决工具调用的碎片化问题,让AI工具像‘插电器’一样即插即用”。

  • 本质:一套统一的“插座规范”——无论工具由何种技术开发(Python、Java等),只要遵循MCP协议,就能被任何支持MCP的Agent调用,无需单独适配。
  • 核心功能
    • 工具标准化:定义工具的输入输出格式(如JSON Schema)、异常处理规范。
    • 上下文传递:在跨工具调用时保持会话连续性(如用户查询“上周订单”→Agent调用CRM系统→返回结果时保留用户身份上下文)。
    • 双向通信:不仅支持模型调用工具,也允许工具主动向模型推送信息(如数据库更新时通知Agent)。
  • 与Agent的关系:MCP是Agent的“基础设施”——Agent通过MCP协议高效调用各类工具,而MCP依赖Agent的决策能力实现任务闭环。
六、技术关联与协同逻辑
  • Prompt是基础交互层:所有技术(CoT、RAG、Agent)都依赖高质量Prompt实现意图传递。
  • CoT是推理增强层:为Agent的任务拆解、RAG的检索结果分析提供逻辑支撑。
  • RAG是知识增强层:为Agent和CoT提供实时、准确的外部数据,弥补模型知识短板。
  • Agent是应用执行层:整合Prompt、CoT、RAG和MCP,形成“思考-行动-反馈”的完整闭环。
  • MCP是生态连接层:为Agent提供标准化工具调用能力,同时为RAG的知识库接入提供统一接口。

二.实验场景:企业智能采购助手

背景设定
你是一家公司的员工,想申请购买一台新的高性能笔记本电脑。
你的指令

“我想申请买一台 MacBook Pro,大概 20000 元,用于跑 AI 模型,请帮我走流程。”

系统目标
系统需要自动判断这笔钱能不能花(是否符合预算),并自动发起审批流程。


🛠️ 实验步骤拆解

我们将这个流程拆解为 5 个步骤,每一步对应一项核心技术。

第一步:角色设定与指令接收 (Prompt Engineering)

技术作用:确立系统的“人设”和“边界”。

系统首先接收到你的指令,但它不能只是一个聊天机器人,它必须是一个“采购专家”。我们需要通过 Prompt 告诉它:

  • 角色:你是公司的高级采购顾问。
  • 任务:协助员工购买设备。
  • 约束:必须严格遵守公司的《采购管理制度》,不能随意承诺。

Prompt 示例
“你是一名资深采购顾问。请根据公司的《采购管理制度》(见上下文)和用户请求,判断该请求是否合规。如果合规,准备发起申请;如果不合规,请礼貌拒绝并说明理由。”

第二步:意图理解与逻辑拆解 (Agent + CoT)

技术作用:让系统“像人一样思考”,把一句话拆解成可执行的计划。

Agent(智能体) 作为大脑,接收到 Prompt 和用户指令后,不会马上回答,而是利用 CoT(链式思考) 在后台进行推理规划。

Agent 的内心独白 (CoT)

  1. 分析用户意图:用户想买 MacBook Pro,价格 20000 元,理由是跑 AI 模型。
  2. 拆解任务
    • 任务 A:查询公司的《采购管理制度》,确认 20000 元是否在预算内?是否需要特殊审批?
    • 任务 B:如果符合制度,调用“采购申请接口”提交单据。
    • 任务 C:如果不符合,告知用户替代方案。
  3. 制定计划:先执行任务 A(查知识库),根据结果决定执行 B 还是 C。
第三步:查阅公司规章 (RAG)

技术作用:解决模型“不知道公司内部规定”的问题,防止胡说八道

根据 CoT 规划的任务 A,Agent 需要查阅资料。它不会去翻纸质文件,而是利用 RAG(检索增强生成) 技术:

  1. 检索:将“20000元 电脑采购 预算”转化为向量,在公司内部的向量数据库(存有《采购管理制度》、《财务报销规范》等 PDF)中搜索。
  2. 增强:检索到了关键片段——“规定第 5 条:单价超过 15000 元的固定资产,需经 CTO 和 CFO 双重审批,且必须有明确的技术研发用途。”
  3. 生成上下文:将这条规定作为“新知识”喂给模型。
第四步:连接业务系统 (MCP)

技术作用:解决模型“手短”的问题,让它能操作公司的 ERP 系统。

现在 Agent 知道了规则(需要双重审批),它需要去执行。它不能直接操作数据库,而是通过 MCP(模型上下文协议) 调用标准化工具。

  • 工具定义 (MCP Server):公司 ERP 系统提供了一个标准的 MCP 接口 create_purchase_order(amount, item, reason, approver_list)
  • 调用过程:Agent 识别到需要填单子,于是按照 MCP 协议的标准格式,生成参数:
    • amount: 20000
    • item: MacBook Pro
    • approver_list: ["CTO", "CFO"] (基于 RAG 查到的规则推断出的)
第五步:执行与反馈 (闭环)

技术作用:完成最终任务并给用户反馈。

  1. 执行:Agent 通过 MCP 成功调用了 ERP 接口,系统返回“申请单号:PO-20260328-001”。
  2. 最终回复:Agent 整合所有信息,回复你:

    “好的,根据你的需求,我已经为你提交了 MacBook Pro 的采购申请(单号:PO-20260328-001)。

    ⚠️ 注意:根据《采购管理制度》,由于金额超过 15000 元,该申请已自动路由给 CTO 和 CFO 进行双重审批。请留意邮件通知。”


📊 技术协同总结表

为了让你一目了然,我将这个实验中的技术分工总结如下:

步骤 涉及技术 形象比喻 在实验中的具体作用
1. 定义 Prompt 岗位说明书 告诉 AI 它是采购顾问,必须守规矩。
2. 思考 Agent + CoT 大脑与思维链 AI 思考:“先查规定,再填单子”,而不是直接瞎编。
3. 查阅 RAG 查阅员工手册 AI 去向量数据库里找到了“超过1.5万需双重审批”的条款。
4. 连接 MCP 标准插座/USB AI 通过标准接口插上了公司的 ERP 系统,填好了表单。
5. 结果 Output 办事结果 告诉用户:单子已提交,正在审批中。

三.技术选型(工具栈)

为了让你最快上手,我们选用 Python 生态中最主流、文档最全的工具:

  • 大模型框架LangChain(目前最流行的编排框架,完美支持 Agent、RAG 和工具调用)。
  • 大模型基座OpenAI GPT-4o(为了演示效果,假设你有 API Key;本地可用 Ollama 替代)。
  • 向量数据库FAISS(Facebook 开源的轻量级向量库,无需安装服务器,适合本地实验)。
  • MCP/工具层LangChain Tools(在代码中,我们将自定义函数模拟为 MCP 工具接口)。

💻 核心代码实现

这段代码是一个完整的 Python 脚本。它模拟了:

  1. RAG:读取“公司采购制度”。
  2. Agent + CoT:思考是否需要查制度,是否需要调用工具。
  3. MCP:调用“提交采购单”的函数。

前置准备
你需要安装库:pip install langchain langchain-openai langchain-community faiss-cpu

import os
from langchain.agents import AgentExecutor, create_openai_functions_agent
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain.tools import tool
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.schema import Document

# ==========================================
# 0. 环境配置 (请替换为你的 API Key)
# ==========================================
os.environ["OPENAI_API_KEY"] = "sk-YOUR-API-KEY-HERE"

# ==========================================
# 1. 模拟 MCP 工具层 (Tools)
# ==========================================
# 这里定义两个函数,模拟公司内部的 ERP 系统和 审批系统
# 在 LangChain 中,这些函数就是 Agent 可以调用的“工具”

@tool
def check_budget_policy(query: str) -> str:
    """
    查询公司采购预算政策。
    用于查询特定金额的采购是否需要特殊审批。
    """
    # 模拟 RAG 检索到的知识库片段
    # 实际生产中,这里会去查 FAISS 向量数据库
    if "20000" in query or "mac" in query.lower():
        return "根据公司《2026采购制度》第5条:单价超过 15,000 元的电子设备,必须经过 CTO 和 CFO 双重审批。"
    return "标准采购流程:金额小于 5000 元由部门经理审批即可。"

@tool
def submit_purchase_order(item_name: str, price: int, approvers: list) -> str:
    """
    提交采购申请单到 ERP 系统。
    参数:
        item_name: 物品名称
        price: 价格
        approvers: 审批人列表
    """
    # 模拟 API 调用成功
    order_id = "PO-20260328-999"
    return f"✅ 成功!采购单已提交至 ERP 系统。单号: {order_id},审批流转给: {', '.join(approvers)}"

# 定义工具列表
tools = [check_budget_policy, submit_purchase_order]

# ==========================================
# 2. 初始化大模型 (The Brain)
# ==========================================
llm = ChatOpenAI(model="gpt-4o", temperature=0) # temperature=0 保证逻辑严谨

# ==========================================
# 3. 构建 Agent 提示词 (Prompt + CoT)
# ==========================================
# 这里的 System Message 实际上就在引导 CoT
prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个专业的企业采购助手。"
               "你必须先查询政策,确认审批流程后,再调用提交工具。"
               "思考过程要清晰。"),
    ("human", "{input}"),
    MessagesPlaceholder(variable_name="agent_scratchpad"), # 这里存放 CoT 的思考历史
])

# ==========================================
# 4. 组装 Agent 并执行
# ==========================================

# 创建 Agent 核心逻辑
agent = create_openai_functions_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) # verbose=True 会在控制台打印思考过程

# ==========================================
# 5. 运行实验
# ==========================================
user_input = "我想买一台 MacBook Pro,价格是 20000 元,用于跑 AI 模型,帮我申请一下。"

print(f"👤 用户: {user_input}\n" + "-"*30)

# 开始执行
response = agent_executor.invoke({"input": user_input})

print("-"*30)
print(f"🤖 AI回复: {response['output']}")

🧠 代码运行原理解析

当你运行这段代码时,后台会发生以下“化学反应”,对应我们之前讲的技术点:

Prompt (人设)

代码中的 ChatPromptTemplate 里的 system 部分。

  • 作用:告诉 GPT-4,“你是个采购助手”,“必须先查政策”。这限定了模型的行为边界。
Agent + CoT (思考)

注意 agent_executor.invoke 这一行。因为开启了 verbose=True,你会在控制台看到类似这样的内心独白(这就是 CoT):

Thought (思考): 用户想买 20000 元的电脑。我需要先确认这个金额是否符合规定,以及需要谁审批。
Action (行动): 调用 check_budget_policy 工具,输入 "20000 元 MacBook"。
Observation (观察): 工具返回:“必须经过 CTO 和 CFO 双重审批”。
Thought (再次思考): 好的,既然需要 CTO 和 CFO 审批,我现在有了所有必要信息(物品、价格、审批人)。
Action (行动): 调用 submit_purchase_order 工具。

RAG (检索)

在代码中,check_budget_policy 函数模拟了 RAG 的检索结果。

  • 真实场景:这个函数内部会连接 FAISS 向量数据库,把“20000元”转化成向量,去匹配公司 PDF 文档中的片段。
MCP (工具调用)

代码中的 @tool 装饰器。

  • 作用:LangChain 将这些 Python 函数转换成了 LLM 能理解的 JSON Schema 格式。模型不需要知道函数怎么写,它只知道:“哦,有一个叫 submit_purchase_order 的工具,我需要给它 item_name 和 price”。这就是 MCP 的核心思想——标准化接口

📌 总结

这段代码就是把 Prompt(指令)CoT(逻辑链)RAG(知识查询) 和 MCP(工具执行) 串起来的完整闭环。你可以直接复制这段代码(填入 Key)运行,亲眼看到 AI 是如何“思考”并“办事”的。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐