?一、MCP (Model Context Protocol)?
1. 核心概念
是什么:MCP是一個開放協議,用于在應用(如IDE、Agent)?和工具/數據源(如服務器、數據庫)?之間建立標準化的通信。
目標:解決AI工具生態的碎片化問題,讓任何應用都能通過統一接口動態發現和調用任何外部資源。
核心角色:
MCP Client:AI應用(如你的LangGraph智能體)。發起請求。
MCP Server:提供工具和資源的服務。處理請求并返回結果。
Transport:通信方式(SSE / STDIO)。
2. 核心接口/方法
initialize
:握手,交換客戶端和服務器的能力信息。tools/list
:客戶端發現服務器提供了哪些可調用的工具(函數)。tools/call
:客戶端調用指定的工具并傳入參數。resources/read
:客戶端讀取服務器管理的資源(如文件內容)。resources/list
:客戶端發現服務器提供了哪些可用的資源。notifications
:服務器主動向客戶端發送通知(需SSE傳輸)。
3. SSE vs. STDIO
SSE (Server-Sent Events):
基于HTTP,適合遠程服務化部署。
一個Server可服務多個Client。
支持服務器主動推送(
notifications
)。
STDIO (Standard Input/Output):
基于進程管道,適合本地集成。
Server作為Client的子進程啟動,生命周期綁定。
更簡單、高效,但不支持遠程和多客戶端。
4. 核心優勢(面試時要強調的點)
解耦與復用:智能體(Client)與工具(Server)解耦,一個工具服務器可被多個智能體復用。
動態性:智能體無需預知工具信息,運行時動態發現和調用。
安全性:工具訪問權限集中在Server端控制,更安全。
標準化:提供了統一的工具集成規范,避免重復造輪子。
二、Function Calling?
1. 核心概念
是什么:大語言模型的一種能力,允許模型識別出用戶請求中需要調用外部工具/函數的意圖,并結構化地輸出調用所需的參數。
工作流程?(ReAct模式):
規劃:LLM根據用戶請求,決定是否需要調用函數,以及調用哪個函數。
執行:系統在外部執行該函數(代碼)。
觀察:將函數執行的結果返回給LLM。
反思:LLM基于結果生成最終回答或決定下一步行動。
2. 如何定義函數 (Function Signature)
通常以一個JSON Schema數組的形式在請求時提供給LLM。
包含三大要素:
name
:函數名。description
:功能的詳細自然語言描述,這是LLM是否調用該函數的關鍵。parameters
:參數的JSON Schema定義(類型、描述、是否必需等)。
3. LLM的輸出
當LLM決定調用函數時,它會停止生成普通文本,轉而輸出一個結構化的JSON對象(如OpenAI的?
tool_calls
?數組)。包含:要調用的函數ID (
id
)、函數名 (name
)、參數 (arguments
)。
4. 核心優勢與價值
突破局限:讓LLM能夠獲取實時信息、執行操作、訪問私有數據,克服了其知識截止、可能產生幻覺等局限。
賦能智能體:是構建AI智能體(Agent)的基石,使LLM從“問答機”升級為“行動中樞”。
5. Function Calling vs. MCP
Function Calling:是LLM的能力,定義了LLM如何請求調用一個函數。
MCP:是通信協議,定義了函數調用請求如何在不同進程間傳輸。
關系:MCP可以看作是Function Calling的“傳輸層”和“基礎設施”。你的智能體通過Function Calling決定調用?
get_weather
,然后通過MCP協議將這個消息發送給遠端的天氣工具服務器。
?三、其他重要AI應用概念
1. RAG (Retrieval-Augmented Generation) 檢索增強生成
是什么:通過從外部知識庫檢索相關信息,并將其作為上下文提供給LLM,從而生成更準確、更可靠的答案的技術。
核心流程:
索引:將文檔切塊、嵌入(Embedding),存入向量數據庫。
檢索:將用戶問題嵌入,在向量庫中檢索最相關的K個文本片段。
增強:將檢索到的片段(Context)和用戶問題(Question)組合成一個新的提示(Prompt)。
生成:將增強后的提示發送給LLM生成答案。
優勢:降低成本(無需微調)、可溯源、可及時更新知識(只需更新向量庫)。
2. Agent (智能體)
是什么:能理解用戶指令、規劃任務、調用工具并自主完成復雜目標的AI系統。
核心組件:
規劃:分解任務、反思修正(ReAct, CoT)。
記憶:短期記憶(對話上下文)、長期記憶(向量庫/數據庫)。
工具使用:Function Calling的核心價值體現。
經典框架:LangGraph, AutoGPT, BabyAGI。
3. LangChain / LlamaIndex 核心概念
LangChain:
核心價值:提供了一套組件和鏈(Chain)來簡化LLM應用的開發。
必知概念:
Model I/O
?(LLM, PromptTemplate, OutputParser),?Retrieval
,?Chains
?(LCEL),?Agents
?(AgentExecutor, Tools),?Memory
。
LlamaIndex:
核心價值:專注于構建RAG應用,是“LLM和外部數據之間的橋梁”。
必知概念:
Index
?(向量索引、摘要索引),?Query Engine
,?Retriever
,?Node
,?Ingestion Pipeline
。
4. 提示工程 (Prompt Engineering)
核心原則:清晰、具體,提供充足上下文。
必知技巧:
Few-Shot:提供幾個示例,讓LLM模仿。
Chain-of-Thought (CoT):“讓我們一步步思考”,引導模型推理。
Role-Playing:“你是一個專業的...”,為模型設定角色。
模板化:使用
{variable}
占位符構建可復用的提示模板。
5. 評估與優化
評估指標:
忠實度 (Faithfulness):答案是否基于提供的上下文?(防幻覺)
答案相關性 (Answer Relevance):答案是否回答了問題?
上下文相關性 (Context Relevance):檢索的上下文是否都與問題相關?
優化方向:
檢索優化:調整切塊大小/重疊、嘗試不同嵌入模型、優化檢索策略(混合搜索、重排序)。
提示優化:迭代提示詞,加入指令和格式要求。
迭代評估:構建評估數據集,持續迭代優化整個Pipeline。