Prompt,Agent,Skill,Mcp分别于langchain有什么关系

这四个概念与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最基础的组件之一,它将提示词工程从"纯文本拼接"升级为可复用、可组合的模板系统:

python 复制代码
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创建接口:

python 复制代码
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机制解决了这个问题:

python 复制代码
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在需要时才加载特定领域的专业知识:

python 复制代码
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工具

python 复制代码
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都提供了对应的工程化方案。

相关推荐
搬砖的小码农_Sky7 小时前
AI Agent:Windows上Node.js安装后 npm -v报错
前端·npm·node.js·人机交互
计算机魔术师7 小时前
半年翻倍!OpenAI再融300亿,估值冲到1.4万亿
前端
研☆香8 小时前
jQuery + Swiper.js 实现动态渲染轮播图
前端·javascript·jquery
子兮曰8 小时前
Node.js 50个优势场景盘点:一个人单干,为啥我多数时候只用它
前端·后端
IT_陈寒8 小时前
我花3小时debug,就因为JavaScript这个隐式转换坑
前端·人工智能·后端
excel9 小时前
Nuxt 中 useSeoMeta 与 useHead 的区别
前端
竹林8189 小时前
OmniGame 技术白皮书:从零依赖到 WebRTC P2P,重新定义网页小游戏的工程上限
前端·浏览器
ss2739 小时前
AI全栈实战 | 2.1-02 CSS 布局:垂直居中为什么是经典面试题?所有布局在解决什么矛盾
前端·css
律宏阔9 小时前
Flutter Riverpod 3:统一打印 Provider 错误与自动重试日志
前端·flutter
周洲08309 小时前
STM32片内Flash读写深度详解|掉电参数保存、底层原理
linux·前端·stm32