一、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。