这四个概念与LangChain的关系,可以这样理解:
Prompt、Agent、Skill、MCP是构建智能体的“设计模式”或“能力组件”,而LangChain是将它们落地为实际代码的“开发框架”。
LangChain为每一个概念都提供了具体的实现工具。下面这张图可以帮你快速建立整体认知:
flowchart TD
subgraph Upper [概念层]
A[Prompt<br>提示词]
B[Agent<br>智能体]
C[Skill<br>技能]
D[MCP<br>模型上下文协议]
end
subgraph Lower [LangChain 实现层]
A1[PromptTemplate<br>ChatPromptTemplate<br>结构化输出]
B1[create_agent<br>AgentExecutor<br>Middleware 中间件]
C1[load_skill 工具<br>Deep Agents<br>预置技能包]
D1[MCP Adapter<br>MultiServerMCPClient<br>langchain-mcp-adapters]
end
Upper --> Lower
接下来,我们具体看看每个概念在LangChain中是如何体现的:
1. Prompt(提示词)
在LangChain中的对应: PromptTemplate、ChatPromptTemplate、SystemMessage 等
Prompt是LangChain最基础的组件之一,它将提示词工程从"纯文本拼接"升级为可复用、可组合的模板系统:
from langchain.prompts import PromptTemplate
# 传统方式:手动拼接字符串
prompt = f"将以下文本翻译成英文:{text}"
# LangChain方式:模板化管理
template = PromptTemplate.from_template("将以下文本翻译成{target_lang}:{text}")
formatted = template.format(target_lang="英文", text="你好世界")
LangChain的Prompt能力远超简单模板:
- Few-shot示例管理:内置
FewShotPromptTemplate,自动管理示例的插入和格式化 - 消息角色区分:
SystemMessage、HumanMessage、AIMessage,适配Chat模型的对话结构 - 与输出解析器联动:Prompt可以直接定义期望的输出格式,配合
PydanticOutputParser自动解析
角色定位:Prompt是Agent的"大脑指令",LangChain负责把它从硬编码字符串变成可维护的工程资产。
2. Agent(智能体)
在LangChain中的对应: create_agent(LangChain 1.0核心)、AgentExecutor、Middleware、LangGraph
Agent是LangChain 1.0版本的核心焦点。在1.0版本中,LangChain放弃了早期复杂的Chain设计,全面转向Agent优先的架构。
核心实现:create_agent
LangChain 1.0提供了一个极简的Agent创建接口:
from langchain.agents import create_agent
agent = create_agent(
model="openai:gpt-4o",
tools=[get_weather, search_database],
system_prompt="你是一个专业的客服助手"
)
result = agent.invoke({"messages": [{"role": "user", "content": "上海今天天气怎么样?"}]})
关键创新:Middleware(中间件)
Agent的生产落地最大挑战是"上下文工程"——如何控制进入模型的信息。LangChain 1.0通过Middleware机制解决了这个问题:
from langchain.agents import create_agent
from langchain.agents.middleware import summarizationMiddleware, humanInTheLoopMiddleware
agent = create_agent(
model="openai:gpt-4o",
tools=[send_email],
middleware=[
# 自动总结过长对话,防止上下文溢出
summarizationMiddleware(max_tokens_before_summary=4000),
# 敏感操作需要人工审批
humanInTheLoopMiddleware(interrupt_on={"send_email": True}),
]
)
Middleware允许开发者在Agent执行循环的关键节点(调用模型前、调用模型后、调用工具时)插入自定义逻辑,而不需要重写核心循环。
复杂场景:LangGraph
对于需要精细控制的多Agent协作、复杂状态机等场景,LangChain提供了LangGraph——一个基于图结构的状态管理框架,可以实现持久化、人机协作、时间旅行等高级功能。
角色定位:Agent是LangChain 1.0的"一等公民",框架的核心就是让你用最少代码构建生产级Agent。
3. Skill(技能)
在LangChain中的对应: load_skill工具、Deep Agents包、预置技能包
Skill在LangChain生态中是一个相对较新且正在演进的概念。根据LangChain官方博客的定义,Skills是:
"为AI编码代理提供专业领域知识的指令、脚本和资源的集合"
核心实现机制:按需加载(Progressive Disclosure)
Skill的核心思想是避免一次性给Agent太多工具(这会导致性能下降),而是让Agent在需要时才加载特定领域的专业知识:
from langchain.agents import create_agent
from langchain.tools import tool
# 定义加载skill的工具
@tool
def load_skill(skill_name: str) -> str:
"""按需加载专业技能"""
skills = {
"write_sql": "你是SQL专家,掌握...",
"review_legal": "你是法律文档审核专家..."
}
return skills.get(skill_name, "Skill not found")
agent = create_agent(
model="openai:gpt-4o",
tools=[load_skill], # 只暴露一个加载工具
system_prompt="你可以按需加载专业技能"
)
官方实践:LangChain Skills
LangChain官方已经发布了11个预置技能包,覆盖LangChain、LangGraph、Deep Agents三大类。测试数据显示,使用Skills后,Claude Code在LangChain相关任务上的通过率从25%提升到95%。
角色定位:Skill是"按需加载的专业能力",LangChain通过load_skill工具和Deep Agents包来支持这一模式,但Skill本身仍是一个较新的概念,生态还在建设中。
4. MCP(Model Context Protocol)
在LangChain中的对应: langchain-mcp-adapters、MultiServerMCPClient、create_mcp_tool
MCP是由Anthropic推出的开放协议,旨在标准化LLM与外部工具/数据源的通信方式。LangChain通过MCP适配器包实现了完整集成。
核心实现:将MCP服务器转换为LangChain工具
from langchain_mcp_adapters.client import MultiServerMCPClient
from langchain.agents import create_agent
async def main():
# 连接MCP服务器
client = MultiServerMCPClient({
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
}
})
# MCP工具自动转换为LangChain工具
tools = await client.get_tools()
# 直接用于Agent
agent = create_agent(model="openai:gpt-4o", tools=tools)
MCP的价值:传统方式下,每接入一个新工具(数据库、GitHub、Slack等)都需要写适配代码。有了MCP,工具提供商只需编写一个MCP服务器,所有支持MCP的客户端(LangChain、Claude Desktop等)都能直接使用。
角色定位:MCP是"工具的标准化协议",LangChain通过适配器将它变成自己生态的一部分,让你可以即插即用海量MCP社区工具。
总结:一张表看懂对应关系
| 概念 | 在LangChain中的实现 | 核心作用 |
|---|---|---|
| Prompt | PromptTemplate、ChatPromptTemplate、FewShotPromptTemplate | 将提示词从硬编码变成可复用的工程模板 |
| Agent | create_agent、Middleware、LangGraph | LangChain 1.0的核心,用极简代码构建自主决策的智能体 |
| Skill | load_skill工具、Deep Agents、预置技能包 | 按需加载的专业能力,避免上下文过载 |
| MCP | langchain-mcp-adapters、MultiServerMCPClient | 标准化接入外部工具,即插即用海量MCP服务器 |
如果用一句话总结:LangChain是一个"翻译器"——它把这些概念层面的设计模式,翻译成了你可以在Python/TypeScript代码中直接调用的API。无论你想设计Prompt、构建Agent、封装Skill还是接入MCP工具,LangChain都提供了对应的工程化方案。