主题
快速开始
在几分钟内构建你的第一个 CrewAI Flow —— 包含编排、状态,以及一个能产出真实报告的智能体团队。
观看:使用编码智能体技能构建 CrewAI 智能体与流程
安装我们的编码智能体技能(Claude Code、Codex 等),让你的编码智能体快速上手 CrewAI。
你可以使用 npx skills add crewaiinc/skills 安装它
在本指南中,你将创建一个 Flow,它设定一个研究主题,运行一个只包含一个智能体的团队(使用网页搜索的研究员),最后在磁盘上生成一份 markdown 报告。Flow 是构建生产应用推荐的方式:它负责状态和执行顺序,而智能体则在团队步骤中完成实际工作。
如果你还没有安装 CrewAI,请先按照安装指南操作。
前置条件
- Python 环境和 CrewAI CLI(参见安装)
- 已配置正确 API 密钥的 LLM —— 参见 LLM
- 用于本教程中网页搜索的 Serper.dev API 密钥(
SERPER_API_KEY)
构建你的第一个 Flow
Create a Flow project
在终端中,搭建一个 Flow 项目脚手架(文件夹名使用下划线,例如 latest_ai_flow):
shell
crewai create flow latest-ai-flow
cd latest_ai_flow这会在 src/latest_ai_flow/ 下创建一个 Flow 应用,其中包含 crews/content_crew/ 下的入门团队,你将在后续步骤中用一个最小的单智能体研究团队替换它。
Configure one agent in JSONC
创建 src/latest_ai_flow/crews/content_crew/agents/researcher.jsonc(如有需要,请创建 agents/ 目录)。像 {topic} 这样的变量会由 crew.kickoff(inputs=...) 填充。
jsonc
{
"role": "{topic} Senior Data Researcher",
"goal": "Uncover cutting-edge developments in {topic}",
"backstory": "You're a seasoned researcher who finds relevant information and presents it clearly.",
"tools": ["SerperDevTool"],
"settings": {
"verbose": true
}
}Configure the crew in `crew.jsonc`
创建 src/latest_ai_flow/crews/content_crew/crew.jsonc:
jsonc
{
"name": "Research Crew",
"agents": ["researcher"],
"tasks": [
{
"name": "research_task",
"description": "Conduct thorough research about {topic}. Use web search to find recent, credible information.",
"expected_output": "A markdown report with clear sections: key trends, notable tools or companies, and implications. Aim for 800-1200 words. No fenced code blocks around the whole document.",
"agent": "researcher",
"output_file": "output/report.md",
"markdown": true
}
],
"process": "sequential",
"verbose": true
}Load the JSON crew (`content_crew.py`)
将生成的 content_crew.py 替换为一个小的加载器,它把 crew.jsonc 转换为 Crew。
python
# src/latest_ai_flow/crews/content_crew/content_crew.py
from pathlib import Path
from crewai.project import load_crew
def kickoff_content_crew(inputs: dict):
crew, default_inputs = load_crew(Path(__file__).with_name("crew.jsonc"))
return crew.kickoff(inputs={**default_inputs, **inputs})Define the Flow in `main.py`
将团队连接到 Flow:一个 @start() 步骤在状态中设置主题,一个 @listen 步骤运行该团队。任务的 output_file 仍会写入 output/report.md。
python
# src/latest_ai_flow/main.py
from pydantic import BaseModel
from crewai.flow import Flow, listen, start
from latest_ai_flow.crews.content_crew.content_crew import kickoff_content_crew
class ResearchFlowState(BaseModel):
topic: str = ""
report: str = ""
class LatestAiFlow(Flow[ResearchFlowState]):
@start()
def prepare_topic(self, crewai_trigger_payload: dict | None = None):
if crewai_trigger_payload:
self.state.topic = crewai_trigger_payload.get("topic", "AI Agents")
else:
self.state.topic = "AI Agents"
print(f"Topic: {self.state.topic}")
@listen(prepare_topic)
def run_research(self):
result = kickoff_content_crew(inputs={"topic": self.state.topic})
self.state.report = result.raw
print("Research crew finished.")
@listen(run_research)
def summarize(self):
print("Report path: output/report.md")
def kickoff():
LatestAiFlow().kickoff()
def plot():
LatestAiFlow().plot()
if __name__ == "__main__":
kickoff()TIP
如果你的包名与 latest_ai_flow 不同,请调整 kickoff_content_crew 的导入,使其匹配你项目的模块路径。
Set environment variables
在项目根目录的 .env 中设置:
SERPER_API_KEY—— 来自 Serper.dev- 按需设置你的模型服务商密钥 —— 参见 LLM 设置
Install and run
shell
crewai install
crewai runcrewai run 会执行你项目中定义的 Flow 入口点(与团队使用的命令相同;项目类型在 pyproject.toml 中为 "flow")。
Check the output
你应该会看到来自 Flow 和团队的日志。打开 output/report.md 查看生成的报告(节选):
markdown
# AI Agents: Recent Landscape and Trends
## Executive summary
…
## Key trends
- **Tool use and orchestration** — …
- **Enterprise adoption** — …
## Implications
…你实际生成的文件会更长,并反映实时的搜索结果。
本次运行如何协同工作
- Flow ——
LatestAiFlow先运行prepare_topic,然后运行run_research,最后运行summarize。状态(topic、report)保存在 Flow 上。 - 团队 ——
kickoff_content_crew加载crew.jsonc,并由一个智能体运行一个任务:研究员使用 Serper 搜索网页,然后撰写结构化报告。 - 产物 —— 任务的
output_file将报告写入output/report.md。
如需深入了解 Flow 模式(路由、持久化、人在回路),请参阅构建你的第一个 Flow和 Flow。对于不带 Flow 的团队,请参阅团队。对于不带任务的单个 Agent 和 kickoff(),请参阅智能体。
TIP
你现在已经拥有一个端到端的 Flow,包含一个智能体团队和一份已保存的报告 —— 这是添加更多步骤、团队或工具的坚实基础。
命名一致性
crew.jsonc 中的名称必须与你使用的文件和任务引用相匹配:
agents: ["researcher"]会加载agents/researcher.jsonctasks[].agent: "researcher"会把该任务分配给那个智能体
部署
当 Flow 在本地运行成功后,将其推送到 CrewAI AMP。如果项目有 git origin,AMP 会从该仓库部署(在 GitHub 上,AMP 的 GitHub 集成必须能够访问它);如果没有 origin,crewai deploy create 会将项目以 ZIP 形式上传。在项目根目录执行:
bash
crewai loginbash
crewai deploy createbash
crewai deploy status
crewai deploy logsbash
crewai deploy pushbash
crewai deploy list
crewai deploy remove -u <deployment_uuid>TIP
首次部署通常需要大约 1 分钟。完整的前置条件和 Web UI 操作流程见 部署到 AMP。