快速开始
观看:使用 Coding Agent Skills 构建 CrewAI Agents 和 Flows
Section titled “观看:使用 Coding Agent Skills 构建 CrewAI Agents 和 Flows”安装我们的 coding agent skills(Claude Code、Codex 等),可以快速让你的 coding agents 在 CrewAI 上跑起来。
你可以使用 npx skills add crewaiinc/skills 安装它。
在本指南中,你将创建一个 Flow:设置研究主题,运行一个包含一个 agent 的 crew(使用网页搜索的研究员),最后在磁盘上生成一份markdown 报告。Flows 是构建生产应用的推荐方式:它们负责状态和执行顺序,而agents负责在 crew 的某个步骤中完成工作。
如果你还没有安装 CrewAI,请先阅读 安装指南。
- Python 环境和 CrewAI CLI(参见 安装)
- 已配置好相应 API keys 的 LLM - 参见 LLMs
- 用于本教程网页搜索的 Serper.dev API key(
SERPER_API_KEY)
构建你的第一个 Flow
Section titled “构建你的第一个 Flow”- 创建一个 Flow 项目
在终端中搭建一个 Flow 项目(文件夹名称使用下划线,例如
latest_ai_flow):CodeTerminal window crewai create flow latest-ai-flowcd latest_ai_flow这会在
src/latest_ai_flow/下创建一个 Flow 应用,其中包括crews/content_crew/下的入门 crew。接下来你会把它替换成一个最小的单 agent研究 crew。 - 用 JSONC 配置一个 agent
创建
src/latest_ai_flow/crews/content_crew/agents/researcher.jsonc(如果需要,请先创建agents/目录)。像{topic}这样的变量会从crew.kickoff(inputs=...)中填充。{"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}} - 在 `crew.jsonc` 中配置 crew
创建
src/latest_ai_flow/crews/content_crew/crew.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} - 加载 JSON crew(`content_crew.py`)
用一个小型加载器替换生成的
content_crew.py,它会把crew.jsonc转成Crew。src/latest_ai_flow/crews/content_crew/content_crew.py from pathlib import Pathfrom crewai.project import load_crewdef kickoff_content_crew(inputs: dict):crew, default_inputs = load_crew(Path(__file__).with_name("crew.jsonc"))return crew.kickoff(inputs={**default_inputs, **inputs}) - 在 `main.py` 中定义 Flow
把 crew 接到 Flow 上:一个
@start()步骤在 state 中设置主题,一个@listen步骤运行 crew。任务的output_file仍然会写入output/report.md。src/latest_ai_flow/main.py from pydantic import BaseModelfrom crewai.flow import Flow, listen, startfrom latest_ai_flow.crews.content_crew.content_crew import kickoff_content_crewclass 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.rawprint("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() - Set environment variables
在项目根目录的
.env中设置:SERPER_API_KEY- 来自 Serper.dev- 按需配置你的模型提供方密钥 - 参见 LLM 设置
- Install and runCode
Terminal window crewai installcrewai runcrewai run会执行你项目中定义的 Flow 入口点(与 crews 使用同一命令;项目类型在pyproject.toml中为"flow")。 - Check the output
你应该会看到来自 Flow 和 crew 的日志。打开
output/report.md查看生成的报告(节选):Code# AI Agents: Recent Landscape and Trends## Executive summary…## Key trends- **Tool use and orchestration** — …- **Enterprise adoption** — …## Implications…实际文件会更长,并反映实时搜索结果。
这次运行如何协同
Section titled “这次运行如何协同”- Flow -
LatestAiFlow先运行prepare_topic,然后运行run_research,最后运行summarize。状态(topic、report)保存在 Flow 上。 - Crew -
kickoff_content_crew加载crew.jsonc并运行一个只有一个 agent 的任务:researcher 使用 Serper 搜索网络,然后写出结构化报告。 - 产物 - 任务的
output_file会把报告写到output/report.md。
若想深入了解 Flow 模式(routing、持久化、human-in-the-loop),请参阅 构建你的第一个 Flow 和 Flows。如果你想了解没有 Flow 的 crews,请参阅 Crews。如果你想了解不带任务的单个 Agent 和 kickoff(),请参阅 Agents。
crew.jsonc 中的名称必须与你使用的文件和任务引用一致:
agents: ["researcher"]loadsagents/researcher.jsonctasks[].agent: "researcher"assigns the task to that agent
当你的 Flow 在本地运行正常,并且项目位于 GitHub 仓库中时,就可以把它推送到 CrewAI AMP。在项目根目录下执行:
crewai logincrewai deploy createcrewai deploy statuscrewai deploy logscrewai deploy pushcrewai deploy listcrewai deploy remove <deployment_id>