當(dāng)RAG遇上MCP...
原創(chuàng)隨著基礎(chǔ)模型能力的不斷增強(qiáng),現(xiàn)實(shí)世界中的應(yīng)用場(chǎng)景對(duì)人工智能提出了更高的要求,推動(dòng)其向更具上下文感知能力、依賴外部信息檢索以及由智能智能體驅(qū)動(dòng)的方向發(fā)展。為了滿足這些需求,諸如檢索增強(qiáng)生成(RAG)和MCP等關(guān)鍵技術(shù)正逐步成為構(gòu)建現(xiàn)代AI系統(tǒng)的核心組成部分。
1. 簡(jiǎn)要回顧
檢索增強(qiáng)生成(RAG)是一種結(jié)合語(yǔ)言模型與外部知識(shí)庫(kù)的方法,使模型能夠在生成回答之前,先通過(guò)向量搜索或語(yǔ)義搜索技術(shù)檢索相關(guān)的文檔內(nèi)容。隨后,這些檢索到的信息會(huì)被整合進(jìn)提示詞中,作為生成響應(yīng)的依據(jù)。這種機(jī)制不僅有效緩解了模型在處理超出訓(xùn)練數(shù)據(jù)范圍問(wèn)題時(shí)的上下文長(zhǎng)度限制,還顯著降低了“幻覺(jué)”現(xiàn)象的發(fā)生概率,使輸出更加準(zhǔn)確且基于事實(shí)。
與此同時(shí),MCP 提供了一種結(jié)構(gòu)化的方式來(lái)編碼 AI 智能體的動(dòng)態(tài)上下文,特別適用于需要長(zhǎng)時(shí)間運(yùn)行、具備角色認(rèn)知和工具理解能力的復(fù)雜任務(wù)。它幫助智能體維護(hù)自身身份、管理任務(wù)狀態(tài),并協(xié)調(diào)與外部環(huán)境的交互??梢詫⑵湟暈閲@ RAG 查詢所構(gòu)建的一層輕量級(jí)協(xié)議,融合了元數(shù)據(jù)與推理狀態(tài),從而實(shí)現(xiàn)更靈活的記憶存儲(chǔ)、上下文鏈接以及環(huán)境信息注入。這種設(shè)計(jì)大大增強(qiáng)了智能體系統(tǒng)的可擴(kuò)展性和可控性,為未來(lái)智能化應(yīng)用的發(fā)展提供了堅(jiān)實(shí)的基礎(chǔ)。
2.RAG-MCP的工作流程示意
這個(gè)流程展示了一個(gè)現(xiàn)代 AI 應(yīng)用程序中,如何將用戶的問(wèn)題轉(zhuǎn)化為一個(gè)結(jié)構(gòu)清晰、有上下文支持的智能響應(yīng)過(guò)程。整個(gè)流程可以分為以下幾個(gè)關(guān)鍵步驟:
User Query
↓
Retriever → [Documents]
↓
MCP Formatter: {"role": "analyst", "task": "...", "context": [docs]}
↓
LLM (Gemini/Claude/GPT)
↓
Response grounded in context + protocol- 用戶查詢(User Query)用戶提出一個(gè)自然語(yǔ)言問(wèn)題或請(qǐng)求,例如“最近的財(cái)報(bào)顯示公司收入增長(zhǎng)了嗎?”
- 檢索器(Retriever)系統(tǒng)使用檢索器從外部知識(shí)庫(kù)(如數(shù)據(jù)庫(kù)、文檔庫(kù)或網(wǎng)絡(luò)資源)中查找與問(wèn)題相關(guān)的文檔或信息。這些文檔可能包括最新的財(cái)報(bào)數(shù)據(jù)、市場(chǎng)分析報(bào)告等。
- MCP 格式化(MCP Formatter)MCP 是一種結(jié)構(gòu)化的上下文管理機(jī)制。在此步驟中,系統(tǒng)將檢索到的信息與用戶的任務(wù)結(jié)合,并按照預(yù)定義的格式組織起來(lái)。例如:這一步確保了模型在生成答案時(shí)不僅了解問(wèn)題本身,還清楚自己的角色和可用的信息來(lái)源。
- 角色(role):“分析師”——告訴模型它應(yīng)該以專業(yè)視角回答問(wèn)題;
- 任務(wù)(task):“分析收入變化趨勢(shì)”;
- 上下文(context):包含檢索到的相關(guān)文檔內(nèi)容。
- 大語(yǔ)言模型(LLM)處理經(jīng)過(guò)格式化的輸入被送入大型語(yǔ)言模型(如 Gemini、Claude 或 GPT),模型會(huì)基于提供的上下文和角色設(shè)定進(jìn)行推理和生成。
- 響應(yīng)生成(Response grounded in context + protocol)模型輸出一個(gè)既符合用戶需求,又建立在真實(shí)文檔和結(jié)構(gòu)化指令基礎(chǔ)上的回答。這種響應(yīng)是“有據(jù)可依”的,避免了傳統(tǒng)模型可能出現(xiàn)的“幻覺(jué)”問(wèn)題(即編造信息)。
該流程融合了檢索增強(qiáng)生成(RAG) 和 智能體驅(qū)動(dòng)的上下文管理(MCP),代表了一種先進(jìn)的 AI 工作流設(shè)計(jì)方式。它不僅提升了模型回答問(wèn)題的準(zhǔn)確性,也增強(qiáng)了其在復(fù)雜業(yè)務(wù)場(chǎng)景下的實(shí)用性,例如企業(yè)決策支持、個(gè)性化客服、智能助手等領(lǐng)域。
3.實(shí)驗(yàn): 最小化的RAG-MCP流水線
3.1. 安裝依賴庫(kù)
pip install sentence-transformers faiss-cpu openai3.2. 配置向量存儲(chǔ)
from sentence_transformers import SentenceTransformer
import faiss
import numpy as np
# Documents to retrieve from
docs = [
"RAG uses retrieval to improve generation.",
"MCP is a protocol for embedding model behavior and task context.",
"LangChain and LlamaIndex offer RAG frameworks.",
"Vector stores allow semantic search over text."
]
# Create vector index
model = SentenceTransformer("all-MiniLM-L6-v2")
embeddings = model.encode(docs)
index = faiss.IndexFlatL2(embeddings.shape[1])
index.add(embeddings)3.3. 定義檢索器
def retrieve_top_k(query, k=2):
query_vec = model.encode([query])
D, I = index.search(np.array(query_vec), k)
return [docs[i] for i in I[0]]3.4. 構(gòu)建MCP 封裝
def build_mcp_prompt(user_query, context_docs):
return f"""<MCP>
Role: Analyst Agent
Task: Answer user query with context-aware, grounded reasoning.
Context:
{"".join(f"- {doc}\n" for doc in context_docs)}
User Query:
{user_query}
Answer:"""3.5. 生成響應(yīng) (OpenAI示例)
import openai
openai.api_key = "your-openai-key"
def generate_with_openai(prompt):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{ "role": "user", "content": prompt }],
temperature=0.5
)
return response.choices[0].message["content"]3.6. 完整的流水線
query = "How does MCP help with AI agent context?"
retrieved = retrieve_top_k(query, k=2)
mcp_prompt = build_mcp_prompt(query, retrieved)
output = generate_with_openai(mcp_prompt)
print("?? MCP Prompt:\n", mcp_prompt)
print("\n?? RAG-MCP Answer:\n", output)4.小結(jié)
RAG-MCP 構(gòu)成了智能、工具驅(qū)動(dòng)型人工智能智能體的核心之一。無(wú)論您是借助 LangChain、LlamaIndex 等現(xiàn)成框架,還是自行開(kāi)發(fā)編排系統(tǒng),MCP 都能為 RAG(檢索增強(qiáng)生成)流程引入清晰的結(jié)構(gòu)化邏輯。這種結(jié)構(gòu)不僅提升了智能體在處理復(fù)雜任務(wù)時(shí)的一致性和可控性,還增強(qiáng)了其決策過(guò)程的可解釋性與整體能力,使 AI 智能體能夠在多步驟、長(zhǎng)周期的任務(wù)中表現(xiàn)得更加穩(wěn)健和高效。

























