多数关于 LangGraph 和 Semantic Kernel 的比较文章已经过时。过去六个月里两个框架分别进行了重大的更新所以本文将梳理的是实际发生的变化、当前的代码形态以及如何进行技术选型。2026 年构建 Python AI Agent 的现实状况是都足够成熟的可选框架有两个多数流行比较文章发布之后两个框架都经历了重要更新LangGraph 在 2025 年 10 月发布 v1.0。LangChain 1.0 的create_agent底层已经运行在 LangGraph 运行时之上LangGraph 事实上成了 LangChain 生态的执行引擎。Semantic Kernel 在 v1.28.1 中为 Python 加入了一等 MCP 支持SDK 内原生兼任 MCP 客户端和服务端。如果正在读的比较文章还在说 LangGraph不稳定或 Semantic Kernel和 .NET 绑定太深那它描述的已经不是当前现实。本文依据 LangGraph 官方文档、Semantic Kernel 官方文档以及两个框架的变更日志写成。一句话决策规则有状态、持久、可恢复的 Agent 工作流需要显式控制LangGraph协议优先、插件组合、可互操作的 Agent 平台Semantic Kernel两种架构有着截然不同的思维模型LangGraph图运行时LangGraph 把 Agent 系统建模为一张有状态图开发者可以显式定义其中的状态、节点与边。节点是 Python 可调用对象或子图边是状态转换状态本身则是一个类型化对象在图的每一步流转并更新。这不是内部实现细节而是日常编程直接面对的核心抽象。LangGraph v1 官方文档围绕三个核心概念组织整个框架的叙述持久执行、可控性、人机协作。崩溃后从最近的检查点恢复工作流、在流程中插入人工审查步骤、将执行分支到并行子 Agent——这些都是一等操作不是需要绕路才能实现的变通方案。但是自 v1 起LangChain 的create_agent运行在 LangGraph 运行时之上技术栈有了明确的分层用create_agent处理标准工具调用循环当需要自定义工作流拓扑时下沉到原始 LangGraph。Semantic Kernel内核-插件中间件Semantic Kernel 的起点是 Kernel 抽象一个容纳 AI 服务、插件和函数的容器。插件是暴露给模型和 Agent 的函数组来源可以是原生 Python 代码、提示模板或外部导入的 schema。SK 官方 agent-functions 文档的原话是“Any Plugin available to an Agent is managed within its respective Kernel instance — this enables each Agent to access distinct functionalities based on its specific role.”编排逻辑来自 Agent 自行选择函数、Planner 排列能力调用的顺序而非开发者预先画好的图拓扑。这种设计让 Semantic Kernel 更接近 AI 中间件的定位开发者定义 Agent 的能力边界具体的调用编排交给函数调用机制和 Agent 框架。架构差异 主要抽象LangGraph → 类型化状态图节点 边Semantic Kernel → Kernel 插件 Agent 工作流控制LangGraph → 开发者显式定义拓扑Semantic Kernel → 由 Agent 函数调用涌现 状态管理LangGraph → 一等类型化状态 检查点Semantic Kernel → 外部化由开发者自行管理 最佳思维模型LangGraph → Agent 的持久状态机Semantic Kernel → 具备可组合能力的 AI 中间件同一个 Agent 在两个框架中的实现的代码示例把架构差异落到代码层面最直观。下面用同一个场景——带记忆和系统提示的多轮天气助手——分别在两个框架中实现。LangGraph——带检查点的天气 Agentpip install -U langgraph langchain[openai]from langgraph.prebuilt import create_react_agent from langgraph.checkpoint.memory import InMemorySaver from langchain.chat_models import init_chat_model # --- 工具纯Python函数 --- def get_weather(city: str) - str: Get the current weather for a given city. # 在生产环境中替换为真实的API调用 return fIts sunny and 28°C in {city}. # --- LLM --- model init_chat_model(openai:gpt-4o-mini, temperature0) # --- 检查点器启用持久的多轮记忆 --- # 在生产环境中将InMemorySaver替换为SqliteSaver或PostgresSaver checkpointer InMemorySaver() # --- 编译图Agent --- agent create_react_agent( modelmodel, tools[get_weather], promptYou are a helpful weather assistant., checkpointercheckpointer, ) # --- thread_id将此对话绑定到持久检查点 --- config {configurable: {thread_id: user-session-1}} # Turn 1 response agent.invoke( {messages: [{role: user, content: What is the weather in Mumbai?}]}, configconfig, ) print(response[messages][-1].content) # Turn 2 — Agent通过检查点器自动记住上下文 followup agent.invoke( {messages: [{role: user, content: How about Delhi?}]}, configconfig, ) print(followup[messages][-1].content)create_react_agent在底层编译出一个包含模型-工具循环的StateGraph。checkpointer在每一步持久化状态相同的thread_id会自动从上次保存的位置恢复。如果进程在运行中崩溃用同一个thread_id重启即可从最后的检查点继续持久性由运行时负责不需要业务代码操心。Semantic Kernel——带 Plugin 的天气 Agentpip install semantic-kernelimport asyncio from semantic_kernel import Kernel from semantic_kernel.agents import ChatCompletionAgent from semantic_kernel.connectors.ai.open_ai import ( OpenAIChatCompletion, OpenAIChatPromptExecutionSettings, ) from semantic_kernel.connectors.ai import FunctionChoiceBehavior from semantic_kernel.functions import kernel_function from semantic_kernel.contents import ChatHistory # --- Plugin带有kernel_function装饰器的类 --- class WeatherPlugin: kernel_function(nameget_weather, descriptionGet the weather for a city.) def get_weather(self, city: str) - str: # 在生产环境中替换为真实的API调用 return fIts sunny and 28°C in {city}. # --- Kernel持有服务和插件 --- kernel Kernel() kernel.add_service(OpenAIChatCompletion(ai_model_idgpt-4o-mini)) # --- 执行设置启用自动函数调用 --- settings OpenAIChatPromptExecutionSettings() settings.function_choice_behavior FunctionChoiceBehavior.Auto() # --- 注册插件 --- kernel.add_plugin(WeatherPlugin(), plugin_nameWeatherPlugin) # --- Agentkernel 指令 --- agent ChatCompletionAgent( kernelkernel, nameWeatherAssistant, instructionsYou are a helpful weather assistant., ) async def run_agent(): # ChatHistory需要在多轮之间自行维护 history ChatHistory() # Turn 1 history.add_user_message(What is the weather in Mumbai?) async for message in agent.invoke(history): print(fAgent: {message.content}) history.add_message(message) # Turn 2 history.add_user_message(How about Delhi?) async for message in agent.invoke(history): print(fAgent: {message.content}) history.add_message(message) asyncio.run(run_agent())Kernel充当依赖容器集中管理 AI 服务与插件。kernel_function装饰器让 Python 方法可被模型自动发现和调用。FunctionChoiceBehavior.Auto()指示模型按需触发函数。记忆存放在ChatHistory对象中由调用方自行维护并在每次调用时传入运行时不负责持久化。最能揭示差异的 6 行代码# LangGraph — 运行时拥有持久性 checkpointerInMemorySaver() config {configurable: {thread_id: session-1}} agent.invoke(messages, config) # 自动从最后一个检查点恢复# Semantic Kernel — 开发者拥有状态 historyChatHistory() history.add_user_message(...) agent.invoke(history) # 显式地传递和维护状态LangGraph 中持久性是运行时的职责Semantic Kernel 中状态管理是开发者的职责。两种取向无所谓对错它们对应的是不同的应用模型。协议支持MCP 和 A2A协议层面是 Semantic Kernel 近期变化最大的方向。Semantic Kernel——Python SDK 中的原生 MCPSK 官方 MCP 公告的原话“Python support for MCP has arrived… SK Python can act as both an MCP Host and an MCP Server, support multiple transport methods (stdio, SSE, WebSocket), chain multiple MCP servers together, and expose SK functions or agents as MCP servers.”不是适配器也不是社区插件v1.28.1 开始已经是一等 SDK 支持。对于需要通过标准协议跨服务边界编排工具和 Agent 的团队来说这是一次实质性的架构升级。LangGraph——部署边缘的 MCPLangGraph 的 MCP 思路侧重部署层面而非进程内集成。部署到 LangGraph Platform 后每个 Agent 会自动在/mcp端点暴露为 MCP 可访问的服务无需额外代码。自托管场景下则通过langchain-mcp-adapters包集成。如果需要在 Python 进程内部使用 MCP 语义SK 更合适如果 Agent 的定位是被其他客户端通过 MCP 消费的已部署服务LangGraph 更契合。稳定性看一下官方文档当前的说法。LangGraph v12025 年 10 月官方 v1 发布说明确认核心图 API 和执行模型未发生变化主要的迁移事项是将langgraph.prebuilt中的create_react_agent标记为弃用转向 LangChain 的create_agent。LangGraph 1.0 公告明确承诺 2.0 之前不引入破坏性变更。Semantic Kernel 1.x大部分架构层面的断裂集中在 1.0 版本命名空间重组、API 重命名、上下文变量变更。2025 年上半年 SK 路线图及后续版本呈现出增量式、累加式的演进模式以定向修复为主不再出现结构性断裂。LangGraph 每个版本都会破坏兼容性的旧说法已不再成立。两个框架目前都处于稳定性优先的阶段。何时选择哪个✅ 选择 LangGraph Agent 逻辑涉及非简单的分支、重试、人工审查或审批步骤这些场景受益于显式的图拓扑。工作流需要持久执行——在崩溃中存活、从检查点恢复并保留可审计的步骤历史。团队已深入 LangChain 生态希望沿着create_agent→ LangGraph 的技术栈获得清晰的升级路径。需要在节点级别观测执行流如何穿过工作流要求细粒度的可观测性。✅ 选择 Semantic Kernel 当正在构建平台或 SDK能力以插件形式组合不同 Agent 各自消费不同的工具集合。MCP 或 A2A 互操作性是核心需求且希望在 Python SDK 中原生支持而非依赖外部适配器。团队已采用 DI / 面向服务的架构kernel-plugin 模型与既有设计天然契合。倾向于轻量部署不想引入专用的编排运行时状态交由外部系统管理。总结如果 Agent 需要表现得像一台持久状态机用 LangGraph。如果 Agent 需要表现得像一个协议感知的平台组件用 Semantic Kernel。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】