
在 AI 领域,AI Agent(智能体) 可以理解为“自带思考和行动能力的 AI 助手”——它不用人类逐步指挥,能自主理解任务、规划步骤、调用工具,甚至调整策略直到完成目标。比如让 AI 写一篇技术摘要,它会自己规划“先查资料→整理核心观点→优化表达”,全程模拟人类处理复杂任务的逻辑。
而 多步任务规划 是 AI Agent 的核心能力,指将一个复杂任务(如“研究+写作”)拆解成多个简单子任务,按顺序或协作完成。就像做饭要先买菜、切菜、烹饪、装盘,每个步骤环环相扣,AI Agent 也会通过这种“拆解-执行-整合”的逻辑,搞定单步 AI 无法完成的复杂需求。
LangChain 和 CrewAI 都是实现 AI Agent 多步任务规划的常用工具,但定位和优势完全不同,搭配使用能发挥 1+1>2 的效果。
LangChain 的核心作用是“连接”——连接 LLM(大语言模型,如 GPT、Claude)、外部工具(如网页搜索、数据库)和任务流程。它就像一个万能工具箱,提供了现成的组件,让你不用从零开发就能实现“调用模型→搜索网页→处理数据”等操作。
核心优势:工具生态丰富(支持网页搜索、文档解析、数据库交互等)、流程编排灵活,能轻松实现单 Agent 的多步任务链路。
CrewAI 专注于“多 Agent 协作”——它能让多个 AI Agent 明确分工、相互配合,共同完成复杂任务。比如让一个 Agent 负责搜索资料,另一个负责撰写内容,还有一个负责审核优化,CrewAI 会协调它们的工作顺序、传递任务结果,避免重复劳动。
核心优势:简化多 Agent 定义与协作逻辑、支持角色分配和任务依赖配置,让“团队式 AI 协作”开箱即用。
LangChain 负责“单个 Agent 如何一步步执行任务(调用工具、处理数据)”,CrewAI 负责“多个 Agent 如何分工协作(谁做什么、按什么顺序做)”,二者结合可快速实现复杂的多 Agent 多步任务规划。
我们选一个贴近技术场景、逻辑清晰的案例:让 AI 团队自主研究 2026 年 AI Agent 的发展趋势,最终输出一篇 500 字左右的技术摘要。该任务需拆解为 3 个子任务,由 3 个 Agent 协作完成:
下面我们用 Python 代码实现这个场景,结合 LangChain 的网页搜索工具和 CrewAI 的多 Agent 协作能力。
首先需安装依赖包,打开终端执行以下命令:
pip install langchain crewai langchain-openai langchain-community python-dotenv duckduckgo-search说明:依赖包作用分别是 LangChain(工具链)、CrewAI(多 Agent 协作)、OpenAI 接口(LLM 模型)、DuckDuckGo 搜索(网页搜索工具)、dotenv(管理环境变量)。
import os
from dotenv import load_dotenv
from langchain_community.tools import DuckDuckGoSearchRun
from langchain_openai import ChatOpenAI
from crewai import Agent, Task, Crew, Process
# 1. 加载环境变量(存储 OpenAI API 密钥,避免硬编码)
load_dotenv() # 需在项目根目录创建 .env 文件,写入:OPENAI_API_KEY=你的密钥
# 2. 初始化工具(使用 LangChain 的 DuckDuckGo 搜索工具,用于网页查询)
search_tool = DuckDuckGoSearchRun() # 无需额外配置,开箱即用
# 3. 初始化 LLM 模型(使用 GPT-4o,也可替换为 GPT-3.5-turbo,需调整温度参数)
llm = ChatOpenAI(
model="gpt-4o",
temperature=0.7 # 0-1 之间,值越高内容越有创造力,越低越严谨
)
# 4. 定义 3 个协作 Agent(每个 Agent 有明确角色、目标和工具)
## 搜索 Agent:负责收集最新信息
search_agent = Agent(
role="AI 趋势搜索专员",
goal="精准收集 2026 年 AI Agent 领域的最新研究成果、行业报告和落地案例,确保信息时效性和准确性",
backstory="你是一名擅长技术领域信息检索的专员,熟悉 AI 行业动态,能快速筛选出有价值的信息,排除冗余内容",
tools=[search_tool], # 仅赋予搜索工具权限
llm=llm,
verbose=True # 运行时打印详细日志,方便调试
)
## 分析 Agent:负责提炼核心趋势
analysis_agent = Agent(
role="AI 趋势分析顾问",
goal="从搜索到的信息中,提炼 2026 年 AI Agent 的 3-5 个核心发展趋势,标注关键数据和案例支撑",
backstory="你是一名资深 AI 行业分析师,擅长从复杂信息中梳理逻辑、总结规律,能精准抓住技术发展的核心脉络",
llm=llm,
verbose=True
)
## 撰写 Agent:负责输出技术摘要
writing_agent = Agent(
role="技术摘要撰写师",
goal="根据分析结果,撰写一篇 500 字左右的技术摘要,结构清晰(含引言、核心趋势、总结),语言专业且易懂",
backstory="你是一名科技媒体撰稿人,擅长将复杂技术内容转化为简洁易懂的摘要,兼顾专业性和可读性",
llm=llm,
verbose=True
)
# 5. 定义任务(每个任务对应一个 Agent,明确任务内容和输出要求)
## 任务 1:搜索信息
search_task = Task(
description="搜索 2026 年 AI Agent 发展趋势相关信息,重点关注技术突破、行业应用、头部企业动态,收集至少 3 个权威来源的信息",
expected_output="整理成结构化的信息清单,包含来源、核心观点、关键数据",
agent=search_agent
)
## 任务 2:分析趋势(依赖搜索任务结果)
analysis_task = Task(
description="基于搜索到的信息清单,分析 2026 年 AI Agent 的核心发展趋势,每个趋势配 1 个案例或数据支撑,剔除重复、无关信息",
expected_output="3-5 个核心趋势的分析报告,每条趋势含标题、核心观点、支撑材料",
agent=analysis_agent,
context=[search_task] # 明确依赖搜索任务,确保先完成搜索再分析
)
## 任务 3:撰写摘要(依赖分析任务结果)
writing_task = Task(
description="根据趋势分析报告,撰写技术摘要,引言简要介绍 AI Agent 重要性,正文分点阐述核心趋势,总结部分展望未来应用前景,控制字数在 450-550 字",
expected_output="一篇结构完整、语言流畅的技术摘要(纯文本格式,无Markdown)",
agent=writing_agent,
context=[analysis_task] # 依赖分析任务结果
)
# 6. 组建 Agent 团队,配置协作流程
crew = Crew(
agents=[search_agent, analysis_agent, writing_agent],
tasks=[search_task, analysis_task, writing_task],
process=Process.sequential # 顺序执行任务(搜索→分析→撰写),也可配置并行流程
)
# 7. 启动任务,获取结果
if __name__ == "__main__":
result = crew.kickoff()
print("\n" + "="*50)
print("最终技术摘要:")
print("="*50)
print(result)model="gpt-4o" 改为 model="gpt-3.5-turbo",适合预算有限的场景;
DuckDuckGoSearchRun 实现更精准的检索。
以下流程图展示了从用户输入到最终输出的完整链路,清晰呈现任务分解、Agent 协作和工具调用逻辑:

流程图说明:整个流程为“顺序执行”,每个任务的输出作为下一个任务的输入;LangChain 仅在搜索任务中提供工具支持,CrewAI 负责全程的任务调度和 Agent 协作。
ArxivQueryRun(学术搜索)替换 DuckDuckGo,或用 Anthropic Claude 模型替换 OpenAI,探索不同工具的效果;
通过以上案例,我们能看出 LangChain 与 CrewAI 搭配的核心价值——让零基础开发者也能快速实现“多 Agent 协作完成复杂任务”,无需从零搭建框架。后续可尝试更复杂的场景(如市场调研、报告生成、代码开发),逐步深化对 AI Agent 多步任务规划的理解。