Skip to content
CrewAI 文档版本 跟随上游 源快照 11c618c2 更新于 2026-10-18

快速开始

在几分钟内构建你的第一个 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 run

crewai 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
…

你实际生成的文件会更长,并反映实时的搜索结果。

本次运行如何协同工作

  1. Flow —— LatestAiFlow 先运行 prepare_topic,然后运行 run_research,最后运行 summarize。状态(topic、report)保存在 Flow 上。
  2. 团队 —— kickoff_content_crew 加载 crew.jsonc,并由一个智能体运行一个任务:研究员使用 Serper 搜索网页,然后撰写结构化报告。
  3. 产物 —— 任务的 output_file 将报告写入 output/report.md。

如需深入了解 Flow 模式(路由、持久化、人在回路),请参阅构建你的第一个 Flow和 Flow。对于不带 Flow 的团队,请参阅团队。对于不带任务的单个 Agent 和 kickoff(),请参阅智能体。

TIP

你现在已经拥有一个端到端的 Flow,包含一个智能体团队和一份已保存的报告 —— 这是添加更多步骤、团队或工具的坚实基础。

命名一致性

crew.jsonc 中的名称必须与你使用的文件和任务引用相匹配:

  • agents: ["researcher"] 会加载 agents/researcher.jsonc
  • tasks[].agent: "researcher" 会把该任务分配给那个智能体

部署

当 Flow 在本地运行成功后,将其推送到 CrewAI AMP。如果项目有 git origin,AMP 会从该仓库部署(在 GitHub 上,AMP 的 GitHub 集成必须能够访问它);如果没有 origin,crewai deploy create 会将项目以 ZIP 形式上传。在项目根目录执行:

bash
crewai login
bash
crewai deploy create
bash
crewai deploy status
crewai deploy logs
bash
crewai deploy push
bash
crewai deploy list
crewai deploy remove -u <deployment_uuid>

TIP

首次部署通常需要大约 1 分钟。完整的前置条件和 Web UI 操作流程见 部署到 AMP。

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。