首页 › ai-agents › 描述即编排:六框架编程模型分水岭

描述即编排:六框架编程模型分水岭

概述

2024 年是 AI Agent 框架的"寒武纪大爆发"——GitHub 上千 Star 仓库从 14 个暴增到 89 个,涨幅 535%,人人都在重造轮子。进入 2026 年,这场混乱收敛为几股清晰的主流。但真正的分水岭不在"谁更快、谁更省 Token",而在一个更根本的元问题:框架究竟让你用什么心智模型来描述一个 Agent? 是把控制流画成图、交给模型自主移交、写进类型签名、还是编译成程序?本文横向拆解 LangGraph、OpenAI Agents SDK、CrewAI、PydanticAI、Mastra、DSPy 六种编程模型,揭示 2026 年框架之争的底层逻辑——所谓"框架",本质是在"声明性"与"可控性"两轴上做的不同押注。

市场格局速览

LangChain 仍是份额领导者,但批评从未停止;LangGraph 在 2026 年初 GitHub Star 数正式反超 CrewAI,靠的是企业级可审计的有状态工作流。CrewAI 仍保有约 5.2 万 Star 的群众基础,PydanticAI 凭借类型安全在生产代码中悄然渗透,Mastra 占据 TypeScript 生态高地,DSPy 则在研究/高复用场景中独树一帜。

六框架多维度对比

框架 编程模型 控制流归属 核心原语 心智负荷 最适场景
LangGraph 显式状态图 开发者(画图) Node / Edge / State 高 可审计、可回放的生产工作流
OpenAI Agents SDK 移交式 模型(运行时) Agent / Handoff / Guardrail 低 快速多智能体路由
CrewAI 角色合约式 框架(流程引擎) Agent(role) / Task / Crew 中低 业务角色分工、外包式协作
PydanticAI 类型驱动式 开发者(签名) Agent + result_type + tool 中 需强校验的结构化 I/O 生产代码
Mastra 流式工作流 混合 Agent / Workflow(step) 中 TS 全栈、实时流式响应
DSPy 声明式编译 编译器 Module / Signature / Teleprompter 高(前期) 高复用、需自动优化 prompt 的系统

深度分析

一、LangGraph:图即真相,控制流交给开发者

LangGraph 的核心赌注是:复杂 Agent 的可靠性,只能靠把控制流从"模型脑子里"搬到"代码里"来保证。 它把 Agent 显式建模为一个状态机——节点是函数,边是转移逻辑,State 是在节点间流动的结构化数据。每一步都可见、可中断、可回放、可人工介入(human-in-the-box)。这种"画图编程"在 2026 年初的反超,恰恰说明企业愿意为可审计性支付更高的心智税。

from langgraph.graph import StateGraph, END

def research(state):    state["notes"] = "..."; return state
def write(state):       state["draft"] = state["notes"]; return state

g = StateGraph(dict)
g.add_node("research", research)
g.add_node("write", write)
g.add_conditional_edges("write", lambda s: END if s["draft"] else "research")
app = g.compile()          # 图即真相:拓扑即行为

优点是确定性、可观测、天然支持检查点持久化;缺点是写一个简单 Agent 也要先设计状态结构,对"一句话能搞定"的小场景是过度工程。变现上,它最适合包装成"生产级 Agent 可靠性训练营"——这正是市场最稀缺的能力。

二、OpenAI Agents SDK:移交即编排,把路由交给模型

OpenAI 的反向押注:别画图了,让模型自己决定下一步找谁。 核心原语是 Handoff——一个 Agent 在对话中"移交"控制权给另一个 Agent,整套路由发生在运行时,由模型推理驱动,而非开发者预定义的边。配合内置的 Guardrails(输入/输出校验)和轻量对象模型,它的上手成本是六个里最低的,几行代码就能跑起多智能体。

from agents import Agent, Runner

writer = Agent(name="Writer", instructions="...")
researcher = Agent(name="Researcher", handoffs=[writer], tools=[search])
result = Runner.run_sync(researcher, "写一份关于 X 的报告")

代价是控制流不透明:模型决定何时移交、移交给谁,调试和审计依赖运行时 trace。它对 OpenAI 模型生态绑定最深,换模型时体验会打折。变现上适合做"最快上手的多智能体入门训练营",但企业级可审计场景需谨慎。

三、CrewAI:角色即合约,把分工写进角色卡

CrewAI 选择了第三条路:用人话描述角色,让框架编排出流程。 每个 Agent 带 role、goal、backstory,每个 Task 有预期产出,Crew 把它们按 sequential 或 hierarchical 流程串起来。它的"声明性"体现在角色描述上——你写的是"研究员/撰稿人"的职责契约,不是状态图,也不是代码路由。

from crewai import Agent, Task, Crew, Process

researcher = Agent(role="研究员", goal="收集可靠资料", backstory="资深分析师")
writer     = Agent(role="撰稿人", goal="写出通俗报告", backstory="科普作者")
crew = Crew(agents=[researcher, writer],
            tasks=[Task(description="调研 X", agent=researcher),
                   Task(description="据调研写报告", agent=writer)],
            process=Process.sequential)
crew.kickoff()

优点是业务人员看得懂、上手快,适合模拟"外包团队"式协作;缺点是角色卡的措辞会实质影响路由质量,"提示词工程"被偷偷塞进了架构层。变现潜力极高——"组建你的 AI 数字员工团队"对中小企业有强吸引力,是天然的训练营选题。

四、PydanticAI:类型即契约,把校验焊进签名

PydanticAI 的赌注最"程序员化:Agent 的可信度,应该靠类型系统而非运行时祈祷来保证。 它和 Pydantic 同源,核心是用 result_type 把输出钉死成一个校验过的模型,工具用装饰器声明并自动校验参数。模型无关(OpenAI、Anthropic、Gemini、Ollama 都行),代码读起来像普通 Python,没有框架的"魔法感"。

from pydantic_ai import Agent
from pydantic import BaseModel

class Report(BaseModel):
    title: str
    body: str

agent = Agent("openai:gpt-4o", result_type=Report, system_prompt="你是分析师")

@agent.tool
def search(ctx, query: str) -> str:        # 参数自动校验
    return db.query(query)

report = agent.run_sync("写一份关于 X 的报告").data   # 必为 Report

优点是类型安全、模型无关、契合已有工程代码;缺点是多智能体编排能力相对弱,复杂拓扑仍需搭配 LangGraph。变现上适合定位"Agent 生产化/工程化训练营",面向已有后端经验的开发者,客单价可拉高。

五、Mastra:流即一等公民,TypeScript 生态的原生表达

Mastra 是六者中唯一的 TypeScript 一等公民框架,赌注是:实时流式、全栈集成,应该是默认而非补丁。 它把 Agent、工具、工作流(Workflow + Step + 挂起/恢复)、记忆、评估整合在一起,强调流式输出和与前端/Edge 的无缝衔接。对全栈 JS 开发者,心智模型最贴合。

import { Agent, createTool } from '@mastra/core';

const researcher = new Agent({
  name: 'Researcher',
  instructions: '你是严谨的分析师',
  tools: { search: createTool({ id: 'search', execute: async ({q}) => db(q) }) },
  model: { provider: 'ANTHROPIC', name: 'claude-sonnet-4-6' },
});
const stream = await researcher.stream('写一份关于 X 的报告');

优点是流式体验佳、TS 类型完备、工作流可挂起恢复;缺点是 Python 生态的工具/库覆盖远不如,社区规模较小。变现上适合面向 Web/全栈开发者的训练营,尤其搭配实时 UI 的产品 Demo 极具说服力。

六、DSPy:提示词即程序,把优化交给编译器

DSPy 走得最远:别手写提示词了,把它当成可编译、可优化的程序。 它用 Signature 声明输入输出契约,用 Module 组合,再用 Teleprompter(编译器)自动搜索少样本示例和指令,让整个 pipeline 在指标驱动下自我提升。前期心智负荷最高,但一旦编译完成,复用性极强。

import dspy

class ReportAgent(dspy.Module):
    def __init__(self):
        self.retrieve = dspy.Retrieve(k=3)
        self.draft    = dspy.ChainOfThought("context, question -> report")
    def forward(self, question):
        ctx = self.retrieve(question).passages
        return self.draft(context=ctx, question=question)

# 编译:自动优化 prompt 与 few-shot
compiled = dspy.BootstrapFewShot().compile(student=ReportAgent(), trainset=examples)

优点是 prompt 自动优化、可量化迭代、抗漂移;缺点是学习曲线陡、对小项目过重、调试需理解编译过程。变现上定位"高阶 Agent 工程师训练营",面向追求性能极致的研究型团队,是稀缺的高客单赛道。

编程模型光谱:两轴定位

quadrantChart
    title 六框架编程模型定位
    x-axis "显式控制流(开发者画)" --> "隐式控制流(模型/框架决定)"
    y-axis "命令式(写步骤)" --> "声明式(写意图/契约)"
    quadrant-1 "声明 + 隐式"
    quadrant-2 "声明 + 显式"
    quadrant-3 "命令 + 显式"
    quadrant-4 "命令 + 隐式"
    "LangGraph": [0.25, 0.35]
    "OpenAI Agents SDK": [0.8, 0.75]
    "CrewAI": [0.7, 0.8]
    "PydanticAI": [0.45, 0.7]
    "Mastra": [0.5, 0.5]
    "DSPy": [0.55, 0.9]

这张图揭示了一个反直觉的事实:"声明性"和"可控性"并非同向。 CrewAI 和 OpenAI Agents SDK 同属"声明 + 隐式",描述简单但运行时控制流不可见;LangGraph 显式但偏命令式,控制力强而心智负荷高;DSPy 用编译器实现了"高声明性 + 中等可控性"的独特位置,代价是陡峭的前期投入。选型,本质是在这条光谱上为自己定位。

通用 Agent 循环与各框架的"描述点"

flowchart LR
    U[用户意图] --> P[规划/路由]
    P --> T{工具调用}
    T -->|结果回流| P
    P -->|需交接| H[移交/循环]
    H --> O[结构化输出]
    O --> U

    subgraph 各框架把"描述点"放在哪
        L1[LangGraph: 画 P 与 H 的边]:::g
        L2[Agents SDK: 声明 H 的移交目标]:::h
        L3[CrewAI: 写 P 的角色契约]:::c
        L4[PydanticAI: 钉死 O 的类型]:::p
        L5[Mastra: 流式化 P→O]:::m
        L6[DSPy: 编译 P 的 Signature]:::d
    end

    classDef g fill:#e8f0fe,stroke:#1a73e8
    classDef h fill:#fce8e6,stroke:#d93025
    classDef c fill:#fef7e0,stroke:#f9ab00
    classDef p fill:#e6f4ea,stroke:#188038
    classDef m fill:#f3e8fd,stroke:#a142f4
    classDef d fill:#fff8e1,stroke:#8d6e63

同一个意图,六种描述:LangGraph 描述"图怎么连",Agents SDK 描述"谁交给谁",CrewAI 描述"谁负责什么",PydanticAI 描述"输出长什么样",Mastra 描述"数据怎么流",DSPy 描述"输入输出契约是什么"。描述点不同,可控性、可观测性、心智负荷、可优化性就全然不同。

场景化推荐

一句话结论

2026 年,框架之争已从"功能竞赛"升维到"编程模型竞赛"——选哪个框架,等于选择用图、用移交、用角色、用类型、用流、还是用编译器来描述你的意图。决定胜负的不再是"它能不能做 Agent",而是"它让你用多大的心智负荷、换来多大的可控性"。

参考来源

  1. AI Agent Frameworks 2026 Deep Dive — youngju.dev — 2026 年 5 月市场全景:LangChain 仍居份额首位、市场收敛为三大潮流、LangGraph 反超 CrewAI
  2. AI Agent Frameworks (2026 Update): 8 SDKs Compared — Morph — 含 Claude Agent SDK、OpenAI Agents SDK、Google ADK、CrewAI(52.4k stars) 等 8 个 2026 版本对比
  3. The 2026 AI Agent Framework Decision Guide — DEV Community — 2024 寒武纪大爆发(千 Star 仓库 14→89,+535%)与 LangGraph vs CrewAI vs PydanticAI 决策框架
  4. Top Agentic AI Frameworks in 2026 — FutureAGI — LangGraph、OpenAI Agents SDK、Microsoft Agent Framework 等横向对比
  5. Agent Framework Comparison 2026 — SwarmSignal — CrewAI 44,600 stars、LangGraph 38M 月度 PyPI 下载量等具体数据

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入