跳转到内容

快速开始

观看:使用 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
  1. 创建一个 Flow 项目

    在终端中搭建一个 Flow 项目(文件夹名称使用下划线,例如 latest_ai_flow):

    Code
    Terminal window
    crewai create flow latest-ai-flow
    cd latest_ai_flow

    这会在 src/latest_ai_flow/ 下创建一个 Flow 应用,其中包括 crews/content_crew/ 下的入门 crew。接下来你会把它替换成一个最小的单 agent研究 crew。

  2. 用 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
    }
    }
  3. 在 `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
    }
  4. 加载 JSON crew(`content_crew.py`)

    用一个小型加载器替换生成的 content_crew.py,它会把 crew.jsonc 转成 Crew

    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})
  5. 在 `main.py` 中定义 Flow

    把 crew 接到 Flow 上:一个 @start() 步骤在 state 中设置主题,一个 @listen 步骤运行 crew。任务的 output_file 仍然会写入 output/report.md

    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()
  6. Set environment variables

    在项目根目录的 .env 中设置:

  7. Install and run
    Code
    Terminal window
    crewai install
    crewai run

    crewai run 会执行你项目中定义的 Flow 入口点(与 crews 使用同一命令;项目类型在 pyproject.toml 中为 "flow")。

  8. 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

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

  1. Flow - LatestAiFlow 先运行 prepare_topic,然后运行 run_research,最后运行 summarize。状态(topicreport)保存在 Flow 上。
  2. Crew - kickoff_content_crew 加载 crew.jsonc 并运行一个只有一个 agent 的任务:researcher 使用 Serper 搜索网络,然后写出结构化报告。
  3. 产物 - 任务的 output_file 会把报告写到 output/report.md

若想深入了解 Flow 模式(routing、持久化、human-in-the-loop),请参阅 构建你的第一个 FlowFlows。如果你想了解没有 Flow 的 crews,请参阅 Crews。如果你想了解不带任务的单个 Agentkickoff(),请参阅 Agents

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

  • agents: ["researcher"] loads agents/researcher.jsonc
  • tasks[].agent: "researcher" assigns the task to that agent

当你的 Flow 在本地运行正常,并且项目位于 GitHub 仓库中时,就可以把它推送到 CrewAI AMP。在项目根目录下执行:

Code
Terminal window
crewai login
Terminal window
crewai deploy create
Terminal window
crewai deploy status
crewai deploy logs
Terminal window
crewai deploy push
Terminal window
crewai deploy list
crewai deploy remove <deployment_id>