Sider.ai
  • 聊天
  • Wisebase
  • 工具
  • 浏览器插件
  • 客户端
  • 价格
立即下载
登录

通过Sider更快学习、更深入思考、更聪明成长。

产品
应用
  • 扩展程序
  • iOS
  • Android
  • Mac OS
  • Windows
Wisebase
  • Wisebase
  • Deep Research
  • Scholar Research
  • Math Solver
  • Rec NoteNew
  • Audio To Text
  • Gamified Learning
  • Interactive Reading
  • ChatPDF
工具
  • 网站生成器New
  • AI PPTNew
  • 写作大师
  • Nano Banana Pro
  • Nano Banana Infographic
  • 图片生成
  • 意大利脑洞
  • 背景移除
  • 背景替换
  • 区域抹除
  • 文字移除
  • 局部重绘
  • 画质提升
  • 创作者
  • 文本翻译
  • 图片翻译
  • PDF翻译
Sider
  • 联系我们
  • 帮助中心
  • 下载
  • 价格
  • 教育优惠
  • 新功能
  • 博客
  • 社区
  • 合作伙伴
  • 联盟
  • 邀请
©2026 版权所有
使用条款
隐私政策
  • 首页
  • 博客
  • AI 工具
  • 如何使用 CrewAI:多代理工作流实用指南

如何使用 CrewAI:多代理工作流实用指南

更新于 2025年9月22日

11 分钟


如何使用CrewAI:多智能体工作流的实践指南

大胆承诺:如果你曾经希望能够克隆你最好的队友,以便更快地完成项目,那么CrewAI就能让你接近这个目标——通过协调多个AI智能体,让他们一起计划、协作并交付工作。
在这个面向解决方案的实用指南中,你将准确地学习如何使用CrewAI:从安装框架和定义智能体,到构建角色、工具、任务和结构化的多智能体工作流,从而交付实际成果。我们将涵盖研究、内容、数据分析和代码生成等模式,以及如何避免常见的陷阱,如智能体死锁、prompt膨胀和工具过度使用。
我们的重点是:为你提供一个逐步的“今天就尝试”的路径,其中包含可复制粘贴的代码、经过实战考验的最佳实践,以及一些你可以改编的工作流蓝图。无论你是自动化市场调研,还是从工单中构建产品规格,这都是你有效使用CrewAI的起点。

什么是CrewAI(以及它的不同之处)

  • CrewAI是一个用于构建多智能体系统的框架,其中每个智能体都有角色、目标、工具和规则。然后,该框架协调这些智能体——传递任务、共享上下文,并迭代以实现输出。
  • 与单个LLM prompt不同,CrewAI强制执行结构:智能体是明确的,任务是模块化的,工具是经过授权的,结果是可审计的。
  • 回报是:分解的工作流(研究 → 综合 → 写作 → 质检),它反映了真实团队的工作方式——只是更快、可扩展且可重现。

快速开始:10分钟内学会如何使用CrewAI

下面是一个最小的模式,可以让你从零开始,构建一个可用的多智能体团队。我们假设你使用Python。

1) 安装和设置

pip install crewai langchain-openai python-dotenv
创建一个.env文件,其中包含你的LLM提供商密钥:
OPENAI_API_KEY=sk-your-key
# 或你的堆栈支持的其他提供商

2) 定义你的智能体(角色 + 目标 + 工具)

from crewai import Agent
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0.2)
researcher = Agent(
role="市场调研员",
goal="找到关于目标市场和竞争对手的可信、最新的见解。",
backstory=(
"你是一位勤奋的分析师,会验证声明,引用来源,并总结"
"来自信誉良好的出版物的信号。"
),
tools=[], # 稍后添加网页/搜索/抓取工具
llm=llm
)
strategist = Agent(
role="产品策略师",
goal="将研究综合成清晰的定位和路线图选项。",
backstory="你优先考虑清晰性、可行性和可衡量的结果。",
tools=[],
llm=llm
)
writer = Agent(
role="内容写作者",
goal="生成结构良好的简报,其中包含示例和后续步骤。",
backstory="你用简洁、有说服力的英语写作,并遵循风格指南。",
tools=[],
llm=llm
)

3) 创建任务(输入、输出和验收标准)

from crewai import Task
research_task = Task(
description=(
"研究2025年美国中小企业项目管理软件市场。"
"确定主要竞争对手、定价层级、理想客户画像(ICP)和三个未满足的需求。"
"返回带有3-5个引用的项目符号列表。"
),
expected_output=(
"一份markdown简报,包含以下部分:市场规模、主要参与者、定价、理想客户画像(ICP)、"
"未满足的需求、来源(带有链接)。"
),
agent=researcher
)
synthesis_task = Task(
description=(
"使用研究简报,生成定位声明、2-3个差异化因素和带有里程碑的90天路线图。"
),
expected_output="一份简洁的策略备忘录(<= 400字)。",
agent=strategist
)
writing_task = Task(
description=(
"将策略备忘录转化为面向公众的单页纸。包括标题、"
"价值主张、功能要点和行动号召(CTA)。"
),
expected_output="适合登陆页面的markdown单页纸。",
agent=writer
)

4) 编排团队(流程 + 记忆)

from crewai import Crew
crew = Crew(
agents=[researcher, strategist, writer],
tasks=[research_task, synthesis_task, writing_task],
process="sequential", # 按顺序传递输出
verbose=True
)
result = crew.kickoff
print(result)
那是你的第一个工作流水线。你定义了智能体,连接了任务,并运行了顺序流程。要扩展它,添加工具(搜索、抓取、代码执行)、验证步骤和平行阶段。

CrewAI项目的心理模型

像项目经理一样思考:
  • 角色:谁做什么?研究员、分析师、工程师、审核员。
  • 规则:必须满足哪些标准?风格指南、引用、测试。
  • 工具:允许哪些功能?网络搜索、向量数据库、Python、API。
  • 任务:我们如何分解问题?输入、输出、验收标准。
  • 交接:传递什么?工件、元数据、约束。
  • 反馈:谁验证?质检智能体、人工参与或测试。
使用CrewAI,你的代码会编码这个运营模型。

如何使用CrewAI进行实际工作:5种经过验证的模式

1) 研究 → 综合 → 起草(内容和报告)

  • 智能体:研究员、编辑、写作者、事实核查员。
  • 工具:网络搜索、来源检查器、风格指南。
  • 提示:强制引用和“声明表”以防止幻觉。
fact_checker = Agent(
role="事实核查员",
goal="对照主要来源验证所有声明;标记薄弱的引用。",
backstory="持怀疑态度、一丝不苟、公正。",
llm=llm
)
qa_task = Task(
description="验证所有事实陈述;使用[FIX]标签添加内联更正。",
expected_output="一份更正后的草稿,其中包含修复摘要。",
agent=fact_checker
)

2) 从工单生成产品规格(工程)

  • 智能体:工单分组员、规格编写者、审核员、测试编写者。
  • 工具:问题跟踪器API、通过嵌入实现的codebase上下文、单元测试生成器。
  • 提示:添加自动化的“完成定义”清单。

3) 数据 → 洞察 → 叙述(分析)

  • 智能体:数据整理员(Python)、分析师、故事讲述者。
  • 工具:Pandas、SQL、图表、notebook执行。
  • 提示:使用具有python执行功能的工具型智能体进行可验证的分析。

4) 带有护栏的代码生成

  • 智能体:计划员、编码员、Linter、测试员、审核员。
  • 工具:Repo读取、单元测试运行器、格式化程序、安全扫描器。
  • 提示:要求审核员引用证明正确性的测试。

5) 大规模客户电子邮件序列

  • 智能体:分段员、文案撰写人、个性化专员、质检员。
  • 工具:CRM API、模板、品牌基调指南。
  • 提示:添加退回/垃圾邮件检查工具并强制A/B变体。

添加工具:赋予智能体真正的能力

当智能体可以使用工具时,CrewAI会发光。示例:为研究员提供网络搜索和URL读取器。
from langchain_community.tools import DuckDuckGoSearchRun
from langchain_community.document_loaders import WebBaseLoader
search = DuckDuckGoSearchRun
def web_search_tool(query: str):
return search.run(query)
def read_url_tool(url: str):
loader = WebBaseLoader(url)
docs = loader.load
return "\n\n".join([d.page_content[:2000] for d in docs])
researcher.tools = [web_search_tool, read_url_tool]
最佳实践:
  • 最小权限:仅附加智能体真正需要的工具。
  • Schema原则:工具应该是确定性的和类型化的;尽可能返回简洁、结构化的文本(JSON/Markdown)。
  • 成本控制:保持工具输出简短;在交接之前进行总结。

设计成功的任务

精心设计的任务可以成就或破坏多智能体系统。
  • 明确:“返回一个带有X、Y、Z列的markdown表格。”
  • 定义验收标准:“包含3个链接到主要来源的引用。”
  • 设置界限:字数限制、时间限制或步骤限制减少漂移。
  • 包括示例:提供所需输出格式的迷你规格。
  • 添加记忆标签:在任务中使用一致的标题/键,以便于交接。
任务骨架示例:
Task(
description=(
"总结5项关于远程工作效率的最新研究(2023-2025),包括"
"方法、样本量和主要发现。"
),
expected_output=(
"Markdown,每个研究都有H2部分,一个最终的比较表和链接。"
),
agent=researcher
)

编排模式:顺序 vs. 并行 vs. 混合

  • 顺序:可靠的交接;速度较慢,但更容易理解。
  • 并行:多个智能体同时工作(例如,3个研究员);稍后合并。
  • 混合:并行扇出研究 → 扇入综合和质检。
混合示例:
r1 = Agent(role="研究员A", goal="关注定价", backstory="", llm=llm)
r2 = Agent(role="研究员B", goal="关注功能", backstory="", llm=llm)
# r1、r2的并行任务;一个后续的综合任务合并他们的输出。
提示:合并时,指示合成器去重、解决冲突并引用更强的来源。

护栏和质检:保持智能体的诚信

  • 裁判:添加具有明确否决权的审核员或事实核查员。
  • 清单:将合规性(隐私、安全、品牌基调)编码为质检智能体必须勾选的清单。
  • 自我批评:要求智能体包括一个简短的“我可能遗漏了什么”部分。
  • 确定性:为质检智能体使用较低的温度。
qa = Agent(
role="质检审核员",
goal="确保输出满足验收标准和风格指南。",
backstory="你很严格而且迂腐。",
llm=llm
)

CrewAI智能体的Prompt工程

你的智能体prompt是迷你职位描述。保持紧凑。
  • 角色prompt:你是谁,你优化什么。
  • 目标prompt:期望的最终状态。
  • 约束:字数、格式、基调、参考文献。
  • 工具:名称、何时使用它们、返回什么。
  • 示例:1-2个简短、真实的样本。
代码片段:
researcher = Agent(
role="分析研究员",
goal=(
"提供紧凑、准确的简报,其中包含3-5个可信的引用和一个风险提示。"
),
backstory=(
"你验证声明,喜欢主要来源,并标记不确定性。"
),
llm=llm
)

可观察性:查看智能体做了什么(以及原因)

启用详细日志并持久保存工件:
  • 存储每个任务的prompt、输出和工具调用。
  • 保存带有元数据(模型、温度、工具)的运行清单。
  • 保留一个用于临时笔记的scratchpad;它有助于调试和审核。
模式:
crew = Crew(..., verbose=True, output_log_file="runs/2025-crew.log")

成本、延迟和可靠性提示

  • 批处理:并行化独立任务;限制并发以避免速率限制。
  • 总结:压缩中间工件以减少token churn。
  • 缓存:使用向量存储记忆稳定的步骤(例如,市场定义)。
  • 回退:为不稳定的调用提供备份模型或重试策略。
  • 人工参与:在高风险步骤中插入可选的审批门。

常见陷阱(以及如何修复它们)

  • 陷阱:模糊的任务 → 漫无目的的输出。
  • 修复:添加明确的验收标准和示例。
  • 陷阱:工具过多 → 分心和成本。
  • 修复:仅限最小权限、特定于任务的工具。
  • 陷阱:无限循环或过度迭代。
  • 修复:添加步骤/时间限制和一个“如果满足标准则停止”子句。
  • 陷阱:跨智能体的上下文丢失。
  • 修复:使用结构化的交接对象(JSON)和一致的标题。
  • 陷阱:事后才想到质检。
  • 修复:将质检视为具有否决权的一流智能体。

端到端示例:竞争简报生成器

目标:生成一份竞争简报,比较针对目标角色的三个工具。
智能体:
  • 角色分析师 → 定义痛点和待完成的任务(jobs-to-be-done)。
  • 研究员 → 收集数据和引用。
  • 合成器 → 构建比较表和见解。
  • 写作者 → 生成最终简报。
  • 质检员 → 验证来源和清晰度。
骨架:
persona = Agent(role="角色分析师", goal="定义ICP和JTBD。", llm=llm)
researcher = Agent(role="研究员", goal="收集可信数据。", llm=llm)
synth = Agent(role="合成器", goal="比较和解释。", llm=llm)
writer = Agent(role="写作者", goal="创建一份可供高管使用的简报。", llm=llm)
qa = Agent(role="质检", goal="验证声明和清晰度。", llm=llm)
persona_task = Task(description="定义SaaS中RevOps领导者的ICP和JTBD。", agent=persona,
expected_output="要点 + 痛点 + 成功指标。")
research_task = Task(description="收集3个工具的定价、功能和评论。", agent=researcher,
expected_output="表格 + 5个引用。")
synth_task = Task(description="构建比较矩阵和前3个见解。", agent=synth,
expected_output="Markdown表格 + 见解。")
write_task = Task(description="起草一份带有建议的单页简报。", agent=writer,
expected_output="Markdown格式的高管简报。")
qa_task = Task(description="检查准确性和可读性;修复问题。", agent=qa,
expected_output="干净、经过验证的简报。")
crew = Crew(agents=[persona, researcher, synth, writer, qa],
tasks=[persona_task, research_task, synth_task, write_task, qa_task],
process="sequential", verbose=True)
print(crew.kickoff)

何时使用CrewAI vs. 单个Prompt

在以下情况下使用CrewAI:
  • 任务自然分解为角色或阶段。
  • 你需要可追溯性、质检或工具使用。
  • 你正在构建一个可重用的流水线,而不是一次性的。
在以下情况下坚持使用单个prompt:
  • 这是一个简短、主观的任务,没有外部工具。
  • 速度比结构更重要。

顺便说一句:使用AI侧面板更快地起草

如果你正在使用多智能体工作流来研究、勾勒和起草内容,值得注意的是,像Sider.ai这样的AI侧面板可以与你的浏览器和文档并排使用,以总结页面、生成大纲并在实时完善草稿。它不会取代CrewAI的编排,但它可以加速手动部分——收集代码片段、重写部分或健全性检查基调——然后你可以将内容插回你的团队。

可操作的后续步骤

  1. 安装CrewAI并运行快速入门示例。
  1. 选择一个实际的工作流程(研究 → 起草 → 质检)并对其进行编码。
  1. 一次添加一个工具;衡量对输出质量和成本的影响。
  1. 引入具有明确验收标准的质检智能体。
  1. 转向混合编排模型以提高速度。

主要收获

  • CrewAI将复杂的项目转化为模块化的多智能体工作流。
  • 成功依赖于清晰的角色、明确的任务和有纪律的工具使用。
  • 护栏(质检、清单、限制)可降低成本并提高质量。
  • 从小处开始,然后通过并行研究和混合流程进行扩展。

迷你清单:如何有效使用CrewAI

  • 明确定义角色、目标和工具。
  • 编写带有验收标准和示例的任务。
  • 使用顺序流程以获得可靠性,使用混合流程以提高速度。
  • 尽早添加质检智能体;赋予其否决权。
  • 记录所有内容;存储工件以进行审核。
  • 通过总结、缓存和批处理来优化成本。

常见问题解答

Q1:什么是CrewAI,我该如何使用它进行多智能体工作流? CrewAI是一个用于编排具有角色、任务和工具的多个AI智能体的框架。你可以通过定义智能体、创建带有验收标准的任务,以及运行一个协调交接以产生最终输出的团队来使用它。
问题2:如何向 CrewAI 代理添加诸如网页搜索之类的工具? 将工具函数附加到代理,并指示何时使用它们。保持输出结构化和简短(例如,JSON 或 markdown),以控制成本并改善交接。
问题3:我应该在什么情况下使用 CrewAI 而不是单个 LLM 提示? 当任务分解为多个阶段,需要使用工具或进行质量检查 (QA),或者需要可重复的流程时,请使用 CrewAI。对于不需要结构的快速、主观的任务,请使用单个提示。
问题4:如何防止 CrewAI 输出中出现幻觉? 添加具有否决权的 Fact-Checker(事实核查员)或 QA 代理,要求引用主要来源,为 QA 设置较低的温度,并指定验收标准,如声明表。
问题5:CrewAI 可以并行运行任务以加快速度吗? 可以。对独立任务(例如,多个研究人员)使用并行代理,然后使用合成器任务来合并结果。混合编排可以平衡速度和可靠性。

最近文章
如何掌握 ChatPDF:快速洞察密集文档

如何掌握 ChatPDF:快速洞察密集文档

快速、精准文档的最佳X自动翻译替代方案

快速、精准文档的最佳X自动翻译替代方案

三星AI翻译在伊朗无法使用?实用解决方法

三星AI翻译在伊朗无法使用?实用解决方法

波斯语翻译工具:实现更快更准确工作的实用指南

波斯语翻译工具:实现更快更准确工作的实用指南

深度、有引用研究的最佳Grok替代方案

深度、有引用研究的最佳Grok替代方案

你真正会用的AI图像生成器15大功能

你真正会用的AI图像生成器15大功能