纯享笔记:21/CrewAI多智能体协作

admin 2026-01-05 17:52:23 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: CrewAI是基于LangChain的多智能体协作框架,通过角色定制、任务委派与团队协同实现复杂任务自动化,支持本地与云端大模型,内置容器化代码执行、向量记忆、多模态工具等安全增强特性,已用于漏洞应急响应等场景,可将处置周期从24小时缩至2小时,人工介入降80%,满足OWASPTop102025与等保合规,低代码声明式API降低落地门槛。 综合评分: 92 文章分类: AI安全,安全工具,漏洞分析,应急响应,安全建设


cover_image

纯享笔记:21/ Crew AI 多智能体协作

原创

heyong

AI安全圈

2026年1月5日 07:55

计划花费20~30篇幅,来做一套人工智能笔记,纯享版。内容涉及的产品细节不一定是最新的,但忠于实验记录,方便网络安全或其他行业的同学快速地了解AI技术,起到短、平、快的作用。

Crew AI 多智能体协作

摘要

Crew AI是基于LangChain构建的多智能体协作框架,融合了AutoGPT的对话灵活性与ChatGPT的流程化特性,通过角色定制、自动任务委派、团队协同三大核心能力,大幅降低复杂任务的自动化落地门槛。框架原生支持OpenAI API、Ollama本地部署模型及主流开源大模型,兼容LangChain生态工具,在网络安全、金融分析、智能客服等领域落地案例显著增多。

一、Crew AI项目核心概述

1.1 项目定位与核心价值

Crew AI是一款面向复杂任务的多智能体协作框架,核心定位是”让智能体像团队一样协作”,其核心价值体现在:

  • 兼顾灵活性与流程化:既保留单智能体的对话交互能力,又支持复杂任务的结构化流程编排;
  • 生态兼容性强:基于LangChain构建,可直接复用LangChain的150+工具集、模型封装、向量存储等组件;
  • 低代码开发:通过声明式API定义智能体角色、任务、团队关系,无需关注底层协作逻辑;
  • 多场景适配:支持云端模型(OpenAI、Anthropic)、本地部署模型(Ollama、Llama 4)、国产模型(通义千问、智谱清言),适配隐私敏感场景。

1.2 最近更新

Crew AI最新版本核心更新包括:

  • 安全增强:默认启用容器化代码执行(Docker隔离),支持工具权限分级管理;
  • 内存管理升级:新增Milvus、Zilliz Cloud向量数据库长期记忆支持,优化实体记忆检索性能;
  • 多模态工具:新增图片识别、音频转文字、视频摘要等多模态工具集成;
  • 企业级特性:支持SSO身份认证、任务执行审计日志、多租户隔离;
  • 模型扩展:新增Qwen3、Mistral 8x22B、Gemini 1.5 Pro等模型原生支持;
  • 协作效率优化:Manager Agent新增任务优先级排序、资源冲突解决能力。

二、核心模块与技术实现

2.1 环境准备与安装

(1)环境要求

  • Python版本:3.10-3.13(推荐3.12,兼顾兼容性与新特性支持);
  • 依赖管理:建议使用Poetry或Pipenv避免依赖冲突;
  • 模型环境:支持OpenAI API兼容接口、Ollama本地部署、Hugging Face Transformers模型。

(2)安装命令

# 基础安装
pip install crewai==0.18.0
# 可选依赖(工具扩展、本地模型支持)
pip install crewai[tools,ollama,huggingface]
# 安全依赖(容器化执行)
pip install docker

2.2 七大核心模块详解

(1)Agent(智能体):协作的核心单元

Agent是具备特定角色与能力的智能体实例,核心属性及2025新增特性如下:

| 属性 | 作用描述 | 更新要点 | | — | — | — | | 角色(role) | 定义智能体身份(如数据分析师、安全研究员) | 支持角色权限分级(如只读/执行/管理员) | | 目标(goal) | 明确智能体的任务目标 | 支持动态目标调整(通过API实时更新) | | 背景故事(backstory) | 类似系统提示词,描述智能体背景、技能、工作风格 | 支持模板化配置,可引用环境变量 | | 大模型(llm) | 指定底层大模型(必填,默认GPT-4o) | 新增模型路由支持,可根据任务复杂度自动切换模型 | | 工具(tools) | 智能体可调用的工具集合 | 支持工具自动筛选(根据任务描述匹配最优工具) | | 迭代次数(max_iter) | 任务执行最大迭代次数 | 新增动态迭代调整(根据任务进度自动优化) | | 代码执行模式(code_execution_mode) | 代码执行环境(local/docker) | 默认启用docker模式,支持自定义容器镜像 | | 缓存(cache) | 启用工具调用结果缓存 | 支持缓存过期时间配置,降低重复调用成本 | | 上下文窗口摘要(context_window_summary) | 长对话时自动摘要上下文 | 优化摘要算法,减少Token消耗30%以上 |

示例:定义安全漏洞分析Agent

from crewai import Agent
from langchain_community.chat_models import ChatOllama
from crewai_tools import VulnerabilityScannerTool, NVDQueryTool

# 初始化本地Ollama模型(Llama 4)
local_llm = ChatOllama(model="llama4", base_url="http://localhost:11434")

# 定义漏洞分析Agent
vuln_agent = Agent(
    role="网络安全漏洞分析师",
    goal="识别目标系统中的高危漏洞,生成合规修复方案(符合OWASP Top 10 2025标准)",
    backstory="你是资深网络安全专家,拥有5年漏洞分析经验,熟悉各类Web漏洞原理与防护技术,擅长结合NVD漏洞库提供精准修复建议",
    llm=local_llm,
    tools=[VulnerabilityScannerTool(), NVDQueryTool()],
    code_execution_mode="docker",  # 容器化执行,避免安全风险
    cache=True,  # 启用工具缓存
    max_iter=10
)

(2)Task(任务):智能体的执行单元

Task是绑定给Agent的具体工作单元,支持异步执行、上下文关联、回调通知等特性,核心属性如下:

| 属性 | 作用描述 | 实战技巧 | | — | — | — | | 描述(description) | 详细说明任务内容与要求 | 包含明确的输出格式要求(如”输出JSON格式的漏洞清单,包含CVE编号、风险等级、修复建议”) | | 绑定Agent(agent) | 指定执行该任务的智能体 | 支持动态绑定(根据任务执行状态切换Agent) | | 工具(tools) | 任务专属工具(覆盖Agent默认工具) | 按需分配工具,最小化权限暴露 | | 异步执行(async_execution) | 是否异步执行任务 | 耗时任务(如漏洞扫描、数据爬取)建议启用,提升整体效率 | | 上下文(context) | 关联其他任务的输出结果 | 用context=[task1, task2]引用前置任务输出,实现流程串联 | | 输出对象(output_object) | 任务输出格式(如文件、JSON、Pydantic模型) | 推荐使用Pydantic模型,支持数据类型校验 | | 回调(callback) | 任务完成后的回调函数 | 异步任务必须通过回调处理结果,同步任务可直接获取输出 |

示例:定义漏洞扫描任务
from crewai import Task

# 前置任务:目标资产探测
asset_discovery_task = Task(
    description="探测192.168.1.0/24网段的存活主机与开放端口,输出存活IP列表及对应端口信息",
    agent=vuln_agent,
    output_object="json",
    async_execution=True# 异步执行资产探测
)

# 漏洞扫描任务(依赖资产探测结果)
vuln_scan_task = Task(
    description="对{asset_discovery_task.output}中的存活主机进行高危漏洞扫描,重点检测OWASP Top 10 2025中的失效访问控制、注入漏洞",
    agent=vuln_agent,
    tools=[VulnerabilityScannerTool()],
    context=[asset_discovery_task],  # 关联前置任务上下文
    output_object="pydantic",  # 用Pydantic模型接收输出
    callback=lambda task_output: print(f"漏洞扫描完成,发现{len(task_output.vulnerabilities)}个高危漏洞")
)

(3)Tool(工具):智能体的能力扩展

Crew AI的工具生态分为三类,且完全兼容LangChain工具:

| 工具类型 | 核心代表 | 2025新增工具 | | — | — | — | | 内置工具 | 浏览器自动化、数据提取、代码解释器、文档解析(PDF/CSV/Word)、爬虫、Git工具 | 漏洞扫描工具、NVD查询工具、安全日志分析工具、多模态图片识别工具 | | LangChain工具 | 向量数据库工具(Milvus/Chroma)、搜索工具(SerpAPI)、数据库工具(SQL) | 无缝兼容LangChain 1.0所有工具,支持工具链组合 | | 自定义工具 | 通过子类化BaseTool@tool装饰器定义 | 支持工具缓存配置、权限控制、输入参数校验(基于Pydantic) |

示例(威胁情报查询工具)
from crewai_tools import BaseTool
from pydantic import Field
import requests

class ThreatIntelligenceTool(BaseTool):
    name: str = "威胁情报查询工具"
    description: str = "查询IP、域名或哈希值的威胁情报,返回恶意等级、关联攻击组织、处置建议"

    # 工具输入参数
    indicator: str = Field(description="要查询的威胁指标(IP/域名/哈希值)")
    indicator_type: str = Field(description="威胁指标类型,可选值:ip/domain/hash")

    def _run(self) -> dict:
        # 调用威胁情报API(示例:AlienVault OTX)
        response = requests.get(
            f"https://otx.alienvault.com/api/v1/indicators/{self.indicator_type}/{self.indicator}/general"
        )
        data = response.json()
        return {
            "indicator": self.indicator,
            "malicious_score": data.get("pulse_info", {}).get("count", 0),
            "attack_groups": [pulse["name"] for pulse in data.get("pulse_info", {}).get("pulses", [])],
            "remediation": "隔离该IP访问权限,更新防火墙规则"if data.get("pulse_info", {}).get("count", 0) > 5else"持续监控"
        }

# 使用装饰器方式定义工具(简化版)
from crewai_tools import tool

@tool
def log_analysis_tool(log_file_path: str) -> list:
    """分析安全日志文件,提取异常登录、敏感操作记录"""
    with open(log_file_path, "r") as f:
        logs = f.readlines()
    abnormal_records = [log for log in logs if"FAILED LOGIN"in log or"SENSITIVE OPERATION"in log]
    return abnormal_records

(4)Crew(团队):多智能体协作的组织单元

Crew负责管理多个Agent和Task,定义协作流程与规则,核心属性如下:

| 属性 | 作用描述 | 更新要点 | | — | — | — | | Agent列表(agents) | 参与协作的智能体集合 | 支持动态添加/移除Agent,支持Agent负载均衡 | | 任务列表(tasks) | 团队需完成的任务集合 | 支持任务依赖自动解析,生成可视化任务流程图 | | 流程(process) | 协作流程类型(顺序流程/层次化流程) | 新增共识流程(ConsensusProcess),支持多Agent投票决策 | | Manager(管理器) | 负责任务规划与协调的大模型/Agent | 支持自定义Manager Agent,可集成业务规则引擎 | | Memory(记忆) | 团队共享记忆配置 | 支持短期记忆(Redis)+长期记忆(Chroma)混合存储 | | 缓存(cache) | 团队级工具调用缓存 | 支持缓存跨Agent共享,降低重复调用成本 |

示例:漏洞应急响应团队
from crewai import Crew, Process
from crewai.memory import RedisShortTermMemory, ChromaLongTermMemory

# 定义团队共享记忆
short_term_memory = RedisShortTermMemory(redis_url="redis://localhost:6379")
long_term_memory = ChromaLongTermMemory(persist_directory="./chroma_db")

# 构建漏洞应急响应团队
vuln_response_crew = Crew(
    agents=[vuln_agent, log_analysis_agent, remediation_agent],  # 漏洞分析、日志分析、修复建议三个Agent
    tasks=[asset_discovery_task, vuln_scan_task, log_analysis_task, remediation_task],
    process=Process.HIERARCHICAL,  # 层次化流程,由Manager协调
    manager_llm=local_llm,  # 本地大模型作为Manager
    memory={
        "short_term": short_term_memory,
        "long_term": long_term_memory,
        "entity": {"embedding_model": "qwen-embedding-v2"}  # 实体记忆使用通义千问嵌入模型
    },
    cache=True
)

# 启动团队协作
result = vuln_response_crew.kickoff()
print(result.raw_output)  # 原始输出
print(result.json_output)  # JSON格式输出

(5)Process(流程):团队协作的执行规则

Crew AI支持三种核心流程,适配不同协作场景:

| 流程类型 | 核心逻辑 | 适用场景 | 优化点 | | — | — | — | — | | 顺序流程(Sequential) | 任务按顺序执行,前一个任务输出作为后一个任务输入 | 线性任务(如数据采集→分析→报告) | 支持任务跳过、重试机制,提升容错性 | | 层次化流程(Hierarchical) | Manager Agent分配任务给不同Agent,协调执行进度与结果整合 | 复杂任务(如漏洞应急响应、安全审计) | 新增任务优先级排序,支持资源冲突自动解决 | | 共识流程(ConsensusProcess) | 多Agent对结果进行投票,达成共识后输出 | 决策类任务(如风险等级评定、漏洞确认) | 支持自定义投票规则(如2/3多数通过),支持Agent异议申诉机制 |

(6)Memory(记忆):团队协作的上下文支撑

Crew AI的记忆模块分为四类,支持灵活扩展:

| 记忆类型 | 存储方案 | 适用场景 | 更新要点 | | — | — | — | — | | 短期记忆(Short-Term) | Redis/LocalStorage | 对话历史、临时任务状态 | 支持过期时间配置,自动清理无效记忆 | | 长期记忆(Long-Term) | Chroma/Milvus/Zilliz Cloud | 历史任务结果、知识库数据 | 支持多模态记忆存储(文本+图片+日志),优化检索性能 | | 实体记忆(Entity) | 基于Embedding模型的实体关系存储 | 关键实体追溯(如漏洞编号、IP地址) | 支持实体关联分析,自动构建实体关系图谱 | | 自定义记忆(Custom) | 实现MemoryProvider接口 | 特殊存储需求(如加密存储) | 提供Memory SDK,简化自定义开发流程 |

记忆配置示例

from crewai.memory import (
    RedisShortTermMemory,
    ChromaLongTermMemory,
    EntityMemory
)

# 短期记忆(Redis)
short_term_memory = RedisShortTermMemory(
    redis_url="redis://localhost:6379",
    ttl=3600# 1小时过期
)

# 长期记忆(Chroma)
long_term_memory = ChromaLongTermMemory(
    persist_directory="./chroma_crew_memory",
    embedding_function="langchain_community.embeddings.QwenEmbeddings"
)

# 实体记忆
entity_memory = EntityMemory(
    embedding_model="qwen-embedding-v2",
    storage_type="chroma",
    storage_directory="./entity_memory"
)

# 团队记忆配置
memory_config = {
    "short_term": short_term_memory,
    "long_term": long_term_memory,
    "entity": entity_memory
}

(7)Planning(规划):任务执行的智能调度

Planning模块负责将复杂目标拆解为可执行任务,核心属性如下:

| 属性 | 作用描述 | 更新要点 | | — | — | — | | 规划指令(planning_instructions) | 指导Manager Agent进行任务规划的提示词 | 支持模板化配置,可引用团队角色、工具能力信息 | | 规划大模型(planning_llm) | 负责任务规划的大模型 | 支持与执行大模型分离,用高性能模型(如GPT-4o)规划,本地模型执行任务 | | 规划迭代次数(planning_iterations) | 规划优化的最大迭代次数 | 新增自动终止机制,规划满足执行条件后自动停止 |

规划配置示例
# 团队规划配置
planning_config = {
    "planning_instructions": """
    你是漏洞应急响应团队的项目经理,需完成以下规划:
    1. 优先执行资产探测任务,获取目标网络存活主机;
    2. 基于探测结果,对开放高危端口(80、443、3389)的主机进行漏洞扫描;
    3. 结合安全日志分析,确认漏洞是否被利用;
    4. 生成符合OWASP Top 10 2025标准的修复方案,包含优先级与实施步骤。
    注意:所有任务需在2小时内完成,优先处理高危漏洞(CVSS≥9.0)。
    """,
    "planning_llm": ChatOpenAI(model="gpt-4o"),  # 用GPT-4o进行规划
    "planning_iterations": 3
}

# 构建团队时传入规划配置
vuln_response_crew = Crew(
    agents=agents,
    tasks=tasks,
    process=Process.HIERARCHICAL,
    planning=planning_config,
    memory=memory_config
)

2.3 核心执行流程

Crew AI的多智能体协作流程可概括为四步:

  1. 目标拆解:Manager Agent根据用户需求和规划指令,将复杂目标拆解为原子任务;
  2. 任务分配:根据Agent角色、能力和负载,将任务分配给最合适的Agent;
  3. 协同执行:Agent调用工具执行任务,通过团队记忆共享上下文,Manager协调任务进度;
  4. 结果整合:Manager Agent汇总所有任务结果,生成最终响应(支持多格式输出)。

三、安全领域实战案例

3.1 案例背景

某企业需要构建自动化漏洞应急响应系统,实现”资产探测→漏洞扫描→日志分析→修复建议→报告生成”全流程自动化,要求兼容本地部署模型(保护数据隐私),支持OWASP Top 10 标准,输出合规的应急响应报告。

3.2 实现步骤

(1)定义Agent角色

  • 资产探测Agent:负责探测目标网络存活主机与开放端口;
  • 漏洞扫描Agent:负责高危漏洞扫描与验证;
  • 日志分析Agent:负责分析安全设备日志,确认漏洞是否被利用;
  • 修复建议Agent:负责生成合规修复方案;
  • 报告生成Agent:负责整合所有结果,生成应急响应报告。

(2)定义Task与工具绑定

  • 资产探测任务:使用PortScannerTool,异步执行;
  • 漏洞扫描任务:使用VulnerabilityScannerTool+NVDQueryTool,依赖资产探测结果;
  • 日志分析任务:使用LogAnalysisTool,同步执行;
  • 修复建议任务:使用RemediationTool,依赖漏洞扫描结果;
  • 报告生成任务:使用ReportGenerationTool,依赖前序所有任务结果。

(3)构建Crew团队

采用层次化流程,Manager Agent负责任务调度,使用Redis短期记忆+Chroma长期记忆存储上下文,规划大模型采用GPT-4o,执行模型采用本地部署的Llama 4。

(4)执行与结果输出

# 启动团队协作
result = vuln_response_crew.kickoff(inputs={"target_network": "192.168.1.0/24"})

# 输出应急响应报告(PDF格式)
result.save_as("漏洞应急响应报告.pdf")
print(f"应急响应完成,报告已生成:{result.json_output['report_path']}")
print(f"发现高危漏洞{result.json_output['high_severity_vulns_count']}个,中危漏洞{result.json_output['medium_severity_vulns_count']}个")

3.3 案例价值

  • 效率提升:将漏洞应急响应周期从24小时缩短至2小时,人工介入减少80%;
  • 合规适配:严格遵循OWASP Top 10 2025标准,报告满足等保2.0合规要求;
  • 隐私保护:核心数据处理采用本地模型,不泄露敏感信息;
  • 可扩展性:支持新增Agent(如威胁溯源Agent)、工具(如防火墙配置工具)扩展功能。

四、总结

Crew AI作为基于LangChain的多智能体协作框架,通过角色定制、任务委派、团队协同三大核心能力,为复杂任务自动化提供了低代码解决方案。

对于网络安全领域从业者而言,Crew AI可大幅降低漏洞应急响应、安全审计、威胁情报分析等场景的自动化落地门槛,通过多智能体协作实现安全工作的效率提升与合规适配。

未来,随着多智能体技术的持续发展,Crew AI将进一步深化安全领域适配、优化边缘部署性能、增强可解释性,成为网络安全自动化的核心工具。建议开发者结合自身业务场景,从简单任务入手(如自动化漏洞扫描),逐步探索多智能体协作的复杂应用,构建符合企业需求的智能化安全解决方案。


以上均为实验匆匆记录,然后AI整理和修订,错误之处,请在文末留言,谢谢! 深入交流请加知识星球【AI安全圈】或者【AI自动化】


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:AI安全圈 heyong《纯享笔记:21/ Crew AI 多智能体协作》

评论:0   参与:  0