Skip to content

Agent 框架

学习目标: 了解主流 Agent 框架的特点、适用场景和选择方法

预计时间: 60 分钟

难度等级: ⭐⭐⭐☆☆


核心概念

什么是 Agent 框架?

Agent 框架是构建 AI 应用的开发工具,提供了一些现成的组件和模式,让你不必从零开始。

通俗理解

搭建 Agent 就像装修房子。框架是开发商提供的"硬装"——水管、电线、墙体结构都做好了,你只需要决定放什么家具、刷什么颜色的墙。 ::

框架解决的问题:

  • 记忆管理
  • 工具调用
  • 多轮对话
  • 任务规划
  • Agent 协作

主流框架对比(2025 年)

LangGraph 1.0

发布时间: 2025 年 10 月 22 日

核心特点:

LangGraph 采用图结构来定义 Agent 的执行流程,而不是传统的链式结构。

mermaid
graph LR
    A[开始] --> B{决策节点}
    B -->|条件1| C[工具调用]
    B -->|条件2| D[记忆检索]
    C --> E[结果处理]
    D --> E
    E --> F{需要循环?}
    F -->|是| B
    F -->|否| G[结束]

关键特性:

特性说明
持久化执行Agent 可以暂停、恢复、中断
时间旅行调试回到任意历史状态查看和修改
人工干预在关键节点请求人类审核
流式响应实时返回中间结果
稳定性承诺直到 2.0 版本不会有破坏性更新

适用场景:

  • 需要复杂流程控制的 Agent
  • 多步骤、有循环的任务
  • 需要调试和监控的生产环境

代码示例:

python
from langgraph.graph import StateGraph, END

# 定义状态
class AgentState(TypedDict):
    messages: list
    next_action: str

# 定义节点
def research_node(state: AgentState):
    # 研究逻辑
    return {"messages": state["messages"] + ["研究结果"]}

def write_node(state: AgentState):
    # 写作逻辑
    return {"messages": state["messages"] + ["草稿"]}

# 构建图
workflow = StateGraph(AgentState)
workflow.add_node("research", research_node)
workflow.add_node("write", write_node)

workflow.add_edge("research", "write")
workflow.add_edge("write", END)

workflow.set_entry_point("research")
app = workflow.compile()

采用情况: 根据LangChain 2025 年调研,57.3% 的大型企业已在生产环境使用基于 LangGraph 的 Agent[^1]。


Microsoft Agent Framework

发布时间: 2025 年 10 月(公共预览)

背景: 微软将 AutoGen 和 Semantic Kernel 合并成统一框架。

核心特点:

双语言支持: Python 和 C# 同步更新

共享运行时: AutoGen 的多 Agent 能力 + Semantic Kernel 的企业集成

插件生态:

python
from semantic_kernel import Kernel
from autogen_agentchat import Agent

# 创建内核
kernel = Kernel()

# 加载插件
kernel.add_plugin(
    file_search_plugin,
    plugin_name="file_search"
)

# 创建 Agent
agent = Agent(
    name="researcher",
    kernel=kernel,
    tools=["file_search.search"]
)

适用场景:

  • 深度使用 Azure 生态
  • 需要企业级支持
  • .NET 环境

优势:

  • 官方支持和文档完善
  • 与 Azure、Office 365 深度集成
  • 商业许可,适合企业合规

CrewAI

定位: 多 Agent 协作框架

核心概念: 类似团队协作,每个 Agent 扮演特定角色。

架构模式:

mermaid
graph TD
    M[Manager Agent] --> W1[Researcher]
    M --> W2[Writer]
    M --> W3[Editor]

    W1 -->|收集信息| M
    W2 -->|草稿| M
    W3 -->|审核| M

    M -->|分配任务| W1
    M -->|分配任务| W2
    M -->|分配任务| W3

典型工作流:

python
from crewai import Agent, Task, Crew

# 定义角色
researcher = Agent(
    role="研究专家",
    goal="收集最新的 AI 技术信息",
    backstory="你是一名资深技术研究员"
)

writer = Agent(
    role="技术作家",
    goal="将研究结果转化为易懂的文章",
    backstory="你擅长解释复杂技术概念"
)

# 定义任务
task1 = Task(
    description="调研 2025 年 Agent 框架发展",
    agent=researcher
)

task2 = Task(
    description="撰写技术博客",
    agent=writer,
    context=[task1]  # 依赖 task1 的结果
)

# 组建团队
crew = Crew(
    agents=[researcher, writer],
    tasks=[task1, task2],
    process="sequential"  # 顺序执行
)

result = crew.kickoff()

适用场景:

  • 内容生产流水线
  • 复杂业务流程自动化
  • 需要专业分工的任务

实际案例: 某金融公司用 CrewAI 构建了财报分析团队——研究员 Agent 收集数据、分析师 Agent 处理数据、报告生成器 Agent 产出报告,整个过程从 3 天缩短到 2 小时[^2]。


OpenAI Swarm

定位: 轻量级多 Agent 编排框架(实验性)

特点:

  • 代码量少,核心逻辑只有几百行
  • 几乎完全在客户端运行
  • 基于 ChatCompletions API,无需额外依赖

示例:

python
from swarm import Agent, Swarm

client = Swarm()

# 定义 Agent
sales_agent = Agent(
    name="销售助手",
    instructions="你负责产品咨询和报价"
)

support_agent = Agent(
    name="技术支持",
    instructions="你负责故障排查和技术指导"
)

# 定义交接函数
def transfer_to_support():
    return support_agent

sales_agent.functions = [transfer_to_support]

# 运行
response = client.run(
    agent=sales_agent,
    messages=["我的产品无法连接"]
)

适用场景:

  • 学习多 Agent 概念
  • 快速原型验证
  • 简单的 Agent 协作

限制:

  • 官方标注为"实验性",不建议生产使用
  • 功能相对基础,缺乏持久化和监控

框架选择指南

决策树

mermaid
graph TD
    A[开始] --> B{使用 Azure?}
    B -->|是| C[Microsoft Agent Framework]
    B -->|否| D{需要多 Agent 协作?}

    D -->|否| E{需要复杂流程控制?}
    E -->|是| F[LangGraph]
    E -->|否| G[直接用 LLM API]

    D -->|是| H{企业级生产环境?}
    H -->|是| I[CrewAI]
    H -->|否| J[OpenAI Swarm 学习用]

对比总结

框架学习曲线生产就绪社区活跃度最佳场景
LangGraph中等⭐⭐⭐⭐⭐很高复杂流程控制
Microsoft低(有 .NET 经验)⭐⭐⭐⭐中等Azure 生态
CrewAI⭐⭐⭐⭐多 Agent 协作
Swarm很低⭐⭐中等学习原型

新兴框架

Phidata

特色: Agentic RAG(搜索增强生成)

python
from phi.agent import Agent
from phi.knowledge.pdf import PDFKnowledgeBase

agent = Agent(
    knowledge=PDFKnowledgeBase(
        path="./docs"
    )
)

Agent 可以主动搜索知识库获取完成任务所需的信息,而不是被动接收上下文。

Smolagents

Hugging Face 发布的极简框架,主打轻量级和安全性。

LlamaIndex Workflows

专注于数据连接的框架,适合构建数据密集型 Agent。


实践建议

从简单开始

不要一上来就用复杂框架。很多任务用基础 LLM API + 几个工具调用就能完成。

推荐路径:

1. 直接调用 API (1-2 个简单工具)

2. LangChain 基础功能 (需要工具链时)

3. LangGraph/CrewAI (多 Agent 或复杂流程)

4. 自研框架 (大型团队,有特殊需求)

关注生态系统

选择框架不只是看代码,还要看:

  • 文档质量: LangGraph 文档很全,Swarm 几乎没有
  • 社区支持: 出问题能找到答案吗?
  • 更新频率: 项目还在活跃维护吗?
  • 周边工具: 有调试工具、监控平台吗?

生产环境考虑

考虑因素问题
稳定性框架会频繁更新导致代码失效吗?
性能框架本身的开销有多大?
调试出问题后能快速定位吗?
成本Token 消耗、API 调用次数
安全敏感数据处理、权限控制

思考题

检验你的理解

  1. LangGraph 和传统 LangChain Agent 的主要区别是什么?

    • A. LangGraph 使用图结构,LangChain 使用链式结构
    • B. LangGraph 只支持 Python,LangChain 支持多语言
    • C. LangGraph 是付费的,LangChain 免费使用
  2. 假设你要构建一个客户服务 Agent,需要查询订单、处理退款、升级工单,你会选择哪个框架?为什么?

  3. CrewAI 的 Manager-Worker 模式适合什么场景?举例说明。

  4. 为什么说 Swarm"不适合生产环境"?实际使用中会遇到什么问题?


本节小结

通过本节学习,你应该掌握了:

主流框架

  • LangGraph 1.0 的图结构和持久化能力
  • Microsoft Agent Framework 的统一策略
  • CrewAI 的多 Agent 协作模式
  • OpenAI Swarm 的轻量级定位

选择方法

  • 根据场景选择框架
  • 评估生产环境需求
  • 考虑生态系统完整性

实践路径

  • 从简单到复杂的渐进式学习
  • 关注稳定性和可维护性

下一步: 在下一节中,我们将了解 Agent 平台,看看如何在不写代码的情况下快速构建 Agent。


← 返回模块目录 | 继续学习:Agent 平台 →


[^1]: LangChain, "State of Agent Engineering Survey 2025", https://www.langchain.com/state-of-agents [^2]: CrewAI 官方案例研究, "Financial Report Automation", https://www.crewai.com/case-studies

最近更新

基于 Apache 2.0 许可发布