这四个概念与LangChain的关系,可以这样理解:
Prompt、Agent、Skill、MCP是构建智能体的"设计模式"或"能力组件",而LangChain是将它们落地为实际代码的"开发框架"。
LangChain为每一个概念都提供了具体的实现工具。下面这张图可以帮你快速建立整体认知:
接下来,我们具体看看每个概念在LangChain中是如何体现的:
在LangChain中的对应: PromptTemplate、ChatPromptTemplate、SystemMessage 等
Prompt是LangChain最基础的组件之一,它将提示词工程从"纯文本拼接"升级为可复用、可组合的模板系统:
from langchain.prompts import PromptTemplate
传统方式:手动拼接字符串
prompt = f"将以下文本翻译成英文:{text}"
LangChain方式:模板化管理
template = PromptTemplate.from_template("将以下文本翻译成:{text}") formatted = template.format(target_lang="英文", text="你好世界")
LangChain的Prompt能力远超简单模板:
- Few-shot示例管理 :内置
FewShotPromptTemplate,自动管理示例的插入和格式化 - 消息角**分 :
SystemMessage、HumanMessage、AIMessage,适配Chat模型的对话结构 - 与输出解析器联动 :Prompt可以直接定义期望的输出格式,配合
PydanticOutputParser自动解析
角色定位:Prompt是Agent的"大脑指令",LangChain负责把它从硬编码字符串变成可维护的工程资产。
在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。
在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本身仍是一个较新的概念,生态还在建设中。
在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社区工具。
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都提供了对应的工程化方案。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/248619.html