文章总结: 该文档详细介绍了CrewAI企业级Agent开发框架的实操方法,包含手动配置与VibeCoding自动生成两种开发模式。核心内容涵盖环境部署、Agent创建、Task配置、Flow设计等完整开发流程,并提供了SecurityAuditFlow安全审计实例。文档强调以menu.md为导航中枢的项目目录结构,并附带了YAML配置示例、属性速查表等实用资源,为开发者提供从入门到实战的全面指导。 综合评分: 78 文章分类: 安全开发,安全工具,安全运营,解决方案,技术标准
SkillsCoding:CrewAI 企业级 Agent 开发实操&成品分享
原创
Lior1969 Lior1969
Moonlight安全
2026年6月2日 21:06 北京
在小说阅读器读本章
去阅读
#
前半部分:以 menu.md 为导航中枢的传统操作手册 | 后半部分:VibeCoding + 8 个 CrewSkills 自动生成,附 Security Audit Flow 完整实例
一、概念说明
1.1 你的”Agent 开发地图”:menu.md
在开始编码之前,先打开 agentcrew/menu.md——这是整个 CrewAI 生态的导航地图。它按功能模块组织了所有文档的入口,你只需三步即可完成开发:
menu.md(找功能)→ 对应文档(看实例)→ 复制代码(改参数)→
你的 Agent 就绪
1.2 项目目录结构
本手册基于以下目录结构,所有路径均可直接使用:
agentcrew/
├── menu.md # ⭐ 导航中枢(从这里开始)
├── README.md # 文档概述
├── docs/
│ ├── getting-started/ # 入门指南
│ │ ├── 01-introduction.md # 框架简介、Flow/Crew 架构
│ │ └── 02-installation.md # 安装步骤、项目脚手架
│ ├── core-concepts/ # 核心概念
│ │ ├── 01-agents.md # Agent 属性、创建方式、工具集成
│ │ ├── 02-tasks.md # Task 配置、输出格式、Guardrails
│ │ ├── 03-flows.md # Flow 装饰器、状态管理、路由
│ │ ├── 04-crews.md # Crew 编排、执行流程、重放
│ │ ├── 05-knowledge.md # RAG 知识库、向量存储
│ │ ├── 06-memory.md # 短期/长期/实体记忆
│ │ ├── 07-reasoning.md # Agent 推理与任务反思
│ │ └── 08-planning.md # Crew 级任务规划
│ ├── design-guides/ # 设计指南
│ │ ├── 01-evaluating-use-cases.md # 复杂度-精度矩阵
│ │ ├── 02-first-crew.md # 第一个 Crew 完整流程
│ │ ├── 03-first-flow.md # 第一个 Flow 完整流程
│ │ └── 04-customizing-prompts.md # 提示词自定义
│ ├── tools/ # 工具集
│ │ ├── 01-file-document.md # 文件读写、PDF/JSON/CSV
│ │ ├── 02-web-scraping.md # 网页抓取
│ │ ├── 03-search-research.md # 搜索与研究
│ │ └── 04-integrations.md # 外部集成
│ └── observability/ # 可观测性
│ └── tracing.md # 追踪与监控
1.3 两种开发模式:手动 vs 自动
在实际开发中,你通常会经历两个阶段:
① 学习阶段(第一~九章)——按 menu.md 的导航手动配置 Agent/Task/Crew,深入理解每个参数的作用。适合刚接触 CrewAI 的开发者。
② 加速阶段(第十~十一章)——当理解了核心概念后,切换到 VibeCoding + 8 个 CrewSkills 模式,用自然语言描述需求,AI 自动生成完整项目代码。适合需要快速交付的团队。
💡 建议:先手动理解核心概念(30分钟),再切换到 VibeCoding 模式提效。两种方式不冲突,推荐先手动理解再自动加速。
二、环境部署
2.1 安装 CrewAI
📍 对应文件:
docs/getting-started/02-installation.md
# 1. 安装 uv 包管理器
# macOS / Linux
curl -LsSf https://astral.org.cn/uv/install.sh | sh
# Windows PowerShell
powershell -ExecutionPolicy ByPass -c "irm https://astral.org.cn/uv/install.ps1 | iex"
# 2. 安装 CrewAI CLI
uv tool install crewai
# 3. 验证
uv tool list
# 输出:crewai v0.102.0
2.2 生成项目脚手架
# 创建 Crew 项目
crewai create crew my_agent_project
cd my_agent_project
# 创建 Flow 项目(如需事件驱动编排)
crewai create flow my_flow_project
cd my_flow_project
2.3 安装依赖
crewai install
# 如需额外包
uv add <package-name>
三、Agent 创建
3.1 快速创建第一个 Agent
📍 对应文件:
docs/core-concepts/01-agents.md📍 menu.md 定位路径:核心概念 → 01-agents.md → “创建代理” 章节
操作步骤:打开 menu.md → 找到”核心概念”表格 → 点击 01-agents.md → 翻到”创建代理” → 复制代码。
YAML 配置方式(推荐)
文件:src/my_project/config/agents.yaml
researcher:
role: >
{topic} Senior Data Researcher
goal: >
Uncover cutting-edge developments in {topic}
backstory: >
You're a seasoned researcher with a knack for uncovering the latest
developments in {topic}. Known for your ability to find the most relevant
information and present it in a clear and concise manner.
reporting_analyst:
role: >
{topic} Reporting Analyst
goal: >
Create detailed reports based on {topic} data analysis and research findings
backstory: >
You're a meticulous analyst with a keen eye for detail. You're known for
your ability to turn complex data into clear and concise reports.
Python 代码定义方式
文件:src/my_project/crew.py
from crewai import Agent
from crewai_tools import SerperDevTool
# 基础研究 Agent
research_agent = Agent(
role="Research Analyst",
goal="Find and summarize information about specific topics",
backstory="You are an experienced researcher with attention to detail",
tools=[SerperDevTool()],
verbose=True
)
# 代码开发 Agent
dev_agent = Agent(
role="Senior Python Developer",
goal="Write and debug Python code",
backstory="Expert Python developer with 10 years of experience",
allow_code_execution=True,
code_execution_mode="safe", # Docker 隔离执行
max_execution_time=300,
max_retry_limit=3
)
# 推理型 Agent
reasoning_agent = Agent(
role="Strategic Planner",
goal="Analyze complex problems and create detailed execution plans",
backstory="Expert strategic planner who methodically breaks down complex challenges",
reasoning=True, # 启用推理
max_reasoning_attempts=3,
verbose=True
)
3.2 Agent 属性速查表
📍 来源:
docs/core-concepts/01-agents.md中的属性表
| 属性 | 类型 | 说明 |
| — | — | — |
| role | str | Agent 角色定义 |
| goal | str | 指导决策的个体目标 |
| backstory | str | 背景故事,丰富交互 |
| llm | str/LLM | 语言模型,默认 “gpt-4” |
| tools | List[BaseTool] | 可用工具列表 |
| verbose | bool | 详细日志,默认 False |
| allow_delegation | bool | 允许委托任务,默认 False |
| reasoning | bool | 启用任务前推理,默认 False |
| max_iter | int | 最大迭代次数,默认 20 |
| max_execution_time | int | 最大执行时间(秒) |
| allow_code_execution | bool | 允许代码执行,默认 False |
| memory | bool | 启用记忆,默认 False |
| cache | bool | 缓存工具调用,默认 True |
四、配置编辑
4.1 创建 Task(任务定义)
📍 对应文件:
docs/core-concepts/02-tasks.md📍 menu.md 定位路径:核心概念 → 02-tasks.md → “创建任务” 章节
文件:src/my_project/config/tasks.yaml
research_task:
description: >
Conduct a thorough research about {topic}
Make sure you find any interesting and relevant information given
the current year is 2025.
expected_output: >
A list with 10 bullet points of the most relevant information about {topic}
agent: researcher
reporting_task:
description: >
Review the context you got and expand each topic into a full section for a report.
Make sure the report is detailed and contains any and all relevant information.
expected_output: >
A fully fledge reports with the mains topics, each with a full section of information.
Formatted as markdown without '```'
agent: reporting_analyst
markdown: true
output_file: report.md
Task 高级特性:Guardrails 输出验证
📍 来源:
docs/core-concepts/02-tasks.md→ “任务防护措施” 章节
from typing import Tuple, Any
from crewai import Task, TaskOutput
# 基于函数的验证
def validate_blog_content(result: TaskOutput) -> Tuple[bool, Any]:
word_count = len(result.raw.split())
if word_count > 200:
return (False, "Blog content exceeds 200 words")
return (True, result.raw.strip())
blog_task = Task(
description="Write a blog post about AI",
expected_output="A blog post under 200 words",
agent=blog_agent,
guardrail=validate_blog_content,
guardrail_max_retries=3
)
Task 高级特性:结构化输出
from pydantic import BaseModel
class Blog(BaseModel):
title: str
content: str
task = Task(
description="Create a blog title and content on a given topic.",
expected_output="A compelling blog title and well-written content.",
agent=blog_agent,
output_pydantic=Blog, # 自动解析为 Pydantic 对象
)
result = crew.kickoff()
print(result.pydantic.title) # 直接访问结构化字段
print(result.pydantic.content)
4.2 创建 Crew(团队编排)
📍 对应文件:
docs/core-concepts/04-crews.md📍 menu.md 定位路径:核心概念 → 04-crews.md → “创建团队” 章节
文件:src/my_project/crew.py
from crewai import Agent, Crew, Task, Process
from crewai.project import CrewBase, agent, task, crew
@CrewBase
class MyCrewProject:
"""我的自定义 Crew 项目"""
agents_config = 'config/agents.yaml'
tasks_config = 'config/tasks.yaml'
@agent
def researcher(self) -> Agent:
return Agent(
config=self.agents_config['researcher'],
verbose=True,
tools=[SerperDevTool()]
)
@agent
def reporting_analyst(self) -> Agent:
return Agent(
config=self.agents_config['reporting_analyst'],
verbose=True
)
@task
def research_task(self) -> Task:
return Task(config=self.tasks_config['research_task'])
@task
def reporting_task(self) -> Task:
return Task(
config=self.tasks_config['reporting_task'],
output_file='output/report.md'
)
@crew
def crew(self) -> Crew:
return Crew(
agents=self.agents,
tasks=self.tasks,
process=Process.sequential, # 顺序执行
memory=True, # 启用记忆
planning=True, # 启用规划
verbose=True,
)
4.3 创建 Flow(事件驱动编排)
📍 对应文件:
docs/core-concepts/03-flows.md📍 menu.md 定位路径:核心概念 → 03-flows.md → “开始入门” 章节
from crewai.flow.flow import Flow, listen, start, router
from pydantic import BaseModel
class MyState(BaseModel):
"""Flow 状态定义"""
input_data: str = ""
result: str = ""
class MyFlow(Flow[MyState]):
@start()
def step_one(self):
"""入口步骤"""
print(f"开始处理: {self.state.input_data}")
return self.state.input_data
@listen(step_one)
def step_two(self, data: str):
"""监听 step_one 的输出"""
processed = f"处理完成: {data}"
self.state.result = processed
return processed
@router(step_two)
def decide_next(self):
"""条件路由"""
if "error" in self.state.result:
return "failure_route"
return "success_route"
@listen("success_route")
def handle_success(self):
print("✅ 成功")
@listen("failure_route")
def handle_failure(self):
print("❌ 失败")
flow = MyFlow()
result = flow.kickoff(inputs={"input_data": "Hello Vibe Coding"})
4.4 启用记忆系统
📍 对应文件:
docs/core-concepts/06-memory.md📍 menu.md 定位路径:核心概念 → 06-memory.md → “基本记忆系统”
crew = Crew(
agents=[...],
tasks=[...],
memory=True, # 一行启用:短期 + 长期 + 实体记忆
embedder={
"provider": "openai",
"config": {"model_name": "text-embedding-3-small"}
}
)
4.5 注入知识库(RAG)
📍 对应文件:
docs/core-concepts/05-knowledge.md📍 menu.md 定位路径:核心概念 → 05-knowledge.md → “基本字符串知识示例”
from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource
from crewai.knowledge.source.text_file_knowledge_source import TextFileKnowledgeSource
# 字符串知识源
content = "Users name is John. He is 30 years old and lives in San Francisco."
string_source = StringKnowledgeSource(content=content)
# 文件知识源
file_source = TextFileKnowledgeSource(
file_path="docs/coding-standards.md"
)
crew = Crew(
agents=[agent],
tasks=[task],
knowledge_sources=[string_source, file_source],
)
4.6 为 Agent 配备工具
📍 对应文件:
docs/tools/01-file-document.md、02-web-scraping.md、03-search-research.md📍 menu.md 定位路径:工具 → 按需选择 → 复制代码
from crewai_tools import (
FileReadTool, # 文件读取 → tools/01-file-document.md
PDFSearchTool, # PDF 搜索 → tools/01-file-document.md
JSONSearchTool, # JSON 搜索 → tools/01-file-document.md
SerperDevTool, # 网页搜索 → tools/03-search-research.md
ScrapeWebsiteTool, # 网页抓取 → tools/02-web-scraping.md
GithubSearchTool, # GitHub 搜索 → tools/03-search-research.md
)
agent = Agent(
role="Document Analyst",
tools=[FileReadTool(), PDFSearchTool(), SerperDevTool()],
goal="Process and analyze various document types"
)
五、调试
5.1 CLI 命令速查
📍 来源:
agentcrew/menu.md→ “CLI命令” 章节
| 命令 | 用途 |
| — | — |
| crewai run | 运行 Crew 或 Flow |
| crewai test | 测试 Crew 并评估性能 |
| crewai replay -t <task_id> | 从指定任务重放执行 |
| crewai log-tasks-outputs | 查看最新任务输出 |
| crewai reset-memories | 重置记忆 |
| crewai chat | 交互式会话调试 |
| crewai train | 训练 Crew 指定迭代次数 |
5.2 调试流程
# 1. 先查看任务输出日志
crewai log-tasks-outputs
# 2. 从失败任务重放
crewai replay -t <task_id>
# 3. 如果需要全新开始
crewai reset-memories
# 4. 交互式排查
crewai chat
5.3 启用可观测性
📍 对应文件:
docs/observability/tracing.md📍 menu.md 定位路径:可观测性 → tracing.md
crew = Crew(
agents=[...],
tasks=[...],
tracing=True, # 启用内置追踪 → CrewAI AMP 平台
verbose=True
)
六、发布
6.1 本地运行与测试
# 安装依赖
crewai install
# 本地运行
crewai run
# 运行测试
crewai test
6.2 Git 版本管理
git add src/ .env
git commit -m "feat: 完成自定义 Crew Agent 开发"
git push origin main
# 打版本标签
git tag -a v1.0.0 -m "First release"
git push origin --tags
6.3 部署到 CrewAI AMP 平台
crewai login
crewai deploy
6.4 团队协作
# 团队成员
git pull origin main
crewai install
# 编辑 .env 填入 API 密钥
crewai run
七、企业级安全管控
7.1 安全防护体系
📍 来源:
docs/core-concepts/02-tasks.md→ “任务防护措施” +docs/core-concepts/01-agents.md→ “安全与代码执行”
安全五层防护:
┌──────────────────────────────┐
│ 1. Guardrails 输出验证 │ ← 02-tasks.md
│ 2. 代码安全执行 (Docker) │ ← 01-agents.md
│ 3. MCP 工具过滤 │ ← mcp/mcp.md
│ 4. 工具白名单最小化 │ ← 配置层
│ 5. 审计日志 (tracing) │ ← observability/
└──────────────────────────────┘
7.2 Guardrails 安全验证
# 多层验证链
task = Task(
description="Write a blog post about AI",
expected_output="A well-formatted blog post between 100-500 words",
agent=blog_agent,
guardrails=[
validate_word_count, # 字数验证
validate_no_profanity, # 内容过滤
format_output # 格式检查
],
guardrail_max_retries=3
)
7.3 代码安全执行
agent = Agent(
role="Developer",
allow_code_execution=True,
code_execution_mode="safe", # Docker 隔离 → 生产环境必须
max_execution_time=300, # 5 分钟超时
)
7.4 MCP 工具安全
📍 对应文件:
docs/mcp/mcp.md📍 menu.md 定位路径:MCP集成 → mcp.md
agent = Agent(
role="Research Analyst",
mcps=["https://mcp.exa.ai/mcp?api_key=your_key"],
# MCP 支持:Stdio(本地) / SSE(远程流) / HTTP(远程灵活)
)
八、最佳实践
8.1 开发工作流总览
使用 menu.md 的标准开发流程:
1打开 menu.md,找到你要的功能模块
2点击链接跳转到对应 .md 文档
3在文档中找到代码示例,直接复制
4修改 role/goal/backstory 适配你的业务
5crewai run → 验证 → 迭代
8.2 场景速查:从需求到文档的映射
| 你的需求 | menu.md 定位路径 | 关键文件 |
| — | — | — |
| 我想创建一个会搜索的研究 Agent | 核心概念 → 01-agents.md | 01-agents.md → “基本研究代理” |
| 我想让 Agent 记住上次的结果 | 核心概念 → 06-memory.md | 06-memory.md → memory=True |
| 我想给 Agent 注入公司文档 | 核心概念 → 05-knowledge.md | 05-knowledge.md → StringKnowledgeSource |
| 我想让 Agent 输出结构化 JSON | 核心概念 → 02-tasks.md | 02-tasks.md → output_pydantic |
| 我想控制任务执行顺序 | 核心概念 → 04-crews.md | 04-crews.md → Process.sequential |
| 我想让 Agent 写代码并执行 | 核心概念 → 01-agents.md | 01-agents.md → “代码开发代理” |
| 我想在工作流中加条件分支 | 核心概念 → 03-flows.md | 03-flows.md → @router() |
| 我想自定义 Agent 的提示词 | 设计指南 → 04-customizing-prompts.md | 04-customizing-prompts.md |
| 我想让 Agent 读取 PDF 文件 | 工具 → 01-file-document.md | 01-file-document.md → PDFSearchTool |
| 我想监控 Agent 的执行过程 | 可观测性 → tracing.md | tracing.md → tracing=True |
8.3 完整示例:从零创建一个”技术调研 Crew”
场景:需要一个会自动搜索、分析、输出 Markdown 报告的技术调研团队。
第 1 步:打开 menu.md,找到需要的功能:
- Agent 创建 →
core-concepts/01-agents.md - Task 定义 →
core-concepts/02-tasks.md - Crew 编排 →
core-concepts/04-crews.md - 搜索工具 →
tools/03-search-research.md
第 2 步:创建项目
crewai create crew tech_research
cd tech_research
第 3 步:编辑 config/agents.yaml(从 01-agents.md 复制模板)
researcher:
role: >
{topic} 技术调研专家
goal: >
深入调研 {topic} 的最新技术动态,找到最有价值的信息
backstory: >
你是一位资深技术调研专家,擅长从海量信息中提取关键洞察。
你的调研报告总是全面、准确、有深度。
verbose: true
analyst:
role: >
{topic} 技术分析顾问
goal: >
基于调研结果,输出结构化的分析报告,包含趋势判断和行动建议
backstory: >
你是一位顶级技术顾问,曾为多家 Fortune 500 企业提供技术战略咨询。
你的分析总是直击要害,让决策者一目了然。
verbose: true
第 4 步:编辑 config/tasks.yaml(从 02-tasks.md 复制模板)
research_task:
description: >
对 {topic} 进行全面调研,重点关注:
1. 核心技术概念与原理
2. 最新发展趋势(2025)
3. 主要应用场景与案例
4. 头部企业与开源项目
5. 未来展望
expected_output: >
一份结构化的调研笔记,包含以上 5 个维度的详细信息
agent: researcher
analysis_task:
description: >
基于调研结果,撰写一份专业分析报告,包含:
1. 执行摘要
2. 技术成熟度评估
3. 竞争格局分析
4. 机会与风险
5. 行动建议
expected_output: >
一份格式精美的 Markdown 分析报告
agent: analyst
context:
- research_task
markdown: true
output_file: output/report.md
第 5 步:编辑 crew.py(从 04-crews.md 复制模板)
from crewai import Agent, Crew, Process, Task
from crewai.project import CrewBase, agent, crew, task
from crewai_tools import SerperDevTool
@CrewBase
class TechResearchCrew:
agents_config = 'config/agents.yaml'
tasks_config = 'config/tasks.yaml'
@agent
def researcher(self) -> Agent:
return Agent(
config=self.agents_config['researcher'],
tools=[SerperDevTool()] # 来自 tools/03-search-research.md
)
@agent
def analyst(self) -> Agent:
return Agent(
config=self.agents_config['analyst']
)
@task
def research_task(self) -> Task:
return Task(config=self.tasks_config['research_task'])
@task
def analysis_task(self) -> Task:
return Task(
config=self.tasks_config['analysis_task'],
output_file='output/report.md'
)
@crew
def crew(self) -> Crew:
return Crew(
agents=self.agents,
tasks=self.tasks,
process=Process.sequential,
verbose=True
)
第 6 步:运行
crewai install
crewai run
九、FAQ
Q1:如何快速找到某个功能的实现代码?
A:打开 agentcrew/menu.md,按功能分类定位:
-
创建 Agent
→ 核心概念表格 →
01-agents.md -
定义 Task
→ 核心概念表格 →
02-tasks.md -
编排 Crew
→ 核心概念表格 →
04-crews.md -
事件驱动 Flow
→ 核心概念表格 →
03-flows.md -
添加记忆
→ 核心概念表格 →
06-memory.md -
注入知识库
→ 核心概念表格 →
05-knowledge.md -
配备工具
→ 工具表格 → 按类型选择
-
启用监控
→ 可观测性表格 →
tracing.md
Q2:menu.md 中的文件路径怎么使用?
A:所有路径相对于 agentcrew/ 根目录。例如 menu.md 中写 [01-agents.md](docs/core-concepts/01-agents.md),实际文件在 agentcrew/docs/core-concepts/01-agents.md。
Q3:我应该用 YAML 配置还是 Python 代码定义 Agent?
A:推荐 YAML。YAML 配置更清晰、更易维护、更易团队协作。Python 代码适合需要动态构建 Agent 的场景。
Q4:Crew 和 Flow 应该怎么选?
A:参考 design-guides/01-evaluating-use-cases.md 中的复杂性-精度矩阵:
-
简单任务
:直接用 Crew(顺序执行即可)
-
需要条件分支/状态管理
:用 Flow 编排 Crew
-
复杂系统
:Flow 编排多个 Crew
Q5:如何让 Agent 记住上次执行的结果?
A:在 Crew 中设置 memory=True,参考 core-concepts/06-memory.md。记忆数据存储在本地 SQLite 中,跨执行持久化。
Q6:Agent 执行超时怎么办?
A:设置 max_execution_time 和 max_iter:
Agent(
max_execution_time=300, # 5 分钟超时
max_iter=15, # 最多 15 次迭代
)
Q7:如何确保 Agent 输出的格式符合预期?
A:三种方式(参考 02-tasks.md):
-
output_pydantic:强制 Pydantic 结构化输出
-
guardrails:输出验证函数链
-
expected_output:在 Task 中详细描述期望格式
Q8:如何在现有项目中逐步引入 CrewAI?
A:从最小单元开始:
- 先用一个 Agent + 一个 Task 跑通流程
- 逐步添加更多 Agent 组成 Crew
- 需要复杂编排时引入 Flow
- 最后启用 memory 和 knowledge 增强能力
十、VibeCoding Skills 能力体系
10.1 什么是 VibeCoding Skills?
基于本手册的 agentcrew/ 文档体系,我们构建了一套可直接被 Claude Code 加载的 Superpowers 格式 Skills 工具集,覆盖从需求分析到生产部署的完整 VibeCoding 流水线。每个 Skill 都是一个独立的 JSON 配置文件,包含完整的 AI prompt、诊断流程、代码示例和最佳实践。
VibeCoding 六阶段流水线(8 Skills 全覆盖):
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│Brainstorm│ → │ Plan │ → │ CodeGen │ → │ Review │ → │ Commit │ → │ Debug │
│ 需求分析 │ │ 架构设计 │ │ 代码生成 │ │ 代码审查 │ │ 规范提交 │ │ 诊断修复 │
└──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
↑
┌──────────────────────┤
│ Observability │ Deploy │
│ 可观测性集成 │ 发布部署 │
└──────────────────────┴──────────┘
下一篇文章 展示了Crew编排的代码审计Agent->Security Audit Flow 完整实例
Skills项目地址 https://github.com/8eeth0ven/CrewAI-AgentCodingSkills
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Moonlight安全 Lior1969 Lior1969《SkillsCoding:CrewAI 企业级 Agent 开发实操&成品分享》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论