CrewAI 介绍 CrewAI 是一款开源的、面向开发者的人工智能协作框架,目标是通过高效的多智能体协作系统 ,实现复杂任务的自动化与智能化。其核心设计理念是模拟人类团队分工协作的模式,让每个 AI 智能体(Agent)承担特定角色(如研究员、工程师、分析师等),通过协同合作完成高阶任务。项目基于 Python 构建,注重灵活性与可扩展性,为开发者提供了一种新型的 AI 工作流设计范式。

GitHub 仓库地址:https://github.com/crewAIInc/crewAI


核心功能与特性

1.角色驱动的智能体设计

  • 每个 Agent 可定制独特的角色、目标、工具和工作流程,例如"数据分析师"专注处理结构化数据,"市场研究员"擅长信息检索与总结。
  • 支持记忆(Memory)功能,提高任务间的上下文连贯性。

2.协作式任务编排

  • 通过链式(Sequential)或分层(Hierarchical)任务分配模式,实现智能体间的协同配合,例如任务拆分、结果传递与动态调整。
  • 提供灵活的流程控制(如顺序执行、条件分支),适应不同场景需求。

3.工具生态系统

  • 内置丰富的工具库(文件读写、搜索引擎、API 调用等),同时支持开发者自定义工具扩展。
  • 兼容 LangChain 生态,无缝接入多种第三方服务(如向量数据库、LLM 接口)。

4.多模型支持

  • 支持主流大语言模型(OpenAI、Anthropic、本地模型等),可根据任务需求灵活切换。
  • 提供接口标准化设计,便于集成新兴的 LLM 技术。

5.快速开发与调试

  • 简洁的 Python API 与示例代码,降低多智能体系统的开发门槛。
  • 提供日志追踪与可视化工具,帮助观察 Agent 的决策过程。

应用场景

  • 自动化数据分析

    从数据清洗到可视化报告的端到端生成。

  • 智能内容生产

    多角色协作完成市场调研、文案撰写、SEO 优化等任务。

  • 代码开发辅助

    由架构师、程序员、测试员等角色协作编写或优化代码。

  • 商业决策模拟

    通过多方智能体辩论生成风险评估与策略建议。


为何选择 CrewAI?

  • 开源透明

    基于 MIT 协议开放源代码,开发者可深度定制与贡献。

  • 轻量高效

    相比传统单智能体系统,协作模式显著提升复杂任务的处理能力。

  • 社区驱动

    活跃的开发者社区持续提供工具模块与最佳实践案例。


快速上手

  1. 安装 :

    pip install crewai
  2. 参考官方文档定义 Agents、Tasks 与 Crew 工作流,5 分钟内即可启动首个多智能体协作任务。

CrewAI 正在快速发展,为企业的自动化流程、个人开发者的 AI 应用构建提供了一种全新的可能性。无论是学术研究还是商业落地,均值得探索尝试。

使用crewAI搭建一个reddit内容抓取AI Agent

https://github.com/majacinka/crewai-experiments/blob/main/reddit_newsletter.py

Reddit Newsletter 的结构解析与核心功能说明:

前期准备

创建Reddit应用

在使用PRAW之前,需要在Reddit上创建一个应用。步骤如下:

  1. 登录Reddit账户
  2. 访问 https://www.reddit.com/prefs/apps

  3. 点击"create another app…"
  4. 填写应用信息(名称、类型选择"script"、描述等)
  5. 创建完成后,你将获得client_id和client_secret

代码整体结构

此脚本基于 CrewAI 框架 实现多智能体协作,目标是自动抓取 Reddit 的 LocalLLaMA 子版块内容,生成 AI 项目分析报告及符合特定格式的中文博客文章。代码流程如下:

  1. 初始化环境

    设置 OpenAI API 并加载自定义模型。

  2. 数据抓取工具

     通过 praw 库连接 Reddit API 获取帖子与评论。

  3. 定义智能体

     explorer(研究员)、writer(作者)、critic(审阅者)分工协作。

  4. 创建任务链

    按顺序执行任务,生成报告 → 撰写博客 → 格式审核。

  5. 执行流程

     启动智能体组(Crew)并输出结果。


关键模块解析

1. 数据抓取工具 - BrowserTool
class BrowserTool:
    @tool("Scrape reddit content")
    def scrape_reddit(max_comments_per_post=7):
        reddit = praw.Reddit(client_id="xxx", client_secret="xxx", user_agent="user-agent")
        ...
        return scraped_data
  • 功能

     从 LocalLLaMA 子版块爬取热门帖子及评论(默认12个帖子,每帖最多7条评论)。

  • 异常处理

    检测到 API 异常时休眠60秒重试。

  • 输出格式

    返回包含标题、URL和评论的字典列表。

2. 智能体定义

智能体

角色

职责

工具/模型

explorer

资深研究员

提取 Reddit 数据 → 生成项目分析报告

scrape_reddit

 + GPT-4o

writer

技术作者

将报告转换为通俗易懂的博文

GPT-4o

critic

审阅专家

强制博客符合指定 Markdown 格式且使用中文

GPT-4o

3. 任务设计
  • task_report

  • 目标 :根据 Reddit 数据生成 5-10个AI项目 的详细报告(项目符号列表,每个项目3句描述)。

  • 约束:仅使用子版块内容,文本无代码。

  • task_blog

  • 目标 :撰写 10+段落 的博文,突出关键项目名称(加粗),附带链接。

  • 格式:简洁有趣,技术术语转白话。

  • task_critique

  • 目标 :强制输出符合以下结构的 Markdown:

    ## [标题](链接)
    - 有趣事实
    - 对整体主题的关联性分析

流程执行

crew = Crew(
    agents=[explorer, writer, critic],
    tasks=[task_report, task_blog, task_critique],
    process=Process.sequential
)
result = crew.kickoff()
  • 模式 :顺序执行(Sequential),前一任务的输出作为后一任务的输入。


改进建议

  1. 安全性

    敏感信息(如 API Key)应通过环境变量或加密存储,避免硬编码。

  2. 错误处理

    增加重试机制应对 Reddit 的访问频率限制。

  3. 扩展性
  • 添加缓存模块避免重复抓取。
  • 引入多智能体异步协作(如并行处理多个子版块)。
  1. 本地化优化

    完善中文生成的 prompt 细节,避免格式错误。


适用场景

  • 自动生成 Reddit 社区的技术趋势简报
  • 多语言内容创作(通过调整提示词适配不同语言)
  • AI 项目动态监控与分析工具链的开发
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐