使用 LangChain 与 CrewAI 实现 AI Agent 的多步任务规划(零基础入门)

使用 LangChain 与 CrewAI 实现 AI Agent 的多步任务规划(零基础入门)

一、先搞懂核心概念:AI Agent 与多步任务规划

在 AI 领域,AI Agent(智能体) 可以理解为"自带思考和行动能力的 AI 助手"------它不用人类逐步指挥,能自主理解任务、规划步骤、调用工具,甚至调整策略直到完成目标。比如让 AI 写一篇技术摘要,它会自己规划"先查资料→整理核心观点→优化表达",全程模拟人类处理复杂任务的逻辑。

多步任务规划 是 AI Agent 的核心能力,指将一个复杂任务(如"研究+写作")拆解成多个简单子任务,按顺序或协作完成。就像做饭要先买菜、切菜、烹饪、装盘,每个步骤环环相扣,AI Agent 也会通过这种"拆解-执行-整合"的逻辑,搞定单步 AI 无法完成的复杂需求。

二、LangChain 与 CrewAI:各司其职,优势互补

LangChain 和 CrewAI 都是实现 AI Agent 多步任务规划的常用工具,但定位和优势完全不同,搭配使用能发挥 1+1>2 的效果。

1. LangChain:AI Agent 的"工具包"

LangChain 的核心作用是"连接"------连接 LLM(大语言模型,如 GPT、Claude)、外部工具(如网页搜索、数据库)和任务流程。它就像一个万能工具箱,提供了现成的组件,让你不用从零开发就能实现"调用模型→搜索网页→处理数据"等操作。

核心优势:工具生态丰富(支持网页搜索、文档解析、数据库交互等)、流程编排灵活,能轻松实现单 Agent 的多步任务链路。

2. CrewAI:多 Agent 的"协作管理器"

CrewAI 专注于"多 Agent 协作"------它能让多个 AI Agent 明确分工、相互配合,共同完成复杂任务。比如让一个 Agent 负责搜索资料,另一个负责撰写内容,还有一个负责审核优化,CrewAI 会协调它们的工作顺序、传递任务结果,避免重复劳动。

核心优势:简化多 Agent 定义与协作逻辑、支持角色分配和任务依赖配置,让"团队式 AI 协作"开箱即用。

总结:分工逻辑

LangChain 负责"单个 Agent 如何一步步执行任务(调用工具、处理数据)",CrewAI 负责"多个 Agent 如何分工协作(谁做什么、按什么顺序做)",二者结合可快速实现复杂的多 Agent 多步任务规划。

三、示例场景:研究"AI Agent 发展趋势"并撰写技术摘要

我们选一个贴近技术场景、逻辑清晰的案例:让 AI 团队自主研究 2026 年 AI Agent 的发展趋势,最终输出一篇 500 字左右的技术摘要。该任务需拆解为 3 个子任务,由 3 个 Agent 协作完成:

  1. 搜索 Agent:负责通过网页搜索,收集 2026 年 AI Agent 相关的最新研究、行业报告和应用案例;

  2. 分析 Agent:负责整理搜索结果,提炼核心趋势(如技术突破、落地场景),剔除无关信息;

  3. 撰写 Agent:负责根据分析结果,撰写结构清晰、语言专业的技术摘要,控制字数和可读性。

下面我们用 Python 代码实现这个场景,结合 LangChain 的网页搜索工具和 CrewAI 的多 Agent 协作能力。

四、完整 Python 代码实现(可直接复制运行)

首先需安装依赖包,打开终端执行以下命令:

bash 复制代码
pip install langchain crewai langchain-openai langchain-community python-dotenv duckduckgo-search

说明:依赖包作用分别是 LangChain(工具链)、CrewAI(多 Agent 协作)、OpenAI 接口(LLM 模型)、DuckDuckGo 搜索(网页搜索工具)、dotenv(管理环境变量)。

代码实现(含详细注释)

python 复制代码
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)

代码运行说明

  1. 获取 OpenAI API 密钥:登录 OpenAI 平台,创建 API 密钥,写入 .env 文件;

  2. 运行代码后,终端会打印每个 Agent 的执行日志,包括搜索内容、分析过程和撰写结果;

  3. 若需替换模型,可将 model="gpt-4o" 改为 model="gpt-3.5-turbo",适合预算有限的场景;

  4. LangChain 支持多种搜索工具(如 Google 搜索、SerpAPI),可替换 DuckDuckGoSearchRun 实现更精准的检索。

五、多步任务执行流程 Mermaid 流程图

以下流程图展示了从用户输入到最终输出的完整链路,清晰呈现任务分解、Agent 协作和工具调用逻辑:
用户输入任务:研究AI Agent 2026趋势并撰写摘要
CrewAI 拆解任务为3个子任务
任务1:搜索信息
搜索Agent调用LangChain DuckDuckGo工具
获取网页搜索结果,整理为信息清单
任务2:分析趋势(依赖任务1结果)
分析Agent提炼核心趋势,生成分析报告
任务3:撰写摘要(依赖任务2结果)
撰写Agent生成500字技术摘要
输出最终结果给用户

流程图说明:整个流程为"顺序执行",每个任务的输出作为下一个任务的输入;LangChain 仅在搜索任务中提供工具支持,CrewAI 负责全程的任务调度和 Agent 协作。

六、零基础入门小贴士

  1. 先跑通代码:无需一开始理解所有细节,先按步骤安装依赖、配置 API 密钥,运行代码看到结果后,再逐行分析逻辑;

  2. 修改场景练手:将案例中的"AI Agent 趋势"改为"Python 学习趋势""新能源汽车发展"等,调整 Agent 角色和任务描述,熟悉工具用法;

  3. 工具替换尝试:用 LangChain 的 ArxivQueryRun(学术搜索)替换 DuckDuckGo,或用 Anthropic Claude 模型替换 OpenAI,探索不同工具的效果;

  4. 避免踩坑点:API 密钥需妥善保管(勿硬编码),运行时确保网络通畅,若出现报错,优先检查依赖包版本和 API 密钥有效性。

通过以上案例,我们能看出 LangChain 与 CrewAI 搭配的核心价值------让零基础开发者也能快速实现"多 Agent 协作完成复杂任务",无需从零搭建框架。后续可尝试更复杂的场景(如市场调研、报告生成、代码开发),逐步深化对 AI Agent 多步任务规划的理解。

相关推荐
果粒蹬i2 小时前
RAG 技术进阶:GraphRAG + 私有数据,打造工业级问答系统
人工智能·cnn·prompt·transformer·easyui
doll ~CJ2 小时前
Large Language Model(LLM)应用开发学习实践(一)
langchain·llm·ai agent·应用开发·通义千问系列大模型
得贤招聘官2 小时前
AI 驱动招聘变革:从流程电子化到决策智能化的跨越
人工智能
大江东去浪淘尽千古风流人物2 小时前
【SEVIS】An Efficient Schmidt-EKF for 3D Visual-Inertial SLAM
人工智能·机器学习·3d
腾视科技2 小时前
腾视科技AIBOX双版本重磅发布!本地安全与全球适配,解锁视频智能新可能
人工智能·科技·安全
Jinkxs2 小时前
AI - 测试工程师会被 AI 取代吗?我用 AI 测试工具干了 3 个月,结论很意外
人工智能·测试工具
hkNaruto2 小时前
【AI】AI学习笔记:什么是ReAct模式 ReAct模式详解:让AI学会思考与行动
人工智能·笔记·学习
熊猫钓鱼>_>2 小时前
【开源鸿蒙跨平台开发先锋训练营】[Day 3] React Native for OpenHarmony 实战:网络请求集成与高健壮性列表构建
大数据·人工智能·react native·华为·开源·harmonyos·智能体
Coovally AI模型快速验证2 小时前
计算机视觉的 2026:从“堆算力”竞赛,到“省算力”智慧
人工智能·深度学习·算法·yolo·计算机视觉·无人机