阶段四:Agent 框架实战

🎯 目标

掌握主流 Agent 开发框架,能用框架快速构建实际应用。


一、框架全景对比

框架核心定位适合场景学习难度
LangChain通用 LLM 应用开发RAG、Agent、Pipeline⭐⭐
LlamaIndex数据接入 + RAG知识库问答⭐⭐
CrewAI多角色 Agent 协作模拟团队协作⭐⭐
AutoGen多 Agent 对话复杂推理任务⭐⭐⭐
LangGraph状态图 Agent复杂工作流⭐⭐⭐
OpenAI Swarm极简多 Agent学习 Agent 编排

二、LangChain 入门

2.1 核心概念

┌────────────────────────────────────┐
│          LangChain 架构             │
│                                    │
│  Model ─── Prompt ─── Output Parser│
│    │                               │
│  Chain(链)                        │
│    │                               │
│  Agent + Tools                     │
│    │                               │
│  Memory(记忆)                     │
└────────────────────────────────────┘

2.2 构建一个简单 Agent

from langchain_openai import ChatOpenAI
from langchain.agents import create_react_agent, AgentExecutor
from langchain.tools import tool
 
# 定义工具
@tool
def search(query: str) -> str:
    """搜索互联网获取信息"""
    # 实际使用时接入搜索 API
    return f"关于 '{query}' 的搜索结果..."
 
@tool  
def calculator(expression: str) -> str:
    """计算数学表达式"""
    return str(eval(expression))
 
# 创建 Agent
llm = ChatOpenAI(model="gpt-4o")
tools = [search, calculator]
 
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
 
# 运行
result = agent_executor.invoke({
    "input": "2024年全球人口是多少?人均GDP是多少?"
})

2.3 LangChain 核心模块

  • Chains:将多个组件串联成流水线
  • Agents:根据输入动态选择工具
  • Memory:维护对话历史
  • Retrievers:检索相关文档(RAG)
  • Callbacks:监控和日志

三、LangGraph(重点推荐)

LangGraph 是构建复杂 Agent 的最佳选择。

3.1 为什么选 LangGraph?

  • ✅ 基于状态图(State Graph),工作流清晰可视化
  • ✅ 支持循环、条件分支、并行
  • ✅ 内置人机交互节点
  • ✅ 支持持久化状态

3.2 核心概念

State(状态): Agent 运行中的所有数据
Node(节点)  : 处理状态的函数
Edge(边)    : 节点之间的转移(可带条件)

3.3 示例:构建一个 Research Agent

from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated
import operator
 
# 定义状态
class AgentState(TypedDict):
    query: str
    search_results: list[str]
    analysis: str
    report: str
    iterations: int
 
# 节点:搜索
def search_node(state: AgentState) -> AgentState:
    results = search_api(state["query"])
    state["search_results"] = results
    state["iterations"] += 1
    return state
 
# 节点:分析
def analyze_node(state: AgentState) -> AgentState:
    analysis = llm.analyze(state["search_results"])
    state["analysis"] = analysis
    return state
 
# 节点:生成报告
def report_node(state: AgentState) -> AgentState:
    report = llm.generate_report(state["analysis"])
    state["report"] = report
    return state
 
# 条件边:是否需要继续搜索
def should_continue(state: AgentState) -> str:
    if state["iterations"] < 3 and not state.get("analysis"):
        return "search"
    return "report"
 
# 构建图
graph = StateGraph(AgentState)
graph.add_node("search", search_node)
graph.add_node("analyze", analyze_node)
graph.add_node("report", report_node)
 
graph.add_edge("search", "analyze")
graph.add_conditional_edges("analyze", should_continue)
graph.add_edge("report", END)
 
graph.set_entry_point("search")
app = graph.compile()

四、CrewAI 入门

4.1 核心概念

Crew(团队)
├── Agent 1(研究员):负责搜集信息
├── Agent 2(分析师):负责分析数据
└── Agent 3(写手)  :负责撰写报告
    │
    └── Task(任务):按顺序或并行执行

4.2 示例

from crewai import Agent, Task, Crew
 
researcher = Agent(
    role="市场研究员",
    goal="收集 AI Agent 市场的最新信息",
    backstory="你是一位经验丰富的市场研究员",
    llm=ChatOpenAI(model="gpt-4o")
)
 
analyst = Agent(
    role="数据分析师",
    goal="分析市场数据并提取洞察",
    backstory="你擅长从数据中发现趋势",
    llm=ChatOpenAI(model="gpt-4o")
)
 
research_task = Task(
    description="研究 2024 年 AI Agent 市场规模和主要玩家",
    agent=researcher,
    expected_output="一份详细的市场调研摘要"
)
 
analysis_task = Task(
    description="基于调研数据,分析市场趋势和机会",
    agent=analyst,
    expected_output="包含图表建议的市场分析报告"
)
 
crew = Crew(
    agents=[researcher, analyst],
    tasks=[research_task, analysis_task],
    verbose=True
)
 
result = crew.kickoff()

五、实战项目

项目 1:个人知识助手(LangChain + RAG)

功能:
- 上传 PDF/文档
- 自动构建知识库
- 基于知识库回答问题
- 引用来源

技术栈:LangChain + ChromaDB + OpenAI

项目 2:研究报告生成器(LangGraph)

功能:
- 自动搜索指定主题
- 收集多个来源信息
- 分析对比
- 生成结构化报告

技术栈:LangGraph + Tavily Search + OpenAI

项目 3:团队协作 Agent(CrewAI)

功能:
- 产品经理 Agent 需求分析
- 工程师 Agent 技术方案
- 测试 Agent 质量检查

技术栈:CrewAI + 自定义工具

📚 推荐资源


✅ 阶段完成标准

  • 用 LangChain 构建一个带工具的 Agent
  • 理解 LangGraph 的状态图模型
  • 用 CrewAI 实现多角色协作
  • 完成至少 1 个实战项目
  • 能根据需求选择合适的框架

上一阶段Agent路线图-03-Agent核心原理 下一阶段Agent路线图-05-多Agent系统